76 integer,
private :: time_startdate(6) = (/ -999, 1, 1, 0, 0, 0 /)
77 real(
dp),
private :: time_startms = 0.0_dp
78 real(
dp),
private :: time_startsubsec
79 integer,
private :: time_startday
80 real(
dp),
private :: time_startsec
82 integer,
private :: time_enddate(6)
83 real(
dp),
private :: time_endsubsec
84 integer,
private :: time_endday
85 real(
dp),
private :: time_endsec
87 integer,
private :: time_res_atmos_dyn
88 integer,
private :: time_res_atmos_phy_cp
89 integer,
private :: time_res_atmos_phy_mp
90 integer,
private :: time_res_atmos_phy_rd
91 integer,
private :: time_res_atmos_phy_sf
92 integer,
private :: time_res_atmos_phy_tb
93 integer,
private :: time_res_atmos_phy_bl
94 integer,
private :: time_res_atmos_phy_ch
95 integer,
private :: time_res_atmos_phy_ae
96 integer,
private :: time_res_atmos_phy_lt
97 integer,
private :: time_res_atmos_restart
98 integer,
private :: time_res_ocean
99 integer,
private :: time_res_ocean_restart
100 integer,
private :: time_res_land
101 integer,
private :: time_res_land_restart
102 integer,
private :: time_res_urban
103 integer,
private :: time_res_urban_restart
104 integer,
private :: time_res_da
105 integer,
private :: time_res_resume
107 real(
dp),
private :: time_wallclock_start
108 real(
dp),
private :: time_wallclock_limit = -1.0_dp
109 real(
dp),
private :: time_wallclock_safe = 0.9_dp
110 real(
dp),
private :: time_wallclock_safelim
112 logical,
private :: debug = .false.
114 real(
dp),
private,
parameter :: eps = 1.e-6_dp
121 setup_TimeIntegration )
184 logical,
intent(in) :: setup_timeintegration
186 real(
dp) :: time_duration
187 character(len=H_SHORT) :: time_duration_unit
189 character(len=H_SHORT) :: time_dt_unit
191 real(
dp) :: time_dt_atmos_dyn
192 character(len=H_SHORT) :: time_dt_atmos_dyn_unit
194 real(
dp) :: time_dt_atmos_phy_cp
195 character(len=H_SHORT) :: time_dt_atmos_phy_cp_unit
196 real(
dp) :: time_dt_atmos_phy_mp
197 character(len=H_SHORT) :: time_dt_atmos_phy_mp_unit
198 real(
dp) :: time_dt_atmos_phy_rd
199 character(len=H_SHORT) :: time_dt_atmos_phy_rd_unit
200 real(
dp) :: time_dt_atmos_phy_sf
201 character(len=H_SHORT) :: time_dt_atmos_phy_sf_unit
202 real(
dp) :: time_dt_atmos_phy_tb
203 character(len=H_SHORT) :: time_dt_atmos_phy_tb_unit
204 real(
dp) :: time_dt_atmos_phy_bl
205 character(len=H_SHORT) :: time_dt_atmos_phy_bl_unit
206 real(
dp) :: time_dt_atmos_phy_ch
207 character(len=H_SHORT) :: time_dt_atmos_phy_ch_unit
208 real(
dp) :: time_dt_atmos_phy_ae
209 character(len=H_SHORT) :: time_dt_atmos_phy_ae_unit
210 real(
dp) :: time_dt_atmos_phy_lt
211 character(len=H_SHORT) :: time_dt_atmos_phy_lt_unit
212 real(
dp) :: time_dt_atmos_restart
213 character(len=H_SHORT) :: time_dt_atmos_restart_unit
215 real(
dp) :: time_dt_ocean
216 character(len=H_SHORT) :: time_dt_ocean_unit
217 real(
dp) :: time_dt_ocean_restart
218 character(len=H_SHORT) :: time_dt_ocean_restart_unit
220 real(
dp) :: time_dt_land
221 character(len=H_SHORT) :: time_dt_land_unit
222 real(
dp) :: time_dt_land_restart
223 character(len=H_SHORT) :: time_dt_land_restart_unit
225 real(
dp) :: time_dt_urban
226 character(len=H_SHORT) :: time_dt_urban_unit
227 real(
dp) :: time_dt_urban_restart
228 character(len=H_SHORT) :: time_dt_urban_restart_unit
230 real(
dp) :: time_dt_da
231 character(len=H_SHORT) :: time_dt_da_unit
233 real(
dp) :: time_dt_resume
234 character(len=H_SHORT) :: time_dt_resume_unit
236 real(
dp) :: time_dt_wallclock_check
237 character(len=H_SHORT) :: time_dt_wallclock_check_unit
239 namelist / param_time / &
243 time_duration_unit, &
247 time_dt_atmos_dyn_unit, &
249 time_dt_atmos_phy_cp, &
250 time_dt_atmos_phy_cp_unit, &
251 time_dt_atmos_phy_mp, &
252 time_dt_atmos_phy_mp_unit, &
253 time_dt_atmos_phy_rd, &
254 time_dt_atmos_phy_rd_unit, &
255 time_dt_atmos_phy_sf, &
256 time_dt_atmos_phy_sf_unit, &
257 time_dt_atmos_phy_tb, &
258 time_dt_atmos_phy_tb_unit, &
259 time_dt_atmos_phy_bl, &
260 time_dt_atmos_phy_bl_unit, &
261 time_dt_atmos_phy_ch, &
262 time_dt_atmos_phy_ch_unit, &
263 time_dt_atmos_phy_ae, &
264 time_dt_atmos_phy_ae_unit, &
265 time_dt_atmos_phy_lt, &
266 time_dt_atmos_phy_lt_unit, &
267 time_dt_atmos_restart, &
268 time_dt_atmos_restart_unit, &
270 time_dt_ocean_unit, &
271 time_dt_ocean_restart, &
272 time_dt_ocean_restart_unit, &
275 time_dt_land_restart, &
276 time_dt_land_restart_unit, &
278 time_dt_urban_unit, &
279 time_dt_urban_restart, &
280 time_dt_urban_restart_unit, &
283 time_dt_wallclock_check, &
284 time_dt_wallclock_check_unit, &
286 time_dt_resume_unit, &
287 time_wallclock_limit, &
288 time_wallclock_safe, &
293 real(
dp) :: cftime(1)
294 character(len=H_MID) :: cfunits
296 real(
dp) :: time_durationsec
297 character(len=27) :: startchardate
298 character(len=27) :: endchardate
304 log_info(
"ADMIN_TIME_setup",*)
'Setup'
308 time_duration = undef8
309 time_duration_unit =
"SEC"
313 time_dt_atmos_dyn = undef8
314 time_dt_atmos_dyn_unit =
"SEC"
316 time_dt_atmos_phy_cp = undef8
317 time_dt_atmos_phy_cp_unit =
""
318 time_dt_atmos_phy_mp = undef8
319 time_dt_atmos_phy_mp_unit =
""
320 time_dt_atmos_phy_rd = undef8
321 time_dt_atmos_phy_rd_unit =
""
322 time_dt_atmos_phy_sf = undef8
323 time_dt_atmos_phy_sf_unit =
""
324 time_dt_atmos_phy_tb = undef8
325 time_dt_atmos_phy_tb_unit =
""
326 time_dt_atmos_phy_bl = undef8
327 time_dt_atmos_phy_bl_unit =
""
328 time_dt_atmos_phy_ch = undef8
329 time_dt_atmos_phy_ch_unit =
""
330 time_dt_atmos_phy_ae = undef8
331 time_dt_atmos_phy_ae_unit =
""
332 time_dt_atmos_phy_lt = undef8
333 time_dt_atmos_phy_lt_unit =
""
334 time_dt_atmos_restart = undef8
335 time_dt_atmos_restart_unit =
""
337 time_dt_ocean = undef8
338 time_dt_ocean_unit =
""
339 time_dt_ocean_restart = undef8
340 time_dt_ocean_restart_unit =
""
342 time_dt_land = undef8
343 time_dt_land_unit =
""
344 time_dt_land_restart = undef8
345 time_dt_land_restart_unit =
""
347 time_dt_urban = undef8
348 time_dt_urban_unit =
""
349 time_dt_urban_restart = undef8
350 time_dt_urban_restart_unit =
""
355 time_dt_resume = undef8
356 time_dt_resume_unit =
""
358 time_dt_wallclock_check = undef8
359 time_dt_wallclock_check_unit =
""
366 log_info(
"ADMIN_TIME_setup",*)
'Not found namelist. Default used.'
367 elseif( ierr > 0 )
then
368 log_error(
"ADMIN_TIME_setup",*)
'Not appropriate names in namelist PARAM_TIME. Check!'
374 if ( setup_timeintegration )
then
377 log_info(
"ADMIN_TIME_setup",*)
'Check time interval and unit for each component '
379 if ( time_dt == undef8 )
then
380 log_error(
"ADMIN_TIME_setup",*)
'Not found TIME_DT. STOP.'
383 if ( time_duration == undef8 )
then
384 log_error(
"ADMIN_TIME_setup",*)
'Not found TIME_DURATION. STOP.'
389 if ( time_dt_atmos_dyn == undef8 )
then
391 log_info_cont(*)
'Not found TIME_DT_ATMOS_DYN. TIME_DT is used.'
392 time_dt_atmos_dyn = time_dt
395 if ( time_dt_atmos_dyn_unit ==
'' )
then
396 log_info_cont(*)
'Not found TIME_DT_ATMOS_DYN_UNIT. TIME_DT_UNIT is used.'
397 time_dt_atmos_dyn_unit = time_dt_unit
400 if ( time_dt_atmos_phy_cp == undef8 )
then
401 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_CP. TIME_DT is used.'
402 time_dt_atmos_phy_cp = time_dt
404 if ( time_dt_atmos_phy_cp_unit ==
'' )
then
405 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_CP_UNIT. TIME_DT_UNIT is used.'
406 time_dt_atmos_phy_cp_unit = time_dt_unit
409 if ( time_dt_atmos_phy_mp == undef8 )
then
410 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_MP. TIME_DT is used.'
411 time_dt_atmos_phy_mp = time_dt
413 if ( time_dt_atmos_phy_mp_unit ==
'' )
then
414 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_MP_UNIT. TIME_DT_UNIT is used.'
415 time_dt_atmos_phy_mp_unit = time_dt_unit
418 if ( time_dt_atmos_phy_rd == undef8 )
then
419 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_RD. TIME_DT is used.'
420 time_dt_atmos_phy_rd = time_dt
422 if ( time_dt_atmos_phy_rd_unit ==
'' )
then
423 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_RD_UNIT. TIME_DT_UNIT is used.'
424 time_dt_atmos_phy_rd_unit = time_dt_unit
427 if ( time_dt_atmos_phy_sf == undef8 )
then
428 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_SF. TIME_DT is used.'
429 time_dt_atmos_phy_sf = time_dt
431 if ( time_dt_atmos_phy_sf_unit ==
'' )
then
432 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_SF_UNIT. TIME_DT_UNIT is used.'
433 time_dt_atmos_phy_sf_unit = time_dt_unit
436 if ( time_dt_atmos_phy_tb == undef8 )
then
437 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_TB. TIME_DT is used.'
438 time_dt_atmos_phy_tb = time_dt
440 if ( time_dt_atmos_phy_tb_unit ==
'' )
then
441 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_TB_UNIT. TIME_DT_UNIT is used.'
442 time_dt_atmos_phy_tb_unit = time_dt_unit
445 if ( time_dt_atmos_phy_bl == undef8 )
then
446 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_BL. TIME_DT is used.'
447 time_dt_atmos_phy_bl = time_dt
449 if ( time_dt_atmos_phy_bl_unit ==
'' )
then
450 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_BL_UNIT. TIME_DT_UNIT is used.'
451 time_dt_atmos_phy_bl_unit = time_dt_unit
454 if ( time_dt_atmos_phy_ch == undef8 )
then
455 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_CH. TIME_DT is used.'
456 time_dt_atmos_phy_ch = time_dt
458 if ( time_dt_atmos_phy_ch_unit ==
'' )
then
459 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_CH_UNIT. TIME_DT_UNIT is used.'
460 time_dt_atmos_phy_ch_unit = time_dt_unit
463 if ( time_dt_atmos_phy_ae == undef8 )
then
464 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_AE. TIME_DT is used.'
465 time_dt_atmos_phy_ae = time_dt
467 if ( time_dt_atmos_phy_ae_unit ==
'' )
then
468 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_AE_UNIT. TIME_DT_UNIT is used.'
469 time_dt_atmos_phy_ae_unit = time_dt_unit
472 if ( time_dt_atmos_phy_lt == undef8 )
then
473 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_LT. TIME_DT is used.'
474 time_dt_atmos_phy_lt = time_dt
476 if ( time_dt_atmos_phy_lt_unit ==
'' )
then
477 log_info_cont(*)
'Not found TIME_DT_ATMOS_PHY_LT_UNIT. TIME_DT_UNIT is used.'
478 time_dt_atmos_phy_lt_unit = time_dt_unit
481 if ( time_dt_atmos_restart == undef8 )
then
482 log_info_cont(*)
'Not found TIME_DT_ATMOS_RESTART. TIME_DURATION is used.'
483 time_dt_atmos_restart = time_duration
485 if ( time_dt_atmos_restart_unit ==
'' )
then
486 log_info_cont(*)
'Not found TIME_DT_ATMOS_RESTART_UNIT. TIME_DURATION_UNIT is used.'
487 time_dt_atmos_restart_unit = time_duration_unit
490 if ( time_dt_ocean == undef8 )
then
491 log_info_cont(*)
'Not found TIME_DT_OCEAN. TIME_DT is used.'
492 time_dt_ocean = time_dt
494 if ( time_dt_ocean_unit ==
'' )
then
495 log_info_cont(*)
'Not found TIME_DT_OCEAN_UNIT. TIME_DT_UNIT is used.'
496 time_dt_ocean_unit = time_dt_unit
499 if ( time_dt_ocean_restart == undef8 )
then
500 log_info_cont(*)
'Not found TIME_DT_OCEAN_RESTART. TIME_DURATION is used.'
501 time_dt_ocean_restart = time_duration
503 if ( time_dt_ocean_restart_unit ==
'' )
then
504 log_info_cont(*)
'Not found TIME_DT_OCEAN_RESTART_UNIT. TIME_DURATION_UNIT is used.'
505 time_dt_ocean_restart_unit = time_duration_unit
508 if ( time_dt_land == undef8 )
then
509 log_info_cont(*)
'Not found TIME_DT_LAND. TIME_DT is used.'
510 time_dt_land = time_dt
512 if ( time_dt_land_unit ==
'' )
then
513 log_info_cont(*)
'Not found TIME_DT_LAND_UNIT. TIME_DT_UNIT is used.'
514 time_dt_land_unit = time_dt_unit
517 if ( time_dt_land_restart == undef8 )
then
518 log_info_cont(*)
'Not found TIME_DT_LAND_RESTART. TIME_DURATION is used.'
519 time_dt_land_restart = time_duration
521 if ( time_dt_land_restart_unit ==
'' )
then
522 log_info_cont(*)
'Not found TIME_DT_LAND_RESTART_UNIT. TIME_DURATION_UNIT is used.'
523 time_dt_land_restart_unit = time_duration_unit
526 if ( time_dt_urban == undef8 )
then
527 log_info_cont(*)
'Not found TIME_DT_URBAN. TIME_DT is used.'
528 time_dt_urban = time_dt
530 if ( time_dt_urban_unit ==
'' )
then
531 log_info_cont(*)
'Not found TIME_DT_URBAN_UNIT. TIME_DT_UNIT is used.'
532 time_dt_urban_unit = time_dt_unit
535 if ( time_dt_urban_restart == undef8 )
then
536 log_info_cont(*)
'Not found TIME_DT_URBAN_RESTART. TIME_DURATION is used.'
537 time_dt_urban_restart = time_duration
539 if ( time_dt_urban_restart_unit ==
'' )
then
540 log_info_cont(*)
'Not found TIME_DT_URBAN_RESTART_UNIT. TIME_DURATION_UNIT is used.'
541 time_dt_urban_restart_unit = time_duration_unit
544 if ( time_dt_da == undef8 )
then
545 log_info_cont(*)
'Not found TIME_DT_DA. TIME_DT is used.'
548 if ( time_dt_da_unit ==
'' )
then
549 log_info_cont(*)
'Not found TIME_DT_DA_UNIT. TIME_DT_UNIT is used.'
550 time_dt_da_unit = time_dt_unit
553 if ( time_dt_resume == undef8 )
then
554 time_dt_resume = time_duration
556 if ( time_dt_resume_unit ==
'' )
then
557 log_info_cont(*)
'Not found TIME_DT_RESUME_UNIT. TIME_DURATION_UNIT is used.'
558 time_dt_resume_unit = time_duration_unit
563 if ( time_startdate(1) == -999 )
then
564 if ( restart_in_basename /=
'' )
then
565 call file_get_attribute( restart_in_basename, &
572 call file_get_attribute( restart_in_basename, &
590 time_startdate = (/ 0, 1, 1, 0, 0, 0 /)
591 time_startsubsec = 0.0_dp
594 time_startsubsec = time_startms * 1.e-3_dp
617 time_endday = time_startday
619 if ( setup_timeintegration )
then
621 time_endsec = time_startsec + time_durationsec
623 time_endsec = time_startsec
639 log_info(
"ADMIN_TIME_setup",*)
'Global date / time setting '
640 log_info_cont(
'(1x,A,A)')
'START Date : ', startchardate
641 log_info_cont(
'(1x,A,A)')
'END Date : ', endchardate
643 if ( setup_timeintegration )
then
650 log_info_cont(
'(1x,A,F12.3)')
'delta t (sec.) :',
time_dtsec
651 log_info_cont(
'(1x,A,I12)' )
'No. of steps :',
time_nstep
654 if ( time_dt_atmos_dyn /= undef8 )
then
721 time_res_atmos_dyn = 0
722 time_res_atmos_phy_cp = 0
723 time_res_atmos_phy_mp = 0
724 time_res_atmos_phy_rd = 0
725 time_res_atmos_phy_sf = 0
726 time_res_atmos_phy_tb = 0
727 time_res_atmos_phy_bl = 0
728 time_res_atmos_phy_ch = 0
729 time_res_atmos_phy_ae = 0
730 time_res_atmos_phy_lt = 0
731 time_res_atmos_restart = 0
733 time_res_ocean_restart = 0
735 time_res_land_restart = 0
737 time_res_urban_restart = 0
744 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_DYN) must be a multiple of delta t ', &
749 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_CP) must be a multiple of delta t ', &
754 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_MP) must be a multiple of delta t ', &
759 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_RD) must be a multiple of delta t ', &
764 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_SF) must be a multiple of delta t ', &
769 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_TB) must be a multiple of delta t ', &
774 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_BL) must be a multiple of delta t ', &
779 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_CH) must be a multiple of delta t ', &
784 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_AE) must be a multiple of delta t ', &
789 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_PHY_LT) must be a multiple of delta t ', &
794 log_error(
"ADMIN_TIME_setup",*)
'delta t(OCEAN) must be a multiple of delta t ', &
799 log_error(
"ADMIN_TIME_setup",*)
'delta t(LAND) must be a multiple of delta t ', &
804 log_error(
"ADMIN_TIME_setup",*)
'delta t(URBAN) must be a multiple of delta t ', &
809 log_error(
"ADMIN_TIME_setup",*)
'delta t(ATMOS_RESTART) must be a multiple of delta t ', &
814 log_error(
"ADMIN_TIME_setup",*)
'delta t(OCEAN_RESTART) must be a multiple of delta t ', &
819 log_error(
"ADMIN_TIME_setup",*)
'delta t(LAND_RESTART) must be a multiple of delta t ', &
824 log_error(
"ADMIN_TIME_setup",*)
'delta t(URBAN_RESTART) must be a multiple of delta t ', &
829 log_error(
"ADMIN_TIME_setup",*)
'delta t(URBAN_RESTART) must be a multiple of delta t ', &
834 log_error(
"ADMIN_TIME_setup",*)
'delta t(DA) must be a multiple of delta t ', &
839 log_error(
"ADMIN_TIME_setup",*)
'delta t(RESUME) must be a multiple of delta t ', &
845 log_info(
"ADMIN_TIME_setup",*)
'Time interval for each component (sec.)'
846 log_info_cont(*)
'Atmosphere'
875 log_info_cont(*)
'Time interval for restart (sec.)'
884 log_info_cont(
'(1x,A,F10.3,A,I8,A)')
'Data Assimilation : ',
time_dtsec_da, &
895 if ( time_wallclock_limit > 0.0_dp )
then
897 log_info(
"ADMIN_TIME_setup",*)
'Wall clock time limit of execution is specified.'
899 if ( time_dt_wallclock_check == undef8 )
then
900 log_info_cont(*)
'Not found TIME_DT_WALLCLOCK_CHECK. largest time step interval is used.'
915 if ( time_dt_wallclock_check_unit ==
'' )
then
916 log_info_cont(*)
'Not found TIME_DT_WALLCLOCK_CHECK_UNIT. TIME_DURATION_UNIT is used.'
917 time_dt_wallclock_check_unit = time_duration_unit
925 time_wallclock_safe = max( min( time_wallclock_safe, 1.0_dp ), 0.0_dp )
926 time_wallclock_safelim = time_wallclock_limit * time_wallclock_safe
928 log_info_cont(
'(1x,A,F10.1,A)')
'This job stops after ', time_wallclock_safelim,
' seconds.'
969 real(
dp) :: wallclock_elapse
970 character(len=27) :: nowchardate
991 time_res_atmos_dyn = time_res_atmos_dyn + 1
992 time_res_atmos_phy_cp = time_res_atmos_phy_cp + 1
993 time_res_atmos_phy_mp = time_res_atmos_phy_mp + 1
994 time_res_atmos_phy_rd = time_res_atmos_phy_rd + 1
995 time_res_atmos_phy_sf = time_res_atmos_phy_sf + 1
996 time_res_atmos_phy_tb = time_res_atmos_phy_tb + 1
997 time_res_atmos_phy_bl = time_res_atmos_phy_bl + 1
998 time_res_atmos_phy_ch = time_res_atmos_phy_ch + 1
999 time_res_atmos_phy_ae = time_res_atmos_phy_ae + 1
1000 time_res_atmos_phy_lt = time_res_atmos_phy_lt + 1
1001 time_res_ocean = time_res_ocean + 1
1002 time_res_land = time_res_land + 1
1003 time_res_urban = time_res_urban + 1
1004 time_res_da = time_res_da + 1
1005 time_res_resume = time_res_resume + 1
1010 time_res_atmos_dyn = 0
1015 time_res_atmos_phy_cp = 0
1020 time_res_atmos_phy_mp = 0
1025 time_res_atmos_phy_rd = 0
1030 time_res_atmos_phy_sf = 0
1035 time_res_atmos_phy_tb = 0
1040 time_res_atmos_phy_bl = 0
1045 time_res_atmos_phy_ch = 0
1050 time_res_atmos_phy_ae = 0
1055 time_res_atmos_phy_lt = 0
1088 wallclock_elapse =
prc_mpitime() - time_wallclock_start
1091 if ( time_wallclock_limit > 0.0_dp )
then
1092 log_progress(
'(1x,2A,2(A,I7),2(A,F10.1))')
'TIME: ', nowchardate,
' STEP:',
time_nowstep,
'/',
time_nstep, &
1093 ' WCLOCK:', wallclock_elapse,
'/', time_wallclock_safelim
1095 write(*,
'(1x,2A,2(A,I7),2(A,F10.1))')
'TIME: ', nowchardate,
' STEP:',
time_nowstep,
'/',
time_nstep, &
1096 ' WCLOCK:', wallclock_elapse,
'/', time_wallclock_safelim
1099 log_progress(
'(1x,2A,2(A,I7),A,F10.1)')
'TIME: ', nowchardate,
' STEP:',
time_nowstep,
'/',
time_nstep, &
1100 ' WCLOCK:', wallclock_elapse
1102 write(*,
'(1x,2A,2(A,I7),A,F10.1)')
'TIME: ', nowchardate,
' STEP:',
time_nowstep,
'/',
time_nstep, &
1103 ' WCLOCK:', wallclock_elapse
1135 real(
dp) :: wallclock_elapse
1136 logical :: wallclock_doend
1164 if ( time_wallclock_limit > 0.0_dp )
then
1165 wallclock_doend = .false.
1170 wallclock_elapse =
prc_mpitime() - time_wallclock_start
1172 if( wallclock_elapse > time_wallclock_safelim ) wallclock_doend = .true.
1176 call comm_bcast( wallclock_doend )
1178 if ( wallclock_doend )
then
1180 log_info(
"ADMIN_TIME_advance",*)
'**************************************************************'
1181 log_info(
"ADMIN_TIME_advance",*)
'Elapse time limit is detected. Termination operation starts. '
1182 log_info(
"ADMIN_TIME_advance",*)
'**************************************************************'
1193 time_res_atmos_restart = time_res_atmos_restart + 1
1194 time_res_ocean_restart = time_res_ocean_restart + 1
1195 time_res_land_restart = time_res_land_restart + 1
1196 time_res_urban_restart = time_res_urban_restart + 1
1200 time_res_atmos_restart = 0
1207 time_res_ocean_restart = 0
1214 time_res_land_restart = 0
1221 time_res_urban_restart = 0