Back to home page

MITgcm

 
 

    


File indexing completed on 2021-11-10 06:15:37 UTC

view on githubraw file Latest commit deacece5 on 2021-11-09 17:35:09 UTC
deacece587 Oliv*0001 #include "EXF_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C     !ROUTINE: EXF_GetMonthsRec
                0005 C     !INTERFACE:
                0006       SUBROUTINE EXF_GetMonthsRec(
                0007      I                             fldStartTime, useFldYearlyFields,
                0008      O                             fac, first, changed,
                0009      O                             count0, count1, year0, year1,
                0010      I                             myTime, myIter, myThid )
                0011 
                0012 C     !DESCRIPTION: \bv
                0013 C     *==========================================================*
                0014 C     | SUBROUTINE EXF_GetMonthsRec
                0015 C     | o Get flags, counters, and the linear interpolation
                0016 C     |   factor for a given field for the case of monthly,
                0017 C     |   interannual forcing
                0018 C     *==========================================================*
                0019 C     \ev
                0020 
                0021 C     !USES:
                0022       IMPLICIT NONE
                0023 C     == Global variables ==
                0024 
                0025 C     !INPUT PARAMETERS:
                0026 C     fldStartTime       :: time in seconds of first fld record from the
                0027 C                           beginning of the model integration or, if
                0028 C                           usefldyearlyfields, from the beginning of year
                0029 C     useFldYearlyFields :: when set, use yearly forcing files
                0030 C     myTime             :: current time in simulation
                0031 C     myIter             :: current iteration number in simulation
                0032 C     myThid             :: my thread identification number
                0033       _RL     fldStartTime
                0034       LOGICAL useFldYearlyFields
                0035       _RL     myTime
                0036       INTEGER myIter
                0037       INTEGER myThid
                0038 
                0039 C     !OUTPUT PARAMETERS:
                0040 C     fac     :: weight of record count0 for linear interpolation purposes
                0041 C     first   :: model initialization flag: read two forcing records
                0042 C     changed :: flag indicating that a new forcing record must be read
                0043 C     count0  :: record number for forcing field preceding myTime
                0044 C     count1  :: record number for forcing field following myTime
                0045 C     year0   :: year of forcing file for record preceding myTime
                0046 C     year1   :: year of forcing file for record following myTime
                0047       _RL     fac
                0048       LOGICAL first, changed
                0049       INTEGER count0, count1, year0, year1
                0050 
                0051 #ifdef ALLOW_EXF
                0052 #ifdef ALLOW_CAL
                0053 C     !LOCAL VARIABLES:
                0054       INTEGER startDate(4)
                0055       INTEGER yy, mm, dd, ss, lp, wd
                0056 CEOP
                0057 
                0058       CALL cal_GetMonthsRec(
                0059      O                       fac, first, changed,
                0060      O                       count0, count1, year0, year1,
                0061      I                       myTime, myIter, myThid )
                0062       IF (.NOT.useFldYearlyFields) THEN
                0063         CALL CAL_GETDATE( 0, fldStartTime, startDate, myThid )
                0064         CALL CAL_CONVDATE( startDate, yy, mm, dd, ss, lp, wd, myThid )
                0065         count0 = (year0-yy)*12 + count0 - mm + 1
                0066         count1 = (year1-yy)*12 + count1 - mm + 1
                0067         year0 = 0
                0068         year1 = 0
                0069       ENDIF
                0070 
                0071 #endif /* ALLOW_CAL */
                0072 #endif /* ALLOW_EXF */
                0073 
                0074       RETURN
                0075       END