diff --git a/app/main.f90 b/app/main.f90 index 9bc02f6..72e8a14 100644 --- a/app/main.f90 +++ b/app/main.f90 @@ -2,24 +2,28 @@ program tcell use tcelsim, only : initialize_positions, create_distribution, move_tcells implicit none - integer ncells, npositions, nintervals, nveldim - parameter(ncells = 100, npositions = 25, nveldim = 4) + integer ncells, npositions, nintervals, nveldim, ndim + parameter(ncells = 100, npositions = 25, nveldim = 4, ndim = 3) parameter(nintervals = 10) double precision vel(nintervals) double precision cumulative_distribution(0:nintervals) double precision, allocatable :: random_number_table(:,:,:) + double precision, allocatable :: random_number_table_positions(:,:) double precision, allocatable :: x(:,:) double precision, allocatable :: y(:,:) double precision, allocatable :: z(:,:) allocate(random_number_table(ncells,npositions,nveldim)) + allocate(random_number_table_positions(ncells,ndim)) allocate(x(ncells,npositions)) allocate(y(ncells,npositions)) allocate(z(ncells,npositions)) - call initialize_positions(x,y,z,ncells,npositions) + call random_number(random_number_table_positions) + + call initialize_positions(x,y,z,random_number_table_positions,ncells,npositions,ndim) call create_distribution(vel,cumulative_distribution,nintervals) diff --git a/src/tcelsim.f90 b/src/tcelsim.f90 index 28aa132..a1b9622 100644 --- a/src/tcelsim.f90 +++ b/src/tcelsim.f90 @@ -1,7 +1,6 @@ module tcelsim use t_cell_m, only : initialize_positions use distribution_m, only : create_distribution - use random_numbers_m, only : create_rand_num_table use move_m, only : move_tcells implicit none diff --git a/src/tcelsim/t_cell_m.f90 b/src/tcelsim/t_cell_m.f90 index 89fabe3..88023e6 100644 --- a/src/tcelsim/t_cell_m.f90 +++ b/src/tcelsim/t_cell_m.f90 @@ -3,9 +3,10 @@ module t_cell_m interface - module subroutine initialize_positions(x,y,z,ncells,npositions) + module subroutine initialize_positions(x,y,z,random_number_table_positions,ncells,npositions,ndim) implicit none - integer, intent(in) :: ncells,npositions + integer, intent(in) :: ncells,npositions,ndim + double precision, intent(in) :: random_number_table_positions(ncells,ndim) double precision, intent(out) :: x(ncells,npositions) double precision, intent(out) :: y(ncells,npositions) double precision, intent(out) :: z(ncells,npositions) diff --git a/src/tcelsim/t_cell_s.f90 b/src/tcelsim/t_cell_s.f90 index 310a1b7..68b6b95 100644 --- a/src/tcelsim/t_cell_s.f90 +++ b/src/tcelsim/t_cell_s.f90 @@ -7,19 +7,14 @@ ! Local variables integer i - double precision rr1,rr2,rr3 - double precision scaling_factor + double precision, parameter :: scaling_factor = 100. - scaling_factor = 100.d0 ! Assign initial positions to T cells randomly in a [100x100x100] grid do i = 1,ncells - call random_number(rr1) - call random_number(rr2) - call random_number(rr3) - x(i,1) = rr1*scaling_factor - y(i,1) = rr2*scaling_factor - z(i,1) = rr3*scaling_factor + x(i,1) = random_number_table_positions(i,1)*scaling_factor + y(i,1) = random_number_table_positions(i,2)*scaling_factor + z(i,1) = random_number_table_positions(i,3)*scaling_factor end do end procedure initialize_positions