CAM
time_manager Module Reference

Data Types

type  var_id
 

Functions/Subroutines

subroutine, public timemgr_init (calendar_in, start_ymd, start_tod, ref_ymd, ref_tod, stop_ymd, stop_tod, perpetual_run, perpetual_ymd)
 
subroutine initialize_clock (start_date, ref_date, curr_date, stop_date)
 
type(esmf_time) function timesetymd (ymd, tod, desc)
 
subroutine, public set_time_float_from_date (time, year, month, day, sec)
 
subroutine, public set_date_from_time_float (time, year, month, day, sec)
 
integer function timegetymd (date, tod)
 
subroutine, public timemgr_set_date_time (new_ymd, new_tod)
 
subroutine, public timemgr_restart (stop_ymd, stop_tod)
 
subroutine, public timemgr_check_restart (calendar_in, start_ymd, start_tod, ref_ymd, ref_tod, dtime_in, perpetual_run, perpetual_ymd)
 
subroutine init_calendar ()
 
subroutine timemgr_print ()
 
subroutine, public advance_timestep ()
 
integer function, public get_step_size ()
 
integer function, public get_nstep ()
 
subroutine, public get_curr_date (yr, mon, day, tod, offset)
 
subroutine, public get_perp_date (yr, mon, day, tod, offset)
 
subroutine, public get_prev_date (yr, mon, day, tod)
 
subroutine, public get_start_date (yr, mon, day, tod)
 
subroutine, public get_ref_date (yr, mon, day, tod)
 
subroutine, public get_curr_time (days, seconds)
 
subroutine, public get_prev_time (days, seconds)
 
real(r8) function, public get_curr_calday (offset)
 
real(r8) function, public get_calday (ymd, tod)
 
character(len=shr_kind_cs) function, public timemgr_get_calendar_cf ()
 
logical function, public timemgr_is_caltype (cal_in)
 
logical function, public is_end_curr_day ()
 
logical function, public is_end_curr_month ()
 
logical function, public is_first_step ()
 
logical function, public is_first_restart_step ()
 
logical function, public is_last_step ()
 
logical function, public is_perpetual ()
 
subroutine, public timemgr_init_restart (File)
 
subroutine, public timemgr_write_restart (File)
 
subroutine, public timemgr_read_restart (File)
 
subroutine timevars_set_names ()
 
subroutine, public timemgr_datediff (ymd1, tod1, ymd2, tod2, days)
 
subroutine, public timemgr_time_ge (ymd1, tod1, ymd2, tod2, time2_ge_time1)
 
subroutine, public timemgr_time_inc (ymd1, tod1, ymd2, tod2, inc_s, inc_h, inc_d)
 
subroutine chkrc (rc, mes)
 

Variables

integer, parameter uninit_int = -999999999
 
integer, public dtime = uninit_int
 
type(esmf_calendar), target, save tm_cal
 
type(esmf_clock), save tm_clock
 
type(esmf_time), save tm_perp_date
 
integer rst_nstep = uninit_int
 
integer rst_step_days = uninit_int
 
integer rst_step_sec = uninit_int
 
integer rst_start_ymd = uninit_int
 
integer rst_start_tod = uninit_int
 
integer rst_stop_ymd = uninit_int
 
integer rst_stop_tod = uninit_int
 
integer rst_ref_ymd = uninit_int
 
integer rst_ref_tod = uninit_int
 
integer rst_curr_ymd = uninit_int
 
integer rst_curr_tod = uninit_int
 
integer rst_perp_ymd = uninit_int
 
character(len=32) rst_calendar
 
logical rst_perp_cal = .false.
 
character(len=32) calendar
 
logical tm_first_restart_step = .false.
 
logical tm_perp_calendar = .false.
 
integer cal_type = uninit_int
 
integer, parameter varcnt =14
 
type(var_id), dimension(varcnt), target timevars
 

Function/Subroutine Documentation

◆ advance_timestep()

subroutine, public time_manager::advance_timestep ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ chkrc()

subroutine time_manager::chkrc ( integer, intent(in)  rc,
character(len=*), intent(in)  mes 
)
private
Here is the caller graph for this function:

◆ get_calday()

real(r8) function, public time_manager::get_calday ( integer, intent(in)  ymd,
integer, intent(in)  tod 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_curr_calday()

real(r8) function, public time_manager::get_curr_calday ( integer, intent(in), optional  offset)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_curr_date()

subroutine, public time_manager::get_curr_date ( integer, intent(out)  yr,
integer, intent(out)  mon,
integer, intent(out)  day,
integer, intent(out)  tod,
integer, intent(in), optional  offset 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_curr_time()

subroutine, public time_manager::get_curr_time ( integer, intent(out)  days,
integer, intent(out)  seconds 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_nstep()

integer function, public time_manager::get_nstep ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_perp_date()

subroutine, public time_manager::get_perp_date ( integer, intent(out)  yr,
integer, intent(out)  mon,
integer, intent(out)  day,
integer, intent(out)  tod,
integer, intent(in), optional  offset 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_prev_date()

subroutine, public time_manager::get_prev_date ( integer, intent(out)  yr,
integer, intent(out)  mon,
integer, intent(out)  day,
integer, intent(out)  tod 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_prev_time()

subroutine, public time_manager::get_prev_time ( integer, intent(out)  days,
integer, intent(out)  seconds 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_ref_date()

subroutine, public time_manager::get_ref_date ( integer, intent(out)  yr,
integer, intent(out)  mon,
integer, intent(out)  day,
integer, intent(out)  tod 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_start_date()

subroutine, public time_manager::get_start_date ( integer, intent(out)  yr,
integer, intent(out)  mon,
integer, intent(out)  day,
integer, intent(out)  tod 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_step_size()

integer function, public time_manager::get_step_size ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_calendar()

subroutine time_manager::init_calendar ( )
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialize_clock()

subroutine time_manager::initialize_clock ( type(esmf_time), intent(inout)  start_date,
type(esmf_time), intent(inout)  ref_date,
type(esmf_time), intent(inout)  curr_date,
type(esmf_time), intent(inout)  stop_date 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_end_curr_day()

logical function, public time_manager::is_end_curr_day ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_end_curr_month()

logical function, public time_manager::is_end_curr_month ( )
Here is the call graph for this function:

◆ is_first_restart_step()

logical function, public time_manager::is_first_restart_step ( )
Here is the caller graph for this function:

◆ is_first_step()

logical function, public time_manager::is_first_step ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_last_step()

logical function, public time_manager::is_last_step ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_perpetual()

logical function, public time_manager::is_perpetual ( )
Here is the caller graph for this function:

◆ set_date_from_time_float()

subroutine, public time_manager::set_date_from_time_float ( real(r8), intent(in)  time,
integer, intent(out)  year,
integer, intent(out)  month,
integer, intent(out)  day,
integer, intent(out)  sec 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_time_float_from_date()

subroutine, public time_manager::set_time_float_from_date ( real(r8), intent(out)  time,
integer, intent(in)  year,
integer, intent(in)  month,
integer, intent(in)  day,
integer, intent(in)  sec 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ timegetymd()

integer function time_manager::timegetymd ( type(esmf_time), intent(inout)  date,
integer, intent(out), optional  tod 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ timemgr_check_restart()

subroutine, public time_manager::timemgr_check_restart ( character(len=*), intent(in)  calendar_in,
integer, intent(in)  start_ymd,
integer, intent(in)  start_tod,
integer, intent(in)  ref_ymd,
integer, intent(in)  ref_tod,
integer, intent(in)  dtime_in,
logical, intent(in)  perpetual_run,
integer, intent(in)  perpetual_ymd 
)
Here is the caller graph for this function:

◆ timemgr_datediff()

subroutine, public time_manager::timemgr_datediff ( integer, intent(in)  ymd1,
integer, intent(in)  tod1,
integer, intent(in)  ymd2,
integer, intent(in)  tod2,
real(r8)  days 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ timemgr_get_calendar_cf()

character(len=shr_kind_cs) function, public time_manager::timemgr_get_calendar_cf ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ timemgr_init()

subroutine, public time_manager::timemgr_init ( character(len=*), intent(in)  calendar_in,
integer, intent(in)  start_ymd,
integer, intent(in)  start_tod,
integer, intent(in)  ref_ymd,
integer, intent(in)  ref_tod,
integer, intent(in)  stop_ymd,
integer, intent(in)  stop_tod,
logical, intent(in)  perpetual_run,
integer, intent(in)  perpetual_ymd 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ timemgr_init_restart()

subroutine, public time_manager::timemgr_init_restart ( type(file_desc_t)  File)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ timemgr_is_caltype()

logical function, public time_manager::timemgr_is_caltype ( character(len=*), intent(in)  cal_in)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ timemgr_print()

subroutine time_manager::timemgr_print ( )
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ timemgr_read_restart()

subroutine, public time_manager::timemgr_read_restart ( type(file_desc_t)  File)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ timemgr_restart()

subroutine, public time_manager::timemgr_restart ( integer, intent(in)  stop_ymd,
integer, intent(in)  stop_tod 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ timemgr_set_date_time()

subroutine, public time_manager::timemgr_set_date_time ( integer, intent(in)  new_ymd,
integer, intent(in)  new_tod 
)
Here is the call graph for this function:

◆ timemgr_time_ge()

subroutine, public time_manager::timemgr_time_ge ( integer, intent(in)  ymd1,
integer, intent(in)  tod1,
integer, intent(in)  ymd2,
integer, intent(in)  tod2,
logical  time2_ge_time1 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ timemgr_time_inc()

subroutine, public time_manager::timemgr_time_inc ( integer, intent(in)  ymd1,
integer, intent(in)  tod1,
integer, intent(out)  ymd2,
integer, intent(out)  tod2,
integer, intent(in), optional  inc_s,
integer, intent(in), optional  inc_h,
integer, intent(in), optional  inc_d 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ timemgr_write_restart()

subroutine, public time_manager::timemgr_write_restart ( type(file_desc_t)  File)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ timesetymd()

type(esmf_time) function time_manager::timesetymd ( integer, intent(in)  ymd,
integer, intent(in)  tod,
character(len=*), intent(in)  desc 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ timevars_set_names()

subroutine time_manager::timevars_set_names ( )
private
Here is the caller graph for this function:

Variable Documentation

◆ cal_type

integer time_manager::cal_type = uninit_int
private

◆ calendar

character(len=32) time_manager::calendar
private

◆ dtime

integer, public time_manager::dtime = uninit_int

◆ rst_calendar

character(len=32) time_manager::rst_calendar
private

◆ rst_curr_tod

integer time_manager::rst_curr_tod = uninit_int
private

◆ rst_curr_ymd

integer time_manager::rst_curr_ymd = uninit_int
private

◆ rst_nstep

integer time_manager::rst_nstep = uninit_int
private

◆ rst_perp_cal

logical time_manager::rst_perp_cal = .false.
private

◆ rst_perp_ymd

integer time_manager::rst_perp_ymd = uninit_int
private

◆ rst_ref_tod

integer time_manager::rst_ref_tod = uninit_int
private

◆ rst_ref_ymd

integer time_manager::rst_ref_ymd = uninit_int
private

◆ rst_start_tod

integer time_manager::rst_start_tod = uninit_int
private

◆ rst_start_ymd

integer time_manager::rst_start_ymd = uninit_int
private

◆ rst_step_days

integer time_manager::rst_step_days = uninit_int
private

◆ rst_step_sec

integer time_manager::rst_step_sec = uninit_int
private

◆ rst_stop_tod

integer time_manager::rst_stop_tod = uninit_int
private

◆ rst_stop_ymd

integer time_manager::rst_stop_ymd = uninit_int
private

◆ timevars

type(var_id), dimension(varcnt), target time_manager::timevars
private

◆ tm_cal

type(esmf_calendar), target, save time_manager::tm_cal
private

◆ tm_clock

type(esmf_clock), save time_manager::tm_clock
private

◆ tm_first_restart_step

logical time_manager::tm_first_restart_step = .false.
private

◆ tm_perp_calendar

logical time_manager::tm_perp_calendar = .false.
private

◆ tm_perp_date

type(esmf_time), save time_manager::tm_perp_date
private

◆ uninit_int

integer, parameter time_manager::uninit_int = -999999999
private

◆ varcnt

integer, parameter time_manager::varcnt =14
private