File indexing completed on 2025-11-07 06:08:13 UTC
view on githubraw file Latest commit b7411f1a on 2025-11-06 19:05:26 UTC
4794324d0b Jean*0001 #include "PACKAGES_CONFIG.h"
0002 #include "CPP_OPTIONS.h"
517dbdc414 Jean*0003 #ifdef ALLOW_AUTODIFF
0004 # include "AUTODIFF_OPTIONS.h"
0005 #endif
fb8688a588 Jean*0006 #ifdef ALLOW_GENERIC_ADVDIFF
0007 # include "GAD_OPTIONS.h"
0008 #endif
4794324d0b Jean*0009
0010
0011
0012
0013 SUBROUTINE TEMP_INTEGRATE(
0b191c5f5a Jean*0014 I bi, bj, recip_hFac,
fb8688a588 Jean*0015 I uFld, vFld, wFld,
0016 U KappaRk,
4794324d0b Jean*0017 I myTime, myIter, myThid )
0018
0019
0020
bd27360393 Jean*0021
0022
0023
0024
4794324d0b Jean*0025
e874fa47e5 Jean*0026
4794324d0b Jean*0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
fb8688a588 Jean*0043
0044
0045
4794324d0b Jean*0046
0047
0048
0049
0050 IMPLICIT NONE
0051
0052 #include "SIZE.h"
0053 #include "EEPARAMS.h"
0054 #include "PARAMS.h"
0b191c5f5a Jean*0055 #include "GRID.h"
0056 #include "DYNVARS.h"
4794324d0b Jean*0057 #include "RESTART.h"
0058 #ifdef ALLOW_GENERIC_ADVDIFF
fb8688a588 Jean*0059 # include "GAD.h"
0060 # include "GAD_SOM_VARS.h"
4794324d0b Jean*0061 #endif
7c50f07931 Mart*0062 #ifdef ALLOW_AUTODIFF_TAMC
4794324d0b Jean*0063 # include "tamc.h"
0064 #endif
0065
0066
0067
0b191c5f5a Jean*0068
0069
0070
0071
0072
0073
0074
0075
fb8688a588 Jean*0076 INTEGER bi, bj
0b191c5f5a Jean*0077 _RS recip_hFac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0078 _RL uFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0079 _RL vFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0080 _RL wFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0081 _RL KappaRk (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
4794324d0b Jean*0082 _RL myTime
0083 INTEGER myIter
0084 INTEGER myThid
0085
0086
0087 #ifdef ALLOW_GENERIC_ADVDIFF
31067d68ad Jean*0088 #ifdef ALLOW_DIAGNOSTICS
0089
0090 LOGICAL DIAGNOSTICS_IS_ON
0091 EXTERNAL DIAGNOSTICS_IS_ON
0092 #endif /* ALLOW_DIAGNOSTICS */
0093
4794324d0b Jean*0094
0b191c5f5a Jean*0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
1ece1facde Jean*0112
31067d68ad Jean*0113
e874fa47e5 Jean*0114
0b191c5f5a Jean*0115
fb8688a588 Jean*0116 INTEGER iMin, iMax, jMin, jMax
4794324d0b Jean*0117 INTEGER i, j, k
0118 INTEGER kUp, kDown, kM1
0119 _RS xA (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0120 _RS yA (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0121 _RS maskUp (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0122 _RL uTrans (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0123 _RL vTrans (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0124 _RL rTrans (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0125 _RL rTransKp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0b191c5f5a Jean*0126 _RL fZon (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0127 _RL fMer (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0128 _RL fVer (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)
1ece1facde Jean*0129 _RL gT_loc (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
31067d68ad Jean*0130 _RL gtForc (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
4794324d0b Jean*0131 _RL gt_AB (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
31067d68ad Jean*0132 #ifdef ALLOW_DIAGNOSTICS
0133 LOGICAL diagForcing, diagAB_tend
0134 #endif
4794324d0b Jean*0135 LOGICAL calcAdvection
0136 INTEGER iterNb
0137 #ifdef ALLOW_ADAMSBASHFORTH_3
972c0130ec Jean*0138 INTEGER m2
4794324d0b Jean*0139 #endif
7c50f07931 Mart*0140 #ifdef ALLOW_AUTODIFF_TAMC
edb6656069 Mart*0141
0142
0143 INTEGER tkey, kkey
7c50f07931 Mart*0144 #endif
0b191c5f5a Jean*0145
fb8688a588 Jean*0146
0147
0148 iterNb = myIter
0b191c5f5a Jean*0149 IF (staggerTimeStep) iterNb = myIter - 1
4794324d0b Jean*0150
d3548146a8 Jean*0151
0152
0153
0154
0155
0156
0157
0158
0159
0160 iMin = 0
0161 iMax = sNx+1
0162 jMin = 0
0163 jMax = sNy+1
0164
31067d68ad Jean*0165 #ifdef ALLOW_DIAGNOSTICS
0166 diagForcing = .FALSE.
0167 diagAB_tend = .FALSE.
0168 IF ( useDiagnostics .AND. tempForcing )
0169 & diagForcing = DIAGNOSTICS_IS_ON( 'gT_Forc ', myThid )
0170 IF ( useDiagnostics .AND. AdamsBashforthGt )
0171 & diagAB_tend = DIAGNOSTICS_IS_ON( 'AB_gT ', myThid )
0172 #endif
0173
4794324d0b Jean*0174 #ifdef ALLOW_AUTODIFF_TAMC
edb6656069 Mart*0175 tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy
4794324d0b Jean*0176 #endif /* ALLOW_AUTODIFF_TAMC */
0177
ff1bd1eafd Jean*0178
0179 IF ( AdamsBashforth_T ) THEN
0180
0181 #ifdef ALLOW_ADAMSBASHFORTH_3
0182
0183
0184 CALL ADAMS_BASHFORTH3(
0185 I bi, bj, 0, Nr,
0186 I theta(1-OLx,1-OLy,1,bi,bj),
0187 U gtNm, gt_AB,
0188 I tempStartAB, iterNb, myThid )
0189 #else /* ALLOW_ADAMSBASHFORTH_3 */
0190 CALL ADAMS_BASHFORTH2(
0191 I bi, bj, 0, Nr,
0192 I theta(1-OLx,1-OLy,1,bi,bj),
0193 U gtNm1(1-OLx,1-OLy,1,bi,bj), gt_AB,
0194 I tempStartAB, iterNb, myThid )
0195 #endif /* ALLOW_ADAMSBASHFORTH_3 */
0196 ENDIF
0197
fb8688a588 Jean*0198
0199 DO k=1,Nr
0200 DO j=1-OLy,sNy+OLy
0201 DO i=1-OLx,sNx+OLx
1ece1facde Jean*0202 gT_loc(i,j,k) = 0. _d 0
fb8688a588 Jean*0203 ENDDO
0204 ENDDO
0205 ENDDO
4794324d0b Jean*0206 DO j=1-OLy,sNy+OLy
0207 DO i=1-OLx,sNx+OLx
0b191c5f5a Jean*0208 fVer(i,j,1) = 0. _d 0
0209 fVer(i,j,2) = 0. _d 0
4794324d0b Jean*0210 ENDDO
0211 ENDDO
fb8688a588 Jean*0212 #ifdef ALLOW_AUTODIFF
0213 DO k=1,Nr
0214 DO j=1-OLy,sNy+OLy
0215 DO i=1-OLx,sNx+OLx
0216 kappaRk(i,j,k) = 0. _d 0
0217 ENDDO
0218 ENDDO
0219 ENDDO
4e4ad91a39 Jean*0220 #endif /* ALLOW_AUTODIFF */
0221 #ifdef ALLOW_AUTODIFF_TAMC
598aebfcee Mart*0222
0223
ff1bd1eafd Jean*0224 # ifdef ALLOW_ADAMSBASHFORTH_3
598aebfcee Mart*0225
0226
ff1bd1eafd Jean*0227 # else
598aebfcee Mart*0228
ff1bd1eafd Jean*0229 # endif
4e4ad91a39 Jean*0230 #endif /* ALLOW_AUTODIFF_TAMC */
4794324d0b Jean*0231
fb8688a588 Jean*0232 #ifdef INCLUDE_CALC_DIFFUSIVITY_CALL
0b191c5f5a Jean*0233 CALL CALC_3D_DIFFUSIVITY(
fb8688a588 Jean*0234 I bi, bj, iMin, iMax, jMin, jMax,
0235 I GAD_TEMPERATURE, useGMredi, useKPP,
0236 O kappaRk,
0237 I myThid )
d9efc637ba Mart*0238 # ifdef ALLOW_AUTODIFF_TAMC
0239
0240 # endif
fb8688a588 Jean*0241 #endif /* INCLUDE_CALC_DIFFUSIVITY_CALL */
0242
0243 #ifndef DISABLE_MULTIDIM_ADVECTION
0244
0245
0246
0247
0248
0249
0250
0251
0252
0253
0254 #ifdef GAD_ALLOW_TS_SOM_ADV
0255 # ifdef ALLOW_AUTODIFF_TAMC
598aebfcee Mart*0256
0257
fb8688a588 Jean*0258 # endif
0259 IF ( tempSOM_Advection ) THEN
0260 # ifdef ALLOW_DEBUG
0261 IF (debugMode) CALL DEBUG_CALL('GAD_SOM_ADVECT',myThid)
0262 # endif
0263 CALL GAD_SOM_ADVECT(
e874fa47e5 Jean*0264 I tempImplVertAdv,
0265 I tempAdvScheme, tempVertAdvScheme, GAD_TEMPERATURE,
0266 I dTtracerLev, uFld, vFld, wFld, theta,
fb8688a588 Jean*0267 U som_T,
1ece1facde Jean*0268 O gT_loc,
fb8688a588 Jean*0269 I bi, bj, myTime, myIter, myThid )
0270 ELSEIF (tempMultiDimAdvec) THEN
0271 #else /* GAD_ALLOW_TS_SOM_ADV */
0272 IF (tempMultiDimAdvec) THEN
0273 #endif /* GAD_ALLOW_TS_SOM_ADV */
0274 # ifdef ALLOW_DEBUG
0275 IF (debugMode) CALL DEBUG_CALL('GAD_ADVECTION',myThid)
0276 # endif
0277 CALL GAD_ADVECTION(
e874fa47e5 Jean*0278 I tempImplVertAdv,
0279 I tempAdvScheme, tempVertAdvScheme, GAD_TEMPERATURE,
0280 I dTtracerLev, uFld, vFld, wFld, theta,
1ece1facde Jean*0281 O gT_loc,
fb8688a588 Jean*0282 I bi, bj, myTime, myIter, myThid )
0283 ENDIF
0284 #endif /* DISABLE_MULTIDIM_ADVECTION */
0285
0286
0287
0288
0289 calcAdvection = tempAdvection .AND. .NOT.tempMultiDimAdvec
4794324d0b Jean*0290 DO k=Nr,1,-1
0291 #ifdef ALLOW_AUTODIFF_TAMC
edb6656069 Mart*0292 kkey = k + (tkey-1)*Nr
4794324d0b Jean*0293 #endif /* ALLOW_AUTODIFF_TAMC */
0294 kM1 = MAX(1,k-1)
0295 kUp = 1+MOD(k+1,2)
0296 kDown= 1+MOD(k,2)
0297
0298 #ifdef ALLOW_AUTODIFF_TAMC
d9efc637ba Mart*0299
0300
4794324d0b Jean*0301 # ifdef ALLOW_ADAMSBASHFORTH_3
d9efc637ba Mart*0302
0303
4794324d0b Jean*0304 # else
d9efc637ba Mart*0305
4794324d0b Jean*0306 # endif
0307 #endif /* ALLOW_AUTODIFF_TAMC */
0308 CALL CALC_ADV_FLOW(
0309 I uFld, vFld, wFld,
0310 U rTrans,
0311 O uTrans, vTrans, rTransKp,
0312 O maskUp, xA, yA,
0313 I k, bi, bj, myThid )
0314
31067d68ad Jean*0315
0316 DO j=1-OLy,sNy+OLy
0317 DO i=1-OLx,sNx+OLx
0318 gtForc(i,j) = 0. _d 0
0319 ENDDO
0320 ENDDO
0321 IF ( tempForcing ) THEN
0322 CALL APPLY_FORCING_T(
0323 U gtForc,
0324 I iMin,iMax,jMin,jMax, k, bi,bj,
0325 I myTime, myIter, myThid )
0326 #ifdef ALLOW_DIAGNOSTICS
0327 IF ( diagForcing ) THEN
0328 CALL DIAGNOSTICS_FILL(gtForc,'gT_Forc ',k,1,2,bi,bj,myThid)
0329 ENDIF
0330 #endif /* ALLOW_DIAGNOSTICS */
0331 ENDIF
0332
4794324d0b Jean*0333 #ifdef ALLOW_ADAMSBASHFORTH_3
972c0130ec Jean*0334
4794324d0b Jean*0335 m2 = 1 + MOD( iterNb ,2)
0336 CALL GAD_CALC_RHS(
0337 I bi, bj, iMin,iMax,jMin,jMax, k, kM1, kUp, kDown,
0338 I xA, yA, maskUp, uFld(1-OLx,1-OLy,k),
0339 I vFld(1-OLx,1-OLy,k), wFld(1-OLx,1-OLy,k),
0340 I uTrans, vTrans, rTrans, rTransKp,
0341 I diffKhT, diffK4T, KappaRk(1-OLx,1-OLy,k), diffKr4T,
cb30c1718d Jean*0342 I theta(1-OLx,1-OLy,1,bi,bj),
0343 I gtNm(1-OLx,1-OLy,1,bi,bj,m2), dTtracerLev,
4794324d0b Jean*0344 I GAD_TEMPERATURE, tempAdvScheme, tempVertAdvScheme,
0345 I calcAdvection, tempImplVertAdv, AdamsBashforth_T,
46918f1b26 Jean*0346 I tempVertDiff4, useGMRedi, useKPP, temp_stayPositive,
0b191c5f5a Jean*0347 O fZon, fMer,
1ece1facde Jean*0348 U fVer, gT_loc,
4794324d0b Jean*0349 I myTime, myIter, myThid )
0350 #else /* ALLOW_ADAMSBASHFORTH_3 */
0351 CALL GAD_CALC_RHS(
0352 I bi, bj, iMin,iMax,jMin,jMax, k, kM1, kUp, kDown,
0353 I xA, yA, maskUp, uFld(1-OLx,1-OLy,k),
0354 I vFld(1-OLx,1-OLy,k), wFld(1-OLx,1-OLy,k),
0355 I uTrans, vTrans, rTrans, rTransKp,
0356 I diffKhT, diffK4T, KappaRk(1-OLx,1-OLy,k), diffKr4T,
cb30c1718d Jean*0357 I theta(1-OLx,1-OLy,1,bi,bj),
0358 I gtNm1(1-OLx,1-OLy,1,bi,bj), dTtracerLev,
4794324d0b Jean*0359 I GAD_TEMPERATURE, tempAdvScheme, tempVertAdvScheme,
0360 I calcAdvection, tempImplVertAdv, AdamsBashforth_T,
46918f1b26 Jean*0361 I tempVertDiff4, useGMRedi, useKPP, temp_stayPositive,
0b191c5f5a Jean*0362 O fZon, fMer,
1ece1facde Jean*0363 U fVer, gT_loc,
4794324d0b Jean*0364 I myTime, myIter, myThid )
46918f1b26 Jean*0365 #endif /* ALLOW_ADAMSBASHFORTH_3 */
4794324d0b Jean*0366
0367
31067d68ad Jean*0368 IF ( tempForcing .AND. tracForcingOutAB.NE.1 ) THEN
0369 DO j=1-OLy,sNy+OLy
0370 DO i=1-OLx,sNx+OLx
1ece1facde Jean*0371 gT_loc(i,j,k) = gT_loc(i,j,k) + gtForc(i,j)
31067d68ad Jean*0372 ENDDO
0373 ENDDO
0374 ENDIF
4794324d0b Jean*0375
0376 IF ( AdamsBashforthGt ) THEN
0377 #ifdef ALLOW_ADAMSBASHFORTH_3
0378 CALL ADAMS_BASHFORTH3(
0379 I bi, bj, k, Nr,
1ece1facde Jean*0380 U gT_loc, gtNm,
0381 O gt_AB,
4794324d0b Jean*0382 I tempStartAB, iterNb, myThid )
0383 #else
0384 CALL ADAMS_BASHFORTH2(
0385 I bi, bj, k, Nr,
1ece1facde Jean*0386 U gT_loc, gtNm1(1-OLx,1-OLy,1,bi,bj),
0387 O gt_AB,
4794324d0b Jean*0388 I tempStartAB, iterNb, myThid )
0389 #endif
0390 #ifdef ALLOW_DIAGNOSTICS
31067d68ad Jean*0391 IF ( diagAB_tend ) THEN
4794324d0b Jean*0392 CALL DIAGNOSTICS_FILL(gt_AB,'AB_gT ',k,1,2,bi,bj,myThid)
0393 ENDIF
0394 #endif /* ALLOW_DIAGNOSTICS */
0395 ENDIF
0396
0397
31067d68ad Jean*0398 IF ( tempForcing .AND. tracForcingOutAB.EQ.1 ) THEN
0399 DO j=1-OLy,sNy+OLy
0400 DO i=1-OLx,sNx+OLx
1ece1facde Jean*0401 gT_loc(i,j,k) = gT_loc(i,j,k) + gtForc(i,j)
31067d68ad Jean*0402 ENDDO
0403 ENDDO
0404 ENDIF
4794324d0b Jean*0405
0406 #ifdef NONLIN_FRSURF
d9efc637ba Mart*0407 # ifdef ALLOW_AUTODIFF_TAMC
0408
0409 # endif
4794324d0b Jean*0410 IF (nonlinFreeSurf.GT.0) THEN
0411 CALL FREESURF_RESCALE_G(
0412 I bi, bj, k,
1ece1facde Jean*0413 U gT_loc,
4794324d0b Jean*0414 I myThid )
0415 IF ( AdamsBashforthGt ) THEN
0416 #ifdef ALLOW_ADAMSBASHFORTH_3
0417 # ifdef ALLOW_AUTODIFF_TAMC
d9efc637ba Mart*0418
0419
4794324d0b Jean*0420 # endif
0421 CALL FREESURF_RESCALE_G(
0422 I bi, bj, k,
1ece1facde Jean*0423 U gtNm(1-OLx,1-OLy,1,bi,bj,1),
4794324d0b Jean*0424 I myThid )
0425 CALL FREESURF_RESCALE_G(
0426 I bi, bj, k,
1ece1facde Jean*0427 U gtNm(1-OLx,1-OLy,1,bi,bj,2),
4794324d0b Jean*0428 I myThid )
0429 #else
d9efc637ba Mart*0430 # ifdef ALLOW_AUTODIFF_TAMC
0431
0432 # endif
4794324d0b Jean*0433 CALL FREESURF_RESCALE_G(
0434 I bi, bj, k,
1ece1facde Jean*0435 U gtNm1(1-OLx,1-OLy,1,bi,bj),
4794324d0b Jean*0436 I myThid )
0437 #endif
0438 ENDIF
0439 ENDIF
0440 #endif /* NONLIN_FRSURF */
0441
0442
0443 ENDDO
0444
0b191c5f5a Jean*0445 #ifdef ALLOW_DOWN_SLOPE
0446 IF ( useDOWN_SLOPE ) THEN
d9efc637ba Mart*0447 # ifdef ALLOW_AUTODIFF_TAMC
0448
0449 # endif
0b191c5f5a Jean*0450 IF ( usingPCoords ) THEN
0451 CALL DWNSLP_APPLY(
0452 I GAD_TEMPERATURE, bi, bj, kSurfC,
6fca64f237 Jean*0453 I theta(1-OLx,1-OLy,1,bi,bj),
1ece1facde Jean*0454 U gT_loc,
6fca64f237 Jean*0455 I recip_hFac, recip_rA, recip_drF,
0456 I dTtracerLev, myTime, myIter, myThid )
0b191c5f5a Jean*0457 ELSE
0458 CALL DWNSLP_APPLY(
0459 I GAD_TEMPERATURE, bi, bj, kLowC,
6fca64f237 Jean*0460 I theta(1-OLx,1-OLy,1,bi,bj),
1ece1facde Jean*0461 U gT_loc,
6fca64f237 Jean*0462 I recip_hFac, recip_rA, recip_drF,
0463 I dTtracerLev, myTime, myIter, myThid )
0b191c5f5a Jean*0464 ENDIF
0465 ENDIF
0466 #endif /* ALLOW_DOWN_SLOPE */
0467
1ece1facde Jean*0468
6fca64f237 Jean*0469 CALL TIMESTEP_TRACER(
0470 I bi, bj, dTtracerLev,
0471 I theta(1-OLx,1-OLy,1,bi,bj),
1ece1facde Jean*0472 U gT_loc,
6fca64f237 Jean*0473 I myTime, myIter, myThid )
0474
0b191c5f5a Jean*0475
0476
d9efc637ba Mart*0477 #ifdef ALLOW_AUTODIFF_TAMC
598aebfcee Mart*0478
d9efc637ba Mart*0479 #endif /* ALLOW_AUTODIFF_TAMC */
0b191c5f5a Jean*0480 #ifdef INCLUDE_IMPLVERTADV_CODE
5685a5c914 Jean*0481 IF ( tempImplVertAdv .OR. implicitDiffusion ) THEN
0482
0483
0b191c5f5a Jean*0484 #ifdef ALLOW_AUTODIFF_TAMC
598aebfcee Mart*0485
0486
0487
0b191c5f5a Jean*0488 #endif /* ALLOW_AUTODIFF_TAMC */
0489 CALL GAD_IMPLICIT_R(
0490 I tempImplVertAdv, tempVertAdvScheme, GAD_TEMPERATURE,
1ece1facde Jean*0491 I dTtracerLev, kappaRk, recip_hFac, wFld,
0492 I theta(1-OLx,1-OLy,1,bi,bj),
0493 U gT_loc,
0b191c5f5a Jean*0494 I bi, bj, myTime, myIter, myThid )
0495 ELSEIF ( implicitDiffusion ) THEN
0496 #else /* INCLUDE_IMPLVERTADV_CODE */
0497 IF ( implicitDiffusion ) THEN
0498 #endif /* INCLUDE_IMPLVERTADV_CODE */
0499 CALL IMPLDIFF(
0500 I bi, bj, iMin, iMax, jMin, jMax,
0501 I GAD_TEMPERATURE, kappaRk, recip_hFac,
1ece1facde Jean*0502 U gT_loc,
0b191c5f5a Jean*0503 I myThid )
0504 ENDIF
0505
bd27360393 Jean*0506 IF ( AdamsBashforth_T ) THEN
0507
ff1bd1eafd Jean*0508 #ifdef ALLOW_ADAMSBASHFORTH_3
bd27360393 Jean*0509 CALL CYCLE_AB_TRACER(
cb30c1718d Jean*0510 I bi, bj, gT_loc,
0511 U theta(1-OLx,1-OLy,1,bi,bj),
0512 O gtNm(1-OLx,1-OLy,1,bi,bj,m2),
bd27360393 Jean*0513 I myTime, myIter, myThid )
0514 #else /* ALLOW_ADAMSBASHFORTH_3 */
ff1bd1eafd Jean*0515 CALL CYCLE_AB_TRACER(
0516 I bi, bj, gT_loc,
0517 U theta(1-OLx,1-OLy,1,bi,bj),
0518 O gtNm1(1-OLx,1-OLy,1,bi,bj),
0519 I myTime, myIter, myThid )
bd27360393 Jean*0520 #endif /* ALLOW_ADAMSBASHFORTH_3 */
ff1bd1eafd Jean*0521 ELSE
bd27360393 Jean*0522
0523 CALL CYCLE_TRACER(
0524 I bi, bj,
cb30c1718d Jean*0525 O theta(1-OLx,1-OLy,1,bi,bj),
0526 I gT_loc, myTime, myIter, myThid )
bd27360393 Jean*0527 ENDIF
0528
4794324d0b Jean*0529 #endif /* ALLOW_GENERIC_ADVDIFF */
0530
0531 RETURN
0532 END