clm_time_manager Module



Variables

Type Visibility Attributes Name Initial
character(len=*), public, parameter :: NO_LEAP_C = 'NO_LEAP'
character(len=*), public, parameter :: GREGORIAN_C = 'GREGORIAN'

Functions

public function get_curr_ESMF_Time()

Arguments

None

Return Value type(ESMF_Time)

public function get_step_size()

Arguments

None

Return Value integer

public function get_step_size_real()

Arguments

None

Return Value real(kind=r8)

public function get_rad_step_size()

Arguments

None

Return Value integer

public function get_nstep()

Arguments

None

Return Value integer

Arguments

None

Return Value integer

public function get_driver_start_ymd(tod)

Arguments

Type IntentOptional Attributes Name
integer, intent(out), optional :: tod

Return Value integer

public function get_curr_calday(offset)

!!!!!!!!!!!! WARNING HACK TO ENABLE Gregorian CALENDAR WITH SHR_ORB !!!!!!!!!!!!!!!!!!!! !! The following hack fakes day 366 by reusing day 365. This is just because the !!!!!! !! current shr_orb_decl calculation can't handle days > 366. !!!!!! !! Dani Bundy-Coleman and Erik Kluzek Aug/2008 !!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!! END HACK TO ENABLE Gregorian CALENDAR WITH SHR_ORB !!!!!!!!!!!!!!!!!!!!!!!!

Arguments

Type IntentOptional Attributes Name
integer, intent(in), optional :: offset

Return Value real(kind=r8)

public function get_calday(ymd, tod)

!!!!!!!!!!!! WARNING HACK TO ENABLE Gregorian CALENDAR WITH SHR_ORB !!!!!!!!!!!!!!!!!!!! !! The following hack fakes day 366 by reusing day 365. This is just because the !!!!!! !! current shr_orb_decl calculation can't handle days > 366. !!!!!! !! Dani Bundy-Coleman and Erik Kluzek Aug/2008 !!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!! END HACK TO ENABLE Gregorian CALENDAR WITH SHR_ORB !!!!!!!!!!!!!!!!!!!!!!!!

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ymd
integer, intent(in) :: tod

Return Value real(kind=r8)

public function get_calendar()

Arguments

None

Return Value character(len=ESMF_MAXSTR)

public function get_days_per_year(offset)

Arguments

Type IntentOptional Attributes Name
integer, intent(in), optional :: offset

Return Value integer

public function get_curr_yearfrac(offset)

Arguments

Type IntentOptional Attributes Name
integer, intent(in), optional :: offset

Return Value real(kind=r8)

public function get_prev_yearfrac()

Arguments

None

Return Value real(kind=r8)

public function get_local_timestep_time(londeg, offset)

Arguments

Type IntentOptional Attributes Name
real(kind=r8), intent(in) :: londeg
integer, intent(in), optional :: offset

Return Value integer

public function get_local_time(londeg, starttime, offset)

Arguments

Type IntentOptional Attributes Name
real(kind=r8), intent(in) :: londeg
integer, intent(in), optional :: starttime
integer, intent(in), optional :: offset

Return Value integer

public function is_near_local_noon(londeg, deltasec)

Arguments

Type IntentOptional Attributes Name
real(kind=r8), intent(in) :: londeg
integer, intent(in) :: deltasec

Return Value logical

public function is_beg_curr_day()

Arguments

None

Return Value logical

public function is_end_curr_day()

Arguments

None

Return Value logical

public function is_end_curr_month()

Arguments

None

Return Value logical

public function is_beg_curr_year()

Arguments

None

Return Value logical

public function is_end_curr_year()

Arguments

None

Return Value logical

public function is_first_step()

Arguments

None

Return Value logical

public function is_first_restart_step()

Arguments

None

Return Value logical

Arguments

None

Return Value logical

public function is_last_step()

Arguments

None

Return Value logical

public function is_perpetual()

Arguments

None

Return Value logical

public function is_restart()

Arguments

None

Return Value logical


Subroutines

public subroutine get_timemgr_defaults(calendar_out, start_ymd_out, start_tod_out, ref_ymd_out, ref_tod_out, stop_ymd_out, stop_tod_out, nelapse_out, dtime_out)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(out), optional :: calendar_out
integer, intent(out), optional :: start_ymd_out
integer, intent(out), optional :: start_tod_out
integer, intent(out), optional :: ref_ymd_out
integer, intent(out), optional :: ref_tod_out
integer, intent(out), optional :: stop_ymd_out
integer, intent(out), optional :: stop_tod_out
integer, intent(out), optional :: nelapse_out
integer, intent(out), optional :: dtime_out

public subroutine set_timemgr_init(calendar_in, start_ymd_in, start_tod_in, ref_ymd_in, ref_tod_in, stop_ymd_in, stop_tod_in, perpetual_run_in, perpetual_ymd_in, nelapse_in, dtime_in)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in), optional :: calendar_in
integer, intent(in), optional :: start_ymd_in
integer, intent(in), optional :: start_tod_in
integer, intent(in), optional :: ref_ymd_in
integer, intent(in), optional :: ref_tod_in
integer, intent(in), optional :: stop_ymd_in
integer, intent(in), optional :: stop_tod_in
logical, intent(in), optional :: perpetual_run_in
integer, intent(in), optional :: perpetual_ymd_in
integer, intent(in), optional :: nelapse_in
integer, intent(in), optional :: dtime_in

public subroutine timemgr_init()

Arguments

None

public subroutine timemgr_restart_io(ncid, flag)

Arguments

Type IntentOptional Attributes Name
type(file_desc_t), intent(inout) :: ncid
character(len=*), intent(in) :: flag

public subroutine timemgr_restart()

Arguments

None

public subroutine advance_timestep()

Arguments

None

public subroutine get_clock(clock)

Arguments

Type IntentOptional Attributes Name
type(ESMF_Clock), intent(inout) :: clock

public subroutine update_DA_nstep()

Arguments

None

public subroutine update_rad_dtime(doalb)

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: doalb

public subroutine get_curr_date(yr, mon, day, tod, offset)

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: yr
integer, intent(out) :: mon
integer, intent(out) :: day
integer, intent(out) :: tod
integer, intent(in), optional :: offset

public subroutine get_perp_date(yr, mon, day, tod, offset)

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: yr
integer, intent(out) :: mon
integer, intent(out) :: day
integer, intent(out) :: tod
integer, intent(in), optional :: offset

public subroutine get_prev_date(yr, mon, day, tod)

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: yr
integer, intent(out) :: mon
integer, intent(out) :: day
integer, intent(out) :: tod

public subroutine get_start_date(yr, mon, day, tod)

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: yr
integer, intent(out) :: mon
integer, intent(out) :: day
integer, intent(out) :: tod

public subroutine get_ref_date(yr, mon, day, tod)

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: yr
integer, intent(out) :: mon
integer, intent(out) :: day
integer, intent(out) :: tod

public subroutine get_curr_time(days, seconds)

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: days
integer, intent(out) :: seconds

public subroutine get_prev_time(days, seconds)

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: days
integer, intent(out) :: seconds

public subroutine get_rest_date(ncid, yr)

Arguments

Type IntentOptional Attributes Name
type(file_desc_t), intent(inout) :: ncid
integer, intent(out) :: yr

public subroutine set_nextsw_cday(nextsw_cday_in)

Arguments

Type IntentOptional Attributes Name
real(kind=r8), intent(in) :: nextsw_cday_in

public subroutine timemgr_datediff(ymd1, tod1, ymd2, tod2, days)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ymd1
integer, intent(in) :: tod1
integer, intent(in) :: ymd2
integer, intent(in) :: tod2
real(kind=r8) :: days

public subroutine timemgr_reset()

Arguments

None

public subroutine for_test_set_curr_date(yr, mon, day, tod)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: yr
integer, intent(in) :: mon
integer, intent(in) :: day
integer, intent(in) :: tod