Modules

ModuleSource FileDescription
basebase_module.f90

Base type definitions. This allows the collision and encounter modules to be defined before the swiftest module.

bindings_modulebindings_module.f90
coarraycoarray_module.f90

Utilities that are used for coarray test particles

   s_coarray_clonecoarray_clone.f90
   s_coarray_collectcoarray_collect.f90
collisioncollision_module.f90

Definition of classes and methods used to determine close encounters NetCDF dimension and variable names for the enounter save object

   s_collision_generatecollision_generate.f90
   s_collision_iocollision_io.f90
   s_collision_regimecollision_regime.f90
   s_collision_utilcollision_util.f90
   s_collision_checkcollision_check.f90
   s_collision_resolvecollision_resolve.f90
encounterencounter_module.f90

Definition of classes and methods used to determine close encounters

   s_encounter_checkencounter_check.f90
   s_encounter_ioencounter_io.f90
   s_encounter_utilencounter_util.f90
fragglefraggle_module.f90

Definition of classes and methods specific to Fraggle: Fragment generation that conserves angular momentum (L) and energy (E)

   s_fraggle_utilfraggle_util.f90
   s_fraggle_generatefraggle_generate.f90
heliohelio_module.f90

Definition of classes and methods specific to the Democratic Heliocentric Method Adapted from David E. Kaufmann’s Swifter routine: module_helio.f90

   s_helio_drifthelio_drift.f90
   s_helio_grhelio_gr.f90
   s_helio_kickhelio_kick.f90
   s_helio_stephelio_step.f90
   s_helio_utilhelio_util.f90
io_progress_bario_progress_bar_module.f90

Definition of classes and methods used to determine close encounters

lambda_functionlambda_function_module.f90

Defines a class that can enable objects that behave like lambda functions.

Read more…
netcdf_ionetcdf_io_module.f90

Base type definitions. This allows the collision and encounter modules to be defined before the swiftest module. This derived datatype stores the NetCDF ID values for each of the variables included in the NetCDF data file. This is used as the base class defined in base

   s_netcdf_io_implementationsnetcdf_io_implementations.f90
operatorsoperator_module.f90

Custom operators, including A .cross. B = Cross product of A(1:NDIM) and B(1:NDIM)

Read more…
   s_operator_magoperator_mag.f90

Contains implementations for the .mag. operator for all defined real types Computes the magnitude of a vector or array of vectors using norm2 Single vector implementations: B = .mag. A(1:3) Vector list implementations: B(:) = .mag. A(1:3, :)

   s_operator_unitoperator_unit.f90

Contains implementations for the .unit. operator for all defined real types Returns a unit vector or array of unit vectors from an input vector or array of vectors Single vector implementations: B = .unit. A(1:NDIM) Vector list implementations: B(:) = .unit. A(1:NDIM, :)

   s_operator_crossoperator_cross.f90

Contains implementations for the .cross. operator for all defined integer and real types Computes the cross product of two (3) vectors or (3,:) arrays Single vector implementations: C(1:3) = A(1:3) .cross. B(1:3) Vector list implementations: C(1:3, :) = A(1:3, :) .cross. B(1:3, :)

rmvsrmvs_module.f90

Definition of classes and methods specific to the Regularized Mixed Variable Symplectic (INT_RMVS) integrator Partially adapted from David E. Kaufmann’s Swifter module: module_rmvs.f90 RMVS test particle class

   s_rmvs_discardrmvs_discard.f90
   s_rmvs_encounter_checkrmvs_encounter_check.f90
   s_rmvs_kickrmvs_kick.f90
   s_rmvs_steprmvs_step.f90
   s_rmvs_utilrmvs_util.f90
shgravshgrav_module.f90

This module defines functions used for the computation of accelerations based on spherical harmonics representation of the gravitational potential of the central body. It uses the SHTOOLS library https://shtools.github.io/SHTOOLS/

   s_shgrav_accelshgrav_accel.f90
   s_shgrav_potshgrav_pot.f90
solversolver_module.f90

Contains a 4th order Runge-Kutta-Fehlberg ODE solver and a linear system of equations solver

swiftestswiftest_module.f90

This module serves to combine all of the Swiftest project modules under a single umbrella so that they can be accessed from individual submodule implementations with a simple “use swiftest” line.

Read more…
   s_swiftest_discardswiftest_discard.f90
   s_swiftest_driftswiftest_drift.f90
   s_swiftest_driverswiftest_driver.f90
   s_swiftest_grswiftest_gr.f90
   s_swiftest_kickswiftest_kick.f90
   s_swiftest_orbelswiftest_orbel.f90

Code converted to Modern Fortran by David A. Minton Date: 2020-06-29

Read more…
   s_swiftest_userswiftest_user.f90
   s_swiftest_oblswiftest_obl.f90
   s_swiftest_coarrayswiftest_coarray.f90
   s_swiftest_ioswiftest_io.f90
   s_swiftest_utilswiftest_util.f90
symbasymba_module.f90

Definition of classes and methods specific to the SyMBA integrator Adapted from David E. Kaufmann’s Swifter routine: module_symba.f90

   s_symba_discardsymba_discard.f90
   s_symba_driftsymba_drift.f90
   s_symba_encounter_checksymba_encounter_check.f90
   s_symba_grsymba_gr.f90
   s_symba_kicksymba_kick.f90
   s_symba_stepsymba_step.f90
   s_symba_utilsymba_util.f90
tidestides_module.f90

Definition of classes and methods used to determine close encounters

   s_tides_kick_getacchtides_getacch_pl.f90
   s_tides_step_rottides_spin_step.f90
walltimewalltime_module.f90

Classes and methods used to compute elasped wall time

   s_walltimewalltime_implementations.f90
whmwhm_module.f90

Definition of classes and methods specific to the Democratic Heliocentric Method Partially adapted from David E. Kaufmann’s Swifter module: module_whm.f90

   s_whm_coordwhm_coord.f90
   s_whm_grwhm_gr.f90
   s_whm_kickwhm_kick.f90
   s_whm_stepwhm_step.f90
   s_whm_utilwhm_util.f90
   whm_driftwhm_drift.f90
module~~graph~~ModuleGraph module~whm_drift whm_drift module~whm whm module~whm_drift->module~whm module~swiftest swiftest module~whm_drift->module~swiftest module~s_collision_util s_collision_util module~collision collision module~s_collision_util->module~collision module~s_collision_util->module~swiftest module~s_rmvs_util s_rmvs_util module~rmvs rmvs module~s_rmvs_util->module~rmvs module~s_rmvs_util->module~swiftest module~s_helio_step s_helio_step module~helio helio module~s_helio_step->module~helio module~s_helio_step->module~swiftest module~shgrav shgrav module~shgrav->module~swiftest module~bindings_module bindings_module module~bindings_module->module~swiftest iso_c_binding iso_c_binding module~bindings_module->iso_c_binding module~s_operator_cross s_operator_cross module~operators operators module~s_operator_cross->module~operators module~s_operator_cross->module~swiftest ieee_exceptions ieee_exceptions module~s_operator_cross->ieee_exceptions module~s_whm_kick s_whm_kick module~s_whm_kick->module~whm module~s_whm_kick->module~swiftest module~netcdf_io netcdf_io module~base base module~netcdf_io->module~base globals globals module~netcdf_io->globals module~s_swiftest_orbel s_swiftest_orbel module~s_swiftest_orbel->module~swiftest module~coarray coarray module~coarray->globals module~symba symba module~symba->module~helio module~symba->module~swiftest module~s_collision_check s_collision_check module~s_collision_check->module~symba module~s_collision_check->module~collision module~s_collision_check->module~swiftest module~s_symba_util s_symba_util module~s_symba_util->module~symba module~s_symba_util->module~swiftest module~fraggle fraggle module~s_symba_util->module~fraggle module~s_swiftest_gr s_swiftest_gr module~s_swiftest_gr->module~swiftest module~solver solver module~lambda_function lambda_function module~solver->module~lambda_function module~solver->module~base module~solver->ieee_exceptions module~solver->globals module~s_tides_step_rot s_tides_step_rot module~tides tides module~s_tides_step_rot->module~tides module~s_tides_step_rot->module~swiftest module~encounter encounter module~encounter->module~netcdf_io module~encounter->module~base module~encounter->globals module~s_collision_io s_collision_io module~s_collision_io->module~collision module~s_collision_io->module~swiftest module~s_netcdf_io_implementations s_netcdf_io_implementations module~s_netcdf_io_implementations->module~netcdf_io netcdf netcdf module~s_netcdf_io_implementations->netcdf module~s_encounter_util s_encounter_util module~s_encounter_util->module~encounter module~s_encounter_util->module~swiftest module~s_walltime s_walltime module~walltime walltime module~s_walltime->module~walltime module~s_walltime->module~swiftest module~collision->module~encounter module~collision->module~base module~collision->globals module~s_swiftest_util s_swiftest_util module~s_swiftest_util->module~symba module~s_swiftest_util->module~helio module~s_swiftest_util->module~rmvs module~s_swiftest_util->module~whm module~s_swiftest_util->module~swiftest module~s_swiftest_util->module~fraggle module~s_rmvs_step s_rmvs_step module~s_rmvs_step->module~rmvs module~s_rmvs_step->module~swiftest module~walltime->module~base module~walltime->globals module~lambda_function->globals module~s_symba_drift s_symba_drift module~s_symba_drift->module~symba module~s_symba_drift->module~swiftest module~s_whm_coord s_whm_coord module~s_whm_coord->module~whm module~s_whm_coord->module~swiftest module~s_rmvs_encounter_check s_rmvs_encounter_check module~s_rmvs_encounter_check->module~rmvs module~s_rmvs_encounter_check->module~swiftest module~operators->globals module~s_shgrav_accel s_shgrav_accel module~s_shgrav_accel->module~shgrav module~s_shgrav_accel->module~swiftest SHTOOLS SHTOOLS module~s_shgrav_accel->SHTOOLS module~s_rmvs_kick s_rmvs_kick module~s_rmvs_kick->module~rmvs module~s_rmvs_kick->module~swiftest module~s_collision_resolve s_collision_resolve module~s_collision_resolve->module~collision module~s_collision_resolve->module~swiftest module~s_collision_generate s_collision_generate module~s_collision_generate->module~collision module~s_collision_generate->module~swiftest module~s_operator_unit s_operator_unit module~s_operator_unit->module~operators module~s_operator_unit->ieee_exceptions module~s_fraggle_generate s_fraggle_generate module~s_fraggle_generate->module~symba module~s_fraggle_generate->module~swiftest module~s_fraggle_generate->module~fraggle module~s_symba_kick s_symba_kick module~s_symba_kick->module~symba module~s_symba_kick->module~swiftest module~s_swiftest_coarray s_swiftest_coarray module~s_swiftest_coarray->module~coarray module~s_swiftest_coarray->module~swiftest module~tides->module~lambda_function module~tides->module~base module~s_encounter_check s_encounter_check module~s_encounter_check->module~encounter module~s_encounter_check->module~swiftest module~s_swiftest_drift s_swiftest_drift module~s_swiftest_drift->module~swiftest module~s_coarray_clone s_coarray_clone module~s_coarray_clone->module~coarray module~s_coarray_clone->module~swiftest module~s_rmvs_discard s_rmvs_discard module~s_rmvs_discard->module~rmvs module~s_rmvs_discard->module~swiftest module~s_tides_kick_getacch s_tides_kick_getacch module~s_tides_kick_getacch->module~tides module~s_tides_kick_getacch->module~swiftest module~helio->module~whm module~helio->module~swiftest module~s_helio_gr s_helio_gr module~s_helio_gr->module~helio module~s_helio_gr->module~swiftest module~s_collision_regime s_collision_regime module~s_collision_regime->module~collision module~s_collision_regime->module~swiftest module~s_helio_drift s_helio_drift module~s_helio_drift->module~helio module~s_helio_drift->module~swiftest module~io_progress_bar io_progress_bar module~io_progress_bar->module~base module~io_progress_bar->globals module~rmvs->module~whm module~rmvs->module~swiftest module~s_whm_util s_whm_util module~s_whm_util->module~whm module~s_whm_util->module~swiftest module~s_swiftest_obl s_swiftest_obl module~s_swiftest_obl->module~shgrav module~s_swiftest_obl->module~swiftest module~s_swiftest_discard s_swiftest_discard module~s_swiftest_discard->module~swiftest module~s_helio_util s_helio_util module~s_helio_util->module~helio module~s_helio_util->module~swiftest module~s_symba_encounter_check s_symba_encounter_check module~s_symba_encounter_check->module~symba module~s_symba_encounter_check->module~swiftest module~s_swiftest_user s_swiftest_user module~s_swiftest_user->module~swiftest module~s_fraggle_util s_fraggle_util module~s_fraggle_util->module~swiftest module~s_fraggle_util->module~fraggle module~s_whm_gr s_whm_gr module~s_whm_gr->module~whm module~s_whm_gr->module~swiftest module~s_whm_step s_whm_step module~s_whm_step->module~whm module~s_whm_step->module~swiftest module~s_swiftest_kick s_swiftest_kick module~s_swiftest_kick->module~swiftest module~base->module~coarray module~base->globals module~whm->module~swiftest module~s_symba_step s_symba_step module~s_symba_step->module~symba module~s_symba_step->module~swiftest module~s_swiftest_driver s_swiftest_driver module~s_swiftest_driver->module~swiftest module~s_symba_gr s_symba_gr module~s_symba_gr->module~symba module~s_symba_gr->module~swiftest module~s_shgrav_pot s_shgrav_pot module~s_shgrav_pot->module~shgrav module~s_shgrav_pot->module~swiftest module~s_shgrav_pot->SHTOOLS module~s_encounter_io s_encounter_io module~s_encounter_io->module~encounter module~s_encounter_io->module~swiftest module~s_helio_kick s_helio_kick module~s_helio_kick->module~helio module~s_helio_kick->module~swiftest module~swiftest->module~netcdf_io module~swiftest->module~solver module~swiftest->module~encounter module~swiftest->module~collision module~swiftest->module~walltime module~swiftest->module~lambda_function module~swiftest->module~operators module~swiftest->module~io_progress_bar module~swiftest->module~base module~swiftest->globals module~s_operator_mag s_operator_mag module~s_operator_mag->module~operators module~s_operator_mag->ieee_exceptions module~s_symba_discard s_symba_discard module~s_symba_discard->module~symba module~s_symba_discard->module~swiftest module~s_coarray_collect s_coarray_collect module~s_coarray_collect->module~coarray module~s_coarray_collect->module~swiftest module~fraggle->module~swiftest module~s_swiftest_io s_swiftest_io module~s_swiftest_io->module~symba module~s_swiftest_io->module~swiftest module~s_swiftest_io->netcdf program~main main program~main->module~swiftest
Help