mfm_timemgr.f

来自「CCSM Research Tools: Community Atmospher」· F 代码 · 共 727 行 · 第 1/2 页

F
727
字号
! !PARAMETERS:      type(MFM_TimeMgr), intent(in) :: timeMgr   ! time manager      integer, intent(out) :: days               ! days      integer, intent(out) :: seconds            ! seconds      integer, intent(out), optional :: rc       ! return code! !DESCRIPTION:!     Returns the step size.!!EOP!-------------------------------------------------------------------------------      integer stub      call MF_TimeMgrGetStepSizeIS(timeMgr, days, seconds, stub)      if (present(rc)) rc = stub      end subroutine MFM_TimeMgrGetStepSizeIS!===============================================================================!BOP!! !IROUTINE:  MFM_TimeMgrGetStepSizeStd!! !INTERFACE:      subroutine MFM_TimeMgrGetStepSizeStd(timeMgr, stepSize, rc)! !PARAMETERS:      type(MFM_TimeMgr), intent(in) :: timeMgr   ! time manager      type(MFM_Time), intent(out) :: stepSize    ! step size      integer, intent(out), optional :: rc       ! return code! !DESCRIPTION:!     Returns the step size.!!EOP!-------------------------------------------------------------------------------      integer stub      call MF_TimeMgrGetStepSizeStd(timeMgr, stepsize, stub)      if (present(rc)) rc = stub      end subroutine MFM_TimeMgrGetStepSizeStd!===============================================================================!BOP!! !IROUTINE:  MFM_TimeMgrGetStartDate!! !INTERFACE:       function MFM_TimeMgrGetStartDate(timeMgr, rc)! !RETURN VALUE:      type(MFM_Date) :: MFM_TimeMgrGetStartDate   ! start date    ! !PARAMETERS:      type(MFM_TimeMgr), intent(in)  :: timeMgr   ! time manager      integer, intent(out), optional :: rc        ! return code! !DESCRIPTION:!     Returns the start date.!!EOP!-------------------------------------------------------------------------------      integer stub      call MF_DateInitUndefined(MFM_TimeMgrGetStartDate, stub)      if (stub == MFM_SUCCESS) then        call MF_TimeMgrGetStartDate(timeMgr, MFM_TimeMgrGetStartDate,      &    stub)      end if      if (present(rc)) rc = stub      end function MFM_TimeMgrGetStartDate!===============================================================================!BOP!! !IROUTINE: MFM_TimeMgrGetStopDate!! !INTERFACE:      function MFM_TimeMgrGetStopDate(timeMgr, rc)! !RETURN VALUE:      type(MFM_Date) :: MFM_TimeMgrGetStopDate  ! stop date   ! !PARAMETERS:      type(MFM_TimeMgr), intent(in) :: timeMgr  ! time manager      integer, intent(out), optional :: rc      ! return code! !DESCRIPTION:!     Returns the stop date.!!EOP!-------------------------------------------------------------------------------      integer stub      call MF_DateInitUndefined(MFM_TimeMgrGetStopDate, stub)      if (stub == MFM_SUCCESS) then        call MF_TimeMgrGetStopDate(timeMgr, MFM_TimeMgrGetStopDate,      &    stub)      end if      if (present(rc)) rc = stub      end function MFM_TimeMgrGetStopDate!===============================================================================!BOP!! !IROUTINE:  MFM_TimeMgrGetBaseDate!! !INTERFACE:      function MFM_TimeMgrGetBaseDate(timeMgr, rc)! !RETURN VALUE:      type(MFM_Date) :: MFM_TimeMgrGetBaseDate   ! base date! !PARAMETERS:      type(MFM_TimeMgr), intent(in) :: timeMgr   ! time manager      integer, intent(out), optional :: rc       ! return code! !DESCRIPTION:!     Returns the base date.!!EOP!-------------------------------------------------------------------------------      integer stub      call MF_DateInitUndefined(MFM_TimeMgrGetBaseDate, stub)      if (stub == MFM_SUCCESS) then        call MF_TimeMgrGetBaseDate(timeMgr, MFM_TimeMgrGetBaseDate,      &    stub)      end if      if (present(rc)) rc = stub      end function MFM_TimeMgrGetBaseDate!===============================================================================!BOP!! !IROUTINE:  MFM_TimeMgrGetCurrDate!! !INTERFACE:      function MFM_TimeMgrGetCurrDate(timeMgr, rc)! !RETURN VALUE:      type(MFM_Date) :: MFM_TimeMgrGetCurrDate   ! current date! !PARAMETERS:      type(MFM_TimeMgr), intent(in) :: timeMgr    ! time manager      integer, intent(out), optional :: rc        ! return code! !DESCRIPTION:!     Returns the current date.!!EOP!-------------------------------------------------------------------------------      integer stub      call MF_DateInitUndefined(MFM_TimeMgrGetCurrDate, stub)      if (stub == MFM_SUCCESS) then        call MF_TimeMgrGetCurrDate(timeMgr, MFM_TimeMgrGetCurrDate,      &    stub)      end if      if (present(rc)) rc = stub      end function MFM_TimeMgrGetCurrDate!===============================================================================!BOP!! !IROUTINE:  MFM_TimeMgrSetCurrDateIS!! !INTERFACE:      subroutine MFM_TimeMgrSetCurrDateIS(timeMgr, dateYYMMDD, tod, rc)! !RETURN VALUE:! !PARAMETERS:      type(MFM_TimeMgr), intent(in) :: timeMgr    ! time manager      integer, intent(in) :: dateYYMMDD ! date      integer, intent(in) :: tod ! seconds into day      integer, intent(out), optional :: rc        ! return code! !DESCRIPTION:!     Sets the current date.  Also sets the previous date based on !     the current date and the time step.!!EOP!-------------------------------------------------------------------------------      integer stub      call MF_TimeMgrSetCurrDateIS(timeMgr,     &     dateYYMMDD,     &     tod,     &     stub)            if (present(rc)) rc = stub            end subroutine MFM_TimeMgrSetCurrDateIS!===============================================================================!BOP!! !IROUTINE:  MFM_TimeMgrGetPrevDate!! !INTERFACE:      function MFM_TimeMgrGetPrevDate(timeMgr, rc)! !RETURN VALUE:      type(MFM_Date) :: MFM_TimeMgrGetPrevDate    ! previous date! !PARAMETERS:      type(MFM_TimeMgr), intent(in) :: timeMgr    ! time manager      integer, intent(out), optional :: rc        ! return code! !DESCRIPTION:!     Returns the previous timestep.!!EOP!-------------------------------------------------------------------------------      integer stub      call MF_DateInitUndefined(MFM_TimeMgrGetPrevDate, stub)      if (stub == MFM_SUCCESS) then        call MF_TimeMgrGetPrevDate(timeMgr, MFM_TimeMgrGetPrevDate,      &    stub)      end if      if (present(rc)) rc = stub      end function MFM_TimeMgrGetPrevDate!===============================================================================!BOP!! !IROUTINE:  MFM_TimeMgrRestartWriteIS!! !INTERFACE:      subroutine MFM_TimeMgrRestartWriteIS(timeMgr,     &     type,     &     nstep,     &     stepDays, stepSec,     &     startYYMMDD, startSec,     &     stopYYMMDD, stopSec,     &     baseYYMMDD, baseSec,     &     currYYMMDD, currSec,     &     rc)! !PARAMETERS:      type(MFM_TimeMgr), intent(in) :: timeMgr ! time Manager      integer, intent(out) :: type ! Calendar type      integer, intent(out) :: nstep ! step number      integer, intent(out) :: stepDays ! days in step size      integer, intent(out) :: stepSec ! seconds in step size      integer, intent(out) :: startYYMMDD ! start day      integer, intent(out) :: startSec ! start time      integer, intent(out) :: stopYYMMDD ! stop day      integer, intent(out) :: stopSec ! stop time      integer, intent(out) :: baseYYMMDD ! base day      integer, intent(out) :: baseSec ! base time      integer, intent(out) :: currYYMMDD ! curr day      integer, intent(out) :: currSec ! curr time            integer, intent(out), optional :: rc ! return code! !DESCRIPTION:!     Returns all the data necessary to reconstruct an identical!     TimeMgr after a restart.!     !EOP!-------------------------------------------------------------------------------      integer stub      call MF_TimeMgrRestartWriteIS(timeMgr,     &     type,     &     nstep,     &     stepDays, stepSec,     &     startYYMMDD, startSec,     &     stopYYMMDD, stopSec,     &     baseYYMMDD, baseSec,     &     currYYMMDD, currSec,     &     stub)      if (present(rc)) rc = stub      end subroutine MFM_TimeMgrRestartWriteIS!===============================================================================!BOP!! !IROUTINE:  MFM_TimeMgrRestartReadIS!! !INTERFACE:      function MFM_TimeMgrRestartReadIS(     &     type,     &     nstep,     &     stepDays, stepSec,     &     startYYMMDD, startSec,     &     stopYYMMDD, stopSec,     &     baseYYMMDD, baseSec,     &     currYYMMDD, currSec,     &     rc)! !RETURN VALUE:      type(MFM_TimeMgr) :: MFM_TimeMgrRestartReadIS ! previous date! !PARAMETERS:      integer, intent(in) :: stepDays ! days in step      integer, intent(in) :: type ! calendar type      integer, intent(in) :: nstep ! step number      integer, intent(in) :: stepSec ! seconds in step      integer, intent(in) :: startYYMMDD ! start day      integer, intent(in) :: startSec ! start time      integer, intent(in) :: stopYYMMDD ! stop day      integer, intent(in) :: stopSec ! stop time      integer, intent(in) :: baseYYMMDD ! base day      integer, intent(in) :: baseSec ! base time      integer, intent(in) :: currYYMMDD ! curr day      integer, intent(in) :: currSec ! curr time            integer, intent(out), optional :: rc ! return code! !DESCRIPTION:!     Reconstructs a time manager based on the data given.  This data!     will typically come from a {\tt MFM\_TimeMgrRestartWrite}. !     The value of {\tt nstep} may be set to any positive integer.!     !EOP!-------------------------------------------------------------------------------      integer stub      call MF_TimeMgrRestartReadIS(     &     MFM_TimeMgrRestartReadIS,     &     type,     &     nstep,     &     stepDays, stepSec,     &     startYYMMDD, startSec,     &     stopYYMMDD, stopSec,     &     baseYYMMDD, baseSec,     &     currYYMMDD, currSec,     &     stub)      if (present(rc)) rc = stub      end function MFM_TimeMgrRestartReadIS!===============================================================================

⌨️ 快捷键说明

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