My Project
Public Member Functions | List of all members
mod_set_time::set_startup_file_stack Interface Reference

Public Member Functions

subroutine set_startup_file_stack_by_time (STIME, STEP)
 
subroutine set_startup_file_stack_by_cycle (step, ATIME)
 

Detailed Description

Definition at line 47 of file mod_set_time.f90.

Member Function/Subroutine Documentation

◆ set_startup_file_stack_by_cycle()

subroutine mod_set_time::set_startup_file_stack::set_startup_file_stack_by_cycle ( integer(itime), intent(in)  step,
type(time), intent(out), optional  ATIME 
)

Definition at line 1407 of file mod_set_time.f90.

1407  IMPLICIT NONE
1408  INTEGER(ITIME), INTENT(IN) :: STEP
1409  TYPE(TIME), OPTIONAL, INTENT(OUT) :: Atime
1410  integer :: status, I
1411  real(DP) :: temp
1412  TYPE(NCFILE), POINTER :: NCF
1413  TYPE(NCVAR), POINTER :: VAR
1414  INTEGER, TARGET :: FSTEP
1415  logical found
1416 
1417  IF(.NOT. ASSOCIATED(nc_start)) CALL fatal_error &
1418  & ("The file object NC_START is not assocaited!")
1419 
1420 
1421  status = set_file_time_type(nc_start)
1422  IF(status /= 0) CALL fatal_error &
1423  & ("COULD NOT FIND A VALID TIME VARIABLE IN THE RESTART FILE: ",&
1424  & trim(nc_start%FNAME))
1425 
1426  i = 0
1427  DO
1428  i = i + 1
1429  IF (i .GT. nc_start%FTIME%STK_LEN) THEN
1430 
1431  CALL fatal_error &
1432  & ("COULD NOT FIND A MATCHING IINT CYCLE NUMBER IN THE RESTART FILE!:",&
1433  & trim(nc_start%FNAME))
1434  END IF
1435 
1436  var => find_var(nc_start,'iint',found)
1437  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'iint'&
1438  & IN THE HOTSTART FILE OBJECT")
1439  var%scl_int => fstep
1440  CALL nc_read_var(var,i)
1441 
1442  IF (fstep == step) THEN
1443 
1444  if (PRESENT(atime)) THEN
1445  atime = get_file_time_ncf(nc_start,i)
1446 
1447  nc_start%FTIME%PREV_STKCNT = i
1448  nc_start%FTIME%PREV_IO = atime
1449  END if
1450 
1451  return
1452  END IF
1453 
1454  END DO
1455 
1456 
subroutine fatal_error(ER1, ER2, ER3, ER4)
Definition: mod_utils.f90:230
type(ncfile), pointer nc_start
Definition: mod_input.f90:51

◆ set_startup_file_stack_by_time()

subroutine mod_set_time::set_startup_file_stack::set_startup_file_stack_by_time ( type(time), intent(in)  STIME,
integer(itime), intent(out), optional  STEP 
)

Definition at line 1323 of file mod_set_time.f90.

1323  IMPLICIT NONE
1324  TYPE(TIME), INTENT(IN) :: Stime
1325  INTEGER(ITIME), INTENT(OUT),OPTIONAL :: STEP
1326 
1327  INTEGER, TARGET :: FSTEP
1328  TYPE(TIME) :: Atime
1329  integer :: status, I
1330  real(DP) :: temp
1331  TYPE(NCFILE), POINTER :: NCF
1332  TYPE(NCVAR), POINTER :: VAR
1333  logical found
1334 
1335 
1336  IF(.NOT. ASSOCIATED(nc_start)) CALL fatal_error &
1337  & ("The file object NC_START is not assocaited!")
1338 
1339 
1340  status = set_file_time_type(nc_start)
1341  IF(status /= 0) CALL fatal_error &
1342  & ("COULD NOT FIND A VALID TIME VARIABLE IN THE RESTART FILE: ",&
1343  & trim(nc_start%FNAME))
1344 
1345  i = 0
1346  DO
1347  i = i + 1
1348  IF (i .GT. nc_start%FTIME%STK_LEN) THEN
1349 
1350  IF(dbg_set(dbg_log))&
1351  & CALL print_real_time(stime,ipt,"Asked for Start Time")
1352 
1353  IF(i == 2) THEN
1354  IF(dbg_set(dbg_log))&
1355  & CALL print_real_time(get_file_time_ncf(nc_start,1),ipt,"The Only Restart Time Is")
1356 
1357  ELSE IF(i==1)THEN
1358  CALL fatal_error &
1359  & ("Restart file has time dimension equal zero!:",&
1360  & trim(nc_start%FNAME))
1361  ELSE
1362  atime =get_file_time_ncf(nc_start,1)
1363  IF(dbg_set(dbg_log))&
1364  & CALL print_real_time(atime,ipt,"First Restart Time")
1365 
1366  atime =get_file_time_ncf(nc_start,i-1)
1367  IF(dbg_set(dbg_log))&
1368  & CALL print_real_time(atime,ipt,"Last Restart Time")
1369  END IF
1370 
1371  CALL fatal_error &
1372  & ("COULD NOT FIND A MATCHING START TIME IN THE RESTART FILE!:",&
1373  & "(See time options printed above?)",&
1374  & trim(nc_start%FNAME))
1375  END IF
1376 
1377  atime = get_file_time_ncf(nc_start,i)
1378 
1379 
1380  !IF (ATIME == STime) THEN
1381  IF(abs(atime -stime)<0.1_sp*imdti) THEN
1382 
1383  nc_start%FTIME%PREV_STKCNT = i
1384  !NC_START%FTIME%PREV_IO = ATIME
1385 
1386  nc_start%FTIME%PREV_IO = stime
1387 
1388  IF (PRESENT(step)) THEN
1389  var => find_var(nc_start,'iint',found)
1390  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'iint'&
1391  & IN THE HOTSTART FILE OBJECT")
1392  var%scl_int => fstep
1393  CALL nc_read_var(var,i)
1394 
1395  step = fstep
1396  END IF
1397 
1398  return
1399  END IF
1400 
1401  END DO
1402 
1403 
logical function dbg_set(vrb)
Definition: mod_utils.f90:182
subroutine print_real_time(mjd, IPT, char, TZONE)
Definition: mod_time.f90:1201
subroutine fatal_error(ER1, ER2, ER3, ER4)
Definition: mod_utils.f90:230
type(time) imdti
Definition: mod_main.f90:848
integer ipt
Definition: mod_main.f90:922
integer, parameter dbg_log
Definition: mod_utils.f90:65
type(ncfile), pointer nc_start
Definition: mod_input.f90:51

The documentation for this interface was generated from the following file: