📄 esmf_timemgrmod.f
字号:
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 + -