⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfm_timeex.f

📁 CCSM Research Tools: Community Atmosphere Model (CAM)
💻 F
字号:
      !\begin{verbatim}!===============================================================================! MF_Time F90 Unit Tests and Examples!===============================================================================      program main       use MFM_TimeMgmt      implicit none      integer, parameter :: START_DAYS=5, START_SECS=43200      integer, parameter :: STOP_DAYS=12, STOP_SECS=1200      integer, parameter :: DAY_INC=2, SEC_INC=1000      integer, parameter :: SEC_OVER_SID=100000      integer :: rc      integer :: retDays, retSecs      logical :: test, isLater      real(8) :: retRealDays      character(60) :: str      type(MFM_Time) :: startTime, stopTime, retTime      print *, "=================================================="      print *, "MFM_TimeMgr F90 Unit Tests and Examples"      print *, "=================================================="      startTime = MFM_TimeInit(START_DAYS, START_SECS)       stopTime = MFM_TimeInit(STOP_DAYS, STOP_SECS)       retTime = MFM_TimeInit()       call MFM_TimeGet(startTime, retDays, retSecs)      print *, "Ret days ", retDays, " Ret secs ", retSecs       test = ((retDays == START_DAYS) .AND. (retSecs == START_SECS))      str = "MFM_TimeInit, MFM_TimeGet:  init time and get attr"      call MFM_ErrorTest(test, str)      retRealDays = MFM_TimeGetDays(startTime)      print *, "Ret real days ", retRealDays       test = (abs(retRealDays - 5.5) < epsilon(5.5) )      str = "MFM_TimeGetDays:  get time value as real days"      call MFM_ErrorTest(test, str)      retTime = MFM_TimeIncrement(startTime, DAY_INC, SEC_INC)      call MFM_TimeGet(retTime, retDays, retSecs)      print *, "Ret days ", retDays, " Ret secs ", retSecs       test = ((retDays == 7) .AND. (retSecs == 44200))      str = "MFM_TimeIncrement:  increment time, sec inc < 86400"        call MFM_ErrorTest(test, str)      call MFM_TimeDiff(startTime, stopTime, retTime, isLater)      call MFM_TimeGet(retTime, retDays, retSecs)      print *, "Ret days ", retDays, " Ret secs ", retSecs       test = ((retDays == 6) .AND. (retSecs == 44400) .AND.      &        (isLater))       str = "MFM_TimeDiff:  take time difference, isLater is true"       call MFM_ErrorTest(test, str)      call MFM_TimeDiff(stopTime, startTime, retTime, isLater)      call MFM_TimeGet(retTime, retDays, retSecs)      print *, "Ret days ", retDays, " Ret secs ", retSecs       test = ((retDays == 6) .AND. (retSecs == 44400) .AND.      &        (.NOT. isLater))      str = "MFM_TimeDiff:  take time difference, isLater is false"       call MFM_ErrorTest(test, str)      call MFM_TimeSet(retTime, DAY_INC, SEC_OVER_SID)      call MFM_TimeGet(retTime, retDays, retSecs)      print *, "Ret days ", retDays, " Ret secs ", retSecs       test = ((retDays == 3) .AND. (retSecs == 13600))      str = "MFM_TimeSet:  set time, sec > 86400"        call MFM_ErrorTest(test, str)      retTime = MFM_TimeDecrement(stopTime, DAY_INC,      &          SEC_OVER_SID)      call MFM_TimeGet(retTime, retDays, retSecs)      print *, "Ret days ", retDays, " Ret secs ", retSecs       test = ((retDays == 8) .AND. (retSecs == 74000))      str = "MFM_TimeDecrement:  decrement time, sec > 86400"        call MFM_ErrorTest(test, str)      call MFM_TimeSet(retTime, 0, 3600)      retTime = MFM_TimeDecrement(retTime, 0, 3600)      call MFM_TimeGet(retTime, retDays, retSecs)      print *, "Ret days ", retDays, " Ret secs ", retSecs       test = ((retDays == 0) .AND. (retSecs == 0))      str = "MFM_TimeDecrement:  decrement time down to 0"        call MFM_ErrorTest(test, str)!      print *, "Test Error Handler:"!      call MFM_ErrHandlerSetType(MFM_ERR_RETURN)!      call MFM_TimeSet(retTime, -2, SEC_OVER_SID, rc)!      call MFM_ErrPrint(rc)!      print *, "Test Error Handler:"!      call MFM_ErrHandlerSetType(MFM_ERR_EXIT)!      call MFM_TimeSet(retTime, -2, SEC_OVER_SID, rc)!      call MFM_ErrPrint(rc)      print *, "Test Print Method:"      call MFM_TimePrint(startTime)      end program main ! \end{verbatim}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -