File indexing completed on 2024-12-17 18:37:24 UTC
view on githubraw file Latest commit 87dd4f7d on 2024-01-17 18:17:24 UTC
87dd4f7d5f Oliv*0001 #include "OASIM_OPTIONS.h"
0002 #ifdef ALLOW_EXF
0003 #include "EXF_OPTIONS.h"
0004 #endif
0005
0006
0007
0008
0009 SUBROUTINE OASIM_GetMonthsRec(
0010 I fldStartTime, useFldYearlyFields,
0011 I order,
0012 O fac, first, changed,
0013 O count0, count1, year0, year1,
0014 I myTime, myIter, myThid )
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 IMPLICIT NONE
0027
0028 #include "cal.h"
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039 _RL fldStartTime
0040 LOGICAL useFldYearlyFields
0041 INTEGER order
0042 _RL myTime
0043 INTEGER myIter
0044 INTEGER myThid
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054 _RL fac
0055 LOGICAL first, changed
0056 INTEGER count0, count1, year0, year1
0057
0058 #ifdef ALLOW_EXF
0059 #ifdef ALLOW_CAL
0060
0061 INTEGER startDate(4)
0062 INTEGER yy, mm, dd, ss, lp, wd
0063 integer modelsteptime(4)
0064 integer currentdate(4)
0065 integer prevdate(4)
0066 integer prevcount
0067
0068
0069 IF (order .EQ. 0) THEN
0070
0071
0072 first = ((mytime - modelstart) .lt. 0.5*modelstep)
0073
0074 CALL cal_TimeInterval( -modelstep, 'secs', modelsteptime,
0075 & mythid )
0076
0077
0078 call cal_GetDate( myiter, mytime, currentdate, mythid )
0079 call cal_AddTime( currentdate, modelsteptime, prevdate, mythid )
0080
0081 year0 = currentdate(1)/10000
0082 count0 = mod(currentdate(1)/100,100)
0083
0084 year1 = year0
0085 count1 = count0
0086
0087 fac = 0 _d 0
0088 prevcount = mod(prevdate(1)/100,100)
0089
0090 IF ( (.NOT. first) .AND. (prevcount .NE. count0) ) THEN
0091 changed = .TRUE.
0092 ELSE
0093 changed = .FALSE.
0094 ENDIF
0095
0096 ELSE
0097
0098 CALL cal_GetMonthsRec(
0099 O fac, first, changed,
0100 O count0, count1, year0, year1,
0101 I myTime, myIter, myThid )
0102
0103 ENDIF
0104
0105 IF (.NOT.useFldYearlyFields) THEN
0106 CALL CAL_GETDATE( 0, fldStartTime, startDate, myThid )
0107 CALL CAL_CONVDATE( startDate, yy, mm, dd, ss, lp, wd, myThid )
0108 count0 = (year0-yy)*12 + count0 - mm + 1
0109 count1 = (year1-yy)*12 + count1 - mm + 1
0110 year0 = 0
0111 year1 = 0
0112 ENDIF
0113
0114 #endif /* ALLOW_CAL */
0115 #endif /* ALLOW_EXF */
0116
0117 RETURN
0118 END