parameters_module.f90 Source File


This file depends on

sourcefile~~parameters_module.f90~~EfferentGraph sourcefile~parameters_module.f90 parameters_module.f90 sourcefile~halo_kinds_module.f90 halo_kinds_module.F90 sourcefile~parameters_module.f90->sourcefile~halo_kinds_module.f90

Files dependent on this one

sourcefile~~parameters_module.f90~~AfferentGraph sourcefile~parameters_module.f90 parameters_module.f90 sourcefile~config_file_module.f90 config_file_module.f90 sourcefile~config_file_module.f90->sourcefile~parameters_module.f90 sourcefile~halo_module.f90 halo_module.F90 sourcefile~halo_module.f90->sourcefile~parameters_module.f90 sourcefile~halo_module.f90->sourcefile~config_file_module.f90 sourcefile~halo_utilities_module.f90 halo_utilities_module.f90 sourcefile~halo_module.f90->sourcefile~halo_utilities_module.f90 sourcefile~halo_utilities_module.f90->sourcefile~parameters_module.f90

Source Code

    module parameters_module

    use halo_kinds_module,             only: wp
    use fortran_astrodynamics_toolkit, only: zero

    implicit none

    private

    public :: wp ! real kind

    ! constants:
    integer,parameter,public  :: n_eoms = 6  !! size of EOM derivative vector [x,y,z,vx,vy,vz]

    real(wp),public :: mu_earth   = 3.9860043543609593E+05_wp !! \( \mu_{earth} \)
    real(wp),public :: mu_moon    = 4.9028000661637961E+03_wp !! \( \mu_{moon} \)
    real(wp),public :: mu_sun     = 1.3271244004193938E+11_wp !! \( \mu_{sun} \)
    real(wp),public :: mu_jupiter = 1.266865349218008E+08_wp !! \( \mu_{jupiter} \) -- from https://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/gm_de431.tpc
    real(wp),public :: rad_moon   = 1737.4_wp      !! radius of the Moon
    real(wp),public :: rad_sun    = 695700.0_wp    !! sun radius (km)
    real(wp),public :: rad_earth  = 6378.0_wp      !! earth radius (km)
    integer ,public :: maxnum     = 10000          !! integrator max steps
    integer ,public :: grav_n     = 8              !! max grav degree
    integer ,public :: grav_m     = 8              !! max grav order
    integer, public :: grav_frame = 1 !! 1: iau_moon, 2: moon_pa (splined)
    real(wp),dimension(:),allocatable,public :: xscale_x0 ! scale values for opt vars [must be size 6]
    real(wp),dimension(:),allocatable,public :: fscale_xf ! scale values for constraints [must be size 6]
    real(wp),public :: fscale_rdot = 1.0_wp  !! scale value for the rdot=0 constraint
    logical,public :: use_battin_gravity = .false. !! use Battin gravity formulation
    character(len=:),allocatable,public :: mkspk_path  !! for mkspk: path to mkspk executable. e.g. `kernel/mkspk`
    integer,public :: object_id = -50000                            !! for mkspk: OBJECT_ID
    character(len=:),allocatable,public :: object_name       !! for mkspk: OBJECT_NAME
    character(len=:),allocatable,public :: leapseconds_file  !! for mkspk: LEAPSECONDS_FILE
    character(len=:),allocatable,public :: segment_id        !! for mkspk: SEGMENT_ID
    integer,public :: polynom_degree = 9                     !! for mkspk: POLYNOM_DEGREE
    integer,public :: output_spk_type = 9                    !! for mkspk: OUTPUT_SPK_TYPE
    real(wp),public :: min_export_time_step = 0.0_wp         !! minimum time (sec) step for exporting to mkspk file
                                                             !! [to try and avoid spice interpolation issues for very small time steps]

    type,public :: patch_point
        !! a CR3BP Halo state, to be used as
        !! an initial guess for the full force model.
        real(wp) :: t = zero                !! Time from Periapse (days from periapsis)
        real(wp),dimension(6) :: rv = zero  !! Rx (km)
                                            !! Ry (km)
                                            !! Rz (km)
                                            !! Vx (km/s)
                                            !! Vy (km/s)
                                            !! Vz (km/s) [moon-centered earth-moon rotating frame]
    end type patch_point

    end module parameters_module