Initialize the Jacchia-Roberts module with central body parameters.
Can use a space weather file for dynamic space weather data or specify override values directly. [one or the other must be input]
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(jacchia_roberts_type), | intent(inout) | :: | me | |||
| real(kind=dp), | intent(in) | :: | cb_polar_radius |
Polar radius of central body (km) |
||
| integer(kind=ip), | intent(out) | :: | status |
Output status (0=success, non-zero=error) |
||
| character(len=*), | intent(in), | optional | :: | filename |
Path to CSSI space weather file |
|
| real(kind=dp), | intent(in), | optional | :: | f107_override |
Override value for F10.7 if not using space weather file |
|
| real(kind=dp), | intent(in), | optional | :: | f107a_override |
Override value for F10.7a if not using space weather file |
|
| real(kind=dp), | intent(in), | optional | :: | kp_override |
Override value for Kp index if not using space weather file |
subroutine jr_init(me, cb_polar_radius, status, filename, & f107_override, f107a_override, kp_override) class(jacchia_roberts_type), intent(inout) :: me real(dp), intent(in) :: cb_polar_radius !! Polar radius of central body (km) integer(ip), intent(out) :: status !! Output status (0=success, non-zero=error) character(len=*), intent(in), optional :: filename !! Path to CSSI space weather file real(dp), intent(in), optional :: f107_override !! Override value for F10.7 if not using space weather file real(dp), intent(in), optional :: f107a_override !! Override value for F10.7a if not using space weather file real(dp), intent(in), optional :: kp_override !! Override value for Kp index if not using space weather file me%cb_polar_radius = cb_polar_radius me%cb_polar_squared = cb_polar_radius * cb_polar_radius ! Initialize other state variables me%root1 = 0.0_dp me%root2 = 0.0_dp me%x_root = 0.0_dp me%y_root = 0.0_dp me%t_infinity = 0.0_dp me%tx = 0.0_dp me%sum = 0.0_dp me%use_sw_file = .false. if (present(filename) .and. .not. present(f107_override) .and. & .not. present(f107a_override) .and. & .not. present(kp_override)) then ! Use space weather file; override values not provided me%use_sw_file = .true. call me%sw_data%initialize(filename, status) else if (present(f107_override) .and. present(f107a_override) .and. present(kp_override)) then ! user specified values directly; do not use space weather file me%f107_override = f107_override me%f107a_override = f107a_override me%kp_override = kp_override status = 0 else write(*,*) 'ERROR: No space weather file provided and override values not fully specified' status = 2 end if end subroutine jr_init