Skip to content
This repository was archived by the owner on Aug 28, 2024. It is now read-only.

Commit

Permalink
Tidying up the formatting a bit
Browse files Browse the repository at this point in the history
  • Loading branch information
daminton committed Jul 23, 2021
1 parent 4836fcb commit 7566551
Showing 1 changed file with 41 additions and 42 deletions.
83 changes: 41 additions & 42 deletions src/modules/symba_classes.f90
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,18 @@ module symba_classes
use rmvs_classes, only : rmvs_chk_ind
implicit none

!integer(I4B), parameter :: NENMAX = 32767
integer(I4B), private, parameter :: NTENC = 3
real(DP), private, parameter :: RHSCALE = 6.5_DP
real(DP), private, parameter :: RSHELL = 0.48075_DP
character(*), parameter :: PARTICLE_OUTFILE = 'particle.dat'
integer(I4B), parameter :: PARTICLEUNIT = 44 !! File unit number for the binary particle info output file
integer(I4B), private, parameter :: NENMAX = 32767
integer(I4B), private, parameter :: NTENC = 3
real(DP), private, parameter :: RHSCALE = 6.5_DP
real(DP), private, parameter :: RSHELL = 0.48075_DP
character(*), parameter :: PARTICLE_OUTFILE = 'particle.dat'
integer(I4B), parameter :: PARTICLEUNIT = 44 !! File unit number for the binary particle info output file

type, public, extends(swiftest_parameters) :: symba_parameters
character(STRMAX) :: particle_file = PARTICLE_OUTFILE !! Name of output particle information file
real(DP) :: MTINY = -1.0_DP !! Smallest mass that is fully gravitating
integer(I4B), dimension(:), allocatable :: seed !! Random seeds
logical :: lfragmentation = .false. !! Do fragmentation modeling instead of simple merger.
character(STRMAX) :: particle_file = PARTICLE_OUTFILE !! Name of output particle information file
real(DP) :: MTINY = -1.0_DP !! Smallest mass that is fully gravitating
integer(I4B), dimension(:), allocatable :: seed !! Random seeds
logical :: lfragmentation = .false. !! Do fragmentation modeling instead of simple merger.
contains
private
procedure, public :: reader => symba_io_param_reader
Expand All @@ -32,10 +32,10 @@ module symba_classes
!*******************************************************************************************************************************
!> SyMBA central body particle class
type, public, extends(helio_cb) :: symba_cb
real(DP) :: M0 = 0.0_DP !! Initial mass of the central body
real(DP) :: dM = 0.0_DP !! Change in mass of the central body
real(DP) :: R0 = 0.0_DP !! Initial radius of the central body
real(DP) :: dR = 0.0_DP !! Change in the radius of the central body
real(DP) :: M0 = 0.0_DP !! Initial mass of the central body
real(DP) :: dM = 0.0_DP !! Change in mass of the central body
real(DP) :: R0 = 0.0_DP !! Initial radius of the central body
real(DP) :: dR = 0.0_DP !! Change in the radius of the central body
contains
private
end type symba_cb
Expand Down Expand Up @@ -73,20 +73,20 @@ module symba_classes
!*******************************************************************************************************************************
!> SyMBA massive body class
type, public, extends(helio_pl) :: symba_pl
logical, dimension(:), allocatable :: lcollision !! flag indicating whether body has merged with another this time step
logical, dimension(:), allocatable :: lencounter !! flag indicating whether body is part of an encounter this time step
logical, dimension(:), allocatable :: lmtiny !! flag indicating whether this body is below the MTINY cutoff value
integer(I4B) :: nplm !! number of bodies above the MTINY limit
integer(I8B) :: nplplm !! Number of body (all massive)-body (only those above MTINY) comparisons in the flattened upper triangular matrix
integer(I4B), dimension(:), allocatable :: nplenc !! number of encounters with other planets this time step
integer(I4B), dimension(:), allocatable :: ntpenc !! number of encounters with test particles this time step
integer(I4B), dimension(:), allocatable :: levelg !! level at which this body should be moved
integer(I4B), dimension(:), allocatable :: levelm !! deepest encounter level achieved this time step
integer(I4B), dimension(:), allocatable :: isperi !! perihelion passage flag
real(DP), dimension(:), allocatable :: peri !! perihelion distance
real(DP), dimension(:), allocatable :: atp !! semimajor axis following perihelion passage
type(symba_kinship), dimension(:), allocatable :: kin !! Array of merger relationship structures that can account for multiple pairwise mergers in a single step
type(symba_particle_info), dimension(:), allocatable :: info
logical, dimension(:), allocatable :: lcollision !! flag indicating whether body has merged with another this time step
logical, dimension(:), allocatable :: lencounter !! flag indicating whether body is part of an encounter this time step
logical, dimension(:), allocatable :: lmtiny !! flag indicating whether this body is below the MTINY cutoff value
integer(I4B) :: nplm !! number of bodies above the MTINY limit
integer(I8B) :: nplplm !! Number of body (all massive)-body (only those above MTINY) comparisons in the flattened upper triangular matrix
integer(I4B), dimension(:), allocatable :: nplenc !! number of encounters with other planets this time step
integer(I4B), dimension(:), allocatable :: ntpenc !! number of encounters with test particles this time step
integer(I4B), dimension(:), allocatable :: levelg !! level at which this body should be moved
integer(I4B), dimension(:), allocatable :: levelm !! deepest encounter level achieved this time step
integer(I4B), dimension(:), allocatable :: isperi !! perihelion passage flag
real(DP), dimension(:), allocatable :: peri !! perihelion distance
real(DP), dimension(:), allocatable :: atp !! semimajor axis following perihelion passage
type(symba_kinship), dimension(:), allocatable :: kin !! Array of merger relationship structures that can account for multiple pairwise mergers in a single step
type(symba_particle_info), dimension(:), allocatable :: info
contains
private
procedure, public :: discard => symba_discard_pl !! Process massive body discards
Expand Down Expand Up @@ -151,8 +151,7 @@ module symba_classes
procedure, public :: initialize => symba_setup_system !! Performs SyMBA-specific initilization steps
procedure, public :: step => symba_step_system !! Advance the SyMBA nbody system forward in time by one step
procedure, public :: interp => symba_step_interp_system !! Perform an interpolation step on the SymBA nbody system
procedure, public :: recursive_step => symba_step_recur_system !! Step interacting planets and active test particles ahead in democratic heliocentric coordinates at the current
!! recursion level, if applicable, and descend to the next deeper level if necessary
procedure, public :: recursive_step => symba_step_recur_system !! Step interacting planets and active test particles ahead in democratic heliocentric coordinates at the current recursion level, if applicable, and descend to the next deeper level if necessary
procedure, public :: reset => symba_step_reset_system !! Resets pl, tp,and encounter structures at the start of a new step
end type symba_nbody_system

Expand Down Expand Up @@ -241,8 +240,8 @@ module subroutine symba_io_write_frame_info(self, iu, param)
use swiftest_classes, only : swiftest_parameters
implicit none
class(symba_particle_info), intent(in) :: self !! SyMBA particle info object
integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to
class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters
integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to
class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters
end subroutine symba_io_write_frame_info

module subroutine symba_setup_pl(self,n)
Expand All @@ -266,8 +265,8 @@ end subroutine symba_setup_plplenc
module subroutine symba_setup_system(self, param)
use swiftest_classes, only : swiftest_parameters
implicit none
class(symba_nbody_system), intent(inout) :: self !! SyMBA system object
class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters
class(symba_nbody_system), intent(inout) :: self !! SyMBA system object
class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters
end subroutine symba_setup_system

module subroutine symba_setup_tp(self,n)
Expand All @@ -279,19 +278,19 @@ end subroutine symba_setup_tp
module subroutine symba_step_system(self, param, t, dt)
use swiftest_classes, only : swiftest_parameters
implicit none
class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object
class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters
real(DP), intent(in) :: t !! Simulation time
real(DP), intent(in) :: dt !! Current stepsize
class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object
class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters
real(DP), intent(in) :: t !! Simulation time
real(DP), intent(in) :: dt !! Current stepsize
end subroutine symba_step_system

module subroutine symba_step_interp_system(self, param, t, dt)
use swiftest_classes, only : swiftest_parameters
implicit none
class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object
class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters
real(DP), intent(in) :: t !! Simulation time
real(DP), intent(in) :: dt !! Current stepsize
class(symba_nbody_system), intent(inout) :: self !! SyMBA nbody system object
class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters
real(DP), intent(in) :: t !! Simulation time
real(DP), intent(in) :: dt !! Current stepsize
end subroutine symba_step_interp_system

module recursive subroutine symba_step_recur_system(self, param, t, dt, ireci)
Expand Down

0 comments on commit 7566551

Please sign in to comment.