74 integer,
private :: time_startdate(6) = (/ -999, 1, 1, 0, 0, 0 /)
75 real(DP),
private :: time_startms = 0.0_dp
76 integer,
private :: time_startday
77 real(DP),
private :: time_startsec
79 integer,
private :: time_enddate(6)
80 real(DP),
private :: time_endms
81 integer,
private :: time_endday
82 real(DP),
private :: time_endsec
84 integer,
private :: time_res_atmos_dyn = 0
85 integer,
private :: time_res_atmos_phy_cp = 0
86 integer,
private :: time_res_atmos_phy_mp = 0
87 integer,
private :: time_res_atmos_phy_rd = 0
88 integer,
private :: time_res_atmos_phy_sf = 0
89 integer,
private :: time_res_atmos_phy_tb = 0
90 integer,
private :: time_res_atmos_phy_bl = 0
91 integer,
private :: time_res_atmos_phy_ch = 0
92 integer,
private :: time_res_atmos_phy_ae = 0
93 integer,
private :: time_res_atmos_restart = 0
94 integer,
private :: time_res_ocean = 0
95 integer,
private :: time_res_ocean_restart = 0
96 integer,
private :: time_res_land = 0
97 integer,
private :: time_res_land_restart = 0
98 integer,
private :: time_res_urban = 0
99 integer,
private :: time_res_urban_restart = 0
100 integer,
private :: time_res_resume
102 real(DP),
private :: time_wallclock_start
103 real(DP),
private :: time_wallclock_limit = -1.0_dp
104 real(DP),
private :: time_wallclock_safe = 0.9_dp
105 real(DP),
private :: time_wallclock_safelim
107 logical,
private :: debug = .false.
109 real(DP),
private,
parameter :: eps = 1.e-6_dp
116 setup_TimeIntegration )
175 logical,
intent(in) :: setup_TimeIntegration
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" 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 =
"" 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 =
"" 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 =
"" 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 =
"" 219 real(DP) :: TIME_DT_RESUME = undef8
220 character(len=H_SHORT) :: TIME_DT_RESUME_UNIT =
"" 222 real(DP) :: TIME_DT_WALLCLOCK_CHECK = undef8
223 character(len=H_SHORT) :: TIME_DT_WALLCLOCK_CHECK_UNIT =
"" 225 namelist / param_time / &
229 time_duration_unit, &
233 time_dt_atmos_dyn_unit, &
234 time_nstep_atmos_dyn, &
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, &
254 time_dt_ocean_unit, &
255 time_dt_ocean_restart, &
256 time_dt_ocean_restart_unit, &
259 time_dt_land_restart, &
260 time_dt_land_restart_unit, &
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, &
268 time_dt_resume_unit, &
269 time_wallclock_limit, &
270 time_wallclock_safe, &
275 real(DP) :: cftime(1)
276 character(len=H_MID) :: cfunits
278 real(DP) :: TIME_DURATIONSEC
279 character(len=27) :: startchardate
280 character(len=27) :: endchardate
286 log_info(
"ADMIN_TIME_setup",*)
'Setup' 288 time_nstep_atmos_dyn = -1
294 log_info(
"ADMIN_TIME_setup",*)
'Not found namelist. Default used.' 295 elseif( ierr > 0 )
then 296 log_error(
"ADMIN_TIME_setup",*)
'Not appropriate names in namelist PARAM_TIME. Check!' 302 if ( setup_timeintegration )
then 305 log_info(
"ADMIN_TIME_setup",*)
'Check time interval and unit for each component ' 307 if ( time_dt == undef8 )
then 308 log_error(
"ADMIN_TIME_setup",*)
'Not found TIME_DT. STOP.' 311 if ( time_duration == undef8 )
then 312 log_error(
"ADMIN_TIME_setup",*)
'Not found TIME_DURATION. STOP.' 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
463 if ( time_dt_resume == undef8 )
then 464 time_dt_resume = time_duration
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
473 if ( time_startdate(1) == -999 )
then 474 if ( restart_in_basename /=
'' )
then 475 call file_get_attribute( restart_in_basename, &
482 call file_get_attribute( restart_in_basename, &
500 time_startdate = (/ 0, 1, 1, 0, 0, 0 /)
501 time_startms = 0.0_dp
504 time_startms = time_startms * 1.e-3_dp
527 time_endday = time_startday
529 if ( setup_timeintegration )
then 531 time_endsec = time_startsec + time_durationsec
533 time_endsec = time_startsec
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
553 if ( setup_timeintegration )
then 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 564 if ( time_dt_atmos_dyn /= undef8 )
then 587 nstep_dyn = time_nstep_atmos_dyn
629 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_DYN) must be a multiple of delta t ', &
634 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_CP) must be a multiple of delta t ', &
639 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_MP) must be a multiple of delta t ', &
644 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_RD) must be a multiple of delta t ', &
649 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_SF) must be a multiple of delta t ', &
654 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_TB) must be a multiple of delta t ', &
659 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_BL) must be a multiple of delta t ', &
664 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_CH) must be a multiple of delta t ', &
669 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_AE) must be a multiple of delta t ', &
674 log_error(
"ADMIN_TIME_setup",*)
'delta t(OCEAN) must be a multiple of delta t ', &
679 log_error(
"ADMIN_TIME_setup",*)
'delta t(LAND) must be a multiple of delta t ', &
684 log_error(
"ADMIN_TIME_setup",*)
'delta t(URBAN) must be a multiple of delta t ', &
689 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_RESTART) must be a multiple of delta t ', &
694 log_error(
"ADMIN_TIME_setup",*)
'delta t(OCEAN_RESTART) must be a multiple of delta t ', &
699 log_error(
"ADMIN_TIME_setup",*)
'delta t(LAND_RESTART) must be a multiple of delta t ', &
704 log_error(
"ADMIN_TIME_setup",*)
'delta t(URBAN_RESTART) must be a multiple of delta t ', &
709 log_error(
"ADMIN_TIME_setup",*)
'delta t(URBAN_RESTART) must be a multiple of delta t ', &
714 log_error(
"ADMIN_TIME_setup",*)
'delta t(RESUME) must be a multiple of delta t ', &
720 log_info(
"ADMIN_TIME_setup",*)
'Time interval for each component (sec.)' 721 log_info_cont(*)
'Atmosphere' 723 log_info_cont(
'(1x,A,I10,A,I8,A)')
'(step) : ', time_nstep_atmos_dyn, &
748 log_info_cont(*)
'Time interval for restart (sec.)' 766 if ( time_wallclock_limit > 0.0_dp )
then 768 log_info(
"ADMIN_TIME_setup",*)
'Wall clock time limit of execution is specified.' 770 if ( time_dt_wallclock_check == undef8 )
then 771 log_info_cont(*)
'Not found TIME_DT_WALLCLOCK_CHECK. largest time step interval is used.' 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
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
798 log_info_cont(
'(1x,A,F10.1,A)')
'This job stops after ', time_wallclock_safelim,
' seconds.' 837 real(DP) :: wallclock_elapse
838 character(len=27) :: nowchardate
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
874 time_res_atmos_dyn = 0
879 time_res_atmos_phy_cp = 0
884 time_res_atmos_phy_mp = 0
889 time_res_atmos_phy_rd = 0
894 time_res_atmos_phy_sf = 0
899 time_res_atmos_phy_tb = 0
904 time_res_atmos_phy_bl = 0
909 time_res_atmos_phy_ch = 0
914 time_res_atmos_phy_ae = 0
943 wallclock_elapse =
prc_mpitime() - time_wallclock_start
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
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
954 log_progress(
'(1x,2A,2(A,I7),A,F10.1)')
'TIME: ', nowchardate,
' STEP:',
time_nowstep,
'/',
time_nstep, &
955 ' WCLOCK:', wallclock_elapse
957 write(*,
'(1x,2A,2(A,I7),A,F10.1)')
'TIME: ', nowchardate,
' STEP:',
time_nowstep,
'/',
time_nstep, &
958 ' WCLOCK:', wallclock_elapse
990 real(DP) :: WALLCLOCK_elapse
991 logical :: WALLCLOCK_DOend
998 time_nowsec = time_startsec +
real(TIME_NOWSTEP-1,kind=DP) * TIME_DTSEC
1019 if ( time_wallclock_limit > 0.0_dp )
then 1020 wallclock_doend = .false.
1025 wallclock_elapse =
prc_mpitime() - time_wallclock_start
1027 if( wallclock_elapse > time_wallclock_safelim ) wallclock_doend = .true.
1031 call comm_bcast( wallclock_doend )
1033 if ( wallclock_doend )
then 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",*)
'**************************************************************' 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
1055 time_res_atmos_restart = 0
1062 time_res_ocean_restart = 0
1069 time_res_land_restart = 0
1076 time_res_urban_restart = 0
integer, public time_nowstep
current step [number]
real(dp), public time_dtsec_ocean
time interval of ocean step [sec]
integer, public time_dstep_atmos_phy_mp
step interval of physics(microphysics)
subroutine, public calendar_unit2sec(second, value, unit)
Convert several units to second.
logical, public time_doatmos_phy_rd
execute physics in this step? (radiation )
logical, public time_dourban_step
execute urban component in this step?
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]
integer, public time_dstep_atmos_restart
interval of atmosphere restart [step]
integer, public time_nstep_atmos_dyn
small step of dynamics
integer, public time_dstep_atmos_phy_bl
step interval of physics(pbl )
real(dp), public time_nowms
subsecond part of current time [millisec]
logical, public time_doend
finish program in this step?
real(dp), public time_nowsec
subday part of current time [sec]
subroutine, public calendar_date2char(chardate, ymdhms, subsec)
Convert from gregorian date to absolute day/second.
integer, public time_nstep
total steps [number]
integer, public time_dstep_urban_restart
interval of urban restart [step]
real(dp), public time_dtsec_atmos_phy_mp
time interval of physics(microphysics) [sec]
real(dp), public time_dtsec_atmos_phy_ch
time interval of physics(chemistry ) [sec]
real(dp), public time_dtsec_atmos_phy_bl
time interval of physics(pbl ) [sec]
module ATMOSPHERIC Variables
integer, public time_dstep_atmos_dyn
step interval of dynamics
real(dp), public time_nowdaysec
second of current time [sec]
real(dp), public time_startdaysec
second of start time [sec]
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]
logical, public time_doatmos_phy_bl
execute physics in this step? (boudary layer )
integer, public io_fid_conf
Config file ID.
integer, public time_dstep_urban
step interval of urban step
real(dp), public time_dtsec_atmos_restart
time interval of atmosphere restart [sec]
logical, public time_doatmos_phy_mp
execute physics in this step? (microphysics)
real(dp), public time_dtsec_land
time interval of land step [sec]
integer, public time_dstep_land_restart
interval of land restart [step]
integer, public time_dstep_wallclock_check
step interval of wallclock terminator
real(dp), public time_dtsec_resume
time interval for resume [sec]
subroutine, public admin_time_setup(setup_TimeIntegration)
Setup.
subroutine, public calendar_adjust_daysec(absday, abssec)
Adjust day and second.
integer, public time_dstep_ocean
step interval of ocean step
integer, public time_dstep_ocean_restart
interval of ocean restart [step]
logical, public time_doocean_step
execute ocean component in this step?
real(dp), public time_dtsec
time interval of model [sec]
logical, public time_doresume
resume in this step?
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)
integer, public time_offset_year
time offset [year]
integer, public time_dstep_atmos_phy_tb
step interval of physics(turbulence )
real(dp) function, public prc_mpitime()
Get MPI time.
real(dp), public time_dtsec_wallclock_check
time interval of wallclock terminator [sec]
integer, public time_dstep_atmos_phy_rd
step interval of physics(radiation )
real(dp), public time_dtsec_atmos_dyn
time interval of dynamics [sec]
real(dp), public time_dtsec_atmos_phy_sf
time interval of physics(surface flux) [sec]
real(dp), public time_dtsec_atmos_phy_tb
time interval of physics(turbulence ) [sec]
integer, public time_dstep_land
step interval of land step
integer, public io_step_to_stdout
interval for output current step to STDOUT (negative is off)
integer, public prc_myrank
process num in local communicator
logical, public time_doatmos_phy_ch
execute physics in this step? (chemistry )
real(dp), public time_dtsec_urban_restart
time interval of urban restart [sec]
logical, public time_doatmos_phy_cp
execute physics in this step? (cumulus )
real(dp), public time_dtsec_atmos_phy_ae
time interval of physics(aerosol ) [sec]
subroutine, public prc_abort
Abort Process.
integer, public time_dstep_atmos_phy_cp
step interval of physics(cumulus )
real(dp), public time_dtsec_land_restart
time interval of land restart [sec]
real(dp), public time_dtsec_atmos_phy_cp
time interval of physics(cumulus ) [sec]
integer, public time_dstep_resume
interval for resume [step]
logical, public time_dourban_restart
execute urban restart output in this step?
real(dp), parameter, public const_undef8
undefined value (REAL8)
integer, public time_dstep_atmos_phy_ae
step interval of physics(aerosol )
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 )
logical, public prc_ismaster
master process in local communicator?
real(dp), public time_dtsec_ocean_restart
time interval of ocean restart [sec]
logical, public time_doatmos_phy_ae
execute physics in this step? (aerosol )
subroutine, public admin_time_advance
Advance the time & evaluate restart & stop.
character(len=h_long), public atmos_restart_in_basename
Basename of the input file.
logical, public time_doatmos_step
execute atmosphere component in this step?
logical, public time_doatmos_phy_tb
execute physics in this step? (turbulence )
logical, public prc_universal_ismaster
master process in universal communicator?
logical, public time_doland_restart
execute land restart output in this step?
integer, dimension(6), public time_nowdate
current time [YYYY MM DD HH MM SS]
logical, public time_doatmos_dyn
execute dynamics in this step?
logical, public time_doatmos_phy_sf
execute physics in this step? (surface flux)
real(dp), public time_dtsec_urban
time interval of urban step [sec]
integer, parameter, public dp
logical, public time_doland_step
execute land component in this step?
subroutine, public calendar_date2daysec(absday, abssec, ymdhms, subsec, offset_year)
Convert from gregorian date to absolute day/second.
subroutine, public admin_time_checkstate
Evaluate component execution.