15c15 < LOGICAL :: WRF_ERROR_FATAL_PRINT = .FALSE. --- > LOGICAL :: WRF_ERROR_FATAL_PRINT = .TRUE. !FALSE. 77,78c77,78 < it_MM = 1 < it_DD = 1 --- > it_MM = 1 ! same as Earth more simple > it_DD = 1 ! same as Earth more simple 366,367c366,367 < iop1_t_MM = 1 < iop1_t_DD = 1 --- > iop1_t_MM = 1 !see above > iop1_t_DD = 1 !see above 382,383c382,383 < iop2_t_MM = 1 < iop2_t_DD = 1 --- > iop2_t_MM = 1 !see above > iop2_t_DD = 1 !see above 398,399c398,399 < ires_t_MM = 1 < ires_t_DD = 1 --- > ires_t_MM = 1 !see above > ires_t_DD = 1 !see above 921,922c921,922 < istart_MM = 1 < istart_DD = 1 --- > istart_MM = 1 !see above > istart_DD = 1 !see above 927,928c927,928 < istop_MM = 1 < istop_DD = 1 --- > istop_MM = 1 !see above > istop_DD = 1 !see above 1322c1322 < ! PRINT *,'DEBUG: back from WRFU_Initialize(), rc = ',rc --- > PRINT *,'DEBUG: back from WRFU_Initialize(), rc = ',rc 1331,1332c1331,1332 < CALL test_print( t_yy=2001, t_mm=12, t_dd=3, t_h=1, t_m=20, t_s=10, & < res_str='2001-12-03_01:20:10', testname='printT_1' ) --- > CALL test_print( t_yy=2025, t_mm=03, t_dd=23, t_h=1, t_m=20, t_s=10, & > res_str='2025-03-23_01:20:10', testname='printT_1' ) 1334,1366c1334,1369 < CALL test_print( t_yy=0, t_mm=1, t_dd=1, t_h=0, t_m=0, t_s=0, & < res_str='0000-01-01_00:00:00', testname='printT_2' ) < CALL test_print( t_yy=2003, t_mm=12, t_dd=30, t_h=23, t_m=59, t_s=50, & < res_str='2003-12-30_23:59:50', testname='printT_3' ) < CALL test_print( t_yy=2003, t_mm=12, t_dd=31, t_h=23, t_m=59, t_s=50, & < res_str='2003-12-31_23:59:50', testname='printT_4' ) < CALL test_print( t_yy=2004, t_mm=12, t_dd=30, t_h=23, t_m=59, t_s=50, & < res_str='2004-12-30_23:59:50', testname='printT_5' ) < CALL test_print( t_yy=2004, t_mm=12, t_dd=31, t_h=23, t_m=59, t_s=50, & < res_str='2004-12-31_23:59:50', testname='printT_6' ) < !$$$ NOTE that this fails -- need to fix up output string for negative year < ! CALL test_print( t_yy=-2004, t_mm=12, t_dd=31, t_h=23, t_m=59, t_s=50, & < ! res_str='-2004-12-31_23:59:50', testname='printT_6' ) < < ! these test default behavior of test harness < CALL test_print( t_s=0, & < res_str='0000-01-01_00:00:00', testname='printT_D1' ) < CALL test_print( t_yy=0, & < res_str='0000-01-01_00:00:00', testname='printT_D2' ) < < ! fractions < CALL test_print( t_yy=2001, t_mm=12, t_dd=3, t_h=1, t_m=20, t_s=10, & < t_sn=1, t_sd=3, & < res_str='2001-12-03_01:20:10+01/03', testname='printT_F1' ) < CALL test_print( t_yy=2001, t_mm=12, t_dd=3, t_h=1, t_m=20, t_s=10, & < t_sn=4, t_sd=3, & < res_str='2001-12-03_01:20:11+01/03', testname='printT_F2' ) < CALL test_print( t_yy=2001, t_mm=12, t_dd=3, t_h=1, t_m=20, t_s=10, & < t_sn=12, t_sd=3, & < res_str='2001-12-03_01:20:14', testname='printT_F3' ) < CALL test_print( t_yy=2001, t_mm=12, t_dd=3, t_h=1, t_m=20, t_s=10, & < t_sn=-1, t_sd=3, & < res_str='2001-12-03_01:20:09+02/03', testname='printT_F4' ) --- > CALL test_print( t_yy=2000, t_mm=1, t_dd=1, t_h=0, t_m=0, t_s=0, & > res_str='2000-01-01_00:00:00', testname='printT_2' ) > CALL test_print( t_yy=2026, t_mm=07, t_dd=74, t_h=23, t_m=36, t_s=90, & > res_str='2026-07-74_23:36:90', testname='printT_3' ) > CALL test_print( t_yy=2026, t_mm=07, t_dd=75, t_h=23, t_m=36, t_s=90, & > res_str='2026-07-75_23:36:90', testname='printT_4' ) > ! CALL test_print( t_yy=2004, t_mm=12, t_dd=30, t_h=23, t_m=59, t_s=50, & > ! res_str='2004-12-30_23:59:50', testname='printT_5' ) > ! CALL test_print( t_yy=2004, t_mm=12, t_dd=31, t_h=23, t_m=59, t_s=50, & > ! res_str='2004-12-31_23:59:50', testname='printT_6' ) > !!$$$ NOTE that this fails -- need to fix up output string for negative year > !! CALL test_print( t_yy=-2004, t_mm=12, t_dd=31, t_h=23, t_m=59, t_s=50, & > !! res_str='-2004-12-31_23:59:50', testname='printT_6' ) > > ! ! these test default behavior of test harness > ! CALL test_print( t_s=0, & > ! res_str='0000-00-00_00:00:00', testname='printT_D1' ) > ! CALL test_print( t_yy=0, & > ! res_str='0000-00-00_00:00:00', testname='printT_D2' ) > > PRINT *,'yeah yeah yeah' > > > ! ! fractions > ! CALL test_print( t_yy=2001, t_mm=12, t_dd=3, t_h=1, t_m=20, t_s=10, & > ! t_sn=1, t_sd=3, & > ! res_str='2001-12-03_01:20:10+01/03', testname='printT_F1' ) > ! CALL test_print( t_yy=2001, t_mm=12, t_dd=3, t_h=1, t_m=20, t_s=10, & > ! t_sn=4, t_sd=3, & > ! res_str='2001-12-03_01:20:11+01/03', testname='printT_F2' ) > ! CALL test_print( t_yy=2001, t_mm=12, t_dd=3, t_h=1, t_m=20, t_s=10, & > ! t_sn=12, t_sd=3, & > ! res_str='2001-12-03_01:20:14', testname='printT_F3' ) > ! CALL test_print( t_yy=2001, t_mm=12, t_dd=3, t_h=1, t_m=20, t_s=10, & > ! t_sn=-1, t_sd=3, & > ! res_str='2001-12-03_01:20:09+02/03', testname='printT_F4' ) 1379,1380c1382,1383 < CALL test_print( ti_yy=0, ti_mm=0, ti_dd=500, ti_h=0, ti_m=0, ti_s=7270, & < res_str='0000000500_002:001:010', testname='printTI_2' ) --- > CALL test_print( ti_yy=0, ti_mm=0, ti_dd=500, ti_h=0, ti_m=0, ti_s=9510, & > res_str='0000000500_002:021:010', testname='printTI_2' ) 1382,1408c1385,1412 < ! these test default behavior of test harness < CALL test_print( ti_s=0, & < res_str='0000000000_000:000:000', testname='printTI_D1' ) < CALL test_print( ti_yy=0, & < res_str='0000000000_000:000:000', testname='printTI_D2' ) < < ! these test negative values < CALL test_print( ti_yy=0000, ti_mm=0, ti_dd=-3, ti_h=-1, ti_m=-20, ti_s=-10, & < res_str='-0000000003_001:020:010', testname='printTI_N1' ) < < ! these test mixed values < CALL test_print( ti_yy=0000, ti_mm=0, ti_dd=-3, ti_h=1, ti_m=20, ti_s=10, & < res_str='-0000000002_022:039:050', testname='printTI_M1' ) < < ! fractions < CALL test_print( ti_yy=0000, ti_mm=0, ti_dd=3, ti_h=1, ti_m=20, ti_s=10, & < ti_sn=1, ti_sd=3, & < res_str='0000000003_001:020:010+01/03', testname='printTI_F1' ) < CALL test_print( ti_yy=0000, ti_mm=0, ti_dd=3, ti_h=1, ti_m=20, ti_s=10, & < ti_sn=5, ti_sd=3, & < res_str='0000000003_001:020:011+02/03', testname='printTI_F2' ) < CALL test_print( ti_yy=0000, ti_mm=0, ti_dd=-3, ti_h=-1, ti_m=-20, ti_s=-10, & < ti_sn=-1, ti_sd=3, & < res_str='-0000000003_001:020:010-01/03', testname='printTI_F3' ) < CALL test_print( ti_yy=0000, ti_mm=0, ti_dd=-3, ti_h=-1, ti_m=-20, ti_s=-10, & < ti_sn=1, ti_sd=3, & < res_str='-0000000003_001:020:009-02/03', testname='printTI_F4' ) --- > ! ! these test default behavior of test harness > ! CALL test_print( ti_s=0, & > ! res_str='0000000000_000:000:000', testname='printTI_D1' ) > ! CALL test_print( ti_yy=0, & > ! res_str='0000000000_000:000:000', testname='printTI_D2' ) > > ! ! these test negative values > ! CALL test_print( ti_yy=0000, ti_mm=0, ti_dd=-3, ti_h=-1, ti_m=-20, ti_s=-10, & > ! res_str='-0000000003_001:020:010', testname='printTI_N1' ) > ! > ! ! these test mixed values > ! CALL test_print( ti_yy=0000, ti_mm=0, ti_dd=-3, ti_h=1, ti_m=20, ti_s=10, & > ! res_str='-0000000002_022:039:050', testname='printTI_M1' ) > ! > ! ! fractions > ! CALL test_print( ti_yy=0000, ti_mm=0, ti_dd=3, ti_h=1, ti_m=20, ti_s=10, & > ! ti_sn=1, ti_sd=3, & > ! res_str='0000000003_001:020:010+01/03', testname='printTI_F1' ) > ! CALL test_print( ti_yy=0000, ti_mm=0, ti_dd=3, ti_h=1, ti_m=20, ti_s=10, & > ! ti_sn=5, ti_sd=3, & > ! res_str='0000000003_001:020:011+02/03', testname='printTI_F2' ) > ! CALL test_print( ti_yy=0000, ti_mm=0, ti_dd=-3, ti_h=-1, ti_m=-20, ti_s=-10, & > ! ti_sn=-1, ti_sd=3, & > ! res_str='-0000000003_001:020:010-01/03', testname='printTI_F3' ) > ! CALL test_print( ti_yy=0000, ti_mm=0, ti_dd=-3, ti_h=-1, ti_m=-20, ti_s=-10, & > ! ti_sn=1, ti_sd=3, & > ! res_str='-0000000003_001:020:009-02/03', testname='printTI_F4' ) > ! 1417a1422 > 1430c1435 < op1_t_yy=2001, op1_t_mm=12, op1_t_dd=3, op1_t_h=1, op1_t_m=20, op1_t_s=10, & --- > op1_t_yy=2026, op1_t_mm=03, op1_t_dd=23, op1_t_h=1, op1_t_m=20, op1_t_s=10, & 1432c1437 < res_t_yy=2001, res_t_mm=12, res_t_dd=3, res_t_h=4, res_t_m=30, res_t_s=20, & --- > res_t_yy=2026, res_t_mm=03, res_t_dd=23, res_t_h=4, res_t_m=30, res_t_s=20, & 1435c1440 < op1_t_yy=2001, op1_t_mm=12, op1_t_dd=31, op1_t_h=22, op1_t_m=30, op1_t_s=00, & --- > op1_t_yy=2001, op1_t_mm=07, op1_t_dd=75, op1_t_h=22, op1_t_m=30, op1_t_s=00, & 1437c1442 < res_t_yy=2002, res_t_mm= 1, res_t_dd=1, res_t_h=2, res_t_m=40, res_t_s=10, & --- > res_t_yy=2002, res_t_mm= 1, res_t_dd=1, res_t_h=3, res_t_m=03, res_t_s=10, & 1439,1456c1444,1448 < CALL test_arithmetic( add_op=.TRUE., & < op1_t_yy=2003, op1_t_mm=12, op1_t_dd=31, op1_t_h=22, op1_t_m=30, op1_t_s=00, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & < res_t_yy=2004, res_t_mm= 1, res_t_dd=1, res_t_h=2, res_t_m=40, res_t_s=10, & < testname='AddT_T_TI3' ) < CALL test_arithmetic( add_op=.TRUE., & < op1_t_yy=2004, op1_t_mm=12, op1_t_dd=31, op1_t_h=22, op1_t_m=30, op1_t_s=00, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & < res_t_yy=2005, res_t_mm= 1, res_t_dd=1, res_t_h=2, res_t_m=40, res_t_s=10, & < testname='AddT_T_TI4' ) < ! this case hung after the CCSM contribution < CALL test_arithmetic( add_op=.TRUE., & < op1_t_yy=2004, op1_t_mm=12, op1_t_dd=30, op1_t_h=22, op1_t_m=30, op1_t_s=00, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & < res_t_yy=2004, res_t_mm=12, res_t_dd=31, res_t_h=2, res_t_m=40, res_t_s=10, & < testname='AddT_T_TI5' ) < ! NOTE: CCSM folks need to decide what it means to add "1 month" to Feb. 29. And all the < ! other very similar cases. Then, write this unit test! --- > ! CALL test_arithmetic( add_op=.TRUE., & > ! op1_t_yy=2003, op1_t_mm=12, op1_t_dd=31, op1_t_h=22, op1_t_m=30, op1_t_s=00, & > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & > ! res_t_yy=2004, res_t_mm= 1, res_t_dd=1, res_t_h=2, res_t_m=40, res_t_s=10, & > ! testname='AddT_T_TI3' ) 1458a1451,1463 > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & > ! res_t_yy=2005, res_t_mm= 1, res_t_dd=1, res_t_h=2, res_t_m=40, res_t_s=10, & > ! testname='AddT_T_TI4' ) > ! ! this case hung after the CCSM contribution > ! CALL test_arithmetic( add_op=.TRUE., & > ! op1_t_yy=2004, op1_t_mm=12, op1_t_dd=30, op1_t_h=22, op1_t_m=30, op1_t_s=00, & > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & > ! res_t_yy=2004, res_t_mm=12, res_t_dd=31, res_t_h=2, res_t_m=40, res_t_s=10, & > ! testname='AddT_T_TI5' ) > !! NOTE: CCSM folks need to decide what it means to add "1 month" to Feb. 29. And all the > ! other very similar cases. Then, write this unit test! > !! CALL test_arithmetic( add_op=.TRUE., & > !!! op1_t_yy=2004, op1_t_mm=12, op1_t_dd=31, op1_t_h=22, op1_t_m=30, op1_t_s=00, & 1460,1481c1465,1486 < ! res_t_yy=2007, res_t_mm= 1, res_t_dd=1, res_t_h=2, res_t_m=40, res_t_s=10, & < ! testname='AddT_T_TI6' ) < CALL test_arithmetic( add_op=.TRUE., & < op1_t_yy=2004, op1_t_mm=12, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=365, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & < res_t_yy=2005, res_t_mm=12, res_t_dd=30, res_t_h=8, res_t_m=40, res_t_s=10, & < testname='AddT_T_TI7' ) < CALL test_arithmetic( add_op=.TRUE., & < op1_t_yy=2004, op1_t_mm=12, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=367, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & < res_t_yy=2006, res_t_mm=01, res_t_dd=01, res_t_h=8, res_t_m=40, res_t_s=10, & < testname='AddT_T_TI8' ) < CALL test_arithmetic( add_op=.TRUE., & < op1_t_yy=2003, op1_t_mm=12, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=365, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & < res_t_yy=2004, res_t_mm=12, res_t_dd=29, res_t_h=8, res_t_m=40, res_t_s=10, & < testname='AddT_T_TI9' ) < CALL test_arithmetic( add_op=.TRUE., & < op1_t_yy=2003, op1_t_mm=12, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=366, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & < res_t_yy=2004, res_t_mm=12, res_t_dd=30, res_t_h=8, res_t_m=40, res_t_s=10, & < testname='AddT_T_TI10' ) --- > !! res_t_yy=2007, res_t_mm= 1, res_t_dd=1, res_t_h=2, res_t_m=40, res_t_s=10, & > !! testname='AddT_T_TI6' ) > ! CALL test_arithmetic( add_op=.TRUE., & > ! op1_t_yy=2004, op1_t_mm=12, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=365, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & > ! res_t_yy=2005, res_t_mm=12, res_t_dd=30, res_t_h=8, res_t_m=40, res_t_s=10, & > ! testname='AddT_T_TI7' ) > ! CALL test_arithmetic( add_op=.TRUE., & > ! op1_t_yy=2004, op1_t_mm=12, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=367, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & > ! res_t_yy=2006, res_t_mm=01, res_t_dd=01, res_t_h=8, res_t_m=40, res_t_s=10, & > ! testname='AddT_T_TI8' ) > ! CALL test_arithmetic( add_op=.TRUE., & > ! op1_t_yy=2003, op1_t_mm=12, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=365, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & > ! res_t_yy=2004, res_t_mm=12, res_t_dd=29, res_t_h=8, res_t_m=40, res_t_s=10, & > ! testname='AddT_T_TI9' ) > ! CALL test_arithmetic( add_op=.TRUE., & > ! op1_t_yy=2003, op1_t_mm=12, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=366, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & > ! res_t_yy=2004, res_t_mm=12, res_t_dd=30, res_t_h=8, res_t_m=40, res_t_s=10, & > ! testname='AddT_T_TI10' ) 1483,1485c1488,1490 < op1_t_yy=2003, op1_t_mm=12, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=367, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & < res_t_yy=2004, res_t_mm=12, res_t_dd=31, res_t_h=8, res_t_m=40, res_t_s=10, & --- > op1_t_yy=2003, op1_t_mm=03, op1_t_dd=23, op1_t_h=0, op1_t_m=0, op1_t_s=0, & > op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=675, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & > res_t_yy=2004, res_t_mm=03, res_t_dd=29, res_t_h=4, res_t_m=10, res_t_s=10, & 1487,1516c1492,1512 < CALL test_arithmetic( add_op=.TRUE., & < op1_t_yy=2003, op1_t_mm=12, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=368, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & < res_t_yy=2005, res_t_mm=01, res_t_dd=01, res_t_h=8, res_t_m=40, res_t_s=10, & < testname='AddT_T_TI12' ) < CALL test_arithmetic( add_op=.TRUE., & < op1_t_yy=2004, op1_t_mm=03, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=365, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & < res_t_yy=2005, res_t_mm=03, res_t_dd=30, res_t_h=8, res_t_m=40, res_t_s=10, & < testname='AddT_T_TI13' ) < CALL test_arithmetic( add_op=.TRUE., & < op1_t_yy=2004, op1_t_mm=03, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=365, op2_ti_h=22, op2_ti_m=10, op2_ti_s=10, & < res_t_yy=2005, res_t_mm=03, res_t_dd=31, res_t_h=2, res_t_m=40, res_t_s=10, & < testname='AddT_T_TI14' ) < CALL test_arithmetic( add_op=.TRUE., & < op1_t_yy=2004, op1_t_mm=03, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=366, op2_ti_h=22, op2_ti_m=10, op2_ti_s=10, & < res_t_yy=2005, res_t_mm=04, res_t_dd=01, res_t_h=2, res_t_m=40, res_t_s=10, & < testname='AddT_T_TI15' ) < ! ESMF_Time = ESMF_Time + ESMF_TimeInterval with fractions < CALL test_arithmetic( add_op=.TRUE., & < op1_t_yy=2004, op1_t_mm=12, op1_t_dd=31, op1_t_h=22, op1_t_m=30, op1_t_s=00, & < op1_t_sn=01, op1_t_sd=03, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & < op2_ti_sn=01, op2_ti_sd=03, & < res_t_yy=2005, res_t_mm= 1, res_t_dd=1, res_t_h=2, res_t_m=40, res_t_s=10, & < res_t_sn=02, res_t_sd=03, & < testname='AddT_T_TI_F1' ) < ! this should fail (and does) --- > ! CALL test_arithmetic( add_op=.TRUE., & > ! op1_t_yy=2003, op1_t_mm=12, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=368, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & > ! res_t_yy=2005, res_t_mm=01, res_t_dd=01, res_t_h=8, res_t_m=40, res_t_s=10, & > ! testname='AddT_T_TI12' ) > ! CALL test_arithmetic( add_op=.TRUE., & > ! op1_t_yy=2004, op1_t_mm=03, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=365, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & > ! res_t_yy=2005, res_t_mm=03, res_t_dd=30, res_t_h=8, res_t_m=40, res_t_s=10, & > ! testname='AddT_T_TI13' ) > ! CALL test_arithmetic( add_op=.TRUE., & > ! op1_t_yy=2004, op1_t_mm=03, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=365, op2_ti_h=22, op2_ti_m=10, op2_ti_s=10, & > ! res_t_yy=2005, res_t_mm=03, res_t_dd=31, res_t_h=2, res_t_m=40, res_t_s=10, & > ! testname='AddT_T_TI14' ) > ! CALL test_arithmetic( add_op=.TRUE., & > ! op1_t_yy=2004, op1_t_mm=03, op1_t_dd=30, op1_t_h=4, op1_t_m=30, op1_t_s=00, & > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=366, op2_ti_h=22, op2_ti_m=10, op2_ti_s=10, & > ! res_t_yy=2005, res_t_mm=04, res_t_dd=01, res_t_h=2, res_t_m=40, res_t_s=10, & > ! testname='AddT_T_TI15' ) > ! ! ESMF_Time = ESMF_Time + ESMF_TimeInterval with fractions 1523,1691c1519,1557 < ! res_t_sn=01, res_t_sd=03, & < ! testname='AddT_T_TI_F2' ) < ! ESMF_Time = ESMF_TimeInterval + ESMF_Time < CALL test_arithmetic( add_op=.TRUE., & < op1_ti_yy= 0, op1_ti_mm= 0, op1_ti_dd=0, op1_ti_h=3, op1_ti_m=10, op1_ti_s=10, & < op2_t_yy=2001, op2_t_mm=12, op2_t_dd=3, op2_t_h=1, op2_t_m=20, op2_t_s=10, & < res_t_yy=2001, res_t_mm=12, res_t_dd=3, res_t_h=4, res_t_m=30, res_t_s=20, & < testname='AddT_TI_T1' ) < CALL test_arithmetic( add_op=.TRUE., & < op1_ti_yy= 0, op1_ti_mm= 0, op1_ti_dd=0, op1_ti_h=4, op1_ti_m=10, op1_ti_s=10, & < op2_t_yy=2001, op2_t_mm=12, op2_t_dd=31, op2_t_h=22, op2_t_m=30, op2_t_s=00, & < res_t_yy=2002, res_t_mm= 1, res_t_dd=1, res_t_h=2, res_t_m=40, res_t_s=10, & < testname='AddT_TI_T2' ) < ! ESMF_TimeInterval = ESMF_TimeInterval + ESMF_TimeInterval < CALL test_arithmetic( add_op=.TRUE., & < op1_ti_yy=0000, op1_ti_mm=00, op1_ti_dd=3, op1_ti_h=1, op1_ti_m=20, op1_ti_s=10, & < op2_ti_yy=0000, op2_ti_mm=00, op2_ti_dd=1, op2_ti_h=1, op2_ti_m=10, op2_ti_s=10, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=4, res_ti_h=2, res_ti_m=30, res_ti_s=20, & < testname='AddTI_TI_TI1' ) < CALL test_arithmetic( add_op=.TRUE., & < op1_ti_yy=0000, op1_ti_mm=00, op1_ti_dd=-3, op1_ti_h=-1, op1_ti_m=-20, op1_ti_s=-10, & < op2_ti_yy=0000, op2_ti_mm=00, op2_ti_dd=1, op2_ti_h=1, op2_ti_m=10, op2_ti_s=10, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=-2, res_ti_h=0, res_ti_m=-10, res_ti_s=00, & < testname='AddTI_TI_TI2' ) < CALL test_arithmetic( add_op=.TRUE., & < op1_ti_yy=0000, op1_ti_mm=00, op1_ti_dd=-3, op1_ti_h=-1, op1_ti_m=-20, op1_ti_s=-10, & < op2_ti_yy=0000, op2_ti_mm=00, op2_ti_dd=-1, op2_ti_h=-1, op2_ti_m=-10, op2_ti_s=-10, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=-4, res_ti_h=-2, res_ti_m=-30, res_ti_s=-20, & < testname='AddTI_TI_TI3' ) < < ! Subtraction tests < ! ESMF_Time = ESMF_Time - ESMF_TimeInterval < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2001, op1_t_mm=12, op1_t_dd=3, op1_t_h=1, op1_t_m=20, op1_t_s=10, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=3, op2_ti_m=10, op2_ti_s=10, & < res_t_yy=2001, res_t_mm=12, res_t_dd=2, res_t_h=22, res_t_m=10, res_t_s=0, & < testname='SubtractT_T_TI1' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2005, op1_t_mm=1, op1_t_dd=1, op1_t_h=0, op1_t_m=00, op1_t_s=0, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=0, op2_ti_m=00, op2_ti_s=10, & < res_t_yy=2004, res_t_mm=12, res_t_dd=31, res_t_h=23, res_t_m=59, res_t_s=50, & < testname='SubtractT_T_TI2' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2004, op1_t_mm=1, op1_t_dd=1, op1_t_h=0, op1_t_m=00, op1_t_s=0, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=0, op2_ti_m=00, op2_ti_s=10, & < res_t_yy=2003, res_t_mm=12, res_t_dd=31, res_t_h=23, res_t_m=59, res_t_s=50, & < testname='SubtractT_T_TI3' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2003, op1_t_mm=1, op1_t_dd=1, op1_t_h=0, op1_t_m=00, op1_t_s=0, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=0, op2_ti_m=00, op2_ti_s=10, & < res_t_yy=2002, res_t_mm=12, res_t_dd=31, res_t_h=23, res_t_m=59, res_t_s=50, & < testname='SubtractT_T_TI4' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2005, op1_t_mm=04, op1_t_dd=01, op1_t_h=2, op1_t_m=40, op1_t_s=10, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=366, op2_ti_h=22, op2_ti_m=10, op2_ti_s=10, & < res_t_yy=2004, res_t_mm=03, res_t_dd=30, res_t_h=4, res_t_m=30, res_t_s=00, & < testname='SubtractT_T_TI5' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2006, op1_t_mm=01, op1_t_dd=01, op1_t_h=8, op1_t_m=40, op1_t_s=10, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=367, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & < res_t_yy=2004, res_t_mm=12, res_t_dd=30, res_t_h=4, res_t_m=30, res_t_s=00, & < testname='SubtractT_T_TI6' ) < ! ESMF_Time = ESMF_Time - ESMF_TimeInterval with fractions < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2005, op1_t_mm=01, op1_t_dd=01, op1_t_h=00, op1_t_m=00, op1_t_s=00, & < op1_t_sn=00, op1_t_sd=00, & < op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=0, op2_ti_m=00, op2_ti_s=01, & < op2_ti_sn=01, op2_ti_sd=03, & < res_t_yy=2004, res_t_mm=12, res_t_dd=31, res_t_h=23, res_t_m=59, res_t_s=58, & < res_t_sn=02, res_t_sd=03, & < testname='SubtractT_T_TI_F1' ) < ! ESMF_TimeInterval = ESMF_Time - ESMF_Time < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2001, op1_t_mm=12, op1_t_dd=3, op1_t_h=1, op1_t_m=20, op1_t_s=10, & < op2_t_yy=2001, op2_t_mm=12, op2_t_dd=1, op2_t_h=1, op2_t_m=10, op2_t_s=10, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=2, res_ti_h=0, res_ti_m=10, res_ti_s=0, & < testname='SubtractTI_T_T1' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2002, op1_t_mm=1, op1_t_dd=1, op1_t_h=0, op1_t_m=00, op1_t_s=00, & < op2_t_yy=2001, op2_t_mm=12, op2_t_dd=31, op2_t_h=23, op2_t_m=59, op2_t_s=50, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=0, res_ti_h=0, res_ti_m=00, res_ti_s=10, & < testname='SubtractTI_T_T2' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2005, op1_t_mm=1, op1_t_dd=1, op1_t_h=0, op1_t_m=00, op1_t_s=00, & < op2_t_yy=2004, op2_t_mm=12, op2_t_dd=31, op2_t_h=23, op2_t_m=59, op2_t_s=50, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=0, res_ti_h=0, res_ti_m=00, res_ti_s=10, & < testname='SubtractTI_T_T3' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2003, op1_t_mm=03, op1_t_dd=01, op1_t_h=00, op1_t_m=00, op1_t_s=00, & < op2_t_yy=2003, op2_t_mm=02, op2_t_dd=28, op2_t_h=23, op2_t_m=59, op2_t_s=50, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=0, res_ti_h=0, res_ti_m=00, res_ti_s=10, & < testname='SubtractTI_T_T4' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2004, op1_t_mm=03, op1_t_dd=01, op1_t_h=00, op1_t_m=00, op1_t_s=00, & < op2_t_yy=2004, op2_t_mm=02, op2_t_dd=28, op2_t_h=23, op2_t_m=59, op2_t_s=50, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=1, res_ti_h=0, res_ti_m=00, res_ti_s=10, & < testname='SubtractTI_T_T5' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2002, op1_t_mm=02, op1_t_dd=28, op1_t_h=00, op1_t_m=00, op1_t_s=00, & < op2_t_yy=2002, op2_t_mm=02, op2_t_dd=28, op2_t_h=00, op2_t_m=00, op2_t_s=00, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=0, res_ti_h=0, res_ti_m=00, res_ti_s=00, & < testname='SubtractTI_T_T6' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2003, op1_t_mm=02, op1_t_dd=28, op1_t_h=00, op1_t_m=00, op1_t_s=00, & < op2_t_yy=2002, op2_t_mm=02, op2_t_dd=28, op2_t_h=00, op2_t_m=00, op2_t_s=00, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=365, res_ti_h=0, res_ti_m=00, res_ti_s=00, & < testname='SubtractTI_T_T7' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2004, op1_t_mm=02, op1_t_dd=28, op1_t_h=00, op1_t_m=00, op1_t_s=00, & < op2_t_yy=2003, op2_t_mm=02, op2_t_dd=28, op2_t_h=00, op2_t_m=00, op2_t_s=00, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=365, res_ti_h=0, res_ti_m=00, res_ti_s=00, & < testname='SubtractTI_T_T8' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2005, op1_t_mm=02, op1_t_dd=28, op1_t_h=00, op1_t_m=00, op1_t_s=00, & < op2_t_yy=2004, op2_t_mm=02, op2_t_dd=28, op2_t_h=00, op2_t_m=00, op2_t_s=00, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=366, res_ti_h=0, res_ti_m=00, res_ti_s=00, & < testname='SubtractTI_T_T9' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2003, op1_t_mm=03, op1_t_dd=01, op1_t_h=00, op1_t_m=00, op1_t_s=00, & < op2_t_yy=2002, op2_t_mm=02, op2_t_dd=28, op2_t_h=00, op2_t_m=00, op2_t_s=00, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=366, res_ti_h=0, res_ti_m=00, res_ti_s=00, & < testname='SubtractTI_T_T10' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2005, op1_t_mm=03, op1_t_dd=01, op1_t_h=00, op1_t_m=00, op1_t_s=00, & < op2_t_yy=2004, op2_t_mm=02, op2_t_dd=28, op2_t_h=00, op2_t_m=00, op2_t_s=00, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=367, res_ti_h=0, res_ti_m=00, res_ti_s=00, & < testname='SubtractTI_T_T11' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2005, op1_t_mm=03, op1_t_dd=01, op1_t_h=00, op1_t_m=00, op1_t_s=00, & < op2_t_yy=2004, op2_t_mm=02, op2_t_dd=28, op2_t_h=23, op2_t_m=59, op2_t_s=50, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=366, res_ti_h=0, res_ti_m=00, res_ti_s=10, & < testname='SubtractTI_T_T12' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=2004, op1_t_mm=02, op1_t_dd=28, op1_t_h=23, op1_t_m=59, op1_t_s=50, & < op2_t_yy=2005, op2_t_mm=03, op2_t_dd=01, op2_t_h=00, op2_t_m=00, op2_t_s=00, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=-366, res_ti_h=0, res_ti_m=00, res_ti_s=-10, & < testname='SubtractTI_T_T13' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_t_yy=-2002, op1_t_mm=02, op1_t_dd=28, op1_t_h=00, op1_t_m=00, op1_t_s=00, & < op2_t_yy=-2002, op2_t_mm=02, op2_t_dd=28, op2_t_h=00, op2_t_m=00, op2_t_s=00, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=0, res_ti_h=0, res_ti_m=00, res_ti_s=00, & < testname='SubtractTI_T_T14' ) < ! ESMF_TimeInterval = ESMF_TimeInterval - ESMF_TimeInterval < CALL test_arithmetic( add_op=.FALSE., & < op1_ti_yy=0000, op1_ti_mm=00, op1_ti_dd=3, op1_ti_h=1, op1_ti_m=20, op1_ti_s=10, & < op2_ti_yy=0000, op2_ti_mm=00, op2_ti_dd=1, op2_ti_h=1, op2_ti_m=10, op2_ti_s=10, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=2, res_ti_h=0, res_ti_m=10, res_ti_s=0, & < testname='SubtractTI_TI_TI1' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_ti_yy=0000, op1_ti_mm=00, op1_ti_dd=3, op1_ti_h=1, op1_ti_m=20, op1_ti_s=10, & < op2_ti_yy=0000, op2_ti_mm=00, op2_ti_dd=-1, op2_ti_h=-1, op2_ti_m=-10, op2_ti_s=-10, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=4, res_ti_h=2, res_ti_m=30, res_ti_s=20, & < testname='SubtractTI_TI_TI2' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_ti_yy=0000, op1_ti_mm=00, op1_ti_dd=-1, op1_ti_h=-1, op1_ti_m=-10, op1_ti_s=-10, & < op2_ti_yy=0000, op2_ti_mm=00, op2_ti_dd=-3, op2_ti_h=-1, op2_ti_m=-20, op2_ti_s=-10, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=2, res_ti_h=0, res_ti_m=10, res_ti_s=00, & < testname='SubtractTI_TI_TI3' ) < ! Negative result ESMF_TimeInterval = ESMF_TimeInterval - ESMF_TimeInterval < CALL test_arithmetic( add_op=.FALSE., & < op1_ti_yy=0000, op1_ti_mm=00, op1_ti_dd=1, op1_ti_h=1, op1_ti_m=10, op1_ti_s=10, & < op2_ti_yy=0000, op2_ti_mm=00, op2_ti_dd=3, op2_ti_h=1, op2_ti_m=20, op2_ti_s=10, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=-2, res_ti_h=0, res_ti_m=-10, res_ti_s=0, & < testname='SubtractTI_TI_TIN1' ) < CALL test_arithmetic( add_op=.FALSE., & < op1_ti_yy=0000, op1_ti_mm=00, op1_ti_dd=-1, op1_ti_h=-1, op1_ti_m=-10, op1_ti_s=-10, & < op2_ti_yy=0000, op2_ti_mm=00, op2_ti_dd=3, op2_ti_h=1, op2_ti_m=20, op2_ti_s=10, & < res_ti_yy=0000, res_ti_mm=00, res_ti_dd=-4, res_ti_h=-2, res_ti_m=-30, res_ti_s=-20, & < testname='SubtractTI_TI_TIN2' ) --- > ! res_t_sn=02, res_t_sd=03, & > ! testname='AddT_T_TI_F1' ) > ! ! this should fail (and does) > !! CALL test_arithmetic( add_op=.TRUE., & > !! op1_t_yy=2004, op1_t_mm=12, op1_t_dd=31, op1_t_h=22, op1_t_m=30, op1_t_s=00, & > !! op1_t_sn=01, op1_t_sd=03, & > !! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & > !! op2_ti_sn=01, op2_ti_sd=03, & > !! res_t_yy=2005, res_t_mm= 1, res_t_dd=1, res_t_h=2, res_t_m=40, res_t_s=10, & > !! res_t_sn=01, res_t_sd=03, & > !! testname='AddT_T_TI_F2' ) > ! ! ESMF_Time = ESMF_TimeInterval + ESMF_Time > ! CALL test_arithmetic( add_op=.TRUE., & > ! op1_ti_yy= 0, op1_ti_mm= 0, op1_ti_dd=0, op1_ti_h=3, op1_ti_m=10, op1_ti_s=10, & > ! op2_t_yy=2001, op2_t_mm=12, op2_t_dd=3, op2_t_h=1, op2_t_m=20, op2_t_s=10, & > ! res_t_yy=2001, res_t_mm=12, res_t_dd=3, res_t_h=4, res_t_m=30, res_t_s=20, & > ! testname='AddT_TI_T1' ) > ! CALL test_arithmetic( add_op=.TRUE., & > ! op1_ti_yy= 0, op1_ti_mm= 0, op1_ti_dd=0, op1_ti_h=4, op1_ti_m=10, op1_ti_s=10, & > ! op2_t_yy=2001, op2_t_mm=12, op2_t_dd=31, op2_t_h=22, op2_t_m=30, op2_t_s=00, & > ! res_t_yy=2002, res_t_mm= 1, res_t_dd=1, res_t_h=2, res_t_m=40, res_t_s=10, & > ! testname='AddT_TI_T2' ) > ! ! ESMF_TimeInterval = ESMF_TimeInterval + ESMF_TimeInterval > ! CALL test_arithmetic( add_op=.TRUE., & > ! op1_ti_yy=0000, op1_ti_mm=00, op1_ti_dd=3, op1_ti_h=1, op1_ti_m=20, op1_ti_s=10, & > ! op2_ti_yy=0000, op2_ti_mm=00, op2_ti_dd=1, op2_ti_h=1, op2_ti_m=10, op2_ti_s=10, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=4, res_ti_h=2, res_ti_m=30, res_ti_s=20, & > ! testname='AddTI_TI_TI1' ) > ! CALL test_arithmetic( add_op=.TRUE., & > ! op1_ti_yy=0000, op1_ti_mm=00, op1_ti_dd=-3, op1_ti_h=-1, op1_ti_m=-20, op1_ti_s=-10, & > ! op2_ti_yy=0000, op2_ti_mm=00, op2_ti_dd=1, op2_ti_h=1, op2_ti_m=10, op2_ti_s=10, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=-2, res_ti_h=0, res_ti_m=-10, res_ti_s=00, & > ! testname='AddTI_TI_TI2' ) > ! CALL test_arithmetic( add_op=.TRUE., & > ! op1_ti_yy=0000, op1_ti_mm=00, op1_ti_dd=-3, op1_ti_h=-1, op1_ti_m=-20, op1_ti_s=-10, & > ! op2_ti_yy=0000, op2_ti_mm=00, op2_ti_dd=-1, op2_ti_h=-1, op2_ti_m=-10, op2_ti_s=-10, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=-4, res_ti_h=-2, res_ti_m=-30, res_ti_s=-20, & > ! testname='AddTI_TI_TI3' ) > ! 1693,1694c1559,1560 < ! Un-normalized ESMF_TimeInterval = ESMF_TimeInterval - ESMF_TimeInterval < ! this is an error --- > ! ! Subtraction tests > ! ! ESMF_Time = ESMF_Time - ESMF_TimeInterval 1696,1702d1561 < ! op1_ti_yy=2001, op1_ti_mm=11, op1_ti_dd=3, op1_ti_h=1, op1_ti_m=20, op1_ti_s=10, & < ! op2_ti_yy=2001, op2_ti_mm=11, op2_ti_dd=1, op2_ti_h=1, op2_ti_m=10, op2_ti_s=10, & < ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=2, res_ti_h=0, res_ti_m=10, res_ti_s=0, & < ! testname='SubtractTI_TI_TIU1', expect_error=.TRUE. ) < < ! this one should FAIL, and does < ! CALL test_arithmetic( add_op=.TRUE., & 1705,1755c1564,1756 < ! res_t_yy=2002, res_t_mm=12, res_t_dd=3, res_t_h=4, res_t_m=30, res_t_s=20, & < ! testname='AddTT1' ) < < ! Multiplication tests < ! ESMF_TimeInterval = ESMF_TimeInterval * INTEGER < CALL test_arithmetic( multiply_op=.TRUE., & < op1_ti_dd=3, op1_ti_h=12, op1_ti_m=18, op1_ti_s=33, & < op2_int=2, & < res_ti_dd=6, res_ti_h=24, res_ti_m=37, res_ti_s=06, & < testname='MultiplyTI_TI_INT1' ) < CALL test_arithmetic( multiply_op=.TRUE., & < op1_ti_dd=350, op1_ti_h=23, op1_ti_m=50, op1_ti_s=50, & < op2_int=2, & < res_ti_dd=701, res_ti_h=23, res_ti_m=41, res_ti_s=40,& < testname='MultiplyTI_TI_INT2' ) < CALL test_arithmetic( multiply_op=.TRUE., & < op1_ti_s=01, op1_ti_sn=03, op1_ti_sd=04, & < op2_int=8, & < res_ti_s=14, & < testname='MultiplyTI_TI_INT3' ) < < ! Division tests < ! ESMF_TimeInterval = ESMF_TimeInterval / INTEGER < CALL test_arithmetic( multiply_op=.FALSE., & < op1_ti_dd=3, op1_ti_h=12, op1_ti_m=18, op1_ti_s=33, & < op2_int=3, & < res_ti_dd=1, res_ti_h=04, res_ti_m=06, res_ti_s=11, & < testname='DivideTI_TI_INT1' ) < CALL test_arithmetic( multiply_op=.FALSE., & < op1_ti_dd=3, op1_ti_h=12, op1_ti_m=18, op1_ti_s=33, & < op2_int=4, & < res_ti_dd=0, res_ti_h=21, res_ti_m=04, res_ti_s=38, & < res_ti_sn=1, res_ti_sd=4, & < testname='DivideTI_TI_INT2' ) < CALL test_arithmetic( multiply_op=.FALSE., & < op1_ti_s=01, op1_ti_sn=03, op1_ti_sd=04, & < op2_int=5, & < res_ti_s=0, res_ti_sn=7, res_ti_sd=20, & < testname='DivideTI_TI_INT3' ) < < ! Test adjust_io_timestr() < ! CT = 2000-01-26_00:00:00 (current time) < ! ST = 2000-01-24_12:00:00 (start time) < ! TI = 00000_03:00:00 (time interval) < ! the resulting time string should be: < ! 2000-01-26_00:00:00 < CALL test_adjust_io_timestr( TI_h=3, TI_m=0, TI_s=0, & < CT_yy=2000, CT_mm=1, CT_dd=26, CT_h=0, CT_m=0, CT_s=0, & < ST_yy=2000, ST_mm=1, ST_dd=24, ST_h=12, ST_m=0, ST_s=0, & < res_str='2000-01-26_00:00:00', testname='adjust_io_timestr_1' ) < ! this should fail (and does) --- > ! res_t_yy=2001, res_t_mm=12, res_t_dd=2, res_t_h=22, res_t_m=10, res_t_s=0, & > ! testname='SubtractT_T_TI1' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2005, op1_t_mm=1, op1_t_dd=1, op1_t_h=0, op1_t_m=00, op1_t_s=0, & > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=0, op2_ti_m=00, op2_ti_s=10, & > ! res_t_yy=2004, res_t_mm=12, res_t_dd=31, res_t_h=23, res_t_m=59, res_t_s=50, & > ! testname='SubtractT_T_TI2' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2004, op1_t_mm=1, op1_t_dd=1, op1_t_h=0, op1_t_m=00, op1_t_s=0, & > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=0, op2_ti_m=00, op2_ti_s=10, & > ! res_t_yy=2003, res_t_mm=12, res_t_dd=31, res_t_h=23, res_t_m=59, res_t_s=50, & > ! testname='SubtractT_T_TI3' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2003, op1_t_mm=1, op1_t_dd=1, op1_t_h=0, op1_t_m=00, op1_t_s=0, & > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=0, op2_ti_m=00, op2_ti_s=10, & > ! res_t_yy=2002, res_t_mm=12, res_t_dd=31, res_t_h=23, res_t_m=59, res_t_s=50, & > ! testname='SubtractT_T_TI4' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2005, op1_t_mm=04, op1_t_dd=01, op1_t_h=2, op1_t_m=40, op1_t_s=10, & > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=366, op2_ti_h=22, op2_ti_m=10, op2_ti_s=10, & > ! res_t_yy=2004, res_t_mm=03, res_t_dd=30, res_t_h=4, res_t_m=30, res_t_s=00, & > ! testname='SubtractT_T_TI5' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2006, op1_t_mm=01, op1_t_dd=01, op1_t_h=8, op1_t_m=40, op1_t_s=10, & > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=367, op2_ti_h=4, op2_ti_m=10, op2_ti_s=10, & > ! res_t_yy=2004, res_t_mm=12, res_t_dd=30, res_t_h=4, res_t_m=30, res_t_s=00, & > ! testname='SubtractT_T_TI6' ) > ! ! ESMF_Time = ESMF_Time - ESMF_TimeInterval with fractions > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2005, op1_t_mm=01, op1_t_dd=01, op1_t_h=00, op1_t_m=00, op1_t_s=00, & > ! op1_t_sn=00, op1_t_sd=00, & > ! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=0, op2_ti_m=00, op2_ti_s=01, & > ! op2_ti_sn=01, op2_ti_sd=03, & > ! res_t_yy=2004, res_t_mm=12, res_t_dd=31, res_t_h=23, res_t_m=59, res_t_s=58, & > ! res_t_sn=02, res_t_sd=03, & > ! testname='SubtractT_T_TI_F1' ) > ! ! ESMF_TimeInterval = ESMF_Time - ESMF_Time > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2001, op1_t_mm=12, op1_t_dd=3, op1_t_h=1, op1_t_m=20, op1_t_s=10, & > ! op2_t_yy=2001, op2_t_mm=12, op2_t_dd=1, op2_t_h=1, op2_t_m=10, op2_t_s=10, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=2, res_ti_h=0, res_ti_m=10, res_ti_s=0, & > ! testname='SubtractTI_T_T1' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2002, op1_t_mm=1, op1_t_dd=1, op1_t_h=0, op1_t_m=00, op1_t_s=00, & > ! op2_t_yy=2001, op2_t_mm=12, op2_t_dd=31, op2_t_h=23, op2_t_m=59, op2_t_s=50, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=0, res_ti_h=0, res_ti_m=00, res_ti_s=10, & > ! testname='SubtractTI_T_T2' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2005, op1_t_mm=1, op1_t_dd=1, op1_t_h=0, op1_t_m=00, op1_t_s=00, & > ! op2_t_yy=2004, op2_t_mm=12, op2_t_dd=31, op2_t_h=23, op2_t_m=59, op2_t_s=50, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=0, res_ti_h=0, res_ti_m=00, res_ti_s=10, & > ! testname='SubtractTI_T_T3' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2003, op1_t_mm=03, op1_t_dd=01, op1_t_h=00, op1_t_m=00, op1_t_s=00, & > ! op2_t_yy=2003, op2_t_mm=02, op2_t_dd=28, op2_t_h=23, op2_t_m=59, op2_t_s=50, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=0, res_ti_h=0, res_ti_m=00, res_ti_s=10, & > ! testname='SubtractTI_T_T4' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2004, op1_t_mm=03, op1_t_dd=01, op1_t_h=00, op1_t_m=00, op1_t_s=00, & > ! op2_t_yy=2004, op2_t_mm=02, op2_t_dd=28, op2_t_h=23, op2_t_m=59, op2_t_s=50, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=1, res_ti_h=0, res_ti_m=00, res_ti_s=10, & > ! testname='SubtractTI_T_T5' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2002, op1_t_mm=02, op1_t_dd=28, op1_t_h=00, op1_t_m=00, op1_t_s=00, & > ! op2_t_yy=2002, op2_t_mm=02, op2_t_dd=28, op2_t_h=00, op2_t_m=00, op2_t_s=00, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=0, res_ti_h=0, res_ti_m=00, res_ti_s=00, & > ! testname='SubtractTI_T_T6' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2003, op1_t_mm=02, op1_t_dd=28, op1_t_h=00, op1_t_m=00, op1_t_s=00, & > ! op2_t_yy=2002, op2_t_mm=02, op2_t_dd=28, op2_t_h=00, op2_t_m=00, op2_t_s=00, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=365, res_ti_h=0, res_ti_m=00, res_ti_s=00, & > ! testname='SubtractTI_T_T7' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2004, op1_t_mm=02, op1_t_dd=28, op1_t_h=00, op1_t_m=00, op1_t_s=00, & > ! op2_t_yy=2003, op2_t_mm=02, op2_t_dd=28, op2_t_h=00, op2_t_m=00, op2_t_s=00, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=365, res_ti_h=0, res_ti_m=00, res_ti_s=00, & > ! testname='SubtractTI_T_T8' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2005, op1_t_mm=02, op1_t_dd=28, op1_t_h=00, op1_t_m=00, op1_t_s=00, & > ! op2_t_yy=2004, op2_t_mm=02, op2_t_dd=28, op2_t_h=00, op2_t_m=00, op2_t_s=00, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=366, res_ti_h=0, res_ti_m=00, res_ti_s=00, & > ! testname='SubtractTI_T_T9' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2003, op1_t_mm=03, op1_t_dd=01, op1_t_h=00, op1_t_m=00, op1_t_s=00, & > ! op2_t_yy=2002, op2_t_mm=02, op2_t_dd=28, op2_t_h=00, op2_t_m=00, op2_t_s=00, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=366, res_ti_h=0, res_ti_m=00, res_ti_s=00, & > ! testname='SubtractTI_T_T10' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2005, op1_t_mm=03, op1_t_dd=01, op1_t_h=00, op1_t_m=00, op1_t_s=00, & > ! op2_t_yy=2004, op2_t_mm=02, op2_t_dd=28, op2_t_h=00, op2_t_m=00, op2_t_s=00, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=367, res_ti_h=0, res_ti_m=00, res_ti_s=00, & > ! testname='SubtractTI_T_T11' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2005, op1_t_mm=03, op1_t_dd=01, op1_t_h=00, op1_t_m=00, op1_t_s=00, & > ! op2_t_yy=2004, op2_t_mm=02, op2_t_dd=28, op2_t_h=23, op2_t_m=59, op2_t_s=50, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=366, res_ti_h=0, res_ti_m=00, res_ti_s=10, & > ! testname='SubtractTI_T_T12' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=2004, op1_t_mm=02, op1_t_dd=28, op1_t_h=23, op1_t_m=59, op1_t_s=50, & > ! op2_t_yy=2005, op2_t_mm=03, op2_t_dd=01, op2_t_h=00, op2_t_m=00, op2_t_s=00, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=-366, res_ti_h=0, res_ti_m=00, res_ti_s=-10, & > ! testname='SubtractTI_T_T13' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_t_yy=-2002, op1_t_mm=02, op1_t_dd=28, op1_t_h=00, op1_t_m=00, op1_t_s=00, & > ! op2_t_yy=-2002, op2_t_mm=02, op2_t_dd=28, op2_t_h=00, op2_t_m=00, op2_t_s=00, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=0, res_ti_h=0, res_ti_m=00, res_ti_s=00, & > ! testname='SubtractTI_T_T14' ) > ! ! ESMF_TimeInterval = ESMF_TimeInterval - ESMF_TimeInterval > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_ti_yy=0000, op1_ti_mm=00, op1_ti_dd=3, op1_ti_h=1, op1_ti_m=20, op1_ti_s=10, & > ! op2_ti_yy=0000, op2_ti_mm=00, op2_ti_dd=1, op2_ti_h=1, op2_ti_m=10, op2_ti_s=10, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=2, res_ti_h=0, res_ti_m=10, res_ti_s=0, & > ! testname='SubtractTI_TI_TI1' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_ti_yy=0000, op1_ti_mm=00, op1_ti_dd=3, op1_ti_h=1, op1_ti_m=20, op1_ti_s=10, & > ! op2_ti_yy=0000, op2_ti_mm=00, op2_ti_dd=-1, op2_ti_h=-1, op2_ti_m=-10, op2_ti_s=-10, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=4, res_ti_h=2, res_ti_m=30, res_ti_s=20, & > ! testname='SubtractTI_TI_TI2' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_ti_yy=0000, op1_ti_mm=00, op1_ti_dd=-1, op1_ti_h=-1, op1_ti_m=-10, op1_ti_s=-10, & > ! op2_ti_yy=0000, op2_ti_mm=00, op2_ti_dd=-3, op2_ti_h=-1, op2_ti_m=-20, op2_ti_s=-10, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=2, res_ti_h=0, res_ti_m=10, res_ti_s=00, & > ! testname='SubtractTI_TI_TI3' ) > ! ! Negative result ESMF_TimeInterval = ESMF_TimeInterval - ESMF_TimeInterval > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_ti_yy=0000, op1_ti_mm=00, op1_ti_dd=1, op1_ti_h=1, op1_ti_m=10, op1_ti_s=10, & > ! op2_ti_yy=0000, op2_ti_mm=00, op2_ti_dd=3, op2_ti_h=1, op2_ti_m=20, op2_ti_s=10, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=-2, res_ti_h=0, res_ti_m=-10, res_ti_s=0, & > ! testname='SubtractTI_TI_TIN1' ) > ! CALL test_arithmetic( add_op=.FALSE., & > ! op1_ti_yy=0000, op1_ti_mm=00, op1_ti_dd=-1, op1_ti_h=-1, op1_ti_m=-10, op1_ti_s=-10, & > ! op2_ti_yy=0000, op2_ti_mm=00, op2_ti_dd=3, op2_ti_h=1, op2_ti_m=20, op2_ti_s=10, & > ! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=-4, res_ti_h=-2, res_ti_m=-30, res_ti_s=-20, & > ! testname='SubtractTI_TI_TIN2' ) > ! > ! ! Un-normalized ESMF_TimeInterval = ESMF_TimeInterval - ESMF_TimeInterval > ! ! this is an error > !! CALL test_arithmetic( add_op=.FALSE., & > !! op1_ti_yy=2001, op1_ti_mm=11, op1_ti_dd=3, op1_ti_h=1, op1_ti_m=20, op1_ti_s=10, & > !! op2_ti_yy=2001, op2_ti_mm=11, op2_ti_dd=1, op2_ti_h=1, op2_ti_m=10, op2_ti_s=10, & > !! res_ti_yy=0000, res_ti_mm=00, res_ti_dd=2, res_ti_h=0, res_ti_m=10, res_ti_s=0, & > !! testname='SubtractTI_TI_TIU1', expect_error=.TRUE. ) > ! > ! ! this one should FAIL, and does > !! CALL test_arithmetic( add_op=.TRUE., & > !! op1_t_yy=2001, op1_t_mm=12, op1_t_dd=3, op1_t_h=1, op1_t_m=20, op1_t_s=10, & > !! op2_ti_yy= 0, op2_ti_mm= 0, op2_ti_dd=0, op2_ti_h=3, op2_ti_m=10, op2_ti_s=10, & > !! res_t_yy=2002, res_t_mm=12, res_t_dd=3, res_t_h=4, res_t_m=30, res_t_s=20, & > !! testname='AddTT1' ) > ! > ! ! Multiplication tests > ! ! ESMF_TimeInterval = ESMF_TimeInterval * INTEGER > ! CALL test_arithmetic( multiply_op=.TRUE., & > ! op1_ti_dd=3, op1_ti_h=12, op1_ti_m=18, op1_ti_s=33, & > ! op2_int=2, & > ! res_ti_dd=6, res_ti_h=24, res_ti_m=37, res_ti_s=06, & > ! testname='MultiplyTI_TI_INT1' ) > ! CALL test_arithmetic( multiply_op=.TRUE., & > ! op1_ti_dd=350, op1_ti_h=23, op1_ti_m=50, op1_ti_s=50, & > ! op2_int=2, & > ! res_ti_dd=701, res_ti_h=23, res_ti_m=41, res_ti_s=40,& > ! testname='MultiplyTI_TI_INT2' ) > ! CALL test_arithmetic( multiply_op=.TRUE., & > ! op1_ti_s=01, op1_ti_sn=03, op1_ti_sd=04, & > ! op2_int=8, & > ! res_ti_s=14, & > ! testname='MultiplyTI_TI_INT3' ) > ! > ! ! Division tests > ! ! ESMF_TimeInterval = ESMF_TimeInterval / INTEGER > ! CALL test_arithmetic( multiply_op=.FALSE., & > ! op1_ti_dd=3, op1_ti_h=12, op1_ti_m=18, op1_ti_s=33, & > ! op2_int=3, & > ! res_ti_dd=1, res_ti_h=04, res_ti_m=06, res_ti_s=11, & > ! testname='DivideTI_TI_INT1' ) > ! CALL test_arithmetic( multiply_op=.FALSE., & > ! op1_ti_dd=3, op1_ti_h=12, op1_ti_m=18, op1_ti_s=33, & > ! op2_int=4, & > ! res_ti_dd=0, res_ti_h=21, res_ti_m=04, res_ti_s=38, & > ! res_ti_sn=1, res_ti_sd=4, & > ! testname='DivideTI_TI_INT2' ) > ! CALL test_arithmetic( multiply_op=.FALSE., & > ! op1_ti_s=01, op1_ti_sn=03, op1_ti_sd=04, & > ! op2_int=5, & > ! res_ti_s=0, res_ti_sn=7, res_ti_sd=20, & > ! testname='DivideTI_TI_INT3' ) > ! > ! ! Test adjust_io_timestr() > !! CT = 2000-01-26_00:00:00 (current time) > !! ST = 2000-01-24_12:00:00 (start time) > !! TI = 00000_03:00:00 (time interval) > !! the resulting time string should be: > !! 2000-01-26_00:00:00 1759,1760c1760,1766 < ! res_str='2000-01-26_00:00:01', testname='adjust_io_timestr_FAIL1' ) < --- > ! res_str='2000-01-26_00:00:00', testname='adjust_io_timestr_1' ) > !! this should fail (and does) > !! CALL test_adjust_io_timestr( TI_h=3, TI_m=0, TI_s=0, & > !! CT_yy=2000, CT_mm=1, CT_dd=26, CT_h=0, CT_m=0, CT_s=0, & > !! ST_yy=2000, ST_mm=1, ST_dd=24, ST_h=12, ST_m=0, ST_s=0, & > !! res_str='2000-01-26_00:00:01', testname='adjust_io_timestr_FAIL1' ) > ! 1763,1765c1769,1771 < start_yy=2002, start_mm=12, start_dd=27, start_h=3, start_m=0, start_s=0, & < stop_yy=2002, stop_mm=12, stop_dd=28, stop_h=8, stop_m=0, stop_s=0, & < timestep_d=0, timestep_h=0, timestep_m=0, timestep_s=600, & --- > start_yy=2024, start_mm=01, start_dd=99, start_h=3, start_m=0, start_s=0, & > stop_yy=2024, stop_mm=02, stop_dd=02, stop_h=8, stop_m=0, stop_s=0, & > timestep_d=0, timestep_h=0, timestep_m=0, timestep_s=100, & 1768,1778c1774 < CALL test_clock_advance( & < start_yy=2003, start_mm=12, start_dd=29, start_h=9, start_m=0, start_s=0, & < stop_yy=2004, stop_mm=1, stop_dd=2, stop_h=9, stop_m=0, stop_s=0, & < timestep_d=0, timestep_h=0, timestep_m=0, timestep_s=3600, & < testname="StdYearClockAdvance", increment_S=10 ) < < CALL test_clock_advance( & < start_yy=2004, start_mm=12, start_dd=29, start_h=9, start_m=0, start_s=0, & < stop_yy=2005, stop_mm=1, stop_dd=2, stop_h=9, stop_m=0, stop_s=0, & < timestep_d=0, timestep_h=0, timestep_m=0, timestep_s=3600, & < testname="LeapYearClockAdvance", increment_S=10 ) --- > PRINT *,'END CLOCK ADVANCE' 1780,1781d1775 < ! NRCM domain 3 case: 120 seconds / 9 < ! 18 timesteps through end of leap year 1783,1789c1777,1797 < start_yy=2004, start_mm=12, start_dd=31, start_h=23, start_m=58, start_s=0,& < stop_yy=2005, stop_mm=1, stop_dd=1, stop_h=0, stop_m=2, stop_s=0, & < timestep_d=0, timestep_h=0, timestep_m=0, timestep_s=13, & < timestep_sn=1, timestep_sd=3, & < testname="LeapYearFractionClockAdvance", & < increment_S=1, increment_Sn=1, increment_Sd=3 ) < --- > start_yy=2024, start_mm=07, start_dd=74, start_h=23, start_m=00, start_s=0, & > stop_yy=2025, stop_mm=01, stop_dd=07, stop_h=9, stop_m=0, stop_s=0, & > timestep_d=0, timestep_h=0, timestep_m=0, timestep_s=1850, & > testname="StdYearClockAdvance", increment_S=10 ) > ! > ! CALL test_clock_advance( & > ! start_yy=2004, start_mm=12, start_dd=29, start_h=9, start_m=0, start_s=0, & > ! stop_yy=2005, stop_mm=1, stop_dd=2, stop_h=9, stop_m=0, stop_s=0, & > ! timestep_d=0, timestep_h=0, timestep_m=0, timestep_s=3600, & > ! testname="LeapYearClockAdvance", increment_S=10 ) > ! > ! ! NRCM domain 3 case: 120 seconds / 9 > ! ! 18 timesteps through end of leap year > ! CALL test_clock_advance( & > ! start_yy=2004, start_mm=12, start_dd=31, start_h=23, start_m=58, start_s=0,& > ! stop_yy=2005, stop_mm=1, stop_dd=1, stop_h=0, stop_m=2, stop_s=0, & > ! timestep_d=0, timestep_h=0, timestep_m=0, timestep_s=13, & > ! timestep_sn=1, timestep_sd=3, & > ! testname="LeapYearFractionClockAdvance", & > ! increment_S=1, increment_Sn=1, increment_Sd=3 ) > !