File indexing completed on 2018-03-02 18:38:57 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
90d17db25d Jean*0001 #include "DIAG_OPTIONS.h"
0002
e129400813 Jean*0003
0004
0005
a45cd986a8 Jean*0006
fc67859634 Jean*0007
e129400813 Jean*0008
0009
90d17db25d Jean*0010
0011
0012
0d32f96e75 Jean*0013 SUBROUTINE DIAGNOSTICS_FILL_FIELD(
fc67859634 Jean*0014 I inpFldRL, fracFldRL, inpFldRS, fracFldRS,
0015 I scaleFact, power, arrType, nLevFrac,
a45cd986a8 Jean*0016 I ndId, ipointer, kLev, nLevs,
62f9c88755 Jean*0017 I bibjFlg, biArg, bjArg, myThid )
90d17db25d Jean*0018
0019
0020
0d32f96e75 Jean*0021
62f9c88755 Jean*0022
0d32f96e75 Jean*0023
0024
90d17db25d Jean*0025
0026
0027 IMPLICIT NONE
0028
0029
0030 #include "EEPARAMS.h"
0031 #include "SIZE.h"
0032 #include "DIAGNOSTICS_SIZE.h"
0033 #include "DIAGNOSTICS.h"
0034
0035
0036
0037
0038
fc67859634 Jean*0039
0040
0041
0042
62f9c88755 Jean*0043
0044
fc67859634 Jean*0045
0046
a45cd986a8 Jean*0047
0048
0049
62f9c88755 Jean*0050
0051
90d17db25d Jean*0052
0053
3ae5f90260 Jean*0054
90d17db25d Jean*0055
62f9c88755 Jean*0056
90d17db25d Jean*0057
62f9c88755 Jean*0058
90d17db25d Jean*0059
0060
0061
0062
0063
0064
0065
3ae5f90260 Jean*0066
62f9c88755 Jean*0067
0068
0069
90d17db25d Jean*0070
0071
3ae5f90260 Jean*0072
90d17db25d Jean*0073
0074
fc67859634 Jean*0075 _RL inpFldRL(*)
0076 _RL fracFldRL(*)
0077 _RS inpFldRS(*)
0078 _RS fracFldRS(*)
0d32f96e75 Jean*0079 _RL scaleFact
62f9c88755 Jean*0080 INTEGER power
fc67859634 Jean*0081 INTEGER arrType
0082 INTEGER nLevFrac
a45cd986a8 Jean*0083 INTEGER ndId, ipointer
3ae5f90260 Jean*0084 INTEGER kLev, nLevs, bibjFlg, biArg, bjArg
90d17db25d Jean*0085 INTEGER myThid
0086
0087
0088
0089
a45cd986a8 Jean*0090
0091
0d32f96e75 Jean*0092 LOGICAL useFract
a45cd986a8 Jean*0093 INTEGER sizF, thickFac
90d17db25d Jean*0094 INTEGER sizI1,sizI2,sizJ1,sizJ2
0095 INTEGER sizTx,sizTy
0096 INTEGER iRun, jRun, k, bi, bj
0097 INTEGER kFirst, kLast
a45cd986a8 Jean*0098 INTEGER kd, kd0, ksgn, km, kStore
90d17db25d Jean*0099 CHARACTER*8 parms1
0100 CHARACTER*(MAX_LEN_MBUF) msgBuf
0101
0102
a45cd986a8 Jean*0103
90d17db25d Jean*0104
3ae5f90260 Jean*0105 IF ( bibjFlg.GE.0 .AND. ABS(kLev).LE.1 ) THEN
0106
0107 IF ( bibjFlg.EQ.0 ) THEN
0108 DO bj=myByLo(myThid), myByHi(myThid)
0109 DO bi=myBxLo(myThid), myBxHi(myThid)
0110 ndiag(ipointer,bi,bj) = ndiag(ipointer,bi,bj) + 1
0111 ENDDO
0112 ENDDO
0113 ELSE
0114 bi = MIN(biArg,nSx)
0115 bj = MIN(bjArg,nSy)
0116 ndiag(ipointer,bi,bj) = ndiag(ipointer,bi,bj) + 1
0117 ENDIF
0118 ENDIF
90d17db25d Jean*0119
0120
3ae5f90260 Jean*0121
a45cd986a8 Jean*0122 thickFac = 0
0123 parms1 = gdiag(ndId)(1:8)
90d17db25d Jean*0124 IF ( parms1(2:2).EQ.'M' ) THEN
0125 iRun = sNx
0126 jRun = sNy
a45cd986a8 Jean*0127 thickFac = 1
90d17db25d Jean*0128 ELSEIF ( parms1(2:2).EQ.'U' ) THEN
0129 iRun = sNx+1
0130 jRun = sNy
a45cd986a8 Jean*0131 thickFac = 2
90d17db25d Jean*0132 ELSEIF ( parms1(2:2).EQ.'V' ) THEN
0133 iRun = sNx
0134 jRun = sNy+1
a45cd986a8 Jean*0135 thickFac = 3
90d17db25d Jean*0136 ELSEIF ( parms1(2:2).EQ.'Z' ) THEN
0137 iRun = sNx+1
0138 jRun = sNy+1
0139 ELSE
0140 iRun = sNx
0141 jRun = sNy
0142 ENDIF
0143
0144
a45cd986a8 Jean*0145 IF (ABS(bibjFlg).EQ.3) THEN
90d17db25d Jean*0146 sizI1 = 1
0147 sizI2 = sNx
0148 sizJ1 = 1
0149 sizJ2 = sNy
0150 iRun = sNx
0151 jRun = sNy
0152 ELSE
0153 sizI1 = 1-OLx
0154 sizI2 = sNx+OLx
0155 sizJ1 = 1-OLy
0156 sizJ2 = sNy+OLy
0157 ENDIF
a45cd986a8 Jean*0158 IF (ABS(bibjFlg).GE.2) THEN
90d17db25d Jean*0159 sizTx = 1
0160 sizTy = 1
0161 ELSE
0162 sizTx = nSx
0163 sizTy = nSy
0164 ENDIF
0165
0166
0167 IF (kLev.LE.0) THEN
0168 kFirst = 1
0169 kLast = nLevs
0170 ELSEIF ( nLevs.EQ.1 ) THEN
0171 kFirst = 1
0172 kLast = 1
0173 ELSEIF ( kLev.LE.nLevs ) THEN
0174 kFirst = kLev
0175 kLast = kLev
0176 ELSE
0177 STOP 'ABNORMAL END in DIAGNOSTICS_FILL_FIELD: kLev > nLevs >0'
0178 ENDIF
3ae5f90260 Jean*0179
90d17db25d Jean*0180
0181 IF ( kLev.EQ.-1 ) THEN
0182 ksgn = -1
0183 kd0 = ipointer + nLevs
0184 ELSEIF ( kLev.EQ.0 ) THEN
0185 ksgn = 1
0186 kd0 = ipointer - 1
0187 ELSE
0188 ksgn = 0
0189 kd0 = ipointer + kLev - 1
0190 ENDIF
a45cd986a8 Jean*0191
0192 IF ( nLevFrac.GE.0 ) thickFac = 0
fc67859634 Jean*0193 useFract = nLevFrac.GT.0
0d32f96e75 Jean*0194 IF ( useFract ) THEN
fc67859634 Jean*0195 sizF = nLevFrac
0d32f96e75 Jean*0196 ELSE
0197 sizF = 1
0198 ENDIF
90d17db25d Jean*0199
0200
0201 kStore = kd0 + MAX(ksgn*kFirst,ksgn*kLast) - ipointer + 1
a45cd986a8 Jean*0202 IF ( kStore.GT.kdiag(ndId) ) THEN
90d17db25d Jean*0203 _BEGIN_MASTER(myThid)
e129400813 Jean*0204 WRITE(msgBuf,'(2A,I4,A)') 'DIAGNOSTICS_FILL_FIELD: ',
a45cd986a8 Jean*0205 & 'exceed Nb of levels(=',kdiag(ndId),' ) reserved '
90d17db25d Jean*0206 CALL PRINT_ERROR( msgBuf , myThid )
e129400813 Jean*0207 WRITE(msgBuf,'(2A,I6,2A)') 'DIAGNOSTICS_FILL_FIELD: ',
a45cd986a8 Jean*0208 & 'for Diagnostics #', ndId, ' : ', cdiag(ndId)
90d17db25d Jean*0209 CALL PRINT_ERROR( msgBuf , myThid )
0210 WRITE(msgBuf,'(2A,2I4,I3)') 'calling DIAGNOSTICS_FILL_FIELD ',
0211 I 'with kLev,nLevs,bibjFlg=', kLev,nLevs,bibjFlg
0212 CALL PRINT_ERROR( msgBuf , myThid )
0213 WRITE(msgBuf,'(2A,I6,A)') 'DIAGNOSTICS_FILL_FIELD: ',
0214 I '==> trying to store up to ', kStore, ' levels'
0215 CALL PRINT_ERROR( msgBuf , myThid )
0216 STOP 'ABNORMAL END: S/R DIAGNOSTICS_FILL_FIELD'
0217 _END_MASTER(myThid)
0218 ENDIF
0219
3ae5f90260 Jean*0220 IF ( bibjFlg.EQ.0 ) THEN
0221
90d17db25d Jean*0222 DO bj=myByLo(myThid), myByHi(myThid)
0223 DO bi=myBxLo(myThid), myBxHi(myThid)
0224 DO k = kFirst,kLast
0225 kd = kd0 + ksgn*k
a45cd986a8 Jean*0226 IF ( thickFac.EQ.0 ) THEN
0227 CALL DIAGNOSTICS_CUMULATE(
90d17db25d Jean*0228 U qdiag(1-OLx,1-OLy,kd,bi,bj),
fc67859634 Jean*0229 I inpFldRL, fracFldRL, inpFldRS, fracFldRS,
0230 I scaleFact, power, arrType, useFract, sizF,
90d17db25d Jean*0231 I sizI1,sizI2,sizJ1,sizJ2,nLevs,sizTx,sizTy,
a45cd986a8 Jean*0232 I iRun, jRun, k, bi, bj,
0233 I myThid )
0234 ELSE
0235 km = kd - ipointer + 1
0236 CALL DIAGNOSTICS_HF_CUMUL(
0237 U qdiag(1-OLx,1-OLy,kd,bi,bj),
0238 I inpFldRL, inpFldRS,
0239 I scaleFact, power, arrType, thickFac,
0240 I sizI1,sizI2,sizJ1,sizJ2,nLevs,sizTx,sizTy,
0241 I iRun, jRun, k, km,
0242 I bi, bj, myThid )
0243 ENDIF
90d17db25d Jean*0244 ENDDO
0245 ENDDO
0246 ENDDO
0247 ELSE
0248 bi = MIN(biArg,sizTx)
0249 bj = MIN(bjArg,sizTy)
0250 DO k = kFirst,kLast
0251 kd = kd0 + ksgn*k
a45cd986a8 Jean*0252 IF ( thickFac.EQ.0 ) THEN
0253 CALL DIAGNOSTICS_CUMULATE(
90d17db25d Jean*0254 U qdiag(1-OLx,1-OLy,kd,biArg,bjArg),
fc67859634 Jean*0255 I inpFldRL, fracFldRL, inpFldRS, fracFldRS,
0256 I scaleFact, power, arrType, useFract, sizF,
90d17db25d Jean*0257 I sizI1,sizI2,sizJ1,sizJ2,nLevs,sizTx,sizTy,
a45cd986a8 Jean*0258 I iRun, jRun, k, bi, bj,
0259 I myThid )
0260 ELSE
0261 km = kd - ipointer + 1
0262 CALL DIAGNOSTICS_HF_CUMUL(
0263 U qdiag(1-OLx,1-OLy,kd,biArg,bjArg),
0264 I inpFldRL, inpFldRS,
0265 I scaleFact, power, arrType, thickFac,
0266 I sizI1,sizI2,sizJ1,sizJ2,nLevs,sizTx,sizTy,
0267 I iRun, jRun, k, km,
0268 I biArg, bjArg, myThid )
0269 ENDIF
90d17db25d Jean*0270 ENDDO
0271 ENDIF
0272
0273
0274
a45cd986a8 Jean*0275
90d17db25d Jean*0276
0277
0278
e129400813 Jean*0279
0280
3ae5f90260 Jean*0281 RETURN
90d17db25d Jean*0282 END
0283
0284
0285
0286
a45cd986a8 Jean*0287
0288
0289 SUBROUTINE DIAGNOSTICS_HF_CUMUL(
0290 U cumFld,
0291 I inpFldRL, inpFldRS,
0292 I scaleFact, power, arrType, thickFac,
0293 I sizI1,sizI2,sizJ1,sizJ2,sizK,sizTx,sizTy,
0294 I iRun, jRun, k, km,
0295 I bi, bj, myThid )
0296
0297
0298
0299
0300
0301
0302
0303
0304 IMPLICIT NONE
0305
0306 #include "EEPARAMS.h"
0307 #include "SIZE.h"
0308 #include "GRID.h"
0309
0310
0311
0312
0313
0314
0315
0316
0317
0318
0319
0320
0321
0322
0323
0324
0325
0326
0327
0328
0329 _RL cumFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0330 INTEGER sizI1,sizI2,sizJ1,sizJ2
0331 INTEGER sizK,sizTx,sizTy
0332 _RL inpFldRL(sizI1:sizI2,sizJ1:sizJ2,sizK,sizTx,sizTy)
0333 _RS inpFldRS(sizI1:sizI2,sizJ1:sizJ2,sizK,sizTx,sizTy)
0334 _RL scaleFact
0335 INTEGER power
0336 INTEGER arrType, thickFac
0337 INTEGER iRun, jRun, k, km, bi, bj
0338 INTEGER myThid
0339
0340
0341
0342
0343
0344 INTEGER i, j
0345 INTEGER ti, tj
0346 _RL tmpFld(sNx+1,sNy+1)
0347
0348
0349
0350 ti = MIN(bi,sizTx)
0351 tj = MIN(bj,sizTy)
0352 IF ( arrType.EQ.0 .OR. arrType.EQ.1 ) THEN
0353 DO j = 1,jRun
0354 DO i = 1,iRun
0355 tmpFld(i,j) = scaleFact*inpFldRL(i,j,k,ti,tj)
0356 ENDDO
0357 ENDDO
0358 ELSEIF ( arrType.EQ.2 .OR. arrType.EQ.3 ) THEN
0359 DO j = 1,jRun
0360 DO i = 1,iRun
0361 tmpFld(i,j) = scaleFact*inpFldRS(i,j,k,ti,tj)
0362 ENDDO
0363 ENDDO
0364 ELSE
0365 STOP 'DIAGNOSTICS_HF_CUMUL: invalid arrType'
0366 ENDIF
0367
0368 IF ( power.EQ.2 ) THEN
0369 DO j = 1,jRun
0370 DO i = 1,iRun
0371 tmpFld(i,j) = tmpFld(i,j)*tmpFld(i,j)
0372 ENDDO
0373 ENDDO
0374 ENDIF
0375
0376 IF ( thickFac.EQ.1 ) THEN
0377 DO j = 1,jRun
0378 DO i = 1,iRun
0379 cumFld(i,j) = cumFld(i,j)
0380 & + tmpFld(i,j)*hFacC(i,j,km,bi,bj)
0381 ENDDO
0382 ENDDO
0383 ELSEIF ( thickFac.EQ.2 ) THEN
0384 DO j = 1,jRun
0385 DO i = 1,iRun
0386 cumFld(i,j) = cumFld(i,j)
0387 & + tmpFld(i,j)*hFacW(i,j,km,bi,bj)
0388 ENDDO
0389 ENDDO
0390 ELSEIF ( thickFac.EQ.3 ) THEN
0391 DO j = 1,jRun
0392 DO i = 1,iRun
0393 cumFld(i,j) = cumFld(i,j)
0394 & + tmpFld(i,j)*hFacS(i,j,km,bi,bj)
0395 ENDDO
0396 ENDDO
0397 ELSE
0398 DO j = 1,jRun
0399 DO i = 1,iRun
0400 cumFld(i,j) = cumFld(i,j) + tmpFld(i,j)
0401 ENDDO
0402 ENDDO
0403 ENDIF
0404
0405 RETURN
0406 END
0407
0408
0409
0410
fc67859634 Jean*0411
90d17db25d Jean*0412
fc67859634 Jean*0413 SUBROUTINE DIAGNOSTICS_CUMULATE(
90d17db25d Jean*0414 U cumFld,
fc67859634 Jean*0415 I inpFldRL, frcFldRL, inpFldRS, frcFldRS,
0416 I scaleFact, power, arrType, useFract, sizF,
90d17db25d Jean*0417 I sizI1,sizI2,sizJ1,sizJ2,sizK,sizTx,sizTy,
a45cd986a8 Jean*0418 I iRun, jRun, k, bi, bj,
fc67859634 Jean*0419 I myThid )
90d17db25d Jean*0420
0421
3ae5f90260 Jean*0422
90d17db25d Jean*0423
0424
0425
0426
0427 IMPLICIT NONE
0428
0429 #include "EEPARAMS.h"
0430 #include "SIZE.h"
0431
0432
0433
0434
fc67859634 Jean*0435
0436
0437
0438
0d32f96e75 Jean*0439
62f9c88755 Jean*0440
fc67859634 Jean*0441
0442
0d32f96e75 Jean*0443
0444
90d17db25d Jean*0445
0446
0447
0448
0449
a45cd986a8 Jean*0450
90d17db25d Jean*0451
0452 _RL cumFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0453 INTEGER sizI1,sizI2,sizJ1,sizJ2
0d32f96e75 Jean*0454 INTEGER sizF,sizK,sizTx,sizTy
fc67859634 Jean*0455 _RL inpFldRL(sizI1:sizI2,sizJ1:sizJ2,sizK,sizTx,sizTy)
0456 _RL frcFldRL(sizI1:sizI2,sizJ1:sizJ2,sizF,sizTx,sizTy)
0457 _RS inpFldRS(sizI1:sizI2,sizJ1:sizJ2,sizK,sizTx,sizTy)
0458 _RS frcFldRS(sizI1:sizI2,sizJ1:sizJ2,sizF,sizTx,sizTy)
0d32f96e75 Jean*0459 _RL scaleFact
62f9c88755 Jean*0460 INTEGER power
fc67859634 Jean*0461 INTEGER arrType
0d32f96e75 Jean*0462 LOGICAL useFract
90d17db25d Jean*0463 INTEGER iRun, jRun, k, bi, bj
0464 INTEGER myThid
0465
0466
0467
0468
0d32f96e75 Jean*0469 INTEGER i, j, l
62f9c88755 Jean*0470 _RL tmpFact
90d17db25d Jean*0471
0d32f96e75 Jean*0472
0473
62f9c88755 Jean*0474 tmpFact = scaleFact
0475 IF ( power.EQ.2 ) tmpFact = scaleFact*scaleFact
0476
0477 IF ( useFract .AND. power.EQ.2 ) THEN
0478 l = MIN(k,sizF)
fc67859634 Jean*0479
0480 IF ( arrType.EQ.0 ) THEN
0481 DO j = 1,jRun
0482 DO i = 1,iRun
0483 cumFld(i,j) = cumFld(i,j)
0484 & + tmpFact*inpFldRL(i,j,k,bi,bj)
0485 & *inpFldRL(i,j,k,bi,bj)
0486 & *frcFldRL(i,j,l,bi,bj)
0487 ENDDO
0488 ENDDO
0489 ELSEIF ( arrType.EQ.1 ) THEN
0490 DO j = 1,jRun
0491 DO i = 1,iRun
62f9c88755 Jean*0492 cumFld(i,j) = cumFld(i,j)
fc67859634 Jean*0493 & + tmpFact*inpFldRL(i,j,k,bi,bj)
0494 & *inpFldRL(i,j,k,bi,bj)
0495 & *frcFldRS(i,j,l,bi,bj)
0496 ENDDO
62f9c88755 Jean*0497 ENDDO
fc67859634 Jean*0498 ELSEIF ( arrType.EQ.2 ) THEN
0499 DO j = 1,jRun
0500 DO i = 1,iRun
0501 cumFld(i,j) = cumFld(i,j)
0502 & + tmpFact*inpFldRS(i,j,k,bi,bj)
0503 & *inpFldRS(i,j,k,bi,bj)
0504 & *frcFldRL(i,j,l,bi,bj)
0505 ENDDO
0506 ENDDO
0507 ELSEIF ( arrType.EQ.3 ) THEN
0508 DO j = 1,jRun
0509 DO i = 1,iRun
0510 cumFld(i,j) = cumFld(i,j)
0511 & + tmpFact*inpFldRS(i,j,k,bi,bj)
0512 & *inpFldRS(i,j,k,bi,bj)
0513 & *frcFldRS(i,j,l,bi,bj)
0514 ENDDO
0515 ENDDO
0516 ELSE
0517 STOP 'DIAGNOSTICS_CUMULATE: invalid arrType'
0518 ENDIF
0519
62f9c88755 Jean*0520 ELSEIF ( useFract ) THEN
0d32f96e75 Jean*0521 l = MIN(k,sizF)
fc67859634 Jean*0522
0523 IF ( arrType.EQ.0 ) THEN
0524 DO j = 1,jRun
0525 DO i = 1,iRun
0526 cumFld(i,j) = cumFld(i,j)
0527 & + tmpFact*inpFldRL(i,j,k,bi,bj)
0528 & *frcFldRL(i,j,l,bi,bj)
0529 ENDDO
0530 ENDDO
0531 ELSEIF ( arrType.EQ.1 ) THEN
0532 DO j = 1,jRun
0533 DO i = 1,iRun
62f9c88755 Jean*0534 cumFld(i,j) = cumFld(i,j)
fc67859634 Jean*0535 & + tmpFact*inpFldRL(i,j,k,bi,bj)
0536 & *frcFldRS(i,j,l,bi,bj)
0537 ENDDO
62f9c88755 Jean*0538 ENDDO
fc67859634 Jean*0539 ELSEIF ( arrType.EQ.2 ) THEN
0540 DO j = 1,jRun
0541 DO i = 1,iRun
0542 cumFld(i,j) = cumFld(i,j)
0543 & + tmpFact*inpFldRS(i,j,k,bi,bj)
0544 & *frcFldRL(i,j,l,bi,bj)
0545 ENDDO
0546 ENDDO
0547 ELSEIF ( arrType.EQ.3 ) THEN
0548 DO j = 1,jRun
0549 DO i = 1,iRun
0550 cumFld(i,j) = cumFld(i,j)
0551 & + tmpFact*inpFldRS(i,j,k,bi,bj)
0552 & *frcFldRS(i,j,l,bi,bj)
0553 ENDDO
0554 ENDDO
0555 ELSE
0556 STOP 'DIAGNOSTICS_CUMULATE: invalid arrType'
0557 ENDIF
0558
62f9c88755 Jean*0559 ELSEIF ( power.EQ.2 ) THEN
fc67859634 Jean*0560
3b15f455ec Jean*0561 IF ( arrType.EQ.0 .OR. arrType.EQ.1 ) THEN
fc67859634 Jean*0562 DO j = 1,jRun
0563 DO i = 1,iRun
0564 cumFld(i,j) = cumFld(i,j)
0565 & + tmpFact*inpFldRL(i,j,k,bi,bj)
0566 & *inpFldRL(i,j,k,bi,bj)
0567 ENDDO
0568 ENDDO
3b15f455ec Jean*0569 ELSEIF ( arrType.EQ.2 .OR. arrType.EQ.3 ) THEN
fc67859634 Jean*0570 DO j = 1,jRun
0571 DO i = 1,iRun
62f9c88755 Jean*0572 cumFld(i,j) = cumFld(i,j)
fc67859634 Jean*0573 & + tmpFact*inpFldRS(i,j,k,bi,bj)
0574 & *inpFldRS(i,j,k,bi,bj)
0575 ENDDO
0d32f96e75 Jean*0576 ENDDO
fc67859634 Jean*0577 ELSE
0578 STOP 'DIAGNOSTICS_CUMULATE: invalid arrType'
0579 ENDIF
0580
0d32f96e75 Jean*0581 ELSE
fc67859634 Jean*0582
3b15f455ec Jean*0583 IF ( arrType.EQ.0 .OR. arrType.EQ.1 ) THEN
fc67859634 Jean*0584 DO j = 1,jRun
0585 DO i = 1,iRun
3ae5f90260 Jean*0586
90d17db25d Jean*0587
fc67859634 Jean*0588
0589
0590 cumFld(i,j) = cumFld(i,j)
0591 & + tmpFact*inpFldRL(i,j,k,bi,bj)
0592 ENDDO
0593 ENDDO
3b15f455ec Jean*0594 ELSEIF ( arrType.EQ.2 .OR. arrType.EQ.3 ) THEN
fc67859634 Jean*0595 DO j = 1,jRun
0596 DO i = 1,iRun
62f9c88755 Jean*0597 cumFld(i,j) = cumFld(i,j)
fc67859634 Jean*0598 & + tmpFact*inpFldRS(i,j,k,bi,bj)
0599 ENDDO
0d32f96e75 Jean*0600 ENDDO
fc67859634 Jean*0601 ELSE
0602 STOP 'DIAGNOSTICS_CUMULATE: invalid arrType'
0603 ENDIF
0604
0d32f96e75 Jean*0605 ENDIF
90d17db25d Jean*0606
3ae5f90260 Jean*0607 RETURN
90d17db25d Jean*0608 END