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

📄 esmf_timemgrmod.f

📁 CCSM Research Tools: Community Atmosphere Model (CAM)
💻 F
📖 第 1 页 / 共 2 页
字号:
      integer, intent(in) :: days                   ! days      integer, intent(in) :: seconds                ! seconds      integer, intent(out), optional :: rc          ! return code! !DESCRIPTION:!     Resets the step size in the time manager using {\tt days} and !     {\tt seconds}.!!EOP!-------------------------------------------------------------------------------       integer stub      call ESMC_TimeMgrSetStepSizeIS(timeMgr, days, seconds, stub)      if (present(rc)) rc = stub      end subroutine ESMF_TimeMgrSetStepSizeIS!===============================================================================!BOP!! !IROUTINE:  ESMF_TimeMgrGetNStep!! !INTERFACE:      function ESMF_TimeMgrGetNStep(timeMgr, rc) ! !RETURN VALUE:      integer :: ESMF_TimeMgrGetNStep            ! returned number of time steps! !PARAMETERS:      type(ESMF_TimeMgr), intent(in) :: timeMgr  ! time manager       integer, intent(out), optional :: rc       ! return code! !DESCRIPTION:!     Gets the number of time steps in the time manager.!!EOP!-------------------------------------------------------------------------------       integer stub      call ESMC_TimeMgrGetNStep(timeMgr, ESMF_TimeMgrGetNStep, stub)      if (present(rc)) rc = stub      end function ESMF_TimeMgrGetNStep!===============================================================================!BOP!! !IROUTINE:  ESMF_TimeMgrSetNStep!! !INTERFACE:      subroutine ESMF_TimeMgrSetNStep(timeMgr, nstep, rc) ! !PARAMETERS:      type(ESMF_TimeMgr), intent(in) :: timeMgr  ! time manager       integer, intent(in) :: nstep               ! New nstep      integer, intent(out), optional :: rc       ! return code! !DESCRIPTION:!     Sets the number of time steps in the time manager.!!EOP!-------------------------------------------------------------------------------       integer stub      call ESMC_TimeMgrSetNStep(timeMgr, nstep, stub)      if (present(rc)) rc = stub      end subroutine ESMF_TimeMgrSetNStep!===============================================================================!BOP!! !IROUTINE:  ESMF_TimeMgrGetStepSizeIS!! !INTERFACE:      subroutine ESMF_TimeMgrGetStepSizeIS(timeMgr, days, seconds, rc)! !PARAMETERS:      type(ESMF_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 ESMC_TimeMgrGetStepSizeIS(timeMgr, days, seconds, stub)      if (present(rc)) rc = stub      end subroutine ESMF_TimeMgrGetStepSizeIS!===============================================================================!BOP!! !IROUTINE:  ESMF_TimeMgrGetStepSizeStd!! !INTERFACE:      subroutine ESMF_TimeMgrGetStepSizeStd(timeMgr, stepSize, rc)! !PARAMETERS:      type(ESMF_TimeMgr), intent(in) :: timeMgr   ! time manager      type(ESMF_Time), intent(out) :: stepSize    ! step size      integer, intent(out), optional :: rc        ! return code! !DESCRIPTION:!     Returns the step size.!!EOP!-------------------------------------------------------------------------------      integer stub      call ESMC_TimeMgrGetStepSizeStd(timeMgr, stepsize, stub)      if (present(rc)) rc = stub      end subroutine ESMF_TimeMgrGetStepSizeStd!===============================================================================!BOP!! !IROUTINE:  ESMF_TimeMgrGetStartDate!! !INTERFACE:       function ESMF_TimeMgrGetStartDate(timeMgr, rc)! !RETURN VALUE:      type(ESMF_Date) :: ESMF_TimeMgrGetStartDate   ! start date    ! !PARAMETERS:      type(ESMF_TimeMgr), intent(in)  :: timeMgr    ! time manager      integer, intent(out), optional :: rc          ! return code! !DESCRIPTION:!     Returns the start date.!!EOP!-------------------------------------------------------------------------------      integer stub      call ESMC_DateInitUndefined(ESMF_TimeMgrGetStartDate, stub)      if (stub == ESMF_SUCCESS) then        call ESMC_TimeMgrGetStartDate(timeMgr, ESMF_TimeMgrGetStartDate,      &    stub)      end if      if (present(rc)) rc = stub      end function ESMF_TimeMgrGetStartDate!===============================================================================!BOP!! !IROUTINE: ESMF_TimeMgrGetStopDate!! !INTERFACE:      function ESMF_TimeMgrGetStopDate(timeMgr, rc)! !RETURN VALUE:      type(ESMF_Date) :: ESMF_TimeMgrGetStopDate  ! stop date   ! !PARAMETERS:      type(ESMF_TimeMgr), intent(in) :: timeMgr   ! time manager      integer, intent(out), optional :: rc        ! return code! !DESCRIPTION:!     Returns the stop date.!!EOP!-------------------------------------------------------------------------------      integer stub      call ESMC_DateInitUndefined(ESMF_TimeMgrGetStopDate, stub)      if (stub == ESMF_SUCCESS) then        call ESMC_TimeMgrGetStopDate(timeMgr, ESMF_TimeMgrGetStopDate,      &    stub)      end if      if (present(rc)) rc = stub      end function ESMF_TimeMgrGetStopDate!===============================================================================!BOP!! !IROUTINE:  ESMF_TimeMgrGetBaseDate!! !INTERFACE:      function ESMF_TimeMgrGetBaseDate(timeMgr, rc)! !RETURN VALUE:      type(ESMF_Date) :: ESMF_TimeMgrGetBaseDate  ! base date! !PARAMETERS:      type(ESMF_TimeMgr), intent(in) :: timeMgr   ! time manager      integer, intent(out), optional :: rc        ! return code! !DESCRIPTION:!     Returns the base date.!!EOP!-------------------------------------------------------------------------------      integer stub      call ESMC_DateInitUndefined(ESMF_TimeMgrGetBaseDate, stub)      if (stub == ESMF_SUCCESS) then        call ESMC_TimeMgrGetBaseDate(timeMgr, ESMF_TimeMgrGetBaseDate,      &    stub)      end if      if (present(rc)) rc = stub      end function ESMF_TimeMgrGetBaseDate!===============================================================================!BOP!! !IROUTINE:  ESMF_TimeMgrGetCurrDate!! !INTERFACE:      function ESMF_TimeMgrGetCurrDate(timeMgr, rc)! !RETURN VALUE:      type(ESMF_Date) :: ESMF_TimeMgrGetCurrDate   ! current date! !PARAMETERS:      type(ESMF_TimeMgr), intent(in) :: timeMgr    ! time manager      integer, intent(out), optional :: rc         ! return code! !DESCRIPTION:!     Returns the current date.!!EOP!-------------------------------------------------------------------------------      integer stub      call ESMC_DateInitUndefined(ESMF_TimeMgrGetCurrDate, stub)      if (stub == ESMF_SUCCESS) then        call ESMC_TimeMgrGetCurrDate(timeMgr, ESMF_TimeMgrGetCurrDate,      &    stub)      end if      if (present(rc)) rc = stub      end function ESMF_TimeMgrGetCurrDate!===============================================================================!BOP!! !IROUTINE:  ESMF_TimeMgrSetCurrDateIS!! !INTERFACE:      subroutine ESMF_TimeMgrSetCurrDateIS(timeMgr, dateYYMMDD, tod, rc)! !RETURN VALUE:! !PARAMETERS:      type(ESMF_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 ESMC_TimeMgrSetCurrDateIS(timeMgr,     &     dateYYMMDD,     &     tod,     &     stub)            if (present(rc)) rc = stub            end subroutine ESMF_TimeMgrSetCurrDateIS!===============================================================================!BOP!! !IROUTINE:  ESMF_TimeMgrGetPrevDate!! !INTERFACE:      function ESMF_TimeMgrGetPrevDate(timeMgr, rc)! !RETURN VALUE:      type(ESMF_Date) :: ESMF_TimeMgrGetPrevDate    ! previous date! !PARAMETERS:      type(ESMF_TimeMgr), intent(in) :: timeMgr     ! time manager      integer, intent(out), optional :: rc          ! return code! !DESCRIPTION:!     Returns the previous timestep.!!EOP!-------------------------------------------------------------------------------      integer stub      call ESMC_DateInitUndefined(ESMF_TimeMgrGetPrevDate, stub)      if (stub == ESMF_SUCCESS) then        call ESMC_TimeMgrGetPrevDate(timeMgr, ESMF_TimeMgrGetPrevDate,      &    stub)      end if      if (present(rc)) rc = stub      end function ESMF_TimeMgrGetPrevDate!===============================================================================!BOP!! !IROUTINE:  ESMF_TimeMgrRestartWriteIS!! !INTERFACE:      subroutine ESMF_TimeMgrRestartWriteIS(timeMgr,     &     type,     &     nstep,     &     stepDays, stepSec,     &     startYYMMDD, startSec,     &     stopYYMMDD, stopSec,     &     baseYYMMDD, baseSec,     &     currYYMMDD, currSec,     &     rc)! !PARAMETERS:      type(ESMF_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 ESMC_TimeMgrRestartWriteIS(timeMgr,     &     type,     &     nstep,     &     stepDays, stepSec,     &     startYYMMDD, startSec,     &     stopYYMMDD, stopSec,     &     baseYYMMDD, baseSec,     &     currYYMMDD, currSec,     &     stub)      if (present(rc)) rc = stub      end subroutine ESMF_TimeMgrRestartWriteIS!===============================================================================!BOP!! !IROUTINE:  ESMF_TimeMgrRestartReadIS!! !INTERFACE:      function ESMF_TimeMgrRestartReadIS(     &     type,     &     nstep,     &     stepDays, stepSec,     &     startYYMMDD, startSec,     &     stopYYMMDD, stopSec,     &     baseYYMMDD, baseSec,     &     currYYMMDD, currSec,     &     rc)! !RETURN VALUE:      type(ESMF_TimeMgr) :: ESMF_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 ESMC_TimeMgrRestartReadIS(     &     ESMF_TimeMgrRestartReadIS,     &     type,     &     nstep,     &     stepDays, stepSec,     &     startYYMMDD, startSec,     &     stopYYMMDD, stopSec,     &     baseYYMMDD, baseSec,     &     currYYMMDD, currSec,     &     stub)      if (present(rc)) rc = stub      end function ESMF_TimeMgrRestartReadIS!===============================================================================	end module

⌨️ 快捷键说明

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