146 |
INTEGER myIter |
INTEGER myIter |
147 |
INTEGER myThid |
INTEGER myThid |
148 |
|
|
149 |
|
C !FUNCTIONS: |
150 |
|
#ifdef ALLOW_DIAGNOSTICS |
151 |
|
LOGICAL DIAGNOSTICS_IS_ON |
152 |
|
EXTERNAL DIAGNOSTICS_IS_ON |
153 |
|
#endif |
154 |
|
|
155 |
C !LOCAL VARIABLES: |
C !LOCAL VARIABLES: |
156 |
C == Local variables |
C == Local variables |
157 |
C fVer[UV] o fVer: Vertical flux term - note fVer |
C fVer[UV] o fVer: Vertical flux term - note fVer |
196 |
INTEGER k, km1, kp1, kup, kDown |
INTEGER k, km1, kp1, kup, kDown |
197 |
|
|
198 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
199 |
|
LOGICAL dPhiHydDiagIsOn |
200 |
_RL tmpFac |
_RL tmpFac |
201 |
#endif /* ALLOW_DIAGNOSTICS */ |
#endif /* ALLOW_DIAGNOSTICS */ |
202 |
|
|
251 |
& CALL DEBUG_ENTER( 'DYNAMICS', myThid ) |
& CALL DEBUG_ENTER( 'DYNAMICS', myThid ) |
252 |
#endif |
#endif |
253 |
|
|
254 |
|
#ifdef ALLOW_DIAGNOSTICS |
255 |
|
dPhiHydDiagIsOn = .FALSE. |
256 |
|
IF ( useDiagnostics ) |
257 |
|
& dPhiHydDiagIsOn = DIAGNOSTICS_IS_ON( 'Um_dPHdx', myThid ) |
258 |
|
& .OR. DIAGNOSTICS_IS_ON( 'Vm_dPHdy', myThid ) |
259 |
|
#endif |
260 |
|
|
261 |
C-- Call to routine for calculation of |
C-- Call to routine for calculation of |
262 |
C Eliassen-Palm-flux-forced U-tendency, |
C Eliassen-Palm-flux-forced U-tendency, |
263 |
C if desired: |
C if desired: |
324 |
fVerV (i,j,2) = 0. _d 0 |
fVerV (i,j,2) = 0. _d 0 |
325 |
phiHydF (i,j) = 0. _d 0 |
phiHydF (i,j) = 0. _d 0 |
326 |
phiHydC (i,j) = 0. _d 0 |
phiHydC (i,j) = 0. _d 0 |
327 |
|
#ifndef INCLUDE_PHIHYD_CALCULATION_CODE |
328 |
dPhiHydX(i,j) = 0. _d 0 |
dPhiHydX(i,j) = 0. _d 0 |
329 |
dPhiHydY(i,j) = 0. _d 0 |
dPhiHydY(i,j) = 0. _d 0 |
330 |
|
#endif |
331 |
phiSurfX(i,j) = 0. _d 0 |
phiSurfX(i,j) = 0. _d 0 |
332 |
phiSurfY(i,j) = 0. _d 0 |
phiSurfY(i,j) = 0. _d 0 |
333 |
guDissip(i,j) = 0. _d 0 |
guDissip(i,j) = 0. _d 0 |
334 |
gvDissip(i,j) = 0. _d 0 |
gvDissip(i,j) = 0. _d 0 |
335 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
336 |
phiHydLow(i,j,bi,bj) = 0. _d 0 |
phiHydLow(i,j,bi,bj) = 0. _d 0 |
337 |
# ifdef NONLIN_FRSURF |
# if (defined NONLIN_FRSURF) && (defined MOM_FLUXFORM) |
338 |
# ifndef DISABLE_RSTAR_CODE |
# ifndef DISABLE_RSTAR_CODE |
339 |
dWtransC(i,j,bi,bj) = 0. _d 0 |
dWtransC(i,j,bi,bj) = 0. _d 0 |
340 |
dWtransU(i,j,bi,bj) = 0. _d 0 |
dWtransU(i,j,bi,bj) = 0. _d 0 |
444 |
CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte |
445 |
CADJ STORE gv(:,:,k,bi,bj) |
CADJ STORE gv(:,:,k,bi,bj) |
446 |
CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte |
447 |
|
# ifndef ALLOW_ADAMSBASHFORTH_3 |
448 |
CADJ STORE gunm1(:,:,k,bi,bj) |
CADJ STORE gunm1(:,:,k,bi,bj) |
449 |
CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte |
450 |
CADJ STORE gvnm1(:,:,k,bi,bj) |
CADJ STORE gvnm1(:,:,k,bi,bj) |
451 |
CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte |
452 |
|
# else |
453 |
|
CADJ STORE gunm(:,:,k,bi,bj,1) |
454 |
|
CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte |
455 |
|
CADJ STORE gunm(:,:,k,bi,bj,2) |
456 |
|
CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte |
457 |
|
CADJ STORE gvnm(:,:,k,bi,bj,1) |
458 |
|
CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte |
459 |
|
CADJ STORE gvnm(:,:,k,bi,bj,2) |
460 |
|
CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte |
461 |
|
# endif |
462 |
# ifdef ALLOW_CD_CODE |
# ifdef ALLOW_CD_CODE |
463 |
CADJ STORE unm1(:,:,k,bi,bj) |
CADJ STORE unm1(:,:,k,bi,bj) |
464 |
CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte |
495 |
O phiHydC, dPhiHydX, dPhiHydY, |
O phiHydC, dPhiHydX, dPhiHydY, |
496 |
I myTime, myIter, myThid ) |
I myTime, myIter, myThid ) |
497 |
ENDIF |
ENDIF |
498 |
|
#ifdef ALLOW_DIAGNOSTICS |
499 |
|
IF ( dPhiHydDiagIsOn ) THEN |
500 |
|
tmpFac = -1. _d 0 |
501 |
|
CALL DIAGNOSTICS_SCALE_FILL( dPhiHydX, tmpFac, 1, |
502 |
|
& 'Um_dPHdx', k, 1, 2, bi, bj, myThid ) |
503 |
|
CALL DIAGNOSTICS_SCALE_FILL( dPhiHydY, tmpFac, 1, |
504 |
|
& 'Vm_dPHdy', k, 1, 2, bi, bj, myThid ) |
505 |
|
ENDIF |
506 |
|
#endif /* ALLOW_DIAGNOSTICS */ |
507 |
|
|
508 |
C-- Calculate accelerations in the momentum equations (gU, gV, ...) |
C-- Calculate accelerations in the momentum equations (gU, gV, ...) |
509 |
C and step forward storing the result in gU, gV, etc... |
C and step forward storing the result in gU, gV, etc... |
510 |
IF ( momStepping ) THEN |
IF ( momStepping ) THEN |
511 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
512 |
# ifdef NONLIN_FRSURF |
# if (defined NONLIN_FRSURF) && (defined MOM_FLUXFORM) |
513 |
# ifndef DISABLE_RSTAR_CODE |
# ifndef DISABLE_RSTAR_CODE |
514 |
CADJ STORE dWtransC(:,:,bi,bj) |
CADJ STORE dWtransC(:,:,bi,bj) |
515 |
CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte |
571 |
ENDDO |
ENDDO |
572 |
|
|
573 |
C-- Implicit Vertical advection & viscosity |
C-- Implicit Vertical advection & viscosity |
574 |
#if (defined (INCLUDE_IMPLVERTADV_CODE) && defined (ALLOW_MOM_COMMON)) |
#if (defined (INCLUDE_IMPLVERTADV_CODE) && \ |
575 |
|
defined (ALLOW_MOM_COMMON) && !(defined ALLOW_AUTODIFF_TAMC)) |
576 |
IF ( momImplVertAdv ) THEN |
IF ( momImplVertAdv ) THEN |
577 |
CALL MOM_U_IMPLICIT_R( kappaRU, |
CALL MOM_U_IMPLICIT_R( kappaRU, |
578 |
I bi, bj, myTime, myIter, myThid ) |
I bi, bj, myTime, myIter, myThid ) |