SCALE-RM
Functions/Subroutines | Variables
mod_admin_time Module Reference

module ADMIN TIME More...

Functions/Subroutines

subroutine, public admin_time_setup (setup_TimeIntegration)
 Setup. More...
 
subroutine, public admin_time_checkstate
 Evaluate component execution. More...
 
subroutine, public admin_time_advance
 Advance the time & evaluate restart & stop. More...
 

Variables

real(dp), public time_dtsec_atmos_restart
 time interval of atmosphere restart [sec] More...
 
real(dp), public time_dtsec_ocean_restart
 time interval of ocean restart [sec] More...
 
real(dp), public time_dtsec_land_restart
 time interval of land restart [sec] More...
 
real(dp), public time_dtsec_urban_restart
 time interval of urban restart [sec] More...
 
real(dp), public time_dtsec_resume
 time interval for resume [sec] More...
 
integer, public time_dstep_atmos_restart
 interval of atmosphere restart [step] More...
 
integer, public time_dstep_ocean_restart
 interval of ocean restart [step] More...
 
integer, public time_dstep_land_restart
 interval of land restart [step] More...
 
integer, public time_dstep_urban_restart
 interval of urban restart [step] More...
 
integer, public time_dstep_resume
 interval for resume [step] More...
 
logical, public time_doatmos_step
 execute atmosphere component in this step? More...
 
logical, public time_doatmos_dyn
 execute dynamics in this step? More...
 
logical, public time_doatmos_phy_cp
 execute physics in this step? (cumulus ) More...
 
logical, public time_doatmos_phy_mp
 execute physics in this step? (microphysics) More...
 
logical, public time_doatmos_phy_rd
 execute physics in this step? (radiation ) More...
 
logical, public time_doatmos_phy_sf
 execute physics in this step? (surface flux) More...
 
logical, public time_doatmos_phy_tb
 execute physics in this step? (turbulence ) More...
 
logical, public time_doatmos_phy_bl
 execute physics in this step? (boudary layer ) More...
 
logical, public time_doatmos_phy_ch
 execute physics in this step? (chemistry ) More...
 
logical, public time_doatmos_phy_ae
 execute physics in this step? (aerosol ) More...
 
logical, public time_doatmos_restart
 execute atmosphere restart output in this step? More...
 
logical, public time_doocean_step
 execute ocean component in this step? More...
 
logical, public time_doocean_restart
 execute ocean restart output in this step? More...
 
logical, public time_doland_step
 execute land component in this step? More...
 
logical, public time_doland_restart
 execute land restart output in this step? More...
 
logical, public time_dourban_step
 execute urban component in this step? More...
 
logical, public time_dourban_restart
 execute urban restart output in this step? More...
 
logical, public time_doresume
 resume in this step? More...
 
logical, public time_doend
 finish program in this step? More...
 

Detailed Description

module ADMIN TIME

Description
Time management for SCALE-RM
Author
Team SCALE
NAMELIST
  • PARAM_TIME
    nametypedefault valuecomment
    TIME_STARTDATE integer, dimension(6) (/ -999, 1, 1, 0, 0, 0 /)
    TIME_STARTMS real(DP) 0.0_DP [millisec]
    TIME_DURATION real(DP) UNDEF8
    TIME_DURATION_UNIT character(len=H_SHORT) "SEC"
    TIME_DT real(DP) UNDEF8
    TIME_DT_UNIT character(len=H_SHORT) "SEC"
    TIME_DT_ATMOS_DYN real(DP) UNDEF8
    TIME_DT_ATMOS_DYN_UNIT character(len=H_SHORT) "SEC"
    TIME_NSTEP_ATMOS_DYN integer -1
    TIME_DT_ATMOS_PHY_CP real(DP) UNDEF8
    TIME_DT_ATMOS_PHY_CP_UNIT character(len=H_SHORT) ""
    TIME_DT_ATMOS_PHY_MP real(DP) UNDEF8
    TIME_DT_ATMOS_PHY_MP_UNIT character(len=H_SHORT) ""
    TIME_DT_ATMOS_PHY_RD real(DP) UNDEF8
    TIME_DT_ATMOS_PHY_RD_UNIT character(len=H_SHORT) ""
    TIME_DT_ATMOS_PHY_SF real(DP) UNDEF8
    TIME_DT_ATMOS_PHY_SF_UNIT character(len=H_SHORT) ""
    TIME_DT_ATMOS_PHY_TB real(DP) UNDEF8
    TIME_DT_ATMOS_PHY_TB_UNIT character(len=H_SHORT) ""
    TIME_DT_ATMOS_PHY_BL real(DP) UNDEF8
    TIME_DT_ATMOS_PHY_BL_UNIT character(len=H_SHORT) ""
    TIME_DT_ATMOS_PHY_CH real(DP) UNDEF8
    TIME_DT_ATMOS_PHY_CH_UNIT character(len=H_SHORT) ""
    TIME_DT_ATMOS_PHY_AE real(DP) UNDEF8
    TIME_DT_ATMOS_PHY_AE_UNIT character(len=H_SHORT) ""
    TIME_DT_ATMOS_RESTART real(DP) UNDEF8
    TIME_DT_ATMOS_RESTART_UNIT character(len=H_SHORT) ""
    TIME_DT_OCEAN real(DP) UNDEF8
    TIME_DT_OCEAN_UNIT character(len=H_SHORT) ""
    TIME_DT_OCEAN_RESTART real(DP) UNDEF8
    TIME_DT_OCEAN_RESTART_UNIT character(len=H_SHORT) ""
    TIME_DT_LAND real(DP) UNDEF8
    TIME_DT_LAND_UNIT character(len=H_SHORT) ""
    TIME_DT_LAND_RESTART real(DP) UNDEF8
    TIME_DT_LAND_RESTART_UNIT character(len=H_SHORT) ""
    TIME_DT_URBAN real(DP) UNDEF8
    TIME_DT_URBAN_UNIT character(len=H_SHORT) ""
    TIME_DT_URBAN_RESTART real(DP) UNDEF8
    TIME_DT_URBAN_RESTART_UNIT character(len=H_SHORT) ""
    TIME_DT_WALLCLOCK_CHECK real(DP) UNDEF8
    TIME_DT_WALLCLOCK_CHECK_UNIT character(len=H_SHORT) ""
    TIME_DT_RESUME real(DP) UNDEF8
    TIME_DT_RESUME_UNIT character(len=H_SHORT) ""
    TIME_WALLCLOCK_LIMIT real(DP) -1.0_DP Elapse time limit of wall clock time [sec]
    TIME_WALLCLOCK_SAFE real(DP) 0.9_DP Safety coefficient for elapse time limit
    DEBUG logical .false.

History Output
No history output

Function/Subroutine Documentation

◆ admin_time_setup()

subroutine, public mod_admin_time::admin_time_setup ( logical, intent(in)  setup_TimeIntegration)

Setup.

Definition at line 117 of file mod_admin_time.F90.

References mod_atmos_vars::atmos_restart_in_basename, scale_calendar::calendar_adjust_daysec(), scale_calendar::calendar_cfunits2sec(), scale_calendar::calendar_combine_daysec(), scale_calendar::calendar_date2char(), scale_calendar::calendar_date2daysec(), scale_calendar::calendar_daysec2date(), scale_calendar::calendar_unit2sec(), scale_const::const_undef8, scale_io::io_fid_conf, scale_prc::prc_abort(), scale_prc::prc_mpitime(), scale_prc::prc_myrank, scale_time::time_dstep_atmos_dyn, scale_time::time_dstep_atmos_phy_ae, scale_time::time_dstep_atmos_phy_bl, scale_time::time_dstep_atmos_phy_ch, scale_time::time_dstep_atmos_phy_cp, scale_time::time_dstep_atmos_phy_mp, scale_time::time_dstep_atmos_phy_rd, scale_time::time_dstep_atmos_phy_sf, scale_time::time_dstep_atmos_phy_tb, time_dstep_atmos_restart, scale_time::time_dstep_land, time_dstep_land_restart, scale_time::time_dstep_ocean, time_dstep_ocean_restart, time_dstep_resume, scale_time::time_dstep_urban, time_dstep_urban_restart, scale_time::time_dstep_wallclock_check, scale_time::time_dtsec, scale_time::time_dtsec_atmos_dyn, scale_time::time_dtsec_atmos_phy_ae, scale_time::time_dtsec_atmos_phy_bl, scale_time::time_dtsec_atmos_phy_ch, scale_time::time_dtsec_atmos_phy_cp, scale_time::time_dtsec_atmos_phy_mp, scale_time::time_dtsec_atmos_phy_rd, scale_time::time_dtsec_atmos_phy_sf, scale_time::time_dtsec_atmos_phy_tb, time_dtsec_atmos_restart, scale_time::time_dtsec_land, time_dtsec_land_restart, scale_time::time_dtsec_ocean, time_dtsec_ocean_restart, time_dtsec_resume, scale_time::time_dtsec_urban, time_dtsec_urban_restart, scale_time::time_dtsec_wallclock_check, scale_time::time_nowdate, scale_time::time_nowday, scale_time::time_nowdaysec, scale_time::time_nowms, scale_time::time_nowsec, scale_time::time_nowstep, scale_time::time_nstep, scale_time::time_nstep_atmos_dyn, scale_time::time_offset_year, and scale_time::time_startdaysec.

Referenced by mod_rm_driver::rm_driver(), and mod_rm_prep::rm_prep().

117  use scale_file, only: &
118  file_get_attribute
119  use scale_prc, only: &
120  prc_myrank, &
121  prc_abort, &
123  use scale_const, only: &
124  undef8 => const_undef8
125  use scale_calendar, only: &
133  use scale_time, only: &
134  time_dtsec, &
135  time_nowdate, &
136  time_nowms, &
137  time_nowday, &
138  time_nowsec, &
139  time_nowdaysec, &
140  time_nowstep, &
141  time_nstep, &
143  nstep_dyn => time_nstep_atmos_dyn, &
153  time_dtsec_land, &
166  time_dstep_land, &
171  use mod_atmos_vars, only: &
172  restart_in_basename => atmos_restart_in_basename
173  implicit none
174 
175  logical, intent(in) :: setup_timeintegration
176 
177  real(DP) :: time_duration = undef8
178  character(len=H_SHORT) :: time_duration_unit = "SEC"
179  real(DP) :: time_dt = undef8
180  character(len=H_SHORT) :: time_dt_unit = "SEC"
181 
182  real(DP) :: time_dt_atmos_dyn = undef8
183  character(len=H_SHORT) :: time_dt_atmos_dyn_unit = "SEC"
184  integer :: time_nstep_atmos_dyn = -1
185  real(DP) :: time_dt_atmos_phy_cp = undef8
186  character(len=H_SHORT) :: time_dt_atmos_phy_cp_unit = ""
187  real(DP) :: time_dt_atmos_phy_mp = undef8
188  character(len=H_SHORT) :: time_dt_atmos_phy_mp_unit = ""
189  real(DP) :: time_dt_atmos_phy_rd = undef8
190  character(len=H_SHORT) :: time_dt_atmos_phy_rd_unit = ""
191  real(DP) :: time_dt_atmos_phy_sf = undef8
192  character(len=H_SHORT) :: time_dt_atmos_phy_sf_unit = ""
193  real(DP) :: time_dt_atmos_phy_tb = undef8
194  character(len=H_SHORT) :: time_dt_atmos_phy_tb_unit = ""
195  real(DP) :: time_dt_atmos_phy_bl = undef8
196  character(len=H_SHORT) :: time_dt_atmos_phy_bl_unit = ""
197  real(DP) :: time_dt_atmos_phy_ch = undef8
198  character(len=H_SHORT) :: time_dt_atmos_phy_ch_unit = ""
199  real(DP) :: time_dt_atmos_phy_ae = undef8
200  character(len=H_SHORT) :: time_dt_atmos_phy_ae_unit = ""
201  real(DP) :: time_dt_atmos_restart = undef8
202  character(len=H_SHORT) :: time_dt_atmos_restart_unit = ""
203 
204  real(DP) :: time_dt_ocean = undef8
205  character(len=H_SHORT) :: time_dt_ocean_unit = ""
206  real(DP) :: time_dt_ocean_restart = undef8
207  character(len=H_SHORT) :: time_dt_ocean_restart_unit = ""
208 
209  real(DP) :: time_dt_land = undef8
210  character(len=H_SHORT) :: time_dt_land_unit = ""
211  real(DP) :: time_dt_land_restart = undef8
212  character(len=H_SHORT) :: time_dt_land_restart_unit = ""
213 
214  real(DP) :: time_dt_urban = undef8
215  character(len=H_SHORT) :: time_dt_urban_unit = ""
216  real(DP) :: time_dt_urban_restart = undef8
217  character(len=H_SHORT) :: time_dt_urban_restart_unit = ""
218 
219  real(DP) :: time_dt_resume = undef8
220  character(len=H_SHORT) :: time_dt_resume_unit = ""
221 
222  real(DP) :: time_dt_wallclock_check = undef8
223  character(len=H_SHORT) :: time_dt_wallclock_check_unit = ""
224 
225  namelist / param_time / &
226  time_startdate, &
227  time_startms, &
228  time_duration, &
229  time_duration_unit, &
230  time_dt, &
231  time_dt_unit, &
232  time_dt_atmos_dyn, &
233  time_dt_atmos_dyn_unit, &
235  time_dt_atmos_phy_cp, &
236  time_dt_atmos_phy_cp_unit, &
237  time_dt_atmos_phy_mp, &
238  time_dt_atmos_phy_mp_unit, &
239  time_dt_atmos_phy_rd, &
240  time_dt_atmos_phy_rd_unit, &
241  time_dt_atmos_phy_sf, &
242  time_dt_atmos_phy_sf_unit, &
243  time_dt_atmos_phy_tb, &
244  time_dt_atmos_phy_tb_unit, &
245  time_dt_atmos_phy_bl, &
246  time_dt_atmos_phy_bl_unit, &
247  time_dt_atmos_phy_ch, &
248  time_dt_atmos_phy_ch_unit, &
249  time_dt_atmos_phy_ae, &
250  time_dt_atmos_phy_ae_unit, &
251  time_dt_atmos_restart, &
252  time_dt_atmos_restart_unit, &
253  time_dt_ocean, &
254  time_dt_ocean_unit, &
255  time_dt_ocean_restart, &
256  time_dt_ocean_restart_unit, &
257  time_dt_land, &
258  time_dt_land_unit, &
259  time_dt_land_restart, &
260  time_dt_land_restart_unit, &
261  time_dt_urban, &
262  time_dt_urban_unit, &
263  time_dt_urban_restart, &
264  time_dt_urban_restart_unit, &
265  time_dt_wallclock_check, &
266  time_dt_wallclock_check_unit, &
267  time_dt_resume, &
268  time_dt_resume_unit, &
269  time_wallclock_limit, &
270  time_wallclock_safe, &
271  debug
272 
273  integer :: dateday
274  real(DP) :: datesec
275  real(DP) :: cftime(1)
276  character(len=H_MID) :: cfunits
277 
278  real(DP) :: time_durationsec
279  character(len=27) :: startchardate
280  character(len=27) :: endchardate
281 
282  integer :: ierr
283  !---------------------------------------------------------------------------
284 
285  log_newline
286  log_info("ADMIN_TIME_setup",*) 'Setup'
287 
289 
290  !--- read namelist
291  rewind(io_fid_conf)
292  read(io_fid_conf,nml=param_time,iostat=ierr)
293  if( ierr < 0 ) then !--- missing
294  log_info("ADMIN_TIME_setup",*) 'Not found namelist. Default used.'
295  elseif( ierr > 0 ) then !--- fatal error
296  log_error("ADMIN_TIME_setup",*) 'Not appropriate names in namelist PARAM_TIME. Check!'
297  call prc_abort
298  endif
299  log_nml(param_time)
300 
301  ! check time setting
302  if ( setup_timeintegration ) then
303 
304  log_newline
305  log_info("ADMIN_TIME_setup",*) 'Check time interval and unit for each component '
306 
307  if ( time_dt == undef8 ) then
308  log_error("ADMIN_TIME_setup",*) 'Not found TIME_DT. STOP.'
309  call prc_abort
310  endif
311  if ( time_duration == undef8 ) then
312  log_error("ADMIN_TIME_setup",*) 'Not found TIME_DURATION. STOP.'
313  call prc_abort
314  endif
315 
316  ! DYN
317  if ( time_dt_atmos_dyn == undef8 ) then
318  if ( time_nstep_atmos_dyn < 0 ) then
319  log_info_cont(*) 'Not found TIME_DT_ATMOS_DYN. TIME_DT is used.'
320  time_dt_atmos_dyn = time_dt
321  endif
322  endif
323  if ( time_dt_atmos_dyn_unit == '' ) then
324  log_info_cont(*) 'Not found TIME_DT_ATMOS_DYN_UNIT. TIME_DT_UNIT is used.'
325  time_dt_atmos_dyn_unit = time_dt_unit
326  endif
327  ! PHY_CP
328  if ( time_dt_atmos_phy_cp == undef8 ) then
329  log_info_cont(*) 'Not found TIME_DT_ATMOS_PHY_CP. TIME_DT is used.'
330  time_dt_atmos_phy_cp = time_dt
331  endif
332  if ( time_dt_atmos_phy_cp_unit == '' ) then
333  log_info_cont(*) 'Not found TIME_DT_ATMOS_PHY_CP_UNIT. TIME_DT_UNIT is used.'
334  time_dt_atmos_phy_cp_unit = time_dt_unit
335  endif
336  ! PHY_MP
337  if ( time_dt_atmos_phy_mp == undef8 ) then
338  log_info_cont(*) 'Not found TIME_DT_ATMOS_PHY_MP. TIME_DT is used.'
339  time_dt_atmos_phy_mp = time_dt
340  endif
341  if ( time_dt_atmos_phy_mp_unit == '' ) then
342  log_info_cont(*) 'Not found TIME_DT_ATMOS_PHY_MP_UNIT. TIME_DT_UNIT is used.'
343  time_dt_atmos_phy_mp_unit = time_dt_unit
344  endif
345  ! PHY_RD
346  if ( time_dt_atmos_phy_rd == undef8 ) then
347  log_info_cont(*) 'Not found TIME_DT_ATMOS_PHY_RD. TIME_DT is used.'
348  time_dt_atmos_phy_rd = time_dt
349  endif
350  if ( time_dt_atmos_phy_rd_unit == '' ) then
351  log_info_cont(*) 'Not found TIME_DT_ATMOS_PHY_RD_UNIT. TIME_DT_UNIT is used.'
352  time_dt_atmos_phy_rd_unit = time_dt_unit
353  endif
354  ! PHY_SF
355  if ( time_dt_atmos_phy_sf == undef8 ) then
356  log_info_cont(*) 'Not found TIME_DT_ATMOS_PHY_SF. TIME_DT is used.'
357  time_dt_atmos_phy_sf = time_dt
358  endif
359  if ( time_dt_atmos_phy_sf_unit == '' ) then
360  log_info_cont(*) 'Not found TIME_DT_ATMOS_PHY_SF_UNIT. TIME_DT_UNIT is used.'
361  time_dt_atmos_phy_sf_unit = time_dt_unit
362  endif
363  ! PHY_TB
364  if ( time_dt_atmos_phy_tb == undef8 ) then
365  log_info_cont(*) 'Not found TIME_DT_ATMOS_PHY_TB. TIME_DT is used.'
366  time_dt_atmos_phy_tb = time_dt
367  endif
368  if ( time_dt_atmos_phy_tb_unit == '' ) then
369  log_info_cont(*) 'Not found TIME_DT_ATMOS_PHY_TB_UNIT. TIME_DT_UNIT is used.'
370  time_dt_atmos_phy_tb_unit = time_dt_unit
371  endif
372  ! PHY_BL
373  if ( time_dt_atmos_phy_bl == undef8 ) then
374  log_info_cont(*) 'Not found TIME_DT_ATMOS_PHY_BL. TIME_DT is used.'
375  time_dt_atmos_phy_bl = time_dt
376  endif
377  if ( time_dt_atmos_phy_bl_unit == '' ) then
378  log_info_cont(*) 'Not found TIME_DT_ATMOS_PHY_BL_UNIT. TIME_DT_UNIT is used.'
379  time_dt_atmos_phy_bl_unit = time_dt_unit
380  endif
381  ! PHY_CH
382  if ( time_dt_atmos_phy_ch == undef8 ) then
383  log_info_cont(*) 'Not found TIME_DT_ATMOS_PHY_CH. TIME_DT is used.'
384  time_dt_atmos_phy_ch = time_dt
385  endif
386  if ( time_dt_atmos_phy_ch_unit == '' ) then
387  log_info_cont(*) 'Not found TIME_DT_ATMOS_PHY_CH_UNIT. TIME_DT_UNIT is used.'
388  time_dt_atmos_phy_ch_unit = time_dt_unit
389  endif
390  ! PHY_AE
391  if ( time_dt_atmos_phy_ae == undef8 ) then
392  log_info_cont(*) 'Not found TIME_DT_ATMOS_PHY_AE. TIME_DT is used.'
393  time_dt_atmos_phy_ae = time_dt
394  endif
395  if ( time_dt_atmos_phy_ae_unit == '' ) then
396  log_info_cont(*) 'Not found TIME_DT_ATMOS_PHY_AE_UNIT. TIME_DT_UNIT is used.'
397  time_dt_atmos_phy_ae_unit = time_dt_unit
398  endif
399  ! ATMOS RESTART
400  if ( time_dt_atmos_restart == undef8 ) then
401  log_info_cont(*) 'Not found TIME_DT_ATMOS_RESTART. TIME_DURATION is used.'
402  time_dt_atmos_restart = time_duration
403  endif
404  if ( time_dt_atmos_restart_unit == '' ) then
405  log_info_cont(*) 'Not found TIME_DT_ATMOS_RESTART_UNIT. TIME_DURATION_UNIT is used.'
406  time_dt_atmos_restart_unit = time_duration_unit
407  endif
408  ! OCEAN
409  if ( time_dt_ocean == undef8 ) then
410  log_info_cont(*) 'Not found TIME_DT_OCEAN. TIME_DT is used.'
411  time_dt_ocean = time_dt
412  endif
413  if ( time_dt_ocean_unit == '' ) then
414  log_info_cont(*) 'Not found TIME_DT_OCEAN_UNIT. TIME_DT_UNIT is used.'
415  time_dt_ocean_unit = time_dt_unit
416  endif
417  ! OCEAN RESTART
418  if ( time_dt_ocean_restart == undef8 ) then
419  log_info_cont(*) 'Not found TIME_DT_OCEAN_RESTART. TIME_DURATION is used.'
420  time_dt_ocean_restart = time_duration
421  endif
422  if ( time_dt_ocean_restart_unit == '' ) then
423  log_info_cont(*) 'Not found TIME_DT_OCEAN_RESTART_UNIT. TIME_DURATION_UNIT is used.'
424  time_dt_ocean_restart_unit = time_duration_unit
425  endif
426  ! LAND
427  if ( time_dt_land == undef8 ) then
428  log_info_cont(*) 'Not found TIME_DT_LAND. TIME_DT is used.'
429  time_dt_land = time_dt
430  endif
431  if ( time_dt_land_unit == '' ) then
432  log_info_cont(*) 'Not found TIME_DT_LAND_UNIT. TIME_DT_UNIT is used.'
433  time_dt_land_unit = time_dt_unit
434  endif
435  ! LAND RESTART
436  if ( time_dt_land_restart == undef8 ) then
437  log_info_cont(*) 'Not found TIME_DT_LAND_RESTART. TIME_DURATION is used.'
438  time_dt_land_restart = time_duration
439  endif
440  if ( time_dt_land_restart_unit == '' ) then
441  log_info_cont(*) 'Not found TIME_DT_LAND_RESTART_UNIT. TIME_DURATION_UNIT is used.'
442  time_dt_land_restart_unit = time_duration_unit
443  endif
444  ! URBAN
445  if ( time_dt_urban == undef8 ) then
446  log_info_cont(*) 'Not found TIME_DT_URBAN. TIME_DT is used.'
447  time_dt_urban = time_dt
448  endif
449  if ( time_dt_urban_unit == '' ) then
450  log_info_cont(*) 'Not found TIME_DT_URBAN_UNIT. TIME_DT_UNIT is used.'
451  time_dt_urban_unit = time_dt_unit
452  endif
453  ! URBAN RESTART
454  if ( time_dt_urban_restart == undef8 ) then
455  log_info_cont(*) 'Not found TIME_DT_URBAN_RESTART. TIME_DURATION is used.'
456  time_dt_urban_restart = time_duration
457  endif
458  if ( time_dt_urban_restart_unit == '' ) then
459  log_info_cont(*) 'Not found TIME_DT_URBAN_RESTART_UNIT. TIME_DURATION_UNIT is used.'
460  time_dt_urban_restart_unit = time_duration_unit
461  endif
462  ! Resume
463  if ( time_dt_resume == undef8 ) then
464  time_dt_resume = time_duration
465  endif
466  if ( time_dt_resume_unit == '' ) then
467  log_info_cont(*) 'Not found TIME_DT_RESUME_UNIT. TIME_DURATION_UNIT is used.'
468  time_dt_resume_unit = time_duration_unit
469  endif
470  endif
471 
472  !--- calculate time
473  if ( time_startdate(1) == -999 ) then
474  if ( restart_in_basename /= '' ) then ! read start time from the restart data
475  call file_get_attribute( restart_in_basename, & ! [IN]
476  "global", & ! [IN]
477  'time_start', & ! [IN]
478  cftime(:), & ! [OUT]
479  rankid = prc_myrank, & ! [IN]
480  single = .false. ) ! [IN]
481 
482  call file_get_attribute( restart_in_basename, & ! [IN]
483  "global", & ! [IN]
484  'time_units', & ! [IN]
485  cfunits, & ! [OUT]
486  rankid = prc_myrank, & ! [IN]
487  single = .false. ) ! [IN]
488 
489  dateday = 0
490  datesec = calendar_cfunits2sec( cftime(1), cfunits, 0 )
491 
492  call calendar_adjust_daysec( dateday, datesec )
493 
494  call calendar_daysec2date( time_startdate, & ! [OUT]
495  time_startms, & ! [OUT]
496  dateday, & ! [IN]
497  datesec, & ! [IN]
498  0 ) ! [IN]
499  else
500  time_startdate = (/ 0, 1, 1, 0, 0, 0 /)
501  time_startms = 0.0_dp
502  endif
503  else
504  time_startms = time_startms * 1.e-3_dp
505  endif
506 
507  time_offset_year = time_startdate(1)
508 
509  call calendar_date2daysec( time_startday, & ! [OUT]
510  time_startsec, & ! [OUT]
511  time_startdate(:), & ! [IN]
512  time_startms, & ! [IN]
513  time_offset_year ) ! [IN]
514 
515  call calendar_date2char( startchardate, & ! [OUT]
516  time_startdate(:), & ! [IN]
517  time_startms ) ! [IN]
518 
519  time_startdaysec = calendar_combine_daysec( time_startday, time_startsec )
520 
521  time_nowdate(:) = time_startdate(:)
522  time_nowms = time_startms
523  time_nowday = time_startday
524  time_nowsec = time_startsec
526 
527  time_endday = time_startday
528 
529  if ( setup_timeintegration ) then
530  call calendar_unit2sec( time_durationsec, time_duration, time_duration_unit )
531  time_endsec = time_startsec + time_durationsec
532  else
533  time_endsec = time_startsec
534  endif
535 
536  call calendar_adjust_daysec( time_endday, time_endsec ) ! [INOUT]
537 
538  call calendar_daysec2date( time_enddate(:), & ! [OUT]
539  time_endms, & ! [OUT]
540  time_endday, & ! [IN]
541  time_endsec, & ! [IN]
542  time_offset_year ) ! [IN]
543 
544  call calendar_date2char( endchardate, & ! [OUT]
545  time_enddate(:), & ! [IN]
546  time_endms ) ! [IN]
547 
548  log_newline
549  log_info("ADMIN_TIME_setup",*) 'Global date / time setting '
550  log_info_cont('(1x,A,A)') 'START Date : ', startchardate
551  log_info_cont('(1x,A,A)') 'END Date : ', endchardate
552 
553  if ( setup_timeintegration ) then
554 
555  call calendar_unit2sec( time_dtsec, time_dt, time_dt_unit )
556 
557  time_nstep = int( time_durationsec / time_dtsec )
558  time_nowstep = 1
559 
560  log_info_cont('(1x,A,F12.3)') 'delta t (sec.) :', time_dtsec
561  log_info_cont('(1x,A,I12)' ) 'No. of steps :', time_nstep
562 
563  !--- calculate intervals for atmosphere
564  if ( time_dt_atmos_dyn /= undef8 ) then
565  call calendar_unit2sec( time_dtsec_atmos_dyn, time_dt_atmos_dyn, time_dt_atmos_dyn_unit )
566  else
568  endif
569  call calendar_unit2sec( time_dtsec_atmos_phy_cp, time_dt_atmos_phy_cp, time_dt_atmos_phy_cp_unit )
570  call calendar_unit2sec( time_dtsec_atmos_phy_mp, time_dt_atmos_phy_mp, time_dt_atmos_phy_mp_unit )
571  call calendar_unit2sec( time_dtsec_atmos_phy_rd, time_dt_atmos_phy_rd, time_dt_atmos_phy_rd_unit )
572  call calendar_unit2sec( time_dtsec_atmos_phy_sf, time_dt_atmos_phy_sf, time_dt_atmos_phy_sf_unit )
573  call calendar_unit2sec( time_dtsec_atmos_phy_tb, time_dt_atmos_phy_tb, time_dt_atmos_phy_tb_unit )
574  call calendar_unit2sec( time_dtsec_atmos_phy_bl, time_dt_atmos_phy_bl, time_dt_atmos_phy_bl_unit )
575  call calendar_unit2sec( time_dtsec_atmos_phy_ch, time_dt_atmos_phy_ch, time_dt_atmos_phy_ch_unit )
576  call calendar_unit2sec( time_dtsec_atmos_phy_ae, time_dt_atmos_phy_ae, time_dt_atmos_phy_ae_unit )
577  call calendar_unit2sec( time_dtsec_atmos_restart, time_dt_atmos_restart, time_dt_atmos_restart_unit )
578  call calendar_unit2sec( time_dtsec_ocean, time_dt_ocean, time_dt_ocean_unit )
579  call calendar_unit2sec( time_dtsec_ocean_restart, time_dt_ocean_restart, time_dt_ocean_restart_unit )
580  call calendar_unit2sec( time_dtsec_land, time_dt_land, time_dt_land_unit )
581  call calendar_unit2sec( time_dtsec_land_restart, time_dt_land_restart, time_dt_land_restart_unit )
582  call calendar_unit2sec( time_dtsec_urban, time_dt_urban, time_dt_urban_unit )
583  call calendar_unit2sec( time_dtsec_urban_restart, time_dt_urban_restart, time_dt_urban_restart_unit )
584  call calendar_unit2sec( time_dtsec_resume, time_dt_resume, time_dt_resume_unit )
585 
587  nstep_dyn = time_nstep_atmos_dyn
588 
598  time_dtsec_atmos_restart = max( time_dtsec_atmos_restart, time_dtsec_atmos_dyn*time_nstep_atmos_dyn )
600  time_dtsec_ocean_restart = max( time_dtsec_ocean_restart, time_dtsec_atmos_dyn*time_nstep_atmos_dyn )
602  time_dtsec_land_restart = max( time_dtsec_land_restart, time_dtsec_atmos_dyn*time_nstep_atmos_dyn )
604  time_dtsec_urban_restart = max( time_dtsec_urban_restart, time_dtsec_atmos_dyn*time_nstep_atmos_dyn )
605  time_dtsec_resume = max( time_dtsec_resume, time_dtsec_atmos_dyn*time_nstep_atmos_dyn )
606 
619  time_dstep_atmos_restart = nint( time_dtsec_atmos_restart / time_dtsec )
620  time_dstep_ocean_restart = nint( time_dtsec_ocean_restart / time_dtsec )
621  time_dstep_land_restart = nint( time_dtsec_land_restart / time_dtsec )
622  time_dstep_urban_restart = nint( time_dtsec_urban_restart / time_dtsec )
623  time_dstep_resume = nint( time_dtsec_resume / time_dtsec )
624 
625  time_res_resume = time_dstep_resume - 1
626 
627  if ( abs( real(time_nstep_atmos_dyn,kind=dp)*time_dtsec_atmos_dyn &
628  - real(time_dstep_atmos_dyn,kind=dp)*time_dtsec ) > eps ) then
629  log_error("ADMIN_TIME_setup",*) 'delta t(ATMOS_DYN) must be a multiple of delta t ', &
631  call prc_abort
632  endif
633  if ( abs(time_dtsec_atmos_phy_cp-real(time_dstep_atmos_phy_cp,kind=dp)*time_dtsec) > eps ) then
634  log_error("ADMIN_TIME_setup",*) 'delta t(ATMOS_PHY_CP) must be a multiple of delta t ', &
636  call prc_abort
637  endif
638  if ( abs(time_dtsec_atmos_phy_mp-real(time_dstep_atmos_phy_mp,kind=dp)*time_dtsec) > eps ) then
639  log_error("ADMIN_TIME_setup",*) 'delta t(ATMOS_PHY_MP) must be a multiple of delta t ', &
641  call prc_abort
642  endif
643  if ( abs(time_dtsec_atmos_phy_rd-real(time_dstep_atmos_phy_rd,kind=dp)*time_dtsec) > eps ) then
644  log_error("ADMIN_TIME_setup",*) 'delta t(ATMOS_PHY_RD) must be a multiple of delta t ', &
646  call prc_abort
647  endif
648  if ( abs(time_dtsec_atmos_phy_sf-real(time_dstep_atmos_phy_sf,kind=dp)*time_dtsec) > eps ) then
649  log_error("ADMIN_TIME_setup",*) 'delta t(ATMOS_PHY_SF) must be a multiple of delta t ', &
651  call prc_abort
652  endif
653  if ( abs(time_dtsec_atmos_phy_tb-real(time_dstep_atmos_phy_tb,kind=dp)*time_dtsec) > eps ) then
654  log_error("ADMIN_TIME_setup",*) 'delta t(ATMOS_PHY_TB) must be a multiple of delta t ', &
656  call prc_abort
657  endif
658  if ( abs(time_dtsec_atmos_phy_bl-real(time_dstep_atmos_phy_bl,kind=dp)*time_dtsec) > eps ) then
659  log_error("ADMIN_TIME_setup",*) 'delta t(ATMOS_PHY_BL) must be a multiple of delta t ', &
661  call prc_abort
662  endif
663  if ( abs(time_dtsec_atmos_phy_ch-real(time_dstep_atmos_phy_ch,kind=dp)*time_dtsec) > eps ) then
664  log_error("ADMIN_TIME_setup",*) 'delta t(ATMOS_PHY_CH) must be a multiple of delta t ', &
666  call prc_abort
667  endif
668  if ( abs(time_dtsec_atmos_phy_ae-real(time_dstep_atmos_phy_ae,kind=dp)*time_dtsec) > eps ) then
669  log_error("ADMIN_TIME_setup",*) 'delta t(ATMOS_PHY_AE) must be a multiple of delta t ', &
671  call prc_abort
672  endif
673  if ( abs(time_dtsec_ocean-real(time_dstep_ocean,kind=dp)*time_dtsec) > eps ) then
674  log_error("ADMIN_TIME_setup",*) 'delta t(OCEAN) must be a multiple of delta t ', &
676  call prc_abort
677  endif
678  if ( abs(time_dtsec_land-real(time_dstep_land,kind=dp)*time_dtsec) > eps ) then
679  log_error("ADMIN_TIME_setup",*) 'delta t(LAND) must be a multiple of delta t ', &
681  call prc_abort
682  endif
683  if ( abs(time_dtsec_urban-real(time_dstep_urban,kind=dp)*time_dtsec) > eps ) then
684  log_error("ADMIN_TIME_setup",*) 'delta t(URBAN) must be a multiple of delta t ', &
686  call prc_abort
687  endif
688  if ( abs(time_dtsec_atmos_restart-real(time_dstep_atmos_restart,kind=dp)*time_dtsec) > eps ) then
689  log_error("ADMIN_TIME_setup",*) 'delta t(ATMOS_RESTART) must be a multiple of delta t ', &
690  time_dtsec_atmos_restart, real(time_dstep_atmos_restart,kind=dp)*time_dtsec
691  call prc_abort
692  endif
693  if ( abs(time_dtsec_ocean_restart-real(time_dstep_ocean_restart,kind=dp)*time_dtsec) > eps ) then
694  log_error("ADMIN_TIME_setup",*) 'delta t(OCEAN_RESTART) must be a multiple of delta t ', &
695  time_dtsec_ocean_restart, real(time_dstep_ocean_restart,kind=dp)*time_dtsec
696  call prc_abort
697  endif
698  if ( abs(time_dtsec_land_restart-real(time_dstep_land_restart,kind=dp)*time_dtsec) > eps ) then
699  log_error("ADMIN_TIME_setup",*) 'delta t(LAND_RESTART) must be a multiple of delta t ', &
700  time_dtsec_land_restart, real(time_dstep_land_restart,kind=dp)*time_dtsec
701  call prc_abort
702  endif
703  if ( abs(time_dtsec_urban_restart-real(time_dstep_urban_restart,kind=dp)*time_dtsec) > eps ) then
704  log_error("ADMIN_TIME_setup",*) 'delta t(URBAN_RESTART) must be a multiple of delta t ', &
705  time_dtsec_urban_restart, real(time_dstep_urban_restart,kind=dp)*time_dtsec
706  call prc_abort
707  endif
708  if ( abs(time_dtsec_urban_restart-real(time_dstep_urban_restart,kind=dp)*time_dtsec) > eps ) then
709  log_error("ADMIN_TIME_setup",*) 'delta t(URBAN_RESTART) must be a multiple of delta t ', &
710  time_dtsec_urban_restart, real(time_dstep_urban_restart,kind=dp)*time_dtsec
711  call prc_abort
712  endif
713  if ( abs(time_dtsec_resume-real(time_dstep_resume,kind=dp)*time_dtsec) > eps ) then
714  log_error("ADMIN_TIME_setup",*) 'delta t(RESUME) must be a multiple of delta t ', &
715  time_dtsec_resume, real(time_dstep_resume,kind=dp)*time_dtsec
716  call prc_abort
717  endif
718 
719  log_newline
720  log_info("ADMIN_TIME_setup",*) 'Time interval for each component (sec.)'
721  log_info_cont(*) 'Atmosphere'
722  log_info_cont('(1x,A,F10.3)') 'Dynamics (time) : ', time_dtsec_atmos_dyn
723  log_info_cont('(1x,A,I10,A,I8,A)') '(step) : ', time_nstep_atmos_dyn, &
724  ' (step interval=', time_dstep_atmos_dyn, ')'
725  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Physics, Cumulus : ', time_dtsec_atmos_phy_cp, &
726  ' (step interval=', time_dstep_atmos_phy_cp, ')'
727  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Physics, Cloud Microphysics : ', time_dtsec_atmos_phy_mp, &
728  ' (step interval=', time_dstep_atmos_phy_mp, ')'
729  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Physics, Radiation : ', time_dtsec_atmos_phy_rd, &
730  ' (step interval=', time_dstep_atmos_phy_rd, ')'
731  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Physics, Surface Flux : ', time_dtsec_atmos_phy_sf, &
732  ' (step interval=', time_dstep_atmos_phy_sf, ')'
733  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Physics, Turbulence : ', time_dtsec_atmos_phy_tb, &
734  ' (step interval=', time_dstep_atmos_phy_tb, ')'
735  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Physics, Boundary layer : ', time_dtsec_atmos_phy_bl, &
736  ' (step interval=', time_dstep_atmos_phy_bl, ')'
737  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Physics, Chemistry : ', time_dtsec_atmos_phy_ch, &
738  ' (step interval=', time_dstep_atmos_phy_ch, ')'
739  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Physics, Aerosol : ', time_dtsec_atmos_phy_ae, &
740  ' (step interval=', time_dstep_atmos_phy_ae, ')'
741  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Ocean : ', time_dtsec_ocean, &
742  ' (step interval=', time_dstep_ocean, ')'
743  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Land : ', time_dtsec_land, &
744  ' (step interval=', time_dstep_land, ')'
745  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Urban : ', time_dtsec_urban, &
746  ' (step interval=', time_dstep_urban, ')'
747  log_newline
748  log_info_cont(*) 'Time interval for restart (sec.)'
749  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Atmospheric Variables : ', time_dtsec_atmos_restart, &
750  ' (step interval=', time_dstep_atmos_restart, ')'
751  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Ocean Variables : ', time_dtsec_ocean_restart, &
752  ' (step interval=', time_dstep_ocean_restart, ')'
753  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Land Variables : ', time_dtsec_land_restart, &
754  ' (step interval=', time_dstep_land_restart, ')'
755  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Urban Variables : ', time_dtsec_urban_restart, &
756  ' (step interval=', time_dstep_urban_restart, ')'
757  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Resume : ', time_dtsec_resume, &
758  ' (step interval=', time_dstep_resume, ')'
759  else
760  time_dtsec = 1.0_rp
761  endif
762 
763  time_wallclock_start = prc_mpitime()
764 
765  ! WALLCLOCK TERMINATOR SETUP
766  if ( time_wallclock_limit > 0.0_dp ) then
767  log_newline
768  log_info("ADMIN_TIME_setup",*) 'Wall clock time limit of execution is specified.'
769 
770  if ( time_dt_wallclock_check == undef8 ) then
771  log_info_cont(*) 'Not found TIME_DT_WALLCLOCK_CHECK. largest time step interval is used.'
782  time_dtsec_land, &
784  else
785  if ( time_dt_wallclock_check_unit == '' ) then
786  log_info_cont(*) 'Not found TIME_DT_WALLCLOCK_CHECK_UNIT. TIME_DURATION_UNIT is used.'
787  time_dt_wallclock_check_unit = time_duration_unit
788  endif
789  call calendar_unit2sec( time_dtsec_wallclock_check, time_dt_wallclock_check, time_dt_wallclock_check_unit )
791  endif
792 
794 
795  time_wallclock_safe = max( min( time_wallclock_safe, 1.0_dp ), 0.0_dp )
796  time_wallclock_safelim = time_wallclock_limit * time_wallclock_safe
797 
798  log_info_cont('(1x,A,F10.1,A)') 'This job stops after ', time_wallclock_safelim, ' seconds.'
799  log_info_cont('(1x,A,F10.3,A,I8,A)') 'Time interval for check : ', time_dtsec_wallclock_check, &
800  ' (step interval=', time_dstep_wallclock_check, ')'
801  endif
802 
803  if ( debug ) then
804  log_info("ADMIN_TIME_setup",*) time_nowday, time_nowsec, time_nowdate(:), time_nowms
805  endif
806 
807  return
integer, public time_nowstep
current step [number]
Definition: scale_time.F90:74
real(dp), public time_dtsec_ocean
time interval of ocean step [sec]
Definition: scale_time.F90:50
integer, public time_dstep_atmos_phy_mp
step interval of physics(microphysics)
Definition: scale_time.F90:57
subroutine, public calendar_unit2sec(second, value, unit)
Convert several units to second.
real(dp) function, public calendar_combine_daysec(absday, abssec)
Combine day and second.
real(dp), public time_dtsec_atmos_phy_rd
time interval of physics(radiation ) [sec]
Definition: scale_time.F90:44
integer, public time_nstep_atmos_dyn
small step of dynamics
Definition: scale_time.F90:41
integer, public time_dstep_atmos_phy_bl
step interval of physics(pbl )
Definition: scale_time.F90:61
real(dp), public time_nowms
subsecond part of current time [millisec]
Definition: scale_time.F90:70
real(dp), public time_nowsec
subday part of current time [sec]
Definition: scale_time.F90:72
subroutine, public calendar_date2char(chardate, ymdhms, subsec)
Convert from gregorian date to absolute day/second.
integer, public time_nstep
total steps [number]
Definition: scale_time.F90:75
real(dp), public time_dtsec_atmos_phy_mp
time interval of physics(microphysics) [sec]
Definition: scale_time.F90:43
real(dp), public time_dtsec_atmos_phy_ch
time interval of physics(chemistry ) [sec]
Definition: scale_time.F90:48
real(dp), public time_dtsec_atmos_phy_bl
time interval of physics(pbl ) [sec]
Definition: scale_time.F90:47
module ATMOSPHERIC Variables
integer, public time_dstep_atmos_dyn
step interval of dynamics
Definition: scale_time.F90:55
real(dp), public time_nowdaysec
second of current time [sec]
Definition: scale_time.F90:73
real(dp), public time_startdaysec
second of start time [sec]
Definition: scale_time.F90:78
integer, public time_nowday
absolute day of current time [day]
Definition: scale_time.F90:71
integer, public io_fid_conf
Config file ID.
Definition: scale_io.F90:55
integer, public time_dstep_urban
step interval of urban step
Definition: scale_time.F90:66
real(dp), public time_dtsec_land
time interval of land step [sec]
Definition: scale_time.F90:51
module file
Definition: scale_file.F90:15
integer, public time_dstep_wallclock_check
step interval of wallclock terminator
Definition: scale_time.F90:67
subroutine, public calendar_adjust_daysec(absday, abssec)
Adjust day and second.
integer, public time_dstep_ocean
step interval of ocean step
Definition: scale_time.F90:64
real(dp), public time_dtsec
time interval of model [sec]
Definition: scale_time.F90:38
real(dp) function, public calendar_cfunits2sec(cftime, cfunits, offset_year, startdaysec)
Convert time in units of the CF convention to second.
integer, public time_dstep_atmos_phy_sf
step interval of physics(surface flux)
Definition: scale_time.F90:59
integer, public time_offset_year
time offset [year]
Definition: scale_time.F90:77
integer, public time_dstep_atmos_phy_tb
step interval of physics(turbulence )
Definition: scale_time.F90:60
module PROCESS
Definition: scale_prc.F90:11
real(dp) function, public prc_mpitime()
Get MPI time.
Definition: scale_prc.F90:813
real(dp), public time_dtsec_wallclock_check
time interval of wallclock terminator [sec]
Definition: scale_time.F90:53
integer, public time_dstep_atmos_phy_rd
step interval of physics(radiation )
Definition: scale_time.F90:58
module TIME
Definition: scale_time.F90:16
real(dp), public time_dtsec_atmos_dyn
time interval of dynamics [sec]
Definition: scale_time.F90:40
real(dp), public time_dtsec_atmos_phy_sf
time interval of physics(surface flux) [sec]
Definition: scale_time.F90:45
real(dp), public time_dtsec_atmos_phy_tb
time interval of physics(turbulence ) [sec]
Definition: scale_time.F90:46
integer, public time_dstep_land
step interval of land step
Definition: scale_time.F90:65
integer, public prc_myrank
process num in local communicator
Definition: scale_prc.F90:89
real(dp), public time_dtsec_atmos_phy_ae
time interval of physics(aerosol ) [sec]
Definition: scale_time.F90:49
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:338
module CONSTANT
Definition: scale_const.F90:11
integer, public time_dstep_atmos_phy_cp
step interval of physics(cumulus )
Definition: scale_time.F90:56
real(dp), public time_dtsec_atmos_phy_cp
time interval of physics(cumulus ) [sec]
Definition: scale_time.F90:42
real(dp), parameter, public const_undef8
undefined value (REAL8)
Definition: scale_const.F90:40
integer, public time_dstep_atmos_phy_ae
step interval of physics(aerosol )
Definition: scale_time.F90:63
subroutine, public calendar_daysec2date(ymdhms, subsec, absday, abssec, offset_year)
Convert from gregorian date to absolute day/second.
integer, public time_dstep_atmos_phy_ch
step interval of physics(chemistry )
Definition: scale_time.F90:62
character(len=h_long), public atmos_restart_in_basename
Basename of the input file.
module CALENDAR
integer, dimension(6), public time_nowdate
current time [YYYY MM DD HH MM SS]
Definition: scale_time.F90:69
real(dp), public time_dtsec_urban
time interval of urban step [sec]
Definition: scale_time.F90:52
subroutine, public calendar_date2daysec(absday, abssec, ymdhms, subsec, offset_year)
Convert from gregorian date to absolute day/second.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ admin_time_checkstate()

subroutine, public mod_admin_time::admin_time_checkstate ( )

Evaluate component execution.

Definition at line 813 of file mod_admin_time.F90.

References scale_calendar::calendar_date2char(), scale_io::io_step_to_stdout, scale_prc::prc_mpitime(), scale_prc::prc_universal_ismaster, time_doatmos_dyn, time_doatmos_phy_ae, time_doatmos_phy_bl, time_doatmos_phy_ch, time_doatmos_phy_cp, time_doatmos_phy_mp, time_doatmos_phy_rd, time_doatmos_phy_sf, time_doatmos_phy_tb, time_doatmos_step, time_doland_step, time_doocean_step, time_doresume, time_dourban_step, scale_time::time_dstep_atmos_dyn, scale_time::time_dstep_atmos_phy_ae, scale_time::time_dstep_atmos_phy_bl, scale_time::time_dstep_atmos_phy_ch, scale_time::time_dstep_atmos_phy_cp, scale_time::time_dstep_atmos_phy_mp, scale_time::time_dstep_atmos_phy_rd, scale_time::time_dstep_atmos_phy_sf, scale_time::time_dstep_atmos_phy_tb, scale_time::time_dstep_land, scale_time::time_dstep_ocean, time_dstep_resume, scale_time::time_dstep_urban, scale_time::time_nowdate, scale_time::time_nowms, scale_time::time_nowstep, and scale_time::time_nstep.

Referenced by mod_rm_driver::rm_driver().

813  use scale_prc, only: &
816  use scale_calendar, only: &
818  use scale_time, only: &
819  time_nowdate, &
820  time_nowms, &
821  time_nowstep, &
822  time_nstep, &
833  time_dstep_land, &
835  implicit none
836 
837  real(DP) :: wallclock_elapse
838  character(len=27) :: nowchardate
839  logical :: to_stdout
840  !---------------------------------------------------------------------------
841 
842  time_doatmos_step = .false.
843  time_doatmos_dyn = .false.
844  time_doatmos_phy_cp = .false.
845  time_doatmos_phy_mp = .false.
846  time_doatmos_phy_rd = .false.
847  time_doatmos_phy_sf = .false.
848  time_doatmos_phy_tb = .false.
849  time_doatmos_phy_bl = .false.
850  time_doatmos_phy_ch = .false.
851  time_doatmos_phy_ae = .false.
852  time_doocean_step = .false.
853  time_doland_step = .false.
854  time_dourban_step = .false.
855  time_doresume = .false.
856 
857  time_res_atmos_dyn = time_res_atmos_dyn + 1
858  time_res_atmos_phy_cp = time_res_atmos_phy_cp + 1
859  time_res_atmos_phy_mp = time_res_atmos_phy_mp + 1
860  time_res_atmos_phy_rd = time_res_atmos_phy_rd + 1
861  time_res_atmos_phy_sf = time_res_atmos_phy_sf + 1
862  time_res_atmos_phy_tb = time_res_atmos_phy_tb + 1
863  time_res_atmos_phy_bl = time_res_atmos_phy_bl + 1
864  time_res_atmos_phy_ch = time_res_atmos_phy_ch + 1
865  time_res_atmos_phy_ae = time_res_atmos_phy_ae + 1
866  time_res_ocean = time_res_ocean + 1
867  time_res_land = time_res_land + 1
868  time_res_urban = time_res_urban + 1
869  time_res_resume = time_res_resume + 1
870 
871  if ( time_res_atmos_dyn == time_dstep_atmos_dyn ) then
872  time_doatmos_step = .true.
873  time_doatmos_dyn = .true.
874  time_res_atmos_dyn = 0
875  endif
876  if ( time_res_atmos_phy_cp == time_dstep_atmos_phy_cp ) then
877  time_doatmos_step = .true.
878  time_doatmos_phy_cp = .true.
879  time_res_atmos_phy_cp = 0
880  endif
881  if ( time_res_atmos_phy_mp == time_dstep_atmos_phy_mp ) then
882  time_doatmos_step = .true.
883  time_doatmos_phy_mp = .true.
884  time_res_atmos_phy_mp = 0
885  endif
886  if ( time_res_atmos_phy_rd == time_dstep_atmos_phy_rd ) then
887  time_doatmos_step = .true.
888  time_doatmos_phy_rd = .true.
889  time_res_atmos_phy_rd = 0
890  endif
891  if ( time_res_atmos_phy_sf == time_dstep_atmos_phy_sf ) then
892  time_doatmos_step = .true.
893  time_doatmos_phy_sf = .true.
894  time_res_atmos_phy_sf = 0
895  endif
896  if ( time_res_atmos_phy_tb == time_dstep_atmos_phy_tb ) then
897  time_doatmos_step = .true.
898  time_doatmos_phy_tb = .true.
899  time_res_atmos_phy_tb = 0
900  endif
901  if ( time_res_atmos_phy_bl == time_dstep_atmos_phy_bl ) then
902  time_doatmos_step = .true.
903  time_doatmos_phy_bl = .true.
904  time_res_atmos_phy_bl = 0
905  endif
906  if ( time_res_atmos_phy_ch == time_dstep_atmos_phy_ch ) then
907  time_doatmos_step = .true.
908  time_doatmos_phy_ch = .true.
909  time_res_atmos_phy_ch = 0
910  endif
911  if ( time_res_atmos_phy_ae == time_dstep_atmos_phy_ae ) then
912  time_doatmos_step = .true.
913  time_doatmos_phy_ae = .true.
914  time_res_atmos_phy_ae = 0
915  endif
916 
917  if ( time_res_ocean == time_dstep_ocean ) then
918  time_doocean_step = .true.
919  time_res_ocean = 0
920  endif
921  if ( time_res_land == time_dstep_land ) then
922  time_doland_step = .true.
923  time_res_land = 0
924  endif
925  if ( time_res_urban == time_dstep_urban ) then
926  time_dourban_step = .true.
927  time_res_urban = 0
928  endif
929  if ( time_res_resume == time_dstep_resume ) then
930  time_doresume = .true.
931  time_res_resume = 0
932  endif
933 
934  to_stdout = .false.
935  if ( io_step_to_stdout > 0 ) then
936  if( mod(time_nowstep-1,io_step_to_stdout) == 0 ) to_stdout = .true.
937  endif
938 
939  call calendar_date2char( nowchardate, & ! [OUT]
940  time_nowdate(:), & ! [IN]
941  time_nowms ) ! [IN]
942 
943  wallclock_elapse = prc_mpitime() - time_wallclock_start
944 
945  log_newline
946  if ( time_wallclock_limit > 0.0_dp ) then
947  log_progress('(1x,2A,2(A,I7),2(A,F10.1))') 'TIME: ', nowchardate,' STEP:',time_nowstep, '/', time_nstep, &
948  ' WCLOCK:', wallclock_elapse, '/', time_wallclock_safelim
949  if ( prc_universal_ismaster .AND. to_stdout ) then ! universal master node
950  write(*,'(1x,2A,2(A,I7),2(A,F10.1))') 'TIME: ', nowchardate,' STEP:',time_nowstep, '/', time_nstep, &
951  ' WCLOCK:', wallclock_elapse, '/', time_wallclock_safelim
952  endif
953  else
954  log_progress('(1x,2A,2(A,I7),A,F10.1)') 'TIME: ', nowchardate,' STEP:',time_nowstep, '/', time_nstep, &
955  ' WCLOCK:', wallclock_elapse
956  if ( prc_universal_ismaster .AND. to_stdout ) then ! universal master node
957  write(*,'(1x,2A,2(A,I7),A,F10.1)') 'TIME: ', nowchardate,' STEP:',time_nowstep, '/', time_nstep, &
958  ' WCLOCK:', wallclock_elapse
959  endif
960  endif
961 
962  return
integer, public time_nowstep
current step [number]
Definition: scale_time.F90:74
integer, public time_dstep_atmos_phy_mp
step interval of physics(microphysics)
Definition: scale_time.F90:57
integer, public time_dstep_atmos_phy_bl
step interval of physics(pbl )
Definition: scale_time.F90:61
real(dp), public time_nowms
subsecond part of current time [millisec]
Definition: scale_time.F90:70
subroutine, public calendar_date2char(chardate, ymdhms, subsec)
Convert from gregorian date to absolute day/second.
integer, public time_nstep
total steps [number]
Definition: scale_time.F90:75
integer, public time_dstep_atmos_dyn
step interval of dynamics
Definition: scale_time.F90:55
integer, public time_dstep_urban
step interval of urban step
Definition: scale_time.F90:66
integer, public time_dstep_ocean
step interval of ocean step
Definition: scale_time.F90:64
integer, public time_dstep_atmos_phy_sf
step interval of physics(surface flux)
Definition: scale_time.F90:59
integer, public time_dstep_atmos_phy_tb
step interval of physics(turbulence )
Definition: scale_time.F90:60
module PROCESS
Definition: scale_prc.F90:11
real(dp) function, public prc_mpitime()
Get MPI time.
Definition: scale_prc.F90:813
integer, public time_dstep_atmos_phy_rd
step interval of physics(radiation )
Definition: scale_time.F90:58
module TIME
Definition: scale_time.F90:16
integer, public time_dstep_land
step interval of land step
Definition: scale_time.F90:65
integer, public io_step_to_stdout
interval for output current step to STDOUT (negative is off)
Definition: scale_io.F90:66
integer, public time_dstep_atmos_phy_cp
step interval of physics(cumulus )
Definition: scale_time.F90:56
integer, public time_dstep_atmos_phy_ae
step interval of physics(aerosol )
Definition: scale_time.F90:63
integer, public time_dstep_atmos_phy_ch
step interval of physics(chemistry )
Definition: scale_time.F90:62
logical, public prc_universal_ismaster
master process in universal communicator?
Definition: scale_prc.F90:73
module CALENDAR
integer, dimension(6), public time_nowdate
current time [YYYY MM DD HH MM SS]
Definition: scale_time.F90:69
Here is the call graph for this function:
Here is the caller graph for this function:

◆ admin_time_advance()

subroutine, public mod_admin_time::admin_time_advance ( )

Advance the time & evaluate restart & stop.

Definition at line 968 of file mod_admin_time.F90.

References scale_calendar::calendar_adjust_daysec(), scale_calendar::calendar_combine_daysec(), scale_calendar::calendar_daysec2date(), scale_prc::prc_ismaster, scale_prc::prc_mpitime(), time_doatmos_restart, time_doend, time_doland_restart, time_doocean_restart, time_dourban_restart, time_dstep_atmos_restart, time_dstep_land_restart, time_dstep_ocean_restart, time_dstep_urban_restart, scale_time::time_dstep_wallclock_check, scale_time::time_dtsec, scale_time::time_nowdate, scale_time::time_nowday, scale_time::time_nowdaysec, scale_time::time_nowms, scale_time::time_nowsec, scale_time::time_nowstep, scale_time::time_nstep, and scale_time::time_offset_year.

Referenced by mod_rm_driver::rm_driver().

968  use scale_prc, only: &
969  prc_ismaster, &
971  use scale_calendar, only: &
975  use scale_comm_cartesc, only: &
976  comm_bcast
977  use scale_time, only: &
978  time_dtsec, &
979  time_nowdate, &
980  time_nowms, &
981  time_nowday, &
982  time_nowsec, &
983  time_nowdaysec, &
984  time_nowstep, &
985  time_nstep, &
988  implicit none
989 
990  real(DP) :: wallclock_elapse
991  logical :: wallclock_doend
992  !---------------------------------------------------------------------------
993 
994  time_doend = .false.
995 
997  time_nowday = time_startday
998  time_nowsec = time_startsec + real(TIME_NOWSTEP-1,kind=DP) * time_dtsec
999 
1000  ! reallocate day & sub-day
1002 
1003  call calendar_daysec2date( time_nowdate(:), & ! [OUT]
1004  time_nowms, & ! [OUT]
1005  time_nowday, & ! [IN]
1006  time_nowsec, & ! [IN]
1007  time_offset_year ) ! [IN]
1008 
1010 
1011  if ( debug ) then
1012  log_info("ADMIN_TIME_advance",*) time_nowday, time_nowsec, time_nowdate(:), time_nowms
1013  endif
1014 
1015  if ( time_nowstep > time_nstep ) then
1016  time_doend = .true.
1017  endif
1018 
1019  if ( time_wallclock_limit > 0.0_dp ) then ! use wallclock limiter
1020  wallclock_doend = .false.
1021 
1022  if ( prc_ismaster & ! master node
1023  .AND. mod(time_nowstep-1,time_dstep_wallclock_check) == 0 ) then ! step to check
1024 
1025  wallclock_elapse = prc_mpitime() - time_wallclock_start
1026 
1027  if( wallclock_elapse > time_wallclock_safelim ) wallclock_doend = .true.
1028 
1029  endif
1030 
1031  call comm_bcast( wallclock_doend ) ! [INOUT]
1032 
1033  if ( wallclock_doend ) then
1034  log_newline
1035  log_info("ADMIN_TIME_advance",*) '**************************************************************'
1036  log_info("ADMIN_TIME_advance",*) 'Elapse time limit is detected. Termination operation starts. '
1037  log_info("ADMIN_TIME_advance",*) '**************************************************************'
1038  log_newline
1039  time_doend = .true.
1040  endif
1041  endif
1042 
1043  time_doatmos_restart = .false.
1044  time_doocean_restart = .false.
1045  time_doland_restart = .false.
1046  time_dourban_restart = .false.
1047 
1048  time_res_atmos_restart = time_res_atmos_restart + 1
1049  time_res_ocean_restart = time_res_ocean_restart + 1
1050  time_res_land_restart = time_res_land_restart + 1
1051  time_res_urban_restart = time_res_urban_restart + 1
1052 
1053  if ( time_res_atmos_restart == time_dstep_atmos_restart ) then
1054  time_doatmos_restart = .true.
1055  time_res_atmos_restart = 0
1056  elseif( time_doend ) then
1057  time_doatmos_restart = .true.
1058  endif
1059 
1060  if ( time_res_ocean_restart == time_dstep_ocean_restart ) then
1061  time_doocean_restart = .true.
1062  time_res_ocean_restart = 0
1063  elseif( time_doend ) then
1064  time_doocean_restart = .true.
1065  endif
1066 
1067  if ( time_res_land_restart == time_dstep_land_restart ) then
1068  time_doland_restart = .true.
1069  time_res_land_restart = 0
1070  elseif( time_doend ) then
1071  time_doland_restart = .true.
1072  endif
1073 
1074  if ( time_res_urban_restart == time_dstep_urban_restart ) then
1075  time_dourban_restart = .true.
1076  time_res_urban_restart = 0
1077  elseif( time_doend ) then
1078  time_dourban_restart = .true.
1079  endif
1080 
1081  return
integer, public time_nowstep
current step [number]
Definition: scale_time.F90:74
real(dp) function, public calendar_combine_daysec(absday, abssec)
Combine day and second.
real(dp), public time_nowms
subsecond part of current time [millisec]
Definition: scale_time.F90:70
real(dp), public time_nowsec
subday part of current time [sec]
Definition: scale_time.F90:72
integer, public time_nstep
total steps [number]
Definition: scale_time.F90:75
real(dp), public time_nowdaysec
second of current time [sec]
Definition: scale_time.F90:73
logical, public time_doatmos_restart
execute atmosphere restart output in this step?
logical, public time_doocean_restart
execute ocean restart output in this step?
integer, public time_nowday
absolute day of current time [day]
Definition: scale_time.F90:71
module COMMUNICATION
integer, public time_dstep_wallclock_check
step interval of wallclock terminator
Definition: scale_time.F90:67
subroutine, public calendar_adjust_daysec(absday, abssec)
Adjust day and second.
real(dp), public time_dtsec
time interval of model [sec]
Definition: scale_time.F90:38
integer, public time_offset_year
time offset [year]
Definition: scale_time.F90:77
module PROCESS
Definition: scale_prc.F90:11
real(dp) function, public prc_mpitime()
Get MPI time.
Definition: scale_prc.F90:813
module TIME
Definition: scale_time.F90:16
logical, public time_dourban_restart
execute urban restart output in this step?
subroutine, public calendar_daysec2date(ymdhms, subsec, absday, abssec, offset_year)
Convert from gregorian date to absolute day/second.
logical, public prc_ismaster
master process in local communicator?
Definition: scale_prc.F90:90
logical, public time_doland_restart
execute land restart output in this step?
module CALENDAR
integer, dimension(6), public time_nowdate
current time [YYYY MM DD HH MM SS]
Definition: scale_time.F90:69
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ time_dtsec_atmos_restart

real(dp), public mod_admin_time::time_dtsec_atmos_restart

time interval of atmosphere restart [sec]

Definition at line 34 of file mod_admin_time.F90.

Referenced by admin_time_setup().

34  real(DP), public :: time_dtsec_atmos_restart

◆ time_dtsec_ocean_restart

real(dp), public mod_admin_time::time_dtsec_ocean_restart

time interval of ocean restart [sec]

Definition at line 35 of file mod_admin_time.F90.

Referenced by admin_time_setup().

35  real(DP), public :: time_dtsec_ocean_restart

◆ time_dtsec_land_restart

real(dp), public mod_admin_time::time_dtsec_land_restart

time interval of land restart [sec]

Definition at line 36 of file mod_admin_time.F90.

Referenced by admin_time_setup().

36  real(DP), public :: time_dtsec_land_restart

◆ time_dtsec_urban_restart

real(dp), public mod_admin_time::time_dtsec_urban_restart

time interval of urban restart [sec]

Definition at line 37 of file mod_admin_time.F90.

Referenced by admin_time_setup().

37  real(DP), public :: time_dtsec_urban_restart

◆ time_dtsec_resume

real(dp), public mod_admin_time::time_dtsec_resume

time interval for resume [sec]

Definition at line 38 of file mod_admin_time.F90.

Referenced by admin_time_setup().

38  real(DP), public :: time_dtsec_resume

◆ time_dstep_atmos_restart

integer, public mod_admin_time::time_dstep_atmos_restart

interval of atmosphere restart [step]

Definition at line 40 of file mod_admin_time.F90.

Referenced by admin_time_advance(), and admin_time_setup().

40  integer, public :: time_dstep_atmos_restart

◆ time_dstep_ocean_restart

integer, public mod_admin_time::time_dstep_ocean_restart

interval of ocean restart [step]

Definition at line 41 of file mod_admin_time.F90.

Referenced by admin_time_advance(), and admin_time_setup().

41  integer, public :: time_dstep_ocean_restart

◆ time_dstep_land_restart

integer, public mod_admin_time::time_dstep_land_restart

interval of land restart [step]

Definition at line 42 of file mod_admin_time.F90.

Referenced by admin_time_advance(), and admin_time_setup().

42  integer, public :: time_dstep_land_restart

◆ time_dstep_urban_restart

integer, public mod_admin_time::time_dstep_urban_restart

interval of urban restart [step]

Definition at line 43 of file mod_admin_time.F90.

Referenced by admin_time_advance(), and admin_time_setup().

43  integer, public :: time_dstep_urban_restart

◆ time_dstep_resume

integer, public mod_admin_time::time_dstep_resume

interval for resume [step]

Definition at line 44 of file mod_admin_time.F90.

Referenced by admin_time_checkstate(), and admin_time_setup().

44  integer, public :: time_dstep_resume

◆ time_doatmos_step

logical, public mod_admin_time::time_doatmos_step

execute atmosphere component in this step?

Definition at line 46 of file mod_admin_time.F90.

Referenced by admin_time_checkstate(), and mod_rm_driver::rm_driver().

46  logical, public :: time_doatmos_step

◆ time_doatmos_dyn

logical, public mod_admin_time::time_doatmos_dyn

execute dynamics in this step?

Definition at line 47 of file mod_admin_time.F90.

Referenced by admin_time_checkstate(), and mod_atmos_driver::atmos_driver_update().

47  logical, public :: time_doatmos_dyn

◆ time_doatmos_phy_cp

logical, public mod_admin_time::time_doatmos_phy_cp

execute physics in this step? (cumulus )

Definition at line 48 of file mod_admin_time.F90.

Referenced by admin_time_checkstate(), and mod_atmos_driver::atmos_driver_calc_tendency().

48  logical, public :: time_doatmos_phy_cp

◆ time_doatmos_phy_mp

logical, public mod_admin_time::time_doatmos_phy_mp

execute physics in this step? (microphysics)

Definition at line 49 of file mod_admin_time.F90.

Referenced by admin_time_checkstate(), mod_atmos_driver::atmos_driver_calc_tendency(), and mod_atmos_driver::atmos_driver_update().

49  logical, public :: time_doatmos_phy_mp

◆ time_doatmos_phy_rd

logical, public mod_admin_time::time_doatmos_phy_rd

execute physics in this step? (radiation )

Definition at line 50 of file mod_admin_time.F90.

Referenced by admin_time_checkstate(), and mod_atmos_driver::atmos_driver_calc_tendency().

50  logical, public :: time_doatmos_phy_rd

◆ time_doatmos_phy_sf

logical, public mod_admin_time::time_doatmos_phy_sf

execute physics in this step? (surface flux)

Definition at line 51 of file mod_admin_time.F90.

Referenced by admin_time_checkstate(), mod_atmos_driver::atmos_driver_calc_tendency(), and mod_atmos_driver::atmos_driver_calc_tendency_from_sflux().

51  logical, public :: time_doatmos_phy_sf

◆ time_doatmos_phy_tb

logical, public mod_admin_time::time_doatmos_phy_tb

execute physics in this step? (turbulence )

Definition at line 52 of file mod_admin_time.F90.

Referenced by admin_time_checkstate(), and mod_atmos_driver::atmos_driver_calc_tendency().

52  logical, public :: time_doatmos_phy_tb

◆ time_doatmos_phy_bl

logical, public mod_admin_time::time_doatmos_phy_bl

execute physics in this step? (boudary layer )

Definition at line 53 of file mod_admin_time.F90.

Referenced by admin_time_checkstate(), mod_atmos_driver::atmos_driver_calc_tendency(), and mod_atmos_driver::atmos_driver_calc_tendency_from_sflux().

53  logical, public :: time_doatmos_phy_bl

◆ time_doatmos_phy_ch

logical, public mod_admin_time::time_doatmos_phy_ch

execute physics in this step? (chemistry )

Definition at line 54 of file mod_admin_time.F90.

Referenced by admin_time_checkstate(), and mod_atmos_driver::atmos_driver_calc_tendency().

54  logical, public :: time_doatmos_phy_ch

◆ time_doatmos_phy_ae

logical, public mod_admin_time::time_doatmos_phy_ae

execute physics in this step? (aerosol )

Definition at line 55 of file mod_admin_time.F90.

Referenced by admin_time_checkstate(), mod_atmos_driver::atmos_driver_calc_tendency(), and mod_atmos_driver::atmos_driver_update().

55  logical, public :: time_doatmos_phy_ae

◆ time_doatmos_restart

logical, public mod_admin_time::time_doatmos_restart

execute atmosphere restart output in this step?

Definition at line 56 of file mod_admin_time.F90.

Referenced by mod_admin_restart::admin_restart_write(), admin_time_advance(), and mod_rm_prep::rm_prep().

56  logical, public :: time_doatmos_restart
logical, public time_doatmos_restart
execute atmosphere restart output in this step?

◆ time_doocean_step

logical, public mod_admin_time::time_doocean_step

execute ocean component in this step?

Definition at line 57 of file mod_admin_time.F90.

Referenced by admin_time_checkstate(), and mod_rm_driver::rm_driver().

57  logical, public :: time_doocean_step

◆ time_doocean_restart

logical, public mod_admin_time::time_doocean_restart

execute ocean restart output in this step?

Definition at line 58 of file mod_admin_time.F90.

Referenced by mod_admin_restart::admin_restart_write(), admin_time_advance(), and mod_rm_prep::rm_prep().

58  logical, public :: time_doocean_restart
logical, public time_doocean_restart
execute ocean restart output in this step?

◆ time_doland_step

logical, public mod_admin_time::time_doland_step

execute land component in this step?

Definition at line 59 of file mod_admin_time.F90.

Referenced by admin_time_checkstate(), and mod_rm_driver::rm_driver().

59  logical, public :: time_doland_step

◆ time_doland_restart

logical, public mod_admin_time::time_doland_restart

execute land restart output in this step?

Definition at line 60 of file mod_admin_time.F90.

Referenced by mod_admin_restart::admin_restart_write(), admin_time_advance(), and mod_rm_prep::rm_prep().

60  logical, public :: time_doland_restart
logical, public time_doland_restart
execute land restart output in this step?

◆ time_dourban_step

logical, public mod_admin_time::time_dourban_step

execute urban component in this step?

Definition at line 61 of file mod_admin_time.F90.

Referenced by admin_time_checkstate(), and mod_rm_driver::rm_driver().

61  logical, public :: time_dourban_step

◆ time_dourban_restart

logical, public mod_admin_time::time_dourban_restart

execute urban restart output in this step?

Definition at line 62 of file mod_admin_time.F90.

Referenced by mod_admin_restart::admin_restart_write(), admin_time_advance(), and mod_rm_prep::rm_prep().

62  logical, public :: time_dourban_restart
logical, public time_dourban_restart
execute urban restart output in this step?

◆ time_doresume

logical, public mod_admin_time::time_doresume

resume in this step?

Definition at line 63 of file mod_admin_time.F90.

Referenced by admin_time_checkstate(), and mod_rm_driver::rm_driver().

63  logical, public :: time_doresume

◆ time_doend

logical, public mod_admin_time::time_doend

finish program in this step?

Definition at line 64 of file mod_admin_time.F90.

Referenced by admin_time_advance(), and mod_rm_driver::rm_driver().

64  logical, public :: time_doend