diff --git a/src/fraggle/fraggle_placeholder.f90 b/src/fraggle/fraggle_placeholder.f90 index bbf08bb04..f8284b6b4 100644 --- a/src/fraggle/fraggle_placeholder.f90 +++ b/src/fraggle/fraggle_placeholder.f90 @@ -8,7 +8,7 @@ module subroutine fraggle_placeholder_accel(self, system, param, t, lbeg) implicit none class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current simulation time logical, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step write(*,*) "The type-bound procedure 'accel' is not defined for type fraggle_fragments" @@ -19,7 +19,7 @@ module subroutine fraggle_placeholder_kick(self, system, param, t, dt, lbeg) implicit none class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system objec - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time real(DP), intent(in) :: dt !! Stepsize logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not. diff --git a/src/helio/helio_kick.f90 b/src/helio/helio_kick.f90 index 928e7c197..2ed23654d 100644 --- a/src/helio/helio_kick.f90 +++ b/src/helio/helio_kick.f90 @@ -13,7 +13,7 @@ module subroutine helio_kick_getacch_pl(self, system, param, t, lbeg) ! Arguments class(helio_pl), intent(inout) :: self !! Helio massive body particle data structure class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current simulation time logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step @@ -56,7 +56,7 @@ module subroutine helio_kick_getacch_tp(self, system, param, t, lbeg) ! Arguments class(helio_tp), intent(inout) :: self !! Helio test particle data structure class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step @@ -89,7 +89,7 @@ module subroutine helio_kick_vb_pl(self, system, param, t, dt, lbeg) ! Arguments class(helio_pl), intent(inout) :: self !! Swiftest generic body object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time real(DP), intent(in) :: dt !! Stepsize logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not. @@ -128,7 +128,7 @@ module subroutine helio_kick_vb_tp(self, system, param, t, dt, lbeg) ! Arguments class(helio_tp), intent(inout) :: self !! Swiftest generic body object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time real(DP), intent(in) :: dt !! Stepsize logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not. diff --git a/src/kick/kick.f90 b/src/kick/kick.f90 index 766e829d6..0e90e73ee 100644 --- a/src/kick/kick.f90 +++ b/src/kick/kick.f90 @@ -12,8 +12,14 @@ module subroutine kick_getacch_int_pl(self, param) implicit none ! Arguments class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object - class(swiftest_parameters), intent(in) :: param !! Current swiftest run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current swiftest run configuration parameters + ! Internals + type(interaction_timer), save :: itimer + logical, save :: lfirst + if (lfirst) then + call itimer%reset(param) + end if if (param%lflatten_interactions) then call kick_getacch_int_all_flat_pl(self%nbody, self%nplpl, self%k_plpl, self%xh, self%Gmass, self%radius, self%ah) else @@ -34,7 +40,7 @@ module subroutine kick_getacch_int_tp(self, param, GMpl, xhp, npl) implicit none ! Arguments class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object - class(swiftest_parameters), intent(in) :: param !! Current swiftest run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current swiftest run configuration parameters real(DP), dimension(:), intent(in) :: GMpl !! Massive body masses real(DP), dimension(:,:), intent(in) :: xhp !! Massive body position vectors integer(I4B), intent(in) :: npl !! Number of active massive bodies diff --git a/src/main/swiftest_driver.f90 b/src/main/swiftest_driver.f90 index b4260f115..bd4d50855 100644 --- a/src/main/swiftest_driver.f90 +++ b/src/main/swiftest_driver.f90 @@ -70,7 +70,7 @@ program swiftest_driver !$ write(*,'(a)') ' OpenMP parameters:' !$ write(*,'(a)') ' ------------------' !$ write(*,'(a,i3,/)') ' Number of threads = ', nthreads - call timer%reset() + call timer%reset(param) write(*, *) " *************** Main Loop *************** " do iloop = 1, nloops !> Step the system forward in time @@ -86,9 +86,9 @@ program swiftest_driver iout = iout - 1 if (iout == 0) then ioutput = ioutput_t0 + iloop / istep_out - call timer%finish(nsubsteps=istep_out, message="Integration steps:") + call timer%finish(nsubsteps=istep_out, message="Integration steps:", param=param) if (t > old_t_final) call nbody_system%write_frame(param) - call timer%finish(nsubsteps=1, message="File I/O: ") + call timer%finish(nsubsteps=1, message="File I/O: ", param=param) iout = istep_out end if end if diff --git a/src/modules/fraggle_classes.f90 b/src/modules/fraggle_classes.f90 index 2f6d75a84..63440383f 100644 --- a/src/modules/fraggle_classes.f90 +++ b/src/modules/fraggle_classes.f90 @@ -142,7 +142,7 @@ module subroutine fraggle_placeholder_accel(self, system, param, t, lbeg) implicit none class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current simulation time logical, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step end subroutine fraggle_placeholder_accel @@ -152,7 +152,7 @@ module subroutine fraggle_placeholder_kick(self, system, param, t, dt, lbeg) implicit none class(fraggle_fragments), intent(inout) :: self !! Fraggle fragment system object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system objec - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time real(DP), intent(in) :: dt !! Stepsize logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not. diff --git a/src/modules/helio_classes.f90 b/src/modules/helio_classes.f90 index 3a7de3814..a74b609e1 100644 --- a/src/modules/helio_classes.f90 +++ b/src/modules/helio_classes.f90 @@ -130,7 +130,7 @@ end subroutine helio_gr_p4_pl module pure subroutine helio_gr_p4_tp(self, param, dt) use swiftest_classes, only : swiftest_parameters implicit none - class(helio_tp), intent(inout) :: self !! Swiftest particle object + class(helio_tp), intent(inout) :: self !! Swiftest particle object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters real(DP), intent(in) :: dt !! Step size end subroutine helio_gr_p4_tp @@ -140,7 +140,7 @@ module subroutine helio_kick_getacch_pl(self, system, param, t, lbeg) implicit none class(helio_pl), intent(inout) :: self !! Helio massive body object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current simulation time logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step end subroutine helio_kick_getacch_pl @@ -150,7 +150,7 @@ module subroutine helio_kick_getacch_tp(self, system, param, t, lbeg) implicit none class(helio_tp), intent(inout) :: self !! Helio test particle object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step end subroutine helio_kick_getacch_tp @@ -160,7 +160,7 @@ module subroutine helio_kick_vb_pl(self, system, param, t, dt, lbeg) implicit none class(helio_pl), intent(inout) :: self !! Helio massive body object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time real(DP), intent(in) :: dt !! Stepsize logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not. @@ -171,7 +171,7 @@ module subroutine helio_kick_vb_tp(self, system, param, t, dt, lbeg) implicit none class(helio_tp), intent(inout) :: self !! Helio test particle object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time real(DP), intent(in) :: dt !! Stepsize logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not. diff --git a/src/modules/rmvs_classes.f90 b/src/modules/rmvs_classes.f90 index 680612de5..2fa6452f9 100644 --- a/src/modules/rmvs_classes.f90 +++ b/src/modules/rmvs_classes.f90 @@ -144,7 +144,7 @@ module subroutine rmvs_kick_getacch_tp(self, system, param, t, lbeg) implicit none class(rmvs_tp), intent(inout) :: self !! RMVS test particle data structure class(swiftest_nbody_system), intent(inout) :: system !! Swiftest central body particle data structuree - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step end subroutine rmvs_kick_getacch_tp diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index dc5eacc3c..89c5ef238 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -463,7 +463,7 @@ subroutine abstract_accel(self, system, param, t, lbeg) import swiftest_body, swiftest_nbody_system, swiftest_parameters, DP class(swiftest_body), intent(inout) :: self !! Swiftest body data structure class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current simulation time logical, intent(in) :: lbeg !! Optional argument that determines whether or not this is the beginning or end of the step end subroutine abstract_accel @@ -473,7 +473,7 @@ subroutine abstract_kick_body(self, system, param, t, dt, lbeg) implicit none class(swiftest_body), intent(inout) :: self !! Swiftest generic body object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system objec - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time real(DP), intent(in) :: dt !! Stepsize logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not. @@ -903,13 +903,13 @@ end subroutine io_write_hdr_system module subroutine kick_getacch_int_pl(self, param) implicit none class(swiftest_pl), intent(inout) :: self !! Swiftest massive body object - class(swiftest_parameters), intent(in) :: param !! Current swiftest run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current swiftest run configuration parameters end subroutine kick_getacch_int_pl module subroutine kick_getacch_int_tp(self, param, GMpl, xhp, npl) implicit none class(swiftest_tp), intent(inout) :: self !! Swiftest test particle object - class(swiftest_parameters), intent(in) :: param !! Current swiftest run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current swiftest run configuration parameters real(DP), dimension(:), intent(in) :: GMpl !! Massive body masses real(DP), dimension(:,:), intent(in) :: xhp !! Massive body position vectors integer(I4B), intent(in) :: npl !! Number of active massive bodies diff --git a/src/modules/symba_classes.f90 b/src/modules/symba_classes.f90 index 52c66d293..6bfef7bd9 100644 --- a/src/modules/symba_classes.f90 +++ b/src/modules/symba_classes.f90 @@ -355,7 +355,7 @@ end subroutine symba_io_write_discard module subroutine symba_kick_getacch_int_pl(self, param) implicit none class(symba_pl), intent(inout) :: self !! SyMBA massive body object - class(swiftest_parameters), intent(in) :: param !! Current swiftest run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current swiftest run configuration parameters end subroutine symba_kick_getacch_int_pl module subroutine symba_kick_getacch_pl(self, system, param, t, lbeg) @@ -363,7 +363,7 @@ module subroutine symba_kick_getacch_pl(self, system, param, t, lbeg) implicit none class(symba_pl), intent(inout) :: self !! SyMBA massive body particle data structure class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current simulation time logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step end subroutine symba_kick_getacch_pl @@ -373,14 +373,14 @@ module subroutine symba_kick_getacch_tp(self, system, param, t, lbeg) implicit none class(symba_tp), intent(inout) :: self !! SyMBA test particle data structure class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step end subroutine symba_kick_getacch_tp module subroutine symba_kick_encounter(self, system, dt, irec, sgn) implicit none - class(symba_encounter), intent(in) :: self !! SyMBA pl-tp encounter list object + class(symba_encounter), intent(in) :: self !! SyMBA pl-tp encounter list object class(symba_nbody_system), intent(inout) :: system !! SyMBA nbody system object real(DP), intent(in) :: dt !! step size integer(I4B), intent(in) :: irec !! Current recursion level diff --git a/src/modules/walltime_classes.f90 b/src/modules/walltime_classes.f90 index c27a5b06a..76600660d 100644 --- a/src/modules/walltime_classes.f90 +++ b/src/modules/walltime_classes.f90 @@ -3,6 +3,7 @@ module walltime_classes !! !! Classes and methods used to compute elasped wall time use swiftest_globals + use swiftest_classes, only : swiftest_parameters implicit none public @@ -31,36 +32,42 @@ module walltime_classes end type interaction_timer interface - module subroutine walltime_finish(self, nsubsteps, message) + module subroutine walltime_finish(self, nsubsteps, message, param) + use swiftest_classes, only : swiftest_parameters implicit none - class(walltimer), intent(inout) :: self !! Walltimer object - integer(I4B), intent(in) :: nsubsteps !! Number of substeps used to compute the time per step - character(len=*), intent(in) :: message !! Message to prepend to the wall time terminal output + class(walltimer), intent(inout) :: self !! Walltimer object + integer(I4B), intent(in) :: nsubsteps !! Number of substeps used to compute the time per step + character(len=*), intent(in) :: message !! Message to prepend to the wall time terminal output + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters end subroutine walltime_finish - module subroutine walltime_reset(self) + module subroutine walltime_reset(self, param) + use swiftest_classes, only : swiftest_parameters implicit none - class(walltimer), intent(inout) :: self !! Walltimer object + class(walltimer), intent(inout) :: self !! Walltimer object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters end subroutine walltime_reset - module subroutine walltime_start(self) + module subroutine walltime_start(self, param) + use swiftest_classes, only : swiftest_parameters implicit none - class(walltimer), intent(inout) :: self !! Walltimer object + class(walltimer), intent(inout) :: self !! Walltimer object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters end subroutine walltime_start end interface contains - module subroutine walltime_finish(self, nsubsteps, message) + module subroutine walltime_finish(self, nsubsteps, message, param) !! author: David A. Minton !! !! Ends the timer, setting step_finish to the current ticker value and printing the elapsed time information to the terminal - use swiftest_globals implicit none ! Arguments - class(walltimer), intent(inout) :: self !! Walltimer object - integer(I4B), intent(in) :: nsubsteps !! Number of substeps used to compute the time per step - character(len=*), intent(in) :: message !! Message to prepend to the wall time terminal output + class(walltimer), intent(inout) :: self !! Walltimer object + integer(I4B), intent(in) :: nsubsteps !! Number of substeps used to compute the time per step + character(len=*), intent(in) :: message !! Message to prepend to the wall time terminal output + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters ! Internals character(len=*), parameter :: walltimefmt = '" Wall time (s): ", es12.5, "; Wall time/step in this interval (s): ", es12.5' character(len=STRMAX) :: fmt @@ -85,36 +92,37 @@ module subroutine walltime_finish(self, nsubsteps, message) fmt = '("' // adjustl(message) // '",' // walltimefmt // ')' write(*,trim(adjustl(fmt))) wall_main, wall_per_substep - call self%start() + call self%start(param) return end subroutine walltime_finish - module subroutine walltime_reset(self) + + module subroutine walltime_reset(self, param) !! author: David A. Minton !! !! Resets the clock ticker, settting main_start to the current ticker value - use swiftest_globals implicit none ! Arguments - class(walltimer), intent(inout) :: self + class(walltimer), intent(inout) :: self !! Walltimer object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters call system_clock(self%count_start_main, self%count_rate, self%count_max) self%lmain_is_started = .true. - call self%start() + call self%start(param) return end subroutine walltime_reset - module subroutine walltime_start(self) + module subroutine walltime_start(self, param) !! author: David A. Minton !! !! Starts the timer, setting step_start to the current ticker value - use swiftest_globals implicit none ! Arguments - class(walltimer), intent(inout) :: self + class(walltimer), intent(inout) :: self !! Walltimer object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters if (.not.self%lmain_is_started) then write(*,*) "Wall timer error: Cannot start the step time until reset is called at least once!" diff --git a/src/modules/whm_classes.f90 b/src/modules/whm_classes.f90 index 0bae1f654..3cad184dd 100644 --- a/src/modules/whm_classes.f90 +++ b/src/modules/whm_classes.f90 @@ -114,7 +114,7 @@ module subroutine whm_kick_getacch_pl(self, system, param, t, lbeg) implicit none class(whm_pl), intent(inout) :: self !! WHM massive body particle data structure class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current simulation time logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step end subroutine whm_kick_getacch_pl @@ -125,7 +125,7 @@ module subroutine whm_kick_getacch_tp(self, system, param, t, lbeg) implicit none class(whm_tp), intent(inout) :: self !! WHM test particle data structure class(swiftest_nbody_system), intent(inout) :: system !! WHM nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step end subroutine whm_kick_getacch_tp @@ -135,7 +135,7 @@ module subroutine whm_kick_vh_pl(self, system, param, t, dt, lbeg) implicit none class(whm_pl), intent(inout) :: self !! WHM massive body object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time real(DP), intent(in) :: dt !! Stepsize logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not. @@ -146,7 +146,7 @@ module subroutine whm_kick_vh_tp(self, system, param, t, dt, lbeg) implicit none class(whm_tp), intent(inout) :: self !! WHM test particle object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time real(DP), intent(in) :: dt !! Stepsize logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not. diff --git a/src/rmvs/rmvs_kick.f90 b/src/rmvs/rmvs_kick.f90 index 6a8c0786e..57c04d44e 100644 --- a/src/rmvs/rmvs_kick.f90 +++ b/src/rmvs/rmvs_kick.f90 @@ -13,7 +13,7 @@ module subroutine rmvs_kick_getacch_tp(self, system, param, t, lbeg) ! Arguments class(rmvs_tp), intent(inout) :: self !! RMVS test particle data structure class(swiftest_nbody_system), intent(inout) :: system !! Swiftest central body particle data structuree - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step ! Internals diff --git a/src/symba/symba_kick.f90 b/src/symba/symba_kick.f90 index fd0354612..e9b7d0405 100644 --- a/src/symba/symba_kick.f90 +++ b/src/symba/symba_kick.f90 @@ -12,7 +12,7 @@ module subroutine symba_kick_getacch_int_pl(self, param) implicit none ! Arguments class(symba_pl), intent(inout) :: self !! SyMBA massive body object - class(swiftest_parameters), intent(in) :: param !! Current swiftest run configuration parameter + class(swiftest_parameters), intent(inout) :: param !! Current swiftest run configuration parameter if (param%lflatten_interactions) then call kick_getacch_int_all_flat_pl(self%nbody, self%nplplm, self%k_plpl, self%xh, self%Gmass, self%radius, self%ah) @@ -35,7 +35,7 @@ module subroutine symba_kick_getacch_pl(self, system, param, t, lbeg) ! Arguments class(symba_pl), intent(inout) :: self !! SyMBA massive body particle data structure class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current simulation time logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step ! Internals @@ -68,6 +68,7 @@ module subroutine symba_kick_getacch_pl(self, system, param, t, lbeg) return end subroutine symba_kick_getacch_pl + module subroutine symba_kick_getacch_tp(self, system, param, t, lbeg) !! author: David A. Minton !! @@ -79,7 +80,7 @@ module subroutine symba_kick_getacch_tp(self, system, param, t, lbeg) ! Arguments class(symba_tp), intent(inout) :: self !! SyMBA test particle data structure class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step ! Internals diff --git a/src/whm/whm_kick.f90 b/src/whm/whm_kick.f90 index c36c1ce23..7b2b90d00 100644 --- a/src/whm/whm_kick.f90 +++ b/src/whm/whm_kick.f90 @@ -13,7 +13,7 @@ module subroutine whm_kick_getacch_pl(self, system, param, t, lbeg) ! Arguments class(whm_pl), intent(inout) :: self !! WHM massive body particle data structure class(swiftest_nbody_system), intent(inout) :: system !! Swiftest central body particle data structure - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step ! Internals @@ -68,7 +68,7 @@ module subroutine whm_kick_getacch_tp(self, system, param, t, lbeg) ! Arguments class(whm_tp), intent(inout) :: self !! WHM test particle data structure class(swiftest_nbody_system), intent(inout) :: system !! Swiftest central body particle data structure - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time logical, intent(in) :: lbeg !! Logical flag that determines whether or not this is the beginning or end of the step ! Internals @@ -201,7 +201,7 @@ module subroutine whm_kick_vh_pl(self, system, param, t, dt, lbeg) ! Arguments class(whm_pl), intent(inout) :: self !! WHM massive body object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time real(DP), intent(in) :: dt !! Stepsize logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not. @@ -243,7 +243,7 @@ module subroutine whm_kick_vh_tp(self, system, param, t, dt, lbeg) ! Arguments class(whm_tp), intent(inout) :: self !! WHM massive body object class(swiftest_nbody_system), intent(inout) :: system !! Swiftest nbody system object - class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters real(DP), intent(in) :: t !! Current time real(DP), intent(in) :: dt !! Stepsize logical, intent(in) :: lbeg !! Logical flag indicating whether this is the beginning of the half step or not.