20 |
#endif |
#endif |
21 |
I scaleFact, power, arrType, nLevFract, |
I scaleFact, power, arrType, nLevFract, |
22 |
I ndId, kInQSd, region2fill, kLev, nLevs, |
I ndId, kInQSd, region2fill, kLev, nLevs, |
23 |
I bibjflg, biArg, bjArg, myThid ) |
I bibjFlg, biArg, bjArg, myThid ) |
24 |
|
|
25 |
C !DESCRIPTION: |
C !DESCRIPTION: |
26 |
C*********************************************************************** |
C*********************************************************************** |
63 |
C -1: fill-in in reverse order. |
C -1: fill-in in reverse order. |
64 |
C nLevs :: indicates Number of levels of the input field array |
C nLevs :: indicates Number of levels of the input field array |
65 |
C (whether to fill-in all the levels (kLev<1) or just one (kLev>0)) |
C (whether to fill-in all the levels (kLev<1) or just one (kLev>0)) |
66 |
C bibjflg :: Integer flag to indicate instructions for bi bj loop |
C bibjFlg :: Integer flag to indicate instructions for bi bj loop |
67 |
C 0 indicates that the bi-bj loop must be done here |
C 0 indicates that the bi-bj loop must be done here |
68 |
C 1 indicates that the bi-bj loop is done OUTSIDE |
C 1 indicates that the bi-bj loop is done OUTSIDE |
69 |
C 2 indicates that the bi-bj loop is done OUTSIDE |
C 2 indicates that the bi-bj loop is done OUTSIDE |
71 |
C 3 indicates that the bi-bj loop is done OUTSIDE |
C 3 indicates that the bi-bj loop is done OUTSIDE |
72 |
C AND that we have been sent a local array |
C AND that we have been sent a local array |
73 |
C AND that the array has no overlap region (interior only) |
C AND that the array has no overlap region (interior only) |
74 |
C NOTE - bibjflg can be NEGATIVE to indicate not to increment counter |
C NOTE - bibjFlg can be NEGATIVE to indicate not to increment counter |
75 |
C biArg :: X-direction tile number - used for bibjflg=1-3 |
C biArg :: X-direction tile number - used for bibjFlg=1-3 |
76 |
C bjArg :: Y-direction tile number - used for bibjflg=1-3 |
C bjArg :: Y-direction tile number - used for bibjFlg=1-3 |
77 |
C myThid :: my thread Id number |
C myThid :: my thread Id number |
78 |
C*********************************************************************** |
C*********************************************************************** |
79 |
C NOTE: User beware! If a local (1 tile only) array |
C NOTE: User beware! If a local (1 tile only) array |
80 |
C is sent here, bibjflg MUST NOT be set to 0 |
C is sent here, bibjFlg MUST NOT be set to 0 |
81 |
C or there will be out of bounds problems! |
C or there will be out of bounds problems! |
82 |
C*********************************************************************** |
C*********************************************************************** |
83 |
_RL inpFldRL(*) |
_RL inpFldRL(*) |
92 |
INTEGER nLevFract |
INTEGER nLevFract |
93 |
INTEGER ndId, kInQSd |
INTEGER ndId, kInQSd |
94 |
INTEGER region2fill(0:nRegions) |
INTEGER region2fill(0:nRegions) |
95 |
INTEGER kLev, nLevs, bibjflg, biArg, bjArg |
INTEGER kLev, nLevs, bibjFlg, biArg, bjArg |
96 |
INTEGER myThid |
INTEGER myThid |
97 |
CEOP |
CEOP |
98 |
|
|
135 |
ENDIF |
ENDIF |
136 |
|
|
137 |
C- Dimension of the input array: |
C- Dimension of the input array: |
138 |
IF (ABS(bibjflg).EQ.3) THEN |
IF (ABS(bibjFlg).EQ.3) THEN |
139 |
sizI1 = 1 |
sizI1 = 1 |
140 |
sizI2 = sNx |
sizI2 = sNx |
141 |
sizJ1 = 1 |
sizJ1 = 1 |
148 |
sizJ1 = 1-OLy |
sizJ1 = 1-OLy |
149 |
sizJ2 = sNy+OLy |
sizJ2 = sNy+OLy |
150 |
ENDIF |
ENDIF |
151 |
IF (ABS(bibjflg).GE.2) THEN |
IF (ABS(bibjFlg).GE.2) THEN |
152 |
sizTx = 1 |
sizTx = 1 |
153 |
sizTy = 1 |
sizTy = 1 |
154 |
ELSE |
ELSE |
216 |
#ifndef REAL4_IS_SLOW |
#ifndef REAL4_IS_SLOW |
217 |
IF ( arrType.EQ.0 .OR. ( arrType.EQ.1 .AND. .NOT.useFract ) ) THEN |
IF ( arrType.EQ.0 .OR. ( arrType.EQ.1 .AND. .NOT.useFract ) ) THEN |
218 |
#endif |
#endif |
219 |
IF ( bibjflg.EQ.0 ) THEN |
IF ( bibjFlg.EQ.0 ) THEN |
220 |
DO bj=myByLo(myThid), myByHi(myThid) |
DO bj=myByLo(myThid), myByHi(myThid) |
221 |
DO bi=myBxLo(myThid), myBxHi(myThid) |
DO bi=myBxLo(myThid), myBxHi(myThid) |
222 |
DO k = kFirst,kLast |
DO k = kFirst,kLast |
228 |
I scaleFact, power, useFract, sizF, |
I scaleFact, power, useFract, sizF, |
229 |
I sizI1,sizI2,sizJ1,sizJ2,nLevs,sizTx,sizTy, |
I sizI1,sizI2,sizJ1,sizJ2,nLevs,sizTx,sizTy, |
230 |
I iRun,jRun,k,bi,bj, |
I iRun,jRun,k,bi,bj, |
231 |
I km, bi, bj, region2fill, |
I km, bi, bj, bibjFlg, region2fill, |
232 |
I ndId, gdiag(ndId), myThid ) |
I ndId, gdiag(ndId), myThid ) |
233 |
ENDDO |
ENDDO |
234 |
ENDDO |
ENDDO |
245 |
I scaleFact, power, useFract, sizF, |
I scaleFact, power, useFract, sizF, |
246 |
I sizI1,sizI2,sizJ1,sizJ2,nLevs,sizTx,sizTy, |
I sizI1,sizI2,sizJ1,sizJ2,nLevs,sizTx,sizTy, |
247 |
I iRun,jRun,k,bi,bj, |
I iRun,jRun,k,bi,bj, |
248 |
I km, biArg, bjArg, region2fill, |
I km, biArg, bjArg, bibjFlg, region2fill, |
249 |
I ndId, gdiag(ndId), myThid ) |
I ndId, gdiag(ndId), myThid ) |
250 |
ENDDO |
ENDDO |
251 |
ENDIF |
ENDIF |
252 |
|
|
253 |
#ifndef REAL4_IS_SLOW |
#ifndef REAL4_IS_SLOW |
254 |
ELSE |
ELSE |
255 |
IF ( bibjflg.EQ.0 ) THEN |
IF ( bibjFlg.EQ.0 ) THEN |
256 |
DO bj=myByLo(myThid), myByHi(myThid) |
DO bj=myByLo(myThid), myByHi(myThid) |
257 |
DO bi=myBxLo(myThid), myBxHi(myThid) |
DO bi=myBxLo(myThid), myBxHi(myThid) |
258 |
DO k = kFirst,kLast |
DO k = kFirst,kLast |
270 |
I scaleFact, power, useFract, 1, |
I scaleFact, power, useFract, 1, |
271 |
I 1, iRun, 1, jRun, 1, 1, 1, |
I 1, iRun, 1, jRun, 1, 1, 1, |
272 |
I iRun, jRun, 1, 1, 1, |
I iRun, jRun, 1, 1, 1, |
273 |
I km, bi, bj, region2fill, |
I km, bi, bj, bibjFlg, region2fill, |
274 |
I ndId, gdiag(ndId), myThid ) |
I ndId, gdiag(ndId), myThid ) |
275 |
ENDDO |
ENDDO |
276 |
ENDDO |
ENDDO |
293 |
I scaleFact, power, useFract, 1, |
I scaleFact, power, useFract, 1, |
294 |
I 1, iRun, 1, jRun, 1, 1, 1, |
I 1, iRun, 1, jRun, 1, 1, 1, |
295 |
I iRun, jRun, 1, 1, 1, |
I iRun, jRun, 1, 1, 1, |
296 |
I km, biArg, bjArg, region2fill, |
I km, biArg, bjArg, bibjFlg, region2fill, |
297 |
I ndId, gdiag(ndId), myThid ) |
I ndId, gdiag(ndId), myThid ) |
298 |
ENDDO |
ENDDO |
299 |
ENDIF |
ENDIF |