156 |
offsets(i) = 0 |
offsets(i) = 0 |
157 |
ENDDO |
ENDDO |
158 |
offsets(3) = k |
offsets(3) = k |
159 |
C write(*,*) 'offsets = ',(offsets(i),i=1,9) |
c write(*,*) 'offsets = ',(offsets(i),i=1,9) |
160 |
ENDIF |
ENDIF |
161 |
#endif /* ALLOW_MNC */ |
#endif /* ALLOW_MNC */ |
162 |
|
|
163 |
C Initialise intermediate terms |
C-- Initialise intermediate terms |
164 |
DO J=1-OLy,sNy+OLy |
DO j=1-OLy,sNy+OLy |
165 |
DO I=1-OLx,sNx+OLx |
DO i=1-OLx,sNx+OLx |
166 |
vF(i,j) = 0. |
vF(i,j) = 0. |
167 |
vrF(i,j) = 0. |
vrF(i,j) = 0. |
168 |
uCf(i,j) = 0. |
uCf(i,j) = 0. |
176 |
vort3(i,j) = 0. |
vort3(i,j) = 0. |
177 |
omega3(i,j)= 0. |
omega3(i,j)= 0. |
178 |
KE(i,j) = 0. |
KE(i,j) = 0. |
179 |
c hDiv(i,j) = 0. |
C- need to initialise hDiv for MOM_VI_DEL2UV(call FILL_CS_CORNER_TR_RL) |
180 |
|
hDiv(i,j) = 0. |
181 |
viscAh_Z(i,j) = 0. |
viscAh_Z(i,j) = 0. |
182 |
viscAh_D(i,j) = 0. |
viscAh_D(i,j) = 0. |
183 |
viscA4_Z(i,j) = 0. |
viscA4_Z(i,j) = 0. |
237 |
C and mask relative vorticity (free-slip case): |
C and mask relative vorticity (free-slip case): |
238 |
|
|
239 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
240 |
CADJ STORE vort3(:,:) = |
CADJ STORE vort3(:,:) = |
241 |
CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte |
CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte |
242 |
#endif |
#endif |
243 |
|
|
273 |
CALL MOM_CALC_HDIV(bi,bj,k,2,del2u,del2v,dStar,myThid) |
CALL MOM_CALC_HDIV(bi,bj,k,2,del2u,del2v,dStar,myThid) |
274 |
CALL MOM_CALC_RELVORT3(bi,bj,k, |
CALL MOM_CALC_RELVORT3(bi,bj,k, |
275 |
& del2u,del2v,hFacZ,zStar,myThid) |
& del2u,del2v,hFacZ,zStar,myThid) |
276 |
|
IF ( writeDiag ) THEN |
277 |
|
CALL WRITE_LOCAL_RL( 'del2u', 'I10', 1, del2u, |
278 |
|
& bi,bj,k, myIter, myThid ) |
279 |
|
CALL WRITE_LOCAL_RL( 'del2v', 'I10', 1, del2v, |
280 |
|
& bi,bj,k, myIter, myThid ) |
281 |
|
CALL WRITE_LOCAL_RL( 'dStar', 'I10', 1, dStar, |
282 |
|
& bi,bj,k, myIter, myThid ) |
283 |
|
CALL WRITE_LOCAL_RL( 'zStar', 'I10', 1, zStar, |
284 |
|
& bi,bj,k, myIter, myThid ) |
285 |
|
ENDIF |
286 |
ENDIF |
ENDIF |
287 |
|
|
288 |
C- Strain diagnostics: |
C- Strain diagnostics: |
547 |
|
|
548 |
IF (momAdvection) THEN |
IF (momAdvection) THEN |
549 |
C-- Horizontal advection of relative (or absolute) vorticity |
C-- Horizontal advection of relative (or absolute) vorticity |
550 |
IF (highOrderVorticity.AND.useAbsVorticity) THEN |
IF ( (highOrderVorticity.OR.upwindVorticity) |
551 |
|
& .AND.useAbsVorticity ) THEN |
552 |
CALL MOM_VI_U_CORIOLIS_C4(bi,bj,k,vFld,omega3,r_hFacZ, |
CALL MOM_VI_U_CORIOLIS_C4(bi,bj,k,vFld,omega3,r_hFacZ, |
553 |
& uCf,myThid) |
& uCf,myThid) |
554 |
ELSEIF (highOrderVorticity) THEN |
ELSEIF ( (highOrderVorticity.OR.upwindVorticity) ) THEN |
555 |
CALL MOM_VI_U_CORIOLIS_C4(bi,bj,k,vFld,vort3, r_hFacZ, |
CALL MOM_VI_U_CORIOLIS_C4(bi,bj,k,vFld,vort3, r_hFacZ, |
556 |
& uCf,myThid) |
& uCf,myThid) |
557 |
ELSEIF (useAbsVorticity) THEN |
ELSEIF ( useAbsVorticity ) THEN |
558 |
CALL MOM_VI_U_CORIOLIS(bi,bj,K,vFld,omega3,hFacZ,r_hFacZ, |
CALL MOM_VI_U_CORIOLIS(bi,bj,K,vFld,omega3,hFacZ,r_hFacZ, |
559 |
& uCf,myThid) |
& uCf,myThid) |
560 |
ELSE |
ELSE |
566 |
gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+uCf(i,j) |
gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+uCf(i,j) |
567 |
ENDDO |
ENDDO |
568 |
ENDDO |
ENDDO |
569 |
IF (highOrderVorticity.AND.useAbsVorticity) THEN |
IF ( (highOrderVorticity.OR.upwindVorticity) |
570 |
|
& .AND.useAbsVorticity ) THEN |
571 |
CALL MOM_VI_V_CORIOLIS_C4(bi,bj,K,uFld,omega3,r_hFacZ, |
CALL MOM_VI_V_CORIOLIS_C4(bi,bj,K,uFld,omega3,r_hFacZ, |
572 |
& vCf,myThid) |
& vCf,myThid) |
573 |
ELSEIF (highOrderVorticity) THEN |
ELSEIF ( (highOrderVorticity.OR.upwindVorticity) ) THEN |
574 |
CALL MOM_VI_V_CORIOLIS_C4(bi,bj,K,uFld,vort3, r_hFacZ, |
CALL MOM_VI_V_CORIOLIS_C4(bi,bj,K,uFld,vort3, r_hFacZ, |
575 |
& vCf,myThid) |
& vCf,myThid) |
576 |
ELSEIF (useAbsVorticity) THEN |
ELSEIF ( useAbsVorticity ) THEN |
577 |
CALL MOM_VI_V_CORIOLIS(bi,bj,K,uFld,omega3,hFacZ,r_hFacZ, |
CALL MOM_VI_V_CORIOLIS(bi,bj,K,uFld,omega3,hFacZ,r_hFacZ, |
578 |
& vCf,myThid) |
& vCf,myThid) |
579 |
ELSE |
ELSE |
669 |
C-- end if momAdvection |
C-- end if momAdvection |
670 |
ENDIF |
ENDIF |
671 |
|
|
672 |
C-- 3.D Coriolis term (horizontal momentum, Eastward component: -f'*w) |
C-- 3.D Coriolis term (horizontal momentum, Eastward component: -fprime*w) |
673 |
IF ( use3dCoriolis ) THEN |
IF ( use3dCoriolis ) THEN |
674 |
CALL MOM_U_CORIOLIS_NH(bi,bj,k,wVel,uCf,myThid) |
CALL MOM_U_CORIOLIS_NH(bi,bj,k,wVel,uCf,myThid) |
675 |
DO j=jMin,jMax |
DO j=jMin,jMax |