Definition of classes and methods specific to the Ringmoons integrator
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=I4B), | public, | parameter | :: | LOOPMAX | = | 2147483646 | |
| integer(kind=I4B), | public, | parameter | :: | N_DISK_FACTOR | = | 10000 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_netcdf_parameters), | intent(inout) | :: | self |
Parameters used to identify a particular NetCDF dataset |
||
| class(swiftest_parameters), | intent(inout) | :: | param |
Current run configuration parameters |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_netcdf_parameters), | intent(inout) | :: | self |
Parameters used to identify a particular NetCDF dataset |
||
| class(swiftest_parameters), | intent(in) | :: | param |
Current run configuration parameters |
||
| logical, | intent(in), | optional | :: | readonly |
Logical flag indicating that this should be open read only |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_ring), | intent(inout) | :: | self | |||
| real(kind=DP), | intent(in) | :: | t | |||
| class(swiftest_parameters), | intent(in) | :: | param |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_seed), | intent(inout) | :: | self | |||
| real(kind=DP), | intent(in) | :: | t | |||
| class(swiftest_netcdf_parameters), | intent(inout) | :: | nc | |||
| class(swiftest_parameters), | intent(inout) | :: | param |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_ring), | intent(inout) | :: | self | |||
| class(swiftest_parameters), | intent(in) | :: | param |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_seed), | intent(inout) | :: | self | |||
| class(swiftest_netcdf_parameters), | intent(inout) | :: | nc | |||
| class(swiftest_parameters), | intent(in) | :: | param |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_seed), | intent(inout) | :: | self | |||
| class(ringmoons_cb), | intent(inout) | :: | cb | |||
| class(ringmoons_ring), | intent(inout) | :: | ring | |||
| class(swiftest_parameters), | intent(in) | :: | param |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_ring), | intent(inout) | :: | self | |||
| class(ringmoons_cb), | intent(in) | :: | cb | |||
| real(kind=DP), | intent(in) | :: | dt | |||
| class(swiftest_parameters), | intent(in) | :: | param | |||
| logical, | intent(out) | :: | stepfail |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_seed), | intent(inout) | :: | self | |||
| class(ringmoons_cb), | intent(inout) | :: | cb | |||
| class(ringmoons_ring), | intent(inout) | :: | ring | |||
| real(kind=DP), | intent(in) | :: | dt | |||
| class(swiftest_parameters), | intent(in) | :: | param | |||
| logical, | intent(out) | :: | stepfail |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_nbody_system), | intent(inout) | :: | self |
Ringmoons nbody system object |
||
| class(swiftest_parameters), | intent(inout) | :: | param |
Current run configuration parameters |
||
| real(kind=DP), | intent(in) | :: | t |
Simulation time |
||
| real(kind=DP), | intent(in) | :: | dt |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_ring), | intent(inout) | :: | self | |||
| class(swiftest_cb), | intent(in) | :: | cb | |||
| class(ringmoons_seed), | intent(inout) | :: | seed | |||
| class(swiftest_parameters), | intent(in) | :: | param |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_seed), | intent(inout) | :: | self | |||
| class(swiftest_cb), | intent(in) | :: | cb | |||
| class(swiftest_parameters), | intent(in) | :: | param |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_ring), | intent(inout) | :: | self | |||
| class(swiftest_cb), | intent(in) | :: | cb | |||
| class(swiftest_parameters), | intent(in) | :: | param | |||
| real(kind=DP), | intent(out), | dimension(0:self%nbins+1) | :: | Torque |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=DP), | intent(in) | :: | yin |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_cb), | intent(inout) | :: | self |
Ringmoons central body object |
||
| class(ringmoons_ring), | intent(inout) | :: | ring |
Ringmoons ring object |
||
| class(ringmoons_seed), | intent(inout) | :: | seed |
Ringmoons seed obje3ct |
||
| class(swiftest_parameters), | intent(in) | :: | param |
Current run configuration parameters |
||
| real(kind=DP), | intent(in) | :: | dt |
Current time step size |
Deallocates all allocatabale arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_ring), | intent(inout) | :: | self |
Ringmoons ring object |
Deallocates all allocatabale arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_seed), | intent(inout) | :: | self |
Ringmoons seed object |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_nbody_system), | intent(inout) | :: | self |
Ringmoons nbody system object to deallocate |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_ring), | intent(in) | :: | self |
Ringmoons ring object |
||
| real(kind=DP), | intent(in) | :: | r |
Radial distance at which to search for the bin |
The bin containing radial distance r
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_ring), | intent(in) | :: | self |
Ringmoons ring object |
||
| real(kind=DP), | intent(in) | :: | dtin |
Input time step size, which serves as a maximum for dtout |
Output time step size, where dtout <= dtin
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_ring), | intent(inout) | :: | self | |||
| class(ringmoons_seed), | intent(inout) | :: | seed | |||
| class(ringmoons_cb), | intent(in) | :: | cb | |||
| class(swiftest_parameters), | intent(in) | :: | param |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_nbody_system), | intent(inout) | :: | self |
SyMBA nbody_system object |
||
| class(swiftest_storage), | intent(inout), | allocatable | :: | system_history |
Stores the system history between output dumps |
|
| class(swiftest_parameters), | intent(inout) | :: | param |
Current run configuration parameters |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_pl), | intent(inout) | :: | self |
Ringmoons massive body object |
||
| integer(kind=I4B), | intent(in) | :: | n |
Number of bins to allocate space for |
||
| class(swiftest_parameters), | intent(in) | :: | param |
Current run configuration parameters |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_ring), | intent(inout) | :: | self |
Ringmoons ring object |
||
| integer(kind=I4B), | intent(in) | :: | n |
Number of bins to allocate space for |
||
| class(swiftest_parameters), | intent(in) | :: | param |
Current run configuration parameters |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_seed), | intent(inout) | :: | self |
Ringmoons seed object |
||
| integer(kind=I4B), | intent(in) | :: | n |
Number of bins to allocate space for |
||
| class(swiftest_parameters), | intent(in) | :: | param |
Current run configuration parameters |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_seed), | intent(inout) | :: | self | |||
| class(ringmoons_cb), | intent(in) | :: | cb | |||
| class(ringmoons_ring), | intent(inout) | :: | ring | |||
| integer(kind=I4B), | intent(in) | :: | ring_bin | |||
| class(swiftest_parameters), | intent(in) | :: | param |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_ring), | intent(inout) | :: | self | |||
| class(ringmoons_cb), | intent(in) | :: | cb | |||
| class(swiftest_parameters), | intent(in) | :: | param |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ringmoons_ring), | intent(inout) | :: | self | |||
| class(ringmoons_cb), | intent(in) | :: | cb | |||
| class(swiftest_parameters), | intent(in) | :: | param |
Ringmoons central body particle class
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=DP), | public | :: | GM0 | = | 0.0_DP |
Initial G*mass of the central body |
|
| real(kind=DP), | public | :: | Gmass | = | 0.0_DP |
Central mass gravitational term G * mass (units GU * MU) |
|
| real(kind=DP), | public, | dimension(NDIM) | :: | Ip | = | 0.0_DP |
Unitless principal moments of inertia (I1, I2, I3) / (MR**2). Principal axis rotation assumed. |
| real(kind=DP), | public, | dimension(NDIM) | :: | L0 | = | 0.0_DP |
Initial angular momentum of the central body |
| real(kind=DP), | public | :: | Q | = | 0.0_DP |
Tidal quality factor |
|
| real(kind=DP), | public | :: | R0 | = | 0.0_DP |
Initial radius of the central body |
|
| real(kind=DP), | public, | dimension(NDIM) | :: | agr | = | 0.0_DP |
Acceleration due to post-Newtonian correction |
| real(kind=DP), | public, | dimension(NDIM) | :: | aobl | = | 0.0_DP |
Barycentric acceleration due to central body oblatenes |
| real(kind=DP), | public, | dimension(NDIM) | :: | aoblbeg | = | 0.0_DP |
Barycentric acceleration due to central body oblatenes at beginning of step |
| real(kind=DP), | public, | dimension(NDIM) | :: | aoblend | = | 0.0_DP |
Barycentric acceleration due to central body oblatenes at end of step |
| real(kind=DP), | public, | dimension(NDIM) | :: | atide | = | 0.0_DP |
Barycentric acceleration due to central body oblatenes |
| real(kind=DP), | public, | dimension(NDIM) | :: | atidebeg | = | 0.0_DP |
Barycentric acceleration due to central body oblatenes at beginning of step |
| real(kind=DP), | public, | dimension(NDIM) | :: | atideend | = | 0.0_DP |
Barycentric acceleration due to central body oblatenes at end of step |
| real(kind=DP), | public, | dimension(:,:,:), allocatable | :: | c_lm |
Spherical Harmonics coefficients for the central body |
||
| real(kind=DP), | public | :: | dGM | = | 0.0_DP |
Change in G*mass of the central body |
|
| real(kind=DP), | public, | dimension(NDIM) | :: | dL | = | 0.0_DP |
Change in angular momentum of the central body |
| real(kind=DP), | public | :: | dR | = | 0.0_DP |
Change in the radius of the central body |
|
| real(kind=DP), | public | :: | density | = | 1.0_DP |
Central body mass density - calculated internally (units MU / DU**3) |
|
| integer(kind=I4B), | public | :: | id | = | 0 |
External identifier (unique) |
|
| class(swiftest_particle_info), | public, | allocatable | :: | info |
An abstract class for a generic central body in a Swiftest simulation Particle metadata information |
||
| real(kind=DP), | public | :: | j2rp2 | = | 0.0_DP |
J2*R^2 term for central body |
|
| real(kind=DP), | public | :: | j4rp4 | = | 0.0_DP |
J4*R^4 term for central body |
|
| real(kind=DP), | public | :: | k2 | = | 0.0_DP |
Tidal Love number |
|
| real(kind=DP), | public | :: | mass | = | 0.0_DP |
Central body mass (units MU) |
|
| real(kind=DP), | public, | dimension(NDIM) | :: | ptbeg |
negative barycentric velocity of the central body at the beginning of time step |
||
| real(kind=DP), | public, | dimension(NDIM) | :: | ptend |
negative barycentric velocity of the central body at the end of time step |
||
| real(kind=DP), | public | :: | radius | = | 0.0_DP |
Central body radius (units DU) |
|
| real(kind=DP), | public, | dimension(NDIM) | :: | rb | = | 0.0_DP |
Barycentric position (units DU) |
| real(kind=DP), | public, | dimension(NDIM) | :: | rot | = | 0.0_DP |
Body rotation vector in inertial coordinate frame (units rad / TU) |
| real(kind=DP), | public | :: | rotphase | = | 0.0_DP |
Body rotation phase about the rotation pole (0 to 1) |
|
| real(kind=DP), | public | :: | tlag | = | 0.0_DP |
Tidal phase lag angle |
|
| real(kind=DP), | public, | dimension(NDIM) | :: | vb | = | 0.0_DP |
Barycentric velocity (units DU / TU) |
| procedure, public :: accrete => ringmoons_util_accrete_cb | |
| procedure, public :: dealloc => swiftest_util_dealloc_cb | Deallocates all allocatables and resets all values to defaults |
| procedure, public :: read_in => swiftest_io_read_in_cb | Read in central body initial conditions from an ASCII file |
| procedure, public :: rotphase_update => swiftest_drift_cb_rotphase_update | updates the central body rotation phase |
| procedure, public :: write_frame => swiftest_io_netcdf_write_frame_cb | I/O routine for writing out a single frame of time-series data for all bodies in the system in NetCDF format |
| procedure, public :: write_info => swiftest_io_netcdf_write_info_cb | Dump contents of particle information metadata to file |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=DP), | public | :: | E_collisions | = | 0.0_DP |
Energy lost from nbody_system due to collisions |
|
| real(kind=DP), | public | :: | E_orbit_error | = | 0.0_DP | ||
| real(kind=DP), | public | :: | E_orbit_orig | = | 0.0_DP |
Initial orbital energy |
|
| real(kind=DP), | public | :: | E_untracked | = | 0.0_DP |
Energy gained from nbody_system due to escaped bodies |
|
| real(kind=DP), | public | :: | E_untracked_error | = | 0.0_DP | ||
| real(kind=DP), | public | :: | Ecoll_error | = | 0.0_DP | ||
| real(kind=DP), | public | :: | GMescape | = | 0.0_DP |
Mass of bodies that escaped the nbody_system (used for bookeeping) |
|
| real(kind=DP), | public | :: | GMtot | = | 0.0_DP |
Total nbody_system mass - used for barycentric coordinate conversion |
|
| real(kind=DP), | public | :: | GMtot_orig | = | 0.0_DP |
Initial nbody_system mass |
|
| real(kind=DP), | public, | dimension(NDIM) | :: | L_escape | = | 0.0_DP |
Angular momentum of bodies that escaped the nbody_system (used for bookeeping) |
| real(kind=DP), | public | :: | L_escape_error | = | 0.0_DP | ||
| real(kind=DP), | public, | dimension(NDIM) | :: | L_orbit | = | 0.0_DP |
nbody_system orbital angular momentum vector |
| real(kind=DP), | public | :: | L_orbit_error | = | 0.0_DP | ||
| real(kind=DP), | public, | dimension(NDIM) | :: | L_orbit_orig | = | 0.0_DP |
Initial orbital angular momentum |
| real(kind=DP), | public, | dimension(NDIM) | :: | L_rot | = | 0.0_DP |
nbody_system rotational angular momentum vector |
| real(kind=DP), | public | :: | L_rot_error | = | 0.0_DP | ||
| real(kind=DP), | public, | dimension(NDIM) | :: | L_rot_orig | = | 0.0_DP |
Initial rotational angular momentum vector |
| real(kind=DP), | public, | dimension(NDIM) | :: | L_total | = | 0.0_DP |
nbody_system angular momentum vector |
| real(kind=DP), | public | :: | L_total_error | = | 0.0_DP | ||
| real(kind=DP), | public, | dimension(NDIM) | :: | L_total_orig | = | 0.0_DP |
Initial total angular momentum vector |
| real(kind=DP), | public | :: | Mescape_error | = | 0.0_DP | ||
| real(kind=DP), | public | :: | Mtot_error | = | 0.0_DP | ||
| real(kind=DP), | public | :: | be | = | 0.0_DP |
nbody_system binding energy of all bodies |
|
| real(kind=DP), | public | :: | be_cb | = | 0.0_DP |
Binding energy of central body (usually orders of magnitude larger than the rest of the system, and therefore tracked seperately) |
|
| real(kind=DP), | public | :: | be_error | = | 0.0_DP | ||
| real(kind=DP), | public | :: | be_orig | = | 0.0_DP |
Initial gravitational binding energy |
|
| class(swiftest_cb), | public, | allocatable | :: | cb |
Central body data structure |
||
| class(collision_basic), | public, | allocatable | :: | collider |
Collision system object |
||
| class(collision_storage), | public, | allocatable | :: | collision_history |
Stores encounter history for later retrieval and saving to file |
||
| class(encounter_storage), | public, | allocatable | :: | encounter_history |
Stores encounter history for later retrieval and saving to file |
||
| integer(kind=I4B), | public | :: | irec | = | -1 |
nbody_system recursion level |
|
| real(kind=DP), | public | :: | ke_orbit | = | 0.0_DP |
nbody_system orbital kinetic energy |
|
| real(kind=DP), | public | :: | ke_orbit_error | = | 0.0_DP | ||
| real(kind=DP), | public | :: | ke_orbit_orig | = | 0.0_DP |
Initial orbital kinetic energy |
|
| real(kind=DP), | public | :: | ke_rot | = | 0.0_DP |
nbody_system rotational kinetic energy |
|
| real(kind=DP), | public | :: | ke_rot_error | = | 0.0_DP | ||
| real(kind=DP), | public | :: | ke_rot_orig | = | 0.0_DP |
Initial rotational kinetic energy |
|
| logical, | public | :: | lbeg |
True if this is the beginning of a step. This is used so that test particle steps can be calculated separately from massive bodies. Massive body variables are saved at half steps, and passed to the test particles |
|||
| logical, | public | :: | lfirst_io | = | .true. |
Flag to indicate that this is the first time to write to a file |
|
| logical, | public | :: | lfirst_peri | = | .true. |
Flag to indicate that this is the first pericenter passage |
|
| integer(kind=I4B), | public | :: | maxid | = | 0 |
The current maximum particle id number |
|
| real(kind=DP), | public | :: | oblpot | = | 0.0_DP |
nbody_system potential energy due to oblateness of the central body |
|
| real(kind=DP), | public | :: | pe | = | 0.0_DP |
nbody_system potential energy |
|
| real(kind=DP), | public | :: | pe_error | = | 0.0_DP | ||
| real(kind=DP), | public | :: | pe_orig | = | 0.0_DP |
Initial potential energy |
|
| class(swiftest_pl), | public, | allocatable | :: | pl |
Massive body data structure |
||
| class(swiftest_pl), | public, | allocatable | :: | pl_adds |
List of added bodies in mergers or collisions |
||
| class(swiftest_pl), | public, | allocatable | :: | pl_discards |
Discarded massive body particle data structure |
||
| class(collision_list_plpl), | public, | allocatable | :: | plpl_collision |
List of massive body-massive body collisions in a single step |
||
| class(encounter_list), | public, | allocatable | :: | plpl_encounter |
List of massive body-massive body encounters in a single step |
||
| class(collision_list_pltp), | public, | allocatable | :: | pltp_collision |
List of massive body-test particle collisions in a single step |
||
| class(encounter_list), | public, | allocatable | :: | pltp_encounter |
List of massive body-test particle encounters in a single step |
||
| class(ringmoons_ring), | public, | allocatable | :: | ring |
Ringmoons ring object |
||
| class(ringmoons_seed), | public, | allocatable | :: | seed |
Ringmoons seed object |
||
| real(kind=DP), | public | :: | t | = | -1.0_DP |
Integration current time |
|
| real(kind=DP), | public | :: | te | = | 0.0_DP |
nbody_system total energy |
|
| real(kind=DP), | public | :: | te_error | = | 0.0_DP | ||
| real(kind=DP), | public | :: | te_orig | = | 0.0_DP |
Initial total energy (sum of all sources of energy tracked) |
|
| class(swiftest_tp), | public, | allocatable | :: | tp |
Test particle data structure |
||
| class(swiftest_tp), | public, | allocatable | :: | tp_adds |
List of added bodies in mergers or collisions |
||
| class(swiftest_tp), | public, | allocatable | :: | tp_discards |
Discarded test particle data structure |
| procedure, public :: coarray_balance => swiftest_coarray_balance_system | Checks whether or not the test particle coarrays need to be rebalanced. |
| procedure, public :: coarray_collect => swiftest_coarray_collect_system | Collects all the test particles from other images into the image #1 test particle system |
| procedure, public :: coarray_distribute => swiftest_coarray_distribute_system | Distributes test particles from image #1 out to all images. |
| procedure, public :: compact_output => swiftest_io_compact_output | Prints out out terminal output when display_style is set to COMPACT |
| procedure, public :: conservation_report => swiftest_io_conservation_report | Compute energy and momentum and print out the change with time |
| procedure, public :: dealloc => ringmoons_util_dealloc_system | Deallocates all allocatables |
| procedure, public :: discard => swiftest_discard_system | Perform a discard step on the nbody_system |
| procedure, public :: display_run_information => swiftest_io_display_run_information | Displays helpful information about the run |
| procedure, public :: dump => swiftest_io_dump_system | Dump the state of the nbody_system to a file |
| procedure, public :: get_energy_and_momentum => swiftest_util_get_energy_and_momentum_system | Calculates the total nbody_system energy and momentum |
| procedure, public :: get_idvals => swiftest_util_get_idvalues_system | Returns an array of all id values in use in the nbody_system |
| procedure, public :: get_t0_values => swiftest_io_netcdf_get_t0_values_system | Validates the dump file to check whether the dump file initial conditions duplicate the last frame of the netcdf output. |
| procedure, public :: init_particle_info => swiftest_util_setup_initialize_particle_info_system | Initialize the nbody_system from input files |
| procedure, public :: initialize => ringmoons_util_setup_initialize_system | Performs ringmoons-specific initilization steps |
| procedure, public :: initialize_output_file => swiftest_io_initialize_output_file_system | Write a frame of input data from file |
| procedure, public :: interp => symba_step_interp_system | Perform an interpolation step on the SymBA nbody system |
| procedure, public :: obl_pot => swiftest_obl_pot_system | Compute the contribution to the total gravitational potential due solely to the oblateness of the central body |
| procedure, public :: read_frame => swiftest_io_netcdf_read_frame_system | Read in a frame of input data from file |
| procedure, public :: read_hdr => swiftest_io_netcdf_read_hdr_system | Read a header for an output frame in NetCDF format |
| procedure, public :: read_in => swiftest_io_read_in_system | Reads the initial conditions for an nbody system |
| procedure, public :: read_particle_info => swiftest_io_netcdf_read_particle_info_system | Read in particle metadata from file |
| 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 :: rescale => swiftest_util_rescale_system | Rescales the nbody_system into a new set of units |
| procedure, public :: reset => symba_step_reset_system | Resets pl, tp,and encounter structures at the start of a new step |
| procedure, public :: set_msys => swiftest_util_set_msys | Sets the value of msys from the masses of nbody_system bodies. |
| procedure, public :: set_recur_levels => symba_step_set_recur_levels_system | Sets recursion levels of bodies and encounter lists to the current nbody_system level |
| procedure, public :: step => ringmoons_step_system | Advance the ringmoons nbody system forward in time by one step |
| procedure, public :: validate_ids => swiftest_util_valid_id_system | Validate the numerical ids passed to the nbody_system and save the maximum value |
| procedure, public :: write_frame => swiftest_io_netcdf_write_frame_system | Write a frame of input data from file |
| procedure, public :: write_hdr => swiftest_io_netcdf_write_hdr_system | Write a header for an output frame in NetCDF format |
NetCDF dimension and variable names for the ringmoons objects
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=I4B), | public | :: | BE_varid |
ID for the system binding energy variable |
|||
| integer(kind=I4B), | public | :: | E_collisions_varid |
ID for the energy lost in collisions variable |
|||
| character(len=NAMELEN), | public | :: | E_collisions_varname | = | "E_collisions" |
name of the escaped angular momentum y variable |
|
| integer(kind=I4B), | public | :: | E_untracked_varid |
ID for the energy that is untracked due to loss (due to mergers and body energy for escaped bodies) |
|||
| character(len=NAMELEN), | public | :: | E_untracked_varname | = | "E_untracked" |
name of the energy that is untracked due to loss (due to mergers and body energy for escaped bodies) |
|
| integer(kind=I4B), | public | :: | GMescape_varid |
ID for the G*Mass of bodies that escape the system |
|||
| character(len=NAMELEN), | public | :: | GMescape_varname | = | "GMescape" |
name of the G*Mass of bodies that escape the system |
|
| integer(kind=I4B), | public | :: | Gmass_varid |
ID for the G*mass variable |
|||
| character(len=NAMELEN), | public | :: | Gmass_varname | = | "Gmass" |
name of the G*mass variable |
|
| integer(kind=I4B), | public | :: | Ip_varid |
ID for the axis principal moment of inertia variable |
|||
| character(len=NAMELEN), | public | :: | Ip_varname | = | "Ip" |
name of the principal moment of inertial variable |
|
| integer(kind=I4B), | public | :: | KE_orb_varid |
ID for the system orbital kinetic energy variable |
|||
| integer(kind=I4B), | public | :: | KE_rot_varid |
ID for the system rotational kinetic energy variable |
|||
| integer(kind=I4B), | public | :: | L_escape_varid |
ID for the escaped angular momentum vector variable |
|||
| character(len=NAMELEN), | public | :: | L_escape_varname | = | "L_escape" |
name of the escaped angular momentum vector variable |
|
| integer(kind=I4B), | public | :: | L_orbit_varid |
ID for the system orbital angular momentum vector variable |
|||
| character(len=NAMELEN), | public | :: | L_orbit_varname | = | "L_orbit" |
name of the orbital angular momentum vector variable |
|
| integer(kind=I4B), | public | :: | L_rot_varid |
ID for the system rotational angular momentum vector variable |
|||
| character(len=NAMELEN), | public | :: | L_rot_varname | = | "L_rot" |
name of the rotational angular momentum vector variable |
|
| integer(kind=I4B), | public | :: | PE_varid |
ID for the system potential energy variable |
|||
| integer(kind=I4B), | public | :: | Q_varid |
ID for the energy dissipation variable |
|||
| integer(kind=I4B), | public | :: | TE_varid |
ID for the system binding energy variable |
|||
| integer(kind=I4B), | public | :: | Y_21_varid |
ID for the Y_21 yarkovsky directional variable |
|||
| character(len=NAMELEN), | public | :: | Y_21_varname | = | "Y_21" |
name of the Y_21 yarkovsky directional variable |
|
| integer(kind=I4B), | public | :: | a_pl_varid |
ID for the planet’s semi-major axis from the sun variable |
|||
| character(len=NAMELEN), | public | :: | a_pl_varname | = | "a_pl" |
name of the planet’s semi-major axis from the sun variable |
|
| integer(kind=I4B), | public | :: | a_varid |
ID for the semimajor axis variable |
|||
| character(len=NAMELEN), | public | :: | a_varname | = | "a" |
name of the semimajor axis variable |
|
| integer(kind=I4B), | public | :: | albedo_varid |
ID for the albedo variable |
|||
| character(len=NAMELEN), | public | :: | albedo_varname | = | "albedo" |
name of the albedo variable |
|
| character(len=NAMELEN), | public | :: | be_varname | = | "BE" |
name of the system binding energy variable |
|
| integer(kind=I4B), | public | :: | c_lm_varid |
ID for the c_lm aqrray |
|||
| character(len=NAMELEN), | public | :: | c_lm_varname | = | "c_lm" |
name for the c_lm array |
|
| integer(kind=I4B), | public | :: | cape_varid |
ID for the eccentric/hyperbolic anomaly variable |
|||
| character(len=NAMELEN), | public | :: | cape_varname | = | "cape" |
name of the eccentric/hyperbolic anomaly variable |
|
| integer(kind=I4B), | public | :: | capm_varid |
ID for the mean anomaly variable |
|||
| character(len=NAMELEN), | public | :: | capm_varname | = | "capm" |
name of the mean anomaly variable |
|
| integer(kind=I4B), | public | :: | capom_varid |
ID for the long. asc. node variable |
|||
| character(len=NAMELEN), | public | :: | capom_varname | = | "capom" |
name of the long. asc. node variable |
|
| character(len=NAMELEN), | public | :: | collision_id_dimname | = | "collision_id" |
name of the collision id variable |
|
| integer(kind=I4B), | public | :: | collision_id_varid |
Netcdf ID for the origin collision ID |
|||
| integer(kind=I4B), | public | :: | delta_varid |
ID for the planetary shadow width variable |
|||
| character(len=NAMELEN), | public | :: | delta_varname | = | "delta" |
name of the planetary shadow with variable |
|
| integer(kind=I4B), | public | :: | discard_body_id_varid |
ID for the id of the other body involved in the discard |
|||
| character(len=NAMELEN), | public | :: | discard_body_id_varname | = | "discard_body_id" |
name of the id of the other body involved in the discard |
|
| integer(kind=I4B), | public | :: | discard_rh_varid |
ID for the heliocentric position vector of the body at the time of discard variable |
|||
| character(len=NAMELEN), | public | :: | discard_rh_varname | = | "discard_rh" |
name of the heliocentric position vector of the body at the time of discard variable |
|
| integer(kind=I4B), | public | :: | discard_time_varid |
ID for the time of discard variable |
|||
| character(len=NAMELEN), | public | :: | discard_time_varname | = | "discard_time" |
name of the time of discard variable |
|
| integer(kind=I4B), | public | :: | discard_vh_varid |
ID for the heliocentric velocity vector of the body at the time of discard variable |
|||
| character(len=NAMELEN), | public | :: | discard_vh_varname | = | "discard_vh" |
name of the heliocentric velocity vector of the body at the time of discard variable |
|
| integer(kind=I4B), | public | :: | e_varid |
ID for the eccentricity variable |
|||
| character(len=NAMELEN), | public | :: | e_varname | = | "e" |
name of the eccentricity variable |
|
| integer(kind=I4B), | public | :: | emissivity_varid |
ID for the emissivity variable |
|||
| character(len=NAMELEN), | public | :: | emissivity_varname | = | "emissivity" |
name of the emissivity variable |
|
| integer(kind=I4B), | public | :: | f_varid |
ID for the true anomaly variable |
|||
| character(len=NAMELEN), | public | :: | f_varname | = | "f" |
name of the true anomaly variable |
|
| character(len=STRMAX), | public | :: | file_name |
Name of the output file |
|||
| integer(kind=I4B), | public | :: | gamma_varid |
ID for the thermal inertia parameter for yarkovsky effects |
|||
| character(len=NAMELEN), | public | :: | gamma_varname | = | "gamma" |
name of the thermal inertia parameter for yarkovsky effects |
|
| integer(kind=I4B), | public | :: | gr_pseudo_vh_varid |
ID for the heliocentric pseudovelocity vector variable (used in GR) |
|||
| character(len=NAMELEN), | public | :: | gr_pseudo_vh_varname | = | "gr_pseudo_vh" |
name of the heliocentric pseudovelocity vector variable (GR) |
|
| integer(kind=I4B), | public | :: | id |
ID for the output file |
|||
| integer(kind=I4B), | public | :: | id_varid |
ID for the id variable |
|||
| character(len=NAMELEN), | public | :: | id_varname | = | "id" |
name of the particle id variable |
|
| integer(kind=I4B), | public | :: | idslot | = | 1 |
The current id slot that gets passed to the NetCDF reader/writer |
|
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | idvals |
Array of id values in this NetCDF file |
||
| integer(kind=I4B), | public | :: | inc_varid |
ID for the inclination variable |
|||
| character(len=NAMELEN), | public | :: | inc_varname | = | "inc" |
name of the inclination variable |
|
| integer(kind=I4B), | public | :: | j2rp2_varid |
ID for the j2 variable |
|||
| character(len=NAMELEN), | public | :: | j2rp2_varname | = | "j2rp2" |
name of the j2rp2 variable |
|
| integer(kind=I4B), | public | :: | j4rp4_varid |
ID for the j4 variable |
|||
| character(len=NAMELEN), | public | :: | j4rp4_varname | = | "j4rp4" |
name of the j4pr4 variable |
|
| integer(kind=I4B), | public | :: | k2_varid |
ID for the Love number variable |
|||
| character(len=NAMELEN), | public | :: | k2_varname | = | "k2" |
name of the Love number variable |
|
| character(len=NAMELEN), | public | :: | ke_orbit_varname | = | "KE_orbit" |
name of the system orbital kinetic energy variable |
|
| character(len=NAMELEN), | public | :: | ke_rot_varname | = | "KE_rot" |
name of the system rotational kinetic energy variable |
|
| integer(kind=I4B), | public | :: | l_dim_max | = | 6 |
Maximum value of the l dimension |
|
| integer(kind=I4B), | public | :: | l_dimid |
ID for the l dimension for c_lm |
|||
| character(len=NAMELEN), | public | :: | l_dimname | = | "l" |
name of l dimension for c_lm |
|
| integer(kind=I4B), | public | :: | l_varid |
ID for the l variable |
|||
| integer(kind=I4B), | public | :: | lam_varid |
ID for the mean longitude variable |
|||
| character(len=NAMELEN), | public | :: | lam_varname | = | "lam" |
name of the mean longitude variable |
|
| logical, | public | :: | lc_lm_exists | = | .false. |
Logical flag to indicate whether or not the c_lm array was present in an old file. |
|
| logical, | public | :: | lfile_is_open | = | .false. |
Flag indicating that the linked file is currently open |
|
| logical, | public | :: | lpseudo_vel_exists | = | .false. |
Logical flag to indicate whether or not the pseudovelocity vectors were present in an old file. |
|
| integer(kind=I4B), | public | :: | m_dim_max | = | 6 |
Maximum value of the m dimension |
|
| integer(kind=I4B), | public | :: | m_dimid |
ID for the m dimension for c_lm |
|||
| character(len=NAMELEN), | public | :: | m_dimname | = | "m" |
name of m dimension for c_lm |
|
| integer(kind=I4B), | public | :: | m_p_varid |
ID for the ring particle mass per bin variable |
|||
| character(len=NAMELEN), | public | :: | m_p_varname | = | "m_p" |
name of the ring particle mass per bin variable |
|
| integer(kind=I4B), | public | :: | m_varid |
ID for the m variable |
|||
| integer(kind=I4B), | public | :: | mass_varid |
ID for the mass variable |
|||
| character(len=NAMELEN), | public | :: | mass_varname | = | "mass" |
name of the mass variable |
|
| integer(kind=I4B), | public | :: | max_idslot | = | 0 |
Records the last index value of id in the NetCDF file |
|
| integer(kind=I4B), | public | :: | max_tslot | = | 0 |
Records the last index value of time in the NetCDF file |
|
| integer(kind=I4B), | public | :: | name_dimid |
ID for the particle name dimension |
|||
| character(len=NAMELEN), | public | :: | name_dimname | = | "name" |
name of the particle name dimension |
|
| integer(kind=I4B), | public | :: | name_varid |
ID for the particle name variable |
|||
| integer(kind=I4B), | public | :: | nbins |
Number of elements in the ring bins |
|||
| integer(kind=I4B), | public | :: | npl_varid |
ID for the number of active massive bodies variable |
|||
| character(len=NAMELEN), | public | :: | npl_varname | = | "npl" |
name of the number of active massive bodies variable |
|
| integer(kind=I4B), | public | :: | nplm_varid |
ID for the number of active fully interacting massive bodies variable (SyMBA) |
|||
| character(len=NAMELEN), | public | :: | nplm_varname | = | "nplm" |
name of the number of active fully interacting massive bodies variable (SyMBA) |
|
| integer(kind=I4B), | public | :: | nseed_varid |
ID for the number of active seeds (Ringmoons) |
|||
| character(len=NAMELEN), | public | :: | nseed_varname | = | "nseed" |
name of the number of active seeds (Ringmoons) |
|
| integer(kind=I4B), | public | :: | ntp_varid |
ID for the number of active test particles variable |
|||
| character(len=NAMELEN), | public | :: | ntp_varname | = | "ntp" |
name of the number of active test particles variable |
|
| integer(kind=I4B), | public | :: | nu_varid |
ID for the viscosity of the ring bin variable |
|||
| character(len=NAMELEN), | public | :: | nu_varname | = | "nu" |
name of the viscosity of the ring bin variable |
|
| integer(kind=I4B), | public | :: | obliquity_varid |
ID for the obliquity variable |
|||
| character(len=NAMELEN), | public | :: | obliquity_varname | = | "obliquity" |
name of the obliquity variable |
|
| integer(kind=I4B), | public | :: | omega_varid |
ID for the arg. of periapsis variable |
|||
| character(len=NAMELEN), | public | :: | omega_varname | = | "omega" |
name of the arg. of periapsis variable |
|
| integer(kind=I4B), | public | :: | origin_rh_varid |
ID for the origin position vector variable |
|||
| character(len=NAMELEN), | public | :: | origin_rh_varname | = | "origin_rh" |
name of the heliocentric position vector of the body at the time of origin variable |
|
| integer(kind=I4B), | public | :: | origin_time_varid |
ID for the origin time |
|||
| character(len=NAMELEN), | public | :: | origin_time_varname | = | "origin_time" |
name of the time of origin variable |
|
| integer(kind=I4B), | public | :: | origin_type_varid |
ID for the origin type |
|||
| character(len=NAMELEN), | public | :: | origin_type_varname | = | "origin_type" |
name of the origin type variable |
|
| integer(kind=I4B), | public | :: | origin_vh_varid |
ID for the origin velocity vector component |
|||
| character(len=NAMELEN), | public | :: | origin_vh_varname | = | "origin_vh" |
name of the heliocentric velocity vector of the body at the time of origin variable |
|
| integer(kind=I4B), | public | :: | out_type |
output type (will be assigned either NF90_DOUBLE or NF90_FLOAT, depending on the user parameter) |
|||
| character(len=NAMELEN), | public | :: | pe_varname | = | "PE" |
name of the system potential energy variable |
|
| integer(kind=I4B), | public | :: | ptype_varid |
ID for the particle type variable |
|||
| character(len=NAMELEN), | public | :: | ptype_varname | = | "particle_type" |
name of the particle type variable |
|
| character(len=NAMELEN), | public | :: | q_varname | = | "Q" |
name of the energy dissipation variable |
|
| integer(kind=I4B), | public | :: | r_inner_varid |
ID for the inside radius of ring variable |
|||
| character(len=NAMELEN), | public | :: | r_inner_varname | = | "r_inner" |
name of the inside radius of ring variable |
|
| integer(kind=I4B), | public | :: | r_outer_varid |
ID for the outside radius of ring variable |
|||
| character(len=NAMELEN), | public | :: | r_outer_varname | = | "r_outer" |
name of the outside radius of ring variable |
|
| integer(kind=I4B), | public | :: | r_p_varid |
ID for the ring particle radius per bin variable |
|||
| character(len=NAMELEN), | public | :: | r_p_varname | = | "r_p" |
name of the ring particle radius per bin variable |
|
| integer(kind=I4B), | public | :: | r_varid |
ID for the radial distance of bin center variable |
|||
| character(len=NAMELEN), | public | :: | r_varname | = | "r" |
name of the radial distance of bin center variable |
|
| integer(kind=I4B), | public | :: | radius_varid |
ID for the radius variable |
|||
| character(len=NAMELEN), | public | :: | radius_varname | = | "radius" |
name of the radius variable |
|
| integer(kind=I4B), | public | :: | rh_varid |
ID for the heliocentric position vector variable |
|||
| character(len=NAMELEN), | public | :: | rh_varname | = | "rh" |
name of the heliocentric position vector variable |
|
| integer(kind=I4B), | public | :: | rhill_varid |
ID for the hill radius variable |
|||
| character(len=NAMELEN), | public | :: | rhill_varname | = | "rhill" |
name of the hill radius variable |
|
| integer(kind=I4B), | public | :: | ringbin_dimid |
ID for the ring bin dimension |
|||
| character(len=NAMELEN), | public | :: | ringbin_dimname | = | "ringbin" |
name of the ring bin dimension |
|
| integer(kind=I4B), | public | :: | ringbin_varid |
ID for the ring bin variable |
|||
| integer(kind=I4B), | public | :: | rot_k_varid |
ID for the rotational constant k for yarkovsky effects |
|||
| character(len=NAMELEN), | public | :: | rot_k_varname | = | "rot_k" |
name of the rotational constant k for yarkovsky effects |
|
| integer(kind=I4B), | public | :: | rot_varid |
ID for the rotation vector variable |
|||
| character(len=NAMELEN), | public | :: | rot_varname | = | "rot" |
name of the rotation vector variable |
|
| integer(kind=I4B), | public | :: | rotphase_varid |
ID for the rotation phase variable |
|||
| character(len=NAMELEN), | public | :: | rotphase_varname | = | "rotphase" |
name of the rotation phase variable |
|
| integer(kind=I4B), | public | :: | sigma_varid |
ID for the surface mass density of ring bin variable |
|||
| character(len=NAMELEN), | public | :: | sigma_varname | = | "sigma" |
name of the surface mass density of ring bin variable |
|
| integer(kind=I4B), | public, | dimension(2) | :: | sign_coords | = | [-1, 1] |
The sign dimension coordinate labels |
| integer(kind=I4B), | public | :: | sign_dimid |
ID for sign dimension |
|||
| character(len=NAMELEN), | public | :: | sign_dimname | = | "sign" |
name of the sign dimension for c_lm |
|
| integer(kind=I4B), | public | :: | sign_varid |
ID for sign variable |
|||
| character(len=1), | public, | dimension(3) | :: | space_coords | = | ["x", "y", "z"] |
The space dimension coordinate labels |
| integer(kind=I4B), | public | :: | space_dimid |
ID for the space dimension |
|||
| character(len=NAMELEN), | public | :: | space_dimname | = | "space" |
name of the space dimension |
|
| integer(kind=I4B), | public | :: | space_varid |
ID for the space variable |
|||
| integer(kind=I4B), | public | :: | status_varid |
ID for the status variable |
|||
| character(len=NAMELEN), | public | :: | status_varname | = | "status" |
name of the particle status variable |
|
| integer(kind=I4B), | public | :: | str_dimid |
ID for the character string dimension |
|||
| character(len=NAMELEN), | public | :: | str_dimname | = | "string32" |
name of the character string dimension |
|
| integer(kind=I4B), | public | :: | tau_varid |
ID for the ring optical depth variable |
|||
| character(len=NAMELEN), | public | :: | tau_varname | = | "tau" |
name of the ring optical depth variable |
|
| character(len=NAMELEN), | public | :: | te_varname | = | "TE" |
name of the system binding energy variable |
|
| integer(kind=I4B), | public | :: | time_dimid |
ID for the time dimension |
|||
| character(len=NAMELEN), | public | :: | time_dimname | = | "time" |
name of the time dimension |
|
| integer(kind=I4B), | public | :: | time_varid |
ID for the time variable |
|||
| integer(kind=I4B), | public | :: | toomre_varid |
ID for the Toomre parameter of the ring bin variable |
|||
| character(len=NAMELEN), | public | :: | toomre_varname | = | "Q_toomre" |
name of the Toomre parameter of the ring bin variable |
|
| integer(kind=I4B), | public | :: | tslot | = | 1 |
The current time slot that gets passed to the NetCDF reader/writer |
|
| integer(kind=I4B), | public | :: | varpi_varid |
ID for the long. of periapsis variable |
|||
| character(len=NAMELEN), | public | :: | varpi_varname | = | "varpi" |
name of the long. of periapsis variable |
|
| integer(kind=I4B), | public | :: | vh_varid |
ID for the heliocentric velocity vector variable |
|||
| character(len=NAMELEN), | public | :: | vh_varname | = | "vh" |
name of the heliocentric velocity vector variable |
|
| integer(kind=I4B), | public | :: | vrel_p_varid |
ID for the ring particle relative velocity per bin variable already defined in netcdf_io_module |
|||
| character(len=NAMELEN), | public | :: | vrel_p_varname | = | "vrel_p" |
name of the ring particle relative velocity per bin variable |
| final :: ringmoons_final_netcdf_parameters | Finalizer will close the NetCDF file |
| procedure, public :: add_new_var => netcdf_io_add_new_var | Adds a new variable to an existing open dataset by combining inq_varid, redef, def_var, and def_var_fill commands in one |
| procedure, public :: close => netcdf_io_close | Closes an open NetCDF file |
| procedure, public :: find_idslot => netcdf_io_find_idslot | Finds the id dimension index for a given value of id |
| procedure, public :: find_tslot => netcdf_io_find_tslot | Finds the time dimension index for a given value of t |
| procedure, public :: flush => ringmoons_io_netcdf_flush | Flushes a NetCDF file by closing it then opening it again |
| procedure, public :: get_idvals => netcdf_io_get_idvals | Gets the valid id numbers currently stored in this dataset |
| procedure, public :: open => ringmoons_io_netcdf_open | Open a Ringmoons NetCDF file |
| procedure, public :: sync => netcdf_io_sync | Syncrhonize the disk and memory buffer of the NetCDF file (e.g. commit the frame files stored in memory to disk) |
Ringmoons massive body class
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=DP), | public, | dimension(:), allocatable | :: | Gmass |
Mass gravitational term G * mass (units GU * MU) |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | Ip |
Unitless principal moments of inertia (I1, I2, I3) / (MR**2). Principal axis rotation assumed. |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | Q |
Tidal quality factor |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | a |
Semimajor axis (pericentric distance for a parabolic orbit) |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | agr |
Acceleration due to post-Newtonian correction |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | ah |
Total heliocentric acceleration |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | albedo |
Bond albedo for radiation acceleration calculations |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | aobl |
Barycentric accelerations of bodies due to central body oblatenes |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | atide |
Tanngential component of acceleration of bodies due to tides |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | atp |
semimajor axis following perihelion passage |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | capm |
Mean anomaly |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | capom |
Longitude of ascending node |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | density |
Body mass density - calculated internally (units MU / DU**3) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | e |
Eccentricity |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | emissivity |
Emissivity for Yarkovsky acceleration calculations |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | gamma |
Thermal inertia for Yarkovsky calculations |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | id |
Identifier |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | inc |
Inclination |
||
| type(swiftest_particle_info), | public, | dimension(:), allocatable | :: | info |
Particle metadata information |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | ir3h |
Inverse heliocentric radius term (1/rh**3) |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | isperi |
perihelion passage flag |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | k2 |
Tidal Love number |
||
| integer(kind=I4B), | public, | dimension(:,:), allocatable | :: | k_plpl |
Index array used to convert flattened the body-body comparison upper triangular matrix |
||
| type(swiftest_kinship), | public, | dimension(:), allocatable | :: | kin |
Array of merger relationship structures that can account for multiple pairwise mergers in a single step |
||
| logical, | public, | dimension(:), allocatable | :: | lcollision |
flag indicating whether body has merged with another this time step |
||
| logical, | public, | dimension(:), allocatable | :: | ldiscard |
Body should be discarded |
||
| logical, | public, | dimension(:), allocatable | :: | lencounter |
flag indicating whether body is part of an encounter this time step |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | levelg |
level at which this body should be moved |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | levelm |
deepest encounter level achieved this time step |
||
| logical, | public | :: | lfirst | = | .true. |
Run the current step as a first |
|
| logical, | public, | dimension(:), allocatable | :: | lmask |
Logical mask used to select a subset of bodies when performing certain operations (drift, kick, accel, etc.) |
||
| logical, | public, | dimension(:), allocatable | :: | lmtiny |
flag indicating whether this body is below the GMTINY cutoff value |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | mass |
Body mass (units MU) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | mu |
G * (Mcb + [m]) |
||
| integer(kind=I4B), | public | :: | nbody | = | 0 |
Number of bodies |
|
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | nplenc |
number of encounters with other planets this time step |
||
| integer(kind=I4B), | public | :: | nplm | = | 0 |
number of bodies above the GMTINY limit |
|
| integer(kind=I8B), | public | :: | nplpl |
Number of body-body comparisons in the flattened upper triangular matrix |
|||
| integer(kind=I8B), | public | :: | nplplm |
Number of body (all massive)-body (only those above GMTINY) comparisons in the flattened upper triangular matrix |
|||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | ntpenc |
number of encounters with test particles this time step |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | omega |
Argument of pericenter |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | peri |
perihelion distance |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | radius |
Body radius (units DU) |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | rb |
Barycentric position |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | rbeg |
Position at beginning of step |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | renc |
Critical radius for close encounters |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | rend |
Position at end of step |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | rh |
Heliocentric position |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | rhill |
Hill’s radius (units DU) |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | rot |
Body rotation vector in inertial coordinate frame (units deg / TU) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | rot_k |
Constant based on rotation rate for yarkovsky calculations |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | status |
An integrator-specific status indicator |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | tlag |
Tidal phase lag |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | vb |
Barycentric velocity |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | vbeg |
Velocity at beginning of step |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | vh |
Heliocentric velocity |
| procedure, public :: accel => symba_kick_getacch_pl | Compute heliocentric accelerations of massive bodies |
| procedure, public :: accel_gr => helio_gr_kick_getacch_pl | Acceleration term arising from the post-Newtonian correction |
| procedure, public :: accel_int => symba_kick_getacch_int_pl | Compute direct cross (third) term heliocentric accelerations of massive bodiess, with no mutual interactions between bodies below GMTINY |
| procedure, public :: accel_non_spherical_cb => swiftest_non_spherical_cb_acc_pl | Compute the barycentric accelerations of bodies due to the oblateness of the central body |
| procedure, public :: accel_radiation => swiftest_radiation_getacch_pl | |
| procedure, public :: accel_user => swiftest_user_kick_getacch_body | Add user-supplied heliocentric accelerations to planets |
| procedure, public :: accel_yarkovsky => helio_kick_yarkovsky_getacch_pl | Compute the heliocentric accelerations of bodies due to the Yarkovsky effect |
| procedure, public :: append => symba_util_append_pl | Appends elements from one structure to another |
| procedure, public :: b2h => swiftest_util_coord_b2h_pl | Convert massive bodies from barycentric to heliocentric coordinates (position and velocity) |
| procedure, public :: dealloc => symba_util_dealloc_pl | Deallocates all allocatable arrays |
| procedure, public :: discard => symba_discard_pl | Process massive body discards |
| procedure, public :: drift => symba_drift_pl | Method for Danby drift in Democratic Heliocentric coordinates. Sets the mask to the current recursion level |
| procedure, public :: el2xv => swiftest_orbel_el2xv_vec | Convert orbital elements to position and velocity vectors |
| procedure, public :: encounter_check => symba_encounter_check_pl | Checks if massive bodies are going through close encounters with each other |
| procedure, public :: fill => symba_util_fill_pl | “Fills” bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) |
| procedure, public :: flatten => symba_util_flatten_eucl_plpl | Sets up the (i, j) -> k indexing used for the single-loop blocking Euclidean distance matrix |
| procedure, public :: get_peri => swiftest_util_peri_body | Determine nbody_system pericenter passages for test particles |
| procedure, public :: gr_pos_kick => symba_gr_p4_pl | Position kick due to p**4 term in the post-Newtonian correction |
| procedure, public :: h2b => swiftest_util_coord_h2b_pl | Convert massive bodies from heliocentric to barycentric coordinates (position and velocity) |
| procedure, public :: kick => helio_kick_vb_pl | Kicks the barycentric velocities |
| procedure, public :: lindrift => helio_drift_linear_pl | Method for linear drift of massive bodies due to barycentric momentum of Sun |
| procedure, public :: make_impactors => swiftest_util_make_impactors_pl | Make impactors out of the current kinship relationships |
| procedure, public :: pv2v => swiftest_gr_pv2vh_body | Converts from psudeovelocity to velocity for GR calculations using symplectic integrators |
| generic, public :: read_frame => read_frame_bin | Add the generic read frame for Fortran binary files |
| procedure, public :: read_frame_bin => swiftest_io_read_frame_body | I/O routine for writing out a single frame of time-series data for the central body |
| procedure, public :: read_in => swiftest_io_read_in_body | Read in body initial conditions from an ascii file |
| procedure, public :: rearrange => symba_util_sort_rearrange_pl | Rearranges the order of array elements of body based on an input index array. Used in sorting methods |
| procedure, public :: rearray => swiftest_util_rearray_pl | Clean up the massive body structures to remove discarded bodies and add new bodies |
| procedure, public :: reset_kinship => swiftest_util_reset_kinship_pl | Resets the kinship status of bodies |
| procedure, public :: resize => symba_util_resize_pl | Checks the current size of a SyMBA massive body against the requested size and resizes it if it is too small. |
| procedure, public :: rh2rb => swiftest_util_coord_rh2rb_pl | Convert massive bodies from heliocentric to barycentric coordinates (position only) |
| procedure, public :: save_discard => swiftest_util_save_discard_body | Saves a snapshot of the this body to the collision storage object |
| procedure, public :: set_beg_end => swiftest_util_set_beg_end_pl | Sets the beginning and ending positions and velocities of planets. |
| procedure, public :: set_ir3 => swiftest_util_set_ir3h | Sets the inverse heliocentric radius term (1/rh**3) |
| procedure, public :: set_mu => swiftest_util_set_mu_pl | Method used to construct the vectorized form of the central body mass |
| generic, public :: set_renc => set_renc_I4B, set_renc_DP | |
| procedure, public :: set_renc_DP => swiftest_util_set_renc_DP | Sets the critical radius for encounter given an input real scale factor |
| procedure, public :: set_renc_I4B => symba_util_set_renc | Sets the critical radius for encounter given an input recursion depth |
| procedure, public :: set_rhill => swiftest_util_set_rhill | Calculates the Hill’s radii for each body |
| procedure, public :: setup => symba_util_setup_pl | Constructor method - Allocates space for the input number of bodies |
| procedure, public :: sort => symba_util_sort_pl | Sorts body arrays by a sortable componen |
| procedure, public :: spill => symba_util_spill_pl | “Spills” bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) |
| procedure, public :: step => helio_step_pl | Steps the body forward one stepsize |
| procedure, public :: v2pv => swiftest_gr_vh2pv_body | Converts from velocity to psudeovelocity for GR calculations using symplectic integrators |
| procedure, public :: vb2vh => swiftest_util_coord_vb2vh_pl | Convert massive bodies from barycentric to heliocentric coordinates (velocity only) |
| procedure, public :: vh2vb => swiftest_util_coord_vh2vb_pl | Convert massive bodies from heliocentric to barycentric coordinates (velocity only) |
| procedure, public :: write_frame => swiftest_io_netcdf_write_frame_body | I/O routine for writing out a single frame of time-series data for all bodies in the nbody_system in NetCDF format |
| procedure, public :: write_info => swiftest_io_netcdf_write_info_body | Dump contents of particle information metadata to file |
| procedure, public :: xv2el => swiftest_orbel_xv2el_vec | Convert position and velocity vectors to orbital elements |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=DP), | public | :: | FRL |
Rigid and fluid Roche limits |
|||
| real(kind=DP), | public, | dimension(:), allocatable | :: | Gsigma |
G*surface mass density of ring bin |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | Iz |
polar moment of inertia of ring bin |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | Q |
Toomre parameter of the ring bin |
||
| real(kind=DP), | public | :: | RRL |
Rigid and fluid Roche limits |
|||
| real(kind=DP), | public, | dimension(:), allocatable | :: | Torque |
total satellite torque density acting on the ring bin |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | X |
distance variable X bin center used for viscosity calculations |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | X2 |
distance variable X**2 bin center used for viscosity calculations |
||
| real(kind=DP), | public | :: | X_inner |
inside radius of ring in X units (see Bath & Pringle 1981) |
|||
| real(kind=DP), | public | :: | X_outer |
outside radius of ring in X units (see Bath & Pringle 1981) |
|||
| real(kind=DP), | public, | dimension(:), allocatable | :: | Y_21 |
2nd row-1st column term of the Yarkovsky directional matrix (Ferich, et al, 2022; Veras, et al, 2015) |
||
| real(kind=DP), | public, | allocatable | :: | a_pl |
semi-major axis of the planet from the Sun |
||
| real(kind=DP), | public, | allocatable | :: | albedo |
Bond albedo of ring particles for Yarkovsky acceleration calculations |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | delta |
planetary shadow width |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | deltaA |
differential surface area of ring |
||
| real(kind=DP), | public | :: | deltaX |
variable changed bin width used for viscosity calculations in X units |
|||
| real(kind=DP), | public, | allocatable | :: | emissivity |
Emissivity for Yarkovsky acceleration calculations |
||
| real(kind=DP), | public, | allocatable | :: | gamma |
Thermal inertia for Yarkovsky-Schach calculations |
||
| integer(kind=I4B), | public | :: | iFRL |
Indexes of Roche limit bins |
|||
| integer(kind=I4B), | public | :: | iRRL |
Indexes of Roche limit bins |
|||
| integer(kind=I4B), | public | :: | inside | = | 1 |
bin id of innermost ring bin (can increase if primary accretes a lot mass through updates) |
|
| real(kind=DP), | public, | dimension(:), allocatable | :: | m_p |
ring particle mass per bin |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | mass |
mass of ring particles in bin |
||
| integer(kind=I4B), | public | :: | nbins |
number of bins in ring |
|||
| type(ringmoons_netcdf_parameters), | public | :: | nc |
NetCDF file object associated with this ring stucture |
|||
| real(kind=DP), | public, | dimension(:), allocatable | :: | nkep |
Keplerian angular velocity of ring bin |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | nu |
viscocity of the ring bin |
||
| real(kind=DP), | public, | allocatable | :: | obliquity |
obliquity of the planet from the Sun |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | r |
radial distance of center of bin in simulation length units |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | r_hstar |
normalized ring Hill’s radius in simulation length units |
||
| real(kind=DP), | public | :: | r_inner |
inside radius of ring in simulation length units |
|||
| real(kind=DP), | public | :: | r_outer |
outside radius of ring in simulation length units |
|||
| real(kind=DP), | public, | dimension(:), allocatable | :: | r_p |
ring particle radius per bin |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | rho_p |
ring particle mass density per bin |
||
| real(kind=DP), | public, | allocatable | :: | rot_k |
Constant based on rotation rate for Yarkovsky calculations |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | sigma |
surface mass density of ring bin |
||
| real(kind=DP), | public | :: | t | = | -1.0_DP |
Integration current time (set internally from the nbody_system) |
|
| real(kind=DP), | public, | dimension(:), allocatable | :: | tau |
ring optical depth |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | vrel_p |
ring particle relative velocity per bin |
| final :: ringmoons_final_ring | Finalizes the ringmoons ring object - deallocates all allocatables |
| procedure, public :: dealloc => ringmoons_util_dealloc_ring | Deallocates allocatable arrays |
| procedure, public :: find_bin => ringmoons_util_find_bin | Returns the bin containing radius r from the input ring. |
| procedure, public :: get_dt => ringmoons_util_get_dt_ring | Calculates the maximum stable timestep for the surface mass density evolution that is not larger than dtin. |
| procedure, public :: get_lindblad_torque => ringmoons_torque_lindblad_ring | Calculates the lindblad torques between each ring element and an input body. |
| procedure, public :: read_frame => ringmoons_io_read_frame_ring | Read in ring data from file |
| procedure, public :: reset => ringmoons_util_reset_ring | Resets ring torques and recomputes all dimensional quantities, such as ring extent and limits based on the current surface mass density and central body properties. |
| procedure, public :: set_velocity_dispersion => ringmoons_util_velocity_dispersion_ring | Calculates the velocity |
| procedure, public :: setup => ringmoons_util_setup_ring | Sets up a new ring system from an input file |
| procedure, public :: step => ringmoons_step_ring | Adnances the evolution of the ring by one time step. |
| procedure, public :: update => ringmoons_util_update_ring | Updates the ring velocity dispersion, Toomre parameter, and viscosity values |
| procedure, public :: write_frame => ringmoons_io_write_frame_ring | Writes ring data to file |
| procedure, public :: yark_schach_torque => ringmoons_torque_yarkovsky_schach_ring | Calculates the torque from the Yarkovsky-Schach effect on the ring |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=DP), | public, | dimension(:), allocatable | :: | Gmass |
Mass gravitational term G * mass (units GU * MU) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | Torque |
Total torque acting on the seed |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | Ttide |
Tidal torque acting on the seed |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | a |
Semimajor axis |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | density |
Body mass density - calculated internally (units MU / DU**3) |
||
| real(kind=DP), | public | :: | feeding_zone_factor | = | 10._DP |
Width of feeding zone for seed mergers in units of mutual Hill’s sphere |
|
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | id |
Identifier |
||
| type(swiftest_particle_info), | public, | dimension(:), allocatable | :: | info |
Particle metadata information |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | mass |
Body mass (units MU) |
||
| real(kind=DP), | public | :: | mass_init |
initial mass of seeds |
|||
| integer(kind=I4B), | public | :: | maxid |
Current maximum id of the system, set automatically from the nbody_system object |
|||
| real(kind=DP), | public, | dimension(:), allocatable | :: | mu |
Gravitational cononstant |
||
| integer(kind=I4B), | public | :: | nbody | = | 0 |
Number of seed bodies |
|
| real(kind=DP), | public, | dimension(:), allocatable | :: | radius |
Body radius (units DU) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | rhill |
Hill’s radius (units DU) |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | ringbin |
Ring bin location of seed |
||
| real(kind=DP), | public | :: | rkf_tol | = | 1.0e-6_DP |
Error tolerance for Runge-Kutta-Fehlberg integrator for seed evolution |
|
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | status |
Active or inactive status indicator |
| final :: ringmoons_final_seed |
| procedure, public :: dealloc => ringmoons_util_dealloc_seed | Deallocates all allocatable arrays |
| procedure, public :: get_tidal_torque => ringmoons_torque_tidal_seed | Calculates the tidal torque on the seed from the central body |
| procedure, public :: read_frame => ringmoons_io_read_frame_seed | Read seed data from file |
| procedure, public :: restructure => ringmoons_step_restructure_seed | Restructures the seed system by merging seeds that are within each other’s feeding zones and reassigning ring bins based on current semimajor axes |
| procedure, public :: setup => ringmoons_util_setup_seed | Sets up a new seed system from an input file |
| procedure, public :: spawn => ringmoons_util_spawn_seed | Spawn new seeds from the ring at the FRL |
| procedure, public :: step => ringmoons_step_seed | Advances the evolution of the seeds by one time step, including accretion and spawning events |
| procedure, public :: write_frame => ringmoons_io_write_frame_seed | Writes seed data to file |
Ringmoons test particle class
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=DP), | public, | dimension(:), allocatable | :: | a |
Semimajor axis (pericentric distance for a parabolic orbit) |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | agr |
Acceleration due to post-Newtonian correction |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | ah |
Total heliocentric acceleration |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | aobl |
Barycentric accelerations of bodies due to central body oblatenes |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | atide |
Tanngential component of acceleration of bodies due to tides |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | atp |
semimajor axis following perihelion passage |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | capm |
Mean anomaly |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | capom |
Longitude of ascending node |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | e |
Eccentricity |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | id |
Identifier |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | inc |
Inclination |
||
| type(swiftest_particle_info), | public, | dimension(:), allocatable | :: | info |
Particle metadata information |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | ir3h |
Inverse heliocentric radius term (1/rh**3) |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | isperi |
perihelion passage flag |
||
| integer(kind=I4B), | public, | dimension(:,:), allocatable | :: | k_pltp |
Index array used to convert flattened the body-body comparison upper triangular matrix |
||
| logical, | public, | dimension(:), allocatable | :: | lcollision |
flag indicating whether body has merged with another this time step |
||
| logical, | public, | dimension(:), allocatable | :: | ldiscard |
Body should be discarded |
||
| logical, | public, | dimension(:), allocatable | :: | lencounter |
flag indicating whether body is part of an encounter this time step |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | levelg |
level at which this particle should be moved |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | levelm |
deepest encounter level achieved this time step |
||
| logical, | public | :: | lfirst | = | .true. |
Run the current step as a first |
|
| logical, | public, | dimension(:), allocatable | :: | lmask |
Logical mask used to select a subset of bodies when performing certain operations (drift, kick, accel, etc.) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | mu |
G * (Mcb + [m]) |
||
| integer(kind=I4B), | public | :: | nbody | = | 0 |
Number of bodies |
|
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | nplenc |
number of encounters with planets this time step |
||
| integer(kind=I8B), | public | :: | npltp |
Number of pl-tp comparisons in the flattened upper triangular matrix |
|||
| real(kind=DP), | public, | dimension(:), allocatable | :: | omega |
Argument of pericenter |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | peri |
perihelion distance |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | rb |
Barycentric position |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | rh |
Heliocentric position |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | status |
An integrator-specific status indicator |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | vb |
Barycentric velocity |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | vh |
Heliocentric velocity |
| procedure, public :: accel => symba_kick_getacch_tp | Compute heliocentric accelerations of test particles |
| procedure, public :: accel_gr => helio_gr_kick_getacch_tp | Acceleration term arising from the post-Newtonian correction |
| procedure, public :: accel_int => swiftest_kick_getacch_int_tp | Compute direct cross (third) term heliocentric accelerations of test particles by massive bodies |
| procedure, public :: accel_non_spherical_cb => swiftest_non_spherical_cb_acc_tp | Compute the barycentric accelerations of bodies due to the oblateness of the central body |
| procedure, public :: accel_user => swiftest_user_kick_getacch_body | Add user-supplied heliocentric accelerations to planets |
| procedure, public :: append => symba_util_append_tp | Appends elements from one structure to another |
| procedure, public :: b2h => swiftest_util_coord_b2h_tp | Convert test particles from barycentric to heliocentric coordinates (position and velocity) |
| procedure, public :: dealloc => symba_util_dealloc_tp | Deallocates all allocatable arrays |
| procedure, public :: discard => swiftest_discard_tp | Check to see if test particles should be discarded based on their positions relative to the massive bodies |
| procedure, public :: drift => symba_drift_tp | Method for Danby drift in Democratic Heliocentric coordinates. Sets the mask to the current recursion level |
| procedure, public :: el2xv => swiftest_orbel_el2xv_vec | Convert orbital elements to position and velocity vectors |
| procedure, public :: encounter_check => symba_encounter_check_tp | Checks if any test particles are undergoing a close encounter with a massive body |
| procedure, public :: fill => symba_util_fill_tp | “Fills” bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) |
| procedure, public :: get_peri => swiftest_util_peri_body | Determine nbody_system pericenter passages for test particles |
| procedure, public :: gr_pos_kick => symba_gr_p4_tp | Position kick due to p**4 term in the post-Newtonian correction |
| procedure, public :: h2b => swiftest_util_coord_h2b_tp | Convert test particles from heliocentric to barycentric coordinates (position and velocity) |
| procedure, public :: kick => helio_kick_vb_tp | Kicks the barycentric velocities |
| procedure, public :: lindrift => helio_drift_linear_tp | Method for linear drift of massive bodies due to barycentric momentum of Sun |
| procedure, public :: pv2v => swiftest_gr_pv2vh_body | Converts from psudeovelocity to velocity for GR calculations using symplectic integrators |
| generic, public :: read_frame => read_frame_bin | Add the generic read frame for Fortran binary files |
| procedure, public :: read_frame_bin => swiftest_io_read_frame_body | I/O routine for writing out a single frame of time-series data for the central body |
| procedure, public :: read_in => swiftest_io_read_in_body | Read in body initial conditions from an ascii file |
| procedure, public :: rearrange => symba_util_sort_rearrange_tp | Rearranges the order of array elements of body based on an input index array. Used in sorting methods |
| procedure, public :: rearray => swiftest_util_rearray_tp | Clean up the test particle structures to remove discarded bodies |
| procedure, public :: resize => symba_util_resize_tp | Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. |
| procedure, public :: rh2rb => swiftest_util_coord_rh2rb_tp | Convert test particles from heliocentric to barycentric coordinates (position only) |
| procedure, public :: save_discard => swiftest_util_save_discard_body | Saves a snapshot of the this body to the collision storage object |
| procedure, public :: set_ir3 => swiftest_util_set_ir3h | Sets the inverse heliocentric radius term (1/rh**3) |
| procedure, public :: set_mu => swiftest_util_set_mu_tp | Method used to construct the vectorized form of the central body mass |
| procedure, public :: setup => symba_util_setup_tp | Constructor method - Allocates space for the input number of bodies |
| procedure, public :: sort => symba_util_sort_tp | Sorts body arrays by a sortable componen |
| procedure, public :: spill => symba_util_spill_tp | “Spills” bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) |
| procedure, public :: step => helio_step_tp | Steps the body forward one stepsize |
| procedure, public :: v2pv => swiftest_gr_vh2pv_body | Converts from velocity to psudeovelocity for GR calculations using symplectic integrators |
| procedure, public :: vb2vh => swiftest_util_coord_vb2vh_tp | Convert test particles from barycentric to heliocentric coordinates (velocity only) |
| procedure, public :: vh2vb => swiftest_util_coord_vh2vb_tp | Convert test particles from heliocentric to barycentric coordinates (velocity only) |
| procedure, public :: write_frame => swiftest_io_netcdf_write_frame_body | I/O routine for writing out a single frame of time-series data for all bodies in the nbody_system in NetCDF format |
| procedure, public :: write_info => swiftest_io_netcdf_write_info_body | Dump contents of particle information metadata to file |
| procedure, public :: xv2el => swiftest_orbel_xv2el_vec | Convert position and velocity vectors to orbital elements |
Finalize the NetCDF by closing the file
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ringmoons_netcdf_parameters), | intent(inout) | :: | self |
Finalize the ringmoons ring object - deallocates all allocatables
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ringmoons_ring), | intent(inout) | :: | self |
Ringmoons ring object |
Finalize the ringmoons seed object - deallocates all allocatables
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ringmoons_seed), | intent(inout) | :: | self |
Ringmoons seed object |