From 661c6c6b13f661edb7e28dfd4d0b59526d428d7d Mon Sep 17 00:00:00 2001 From: David Minton Date: Tue, 25 May 2021 10:03:05 -0400 Subject: [PATCH] Consolidated random seeds to the param reader so that we can save seeds to files during dumps --- src/main/swiftest_symba.f90 | 7 ------- src/modules/user.f90 | 1 + src/symba/symba_frag_pos.f90 | 11 +---------- 3 files changed, 2 insertions(+), 17 deletions(-) diff --git a/src/main/swiftest_symba.f90 b/src/main/swiftest_symba.f90 index ef39b7c90..ba578bdf2 100644 --- a/src/main/swiftest_symba.f90 +++ b/src/main/swiftest_symba.f90 @@ -40,8 +40,6 @@ program swiftest_symba character(len=*), parameter :: simtimefmt = '(" Time = ", es12.5, "; fraction done = ", f5.3, "; number of active pl, tp = ", i7, ", ", i7)' character(len=*), parameter :: walltimefmt = '(" Wall time (s): ", es12.5, "; Wall time/step in this interval (s): ", es12.5)' character(len=*), parameter :: endwallfmt = '("Wall time to complete run (s): ", es12.5)' - integer(I4B), allocatable :: seed(:) - integer(I4B) :: nseeds integer(I4B), dimension(:), allocatable :: discard_stat_list logical, dimension(:), allocatable :: discard_l_pl @@ -75,11 +73,6 @@ program swiftest_symba call util_version - call random_seed(size = nseeds) - allocate(seed(nseeds)) - seed(:) = [(i * 1, i = 1, nseeds)] - call random_seed(put = seed) - call get_command_argument(1, inparfile, status = ierr) if (ierr /= 0) then write(*, 100, advance = "NO") "Enter name of parameter data file: " diff --git a/src/modules/user.f90 b/src/modules/user.f90 index 60a531c7d..7cba21f51 100644 --- a/src/modules/user.f90 +++ b/src/modules/user.f90 @@ -35,6 +35,7 @@ module user real(DP) :: MU2KG = -1.0_DP !! Converts mass units to grams real(DP) :: TU2S = -1.0_DP !! Converts time units to seconds real(DP) :: DU2M = -1.0_DP !! Converts distance unit to centimeters + integer(I4B), dimension(:), allocatable :: seed !! Random seeds !Logical flags to turn on or off various features of the code diff --git a/src/symba/symba_frag_pos.f90 b/src/symba/symba_frag_pos.f90 index f04b68152..f254dff48 100644 --- a/src/symba/symba_frag_pos.f90 +++ b/src/symba/symba_frag_pos.f90 @@ -130,8 +130,6 @@ subroutine symba_frag_pos(param, symba_plA, family, x, v, L_spin, Ip, mass, radi real(DP) :: ke_family, ke_target, ke_frag, ke_offset real(DP), dimension(NDIM) :: x_col_unit, y_col_unit, z_col_unit character(len=*), parameter :: fmtlabel = "(A14,10(ES11.4,1X,:))" - integer(I4B), dimension(:), allocatable :: seed - integer(I4B) :: nseed integer(I4B) :: try, ntry integer(I4B), parameter :: NFRAG_MIN = 6 !! The minimum allowable number of fragments (set to 6 because that's how many unknowns are needed in the tangential velocity calculation) real(DP) :: r_max_start = 1.0_DP @@ -147,14 +145,6 @@ subroutine symba_frag_pos(param, symba_plA, family, x, v, L_spin, Ip, mass, radi end if ntry = nfrag - NFRAG_MIN - ! Temporary until we get random number stuff settled for the whole project - if (lfirst) then - call random_seed(size=nseed) - allocate(seed(nseed)) - seed = [(12*ii, ii=1, nseed)] - call random_seed(put=seed) - lfirst = .false. - end if allocate(x_frag, source=xb_frag) allocate(v_frag, source=vb_frag) @@ -248,6 +238,7 @@ subroutine symba_frag_pos(param, symba_plA, family, x, v, L_spin, Ip, mass, radi write(*, "(' -------------------------------------------------------------------------------------')") if (lmerge) then write(*,*) "symba_frag_pos failed after: ",try," tries" + stop else write(*,*) "symba_frag_pos succeeded after: ",try," tries" write(*, "(' dL_tot should be very small' )")