13 |
I sizI1,sizI2,sizJ1,sizJ2,sizK,sizTx,sizTy, |
I sizI1,sizI2,sizJ1,sizJ2,sizK,sizTx,sizTy, |
14 |
I iRun,jRun,kIn,biIn,bjIn, |
I iRun,jRun,kIn,biIn,bjIn, |
15 |
I k,bi,bj, region2fill, ndId, parsFld, |
I k,bi,bj, region2fill, ndId, parsFld, |
16 |
I myThid) |
I myThid ) |
17 |
|
|
18 |
C !DESCRIPTION: |
C !DESCRIPTION: |
19 |
C Update array statFld |
C Update array statFld |
51 |
C sizK :: size of inpFld array: 3rd dimension |
C sizK :: size of inpFld array: 3rd dimension |
52 |
C sizTx,sizTy :: size of inpFld array: tile dimensions |
C sizTx,sizTy :: size of inpFld array: tile dimensions |
53 |
C iRun,jRun :: range of 1rst & 2nd index |
C iRun,jRun :: range of 1rst & 2nd index |
54 |
C kIn :: level index of inpFld array to porcess |
C kIn :: level index of inpFld array to process |
55 |
C biIn,bjIn :: tile indices of inpFld array to process |
C biIn,bjIn :: tile indices of inpFld array to process |
56 |
C k,bi,bj :: level and tile indices used for weighting (mask,area ...) |
C k,bi,bj :: level and tile indices used for weighting (mask,area ...) |
57 |
C region2fill :: indicates whether to compute statistics over this region |
C region2fill :: indicates whether to compute statistics over this region |
73 |
INTEGER myThid |
INTEGER myThid |
74 |
CEOP |
CEOP |
75 |
|
|
76 |
|
C !FUNCTIONS: |
77 |
|
#ifdef ALLOW_FIZHI |
78 |
|
_RL getcon |
79 |
|
EXTERNAL getcon |
80 |
|
#endif |
81 |
|
|
82 |
C !LOCAL VARIABLES: |
C !LOCAL VARIABLES: |
83 |
C i,j :: loop indices |
C i,j :: loop indices |
84 |
INTEGER i, n, km, kFr, kRegMsk |
INTEGER i, n, kFr, kRegMsk |
85 |
INTEGER im, ix, iv |
INTEGER im, ix, iv |
86 |
PARAMETER ( iv = nStats - 2 , im = nStats - 1 , ix = nStats ) |
PARAMETER ( iv = nStats - 2 , im = nStats - 1 , ix = nStats ) |
87 |
LOGICAL exclSpVal |
LOGICAL exclSpVal |
89 |
_RL statLoc(0:nStats) |
_RL statLoc(0:nStats) |
90 |
_RL drLoc |
_RL drLoc |
91 |
_RL specialVal |
_RL specialVal |
|
_RL getcon |
|
|
EXTERNAL getcon |
|
92 |
|
|
93 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
94 |
|
|
95 |
useWeight = .FALSE. |
useWeight = .FALSE. |
96 |
exclSpVal = .FALSE. |
exclSpVal = .FALSE. |
97 |
specialVal = 0. |
specialVal = 0. |
98 |
|
#ifdef ALLOW_FIZHI |
99 |
IF ( useFIZHI ) THEN |
IF ( useFIZHI ) THEN |
100 |
exclSpVal = .TRUE. |
exclSpVal = .TRUE. |
101 |
specialVal = getcon('UNDEF') |
specialVal = getcon('UNDEF') |
102 |
ENDIF |
ENDIF |
103 |
|
#endif |
104 |
kFr = MIN(kIn,sizF) |
kFr = MIN(kIn,sizF) |
105 |
|
|
106 |
DO n=0,nRegions |
DO n=0,nRegions |
162 |
I scaleFact, power, useFract, n, diagSt_vRegMsk(n), |
I scaleFact, power, useFract, n, diagSt_vRegMsk(n), |
163 |
I nStats,sizI1,sizI2,sizJ1,sizJ2,iRun,jRun, |
I nStats,sizI1,sizI2,sizJ1,sizJ2,iRun,jRun, |
164 |
I diagSt_regMask(1-Olx,1-Oly,kRegMsk,bi,bj), |
I diagSt_regMask(1-Olx,1-Oly,kRegMsk,bi,bj), |
165 |
I maskH(1-Olx,1-Oly,bi,bj), rA(1-Olx,1-Oly,bi,bj), |
I maskInC(1-Olx,1-Oly,bi,bj), rA(1-Olx,1-Oly,bi,bj), |
166 |
I specialVal, exclSpVal, |
I specialVal, exclSpVal, |
167 |
I k,bi,bj, parsFld, myThid ) |
I k,bi,bj, parsFld, myThid ) |
168 |
ELSEIF ( useLand .AND. |
ELSEIF ( useLand .AND. |
182 |
c ELSEIF ( parsFld(10:10) .EQ. '1' ) THEN |
c ELSEIF ( parsFld(10:10) .EQ. '1' ) THEN |
183 |
ELSE |
ELSE |
184 |
|
|
|
km = 1 |
|
|
IF ( usingPCoords ) km = Nr |
|
185 |
drLoc = 1. _d 0 |
drLoc = 1. _d 0 |
186 |
IF ( parsFld(2:2).EQ.'U' ) THEN |
IF ( parsFld(2:2).EQ.'U' ) THEN |
187 |
CALL DIAGSTATS_CALC( |
CALL DIAGSTATS_CALC( |
191 |
I scaleFact, power, useFract, n, diagSt_vRegMsk(n), |
I scaleFact, power, useFract, n, diagSt_vRegMsk(n), |
192 |
I nStats,sizI1,sizI2,sizJ1,sizJ2,iRun,jRun, |
I nStats,sizI1,sizI2,sizJ1,sizJ2,iRun,jRun, |
193 |
I diagSt_regMask(1-Olx,1-Oly,kRegMsk,bi,bj), |
I diagSt_regMask(1-Olx,1-Oly,kRegMsk,bi,bj), |
194 |
I maskW(1-Olx,1-Oly,km,bi,bj), |
I maskInW(1-Olx,1-Oly,bi,bj), |
195 |
I maskW(1-Olx,1-Oly,km,bi,bj),rAw(1-Olx,1-Oly,bi,bj), |
I maskInW(1-Olx,1-Oly,bi,bj),rAw(1-Olx,1-Oly,bi,bj), |
196 |
I drLoc, specialVal, exclSpVal, useWeight, myThid ) |
I drLoc, specialVal, exclSpVal, useWeight, myThid ) |
197 |
ELSEIF ( parsFld(2:2).EQ.'V' ) THEN |
ELSEIF ( parsFld(2:2).EQ.'V' ) THEN |
198 |
CALL DIAGSTATS_CALC( |
CALL DIAGSTATS_CALC( |
202 |
I scaleFact, power, useFract, n, diagSt_vRegMsk(n), |
I scaleFact, power, useFract, n, diagSt_vRegMsk(n), |
203 |
I nStats,sizI1,sizI2,sizJ1,sizJ2,iRun,jRun, |
I nStats,sizI1,sizI2,sizJ1,sizJ2,iRun,jRun, |
204 |
I diagSt_regMask(1-Olx,1-Oly,kRegMsk,bi,bj), |
I diagSt_regMask(1-Olx,1-Oly,kRegMsk,bi,bj), |
205 |
I maskS(1-Olx,1-Oly,km,bi,bj), |
I maskInS(1-Olx,1-Oly,bi,bj), |
206 |
I maskS(1-Olx,1-Oly,km,bi,bj),rAs(1-Olx,1-Oly,bi,bj), |
I maskInS(1-Olx,1-Oly,bi,bj),rAs(1-Olx,1-Oly,bi,bj), |
207 |
I drLoc, specialVal, exclSpVal, useWeight, myThid ) |
I drLoc, specialVal, exclSpVal, useWeight, myThid ) |
208 |
ELSE |
ELSE |
209 |
CALL DIAGSTATS_CALC( |
CALL DIAGSTATS_CALC( |
213 |
I scaleFact, power, useFract, n, diagSt_vRegMsk(n), |
I scaleFact, power, useFract, n, diagSt_vRegMsk(n), |
214 |
I nStats,sizI1,sizI2,sizJ1,sizJ2,iRun,jRun, |
I nStats,sizI1,sizI2,sizJ1,sizJ2,iRun,jRun, |
215 |
I diagSt_regMask(1-Olx,1-Oly,kRegMsk,bi,bj), |
I diagSt_regMask(1-Olx,1-Oly,kRegMsk,bi,bj), |
216 |
I maskH(1-Olx,1-Oly,bi,bj), |
I maskInC(1-Olx,1-Oly,bi,bj), |
217 |
I maskH(1-Olx,1-Oly,bi,bj), rA(1-Olx,1-Oly,bi,bj), |
I maskInC(1-Olx,1-Oly,bi,bj), rA(1-Olx,1-Oly,bi,bj), |
218 |
I drLoc, specialVal, exclSpVal, useWeight, myThid ) |
I drLoc, specialVal, exclSpVal, useWeight, myThid ) |
219 |
ENDIF |
ENDIF |
220 |
|
|