126 |
_RL vort3(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL vort3(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
127 |
_RL hDiv(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL hDiv(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
128 |
|
|
129 |
|
#ifdef ALLOW_MNC |
130 |
|
INTEGER offsets(9) |
131 |
|
#endif |
132 |
|
|
133 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
134 |
C-- only the kDown part of fverU/V is set in this subroutine |
C-- only the kDown part of fverU/V is set in this subroutine |
135 |
C-- the kUp is still required |
C-- the kUp is still required |
148 |
|
|
149 |
#ifdef ALLOW_MNC |
#ifdef ALLOW_MNC |
150 |
IF (useMNC .AND. snapshot_mnc .AND. writeDiag) THEN |
IF (useMNC .AND. snapshot_mnc .AND. writeDiag) THEN |
151 |
CALL MNC_CW_SET_UDIM('mom_vi', -1, myThid) |
IF ((bi .EQ. 1).AND.(bj .EQ. 1).AND.(k .EQ. 1)) THEN |
152 |
CALL MNC_CW_I_W_S('I','mom_vi',0,0,'iter',myIter,myThid) |
CALL MNC_CW_SET_UDIM('mom_vi', -1, myThid) |
153 |
CALL MNC_CW_SET_UDIM('mom_vi', 0, myThid) |
CALL MNC_CW_I_W_S('I','mom_vi',0,0,'iter',myIter,myThid) |
154 |
|
CALL MNC_CW_SET_UDIM('mom_vi', 0, myThid) |
155 |
|
ENDIF |
156 |
|
DO i = 1,9 |
157 |
|
offsets(i) = 0 |
158 |
|
ENDDO |
159 |
|
offsets(3) = k |
160 |
|
C write(*,*) 'offsets = ',(offsets(i),i=1,9) |
161 |
ENDIF |
ENDIF |
162 |
#endif /* ALLOW_MNC */ |
#endif /* ALLOW_MNC */ |
163 |
|
|
278 |
ENDIF |
ENDIF |
279 |
C Calculate dissipation terms for U and V equations |
C Calculate dissipation terms for U and V equations |
280 |
C in terms of vorticity and divergence |
C in terms of vorticity and divergence |
281 |
IF (viscAh.NE.0. .OR. viscA4.NE.0. |
IF ( viscAhD.NE.0. .OR. viscAhZ.NE.0. |
282 |
& .OR. viscAhGrid.NE.0. .OR. viscA4Grid.NE.0. |
& .OR. viscA4D.NE.0. .OR. viscA4Z.NE.0. |
283 |
& .OR. viscC2leith.NE.0. .OR. viscC4leith.NE.0. |
& .OR. viscAhGrid.NE.0. .OR. viscA4Grid.NE.0. |
284 |
|
& .OR. viscC2leith.NE.0. .OR. viscC4leith.NE.0. |
285 |
& ) THEN |
& ) THEN |
286 |
CALL MOM_VI_HDISSIP(bi,bj,k,hDiv,vort3,hFacZ,dStar,zStar, |
CALL MOM_VI_HDISSIP(bi,bj,k,hDiv,vort3,hFacZ,dStar,zStar, |
287 |
O uDiss,vDiss, |
O uDiss,vDiss, |
442 |
ENDIF |
ENDIF |
443 |
#ifdef ALLOW_MNC |
#ifdef ALLOW_MNC |
444 |
IF (useMNC .AND. snapshot_mnc) THEN |
IF (useMNC .AND. snapshot_mnc) THEN |
445 |
CALL MNC_CW_RL_W('D','mom_vi',0,0, 'fV', uCf, myThid) |
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj, 'fV', uCf, |
446 |
CALL MNC_CW_RL_W('D','mom_vi',0,0, 'fU', vCf, myThid) |
& offsets, myThid) |
447 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj, 'fU', vCf, |
448 |
|
& offsets, myThid) |
449 |
ENDIF |
ENDIF |
450 |
#endif /* ALLOW_MNC */ |
#endif /* ALLOW_MNC */ |
451 |
ENDIF |
ENDIF |
487 |
ENDIF |
ENDIF |
488 |
#ifdef ALLOW_MNC |
#ifdef ALLOW_MNC |
489 |
IF (useMNC .AND. snapshot_mnc) THEN |
IF (useMNC .AND. snapshot_mnc) THEN |
490 |
CALL MNC_CW_RL_W('D','mom_vi',0,0, 'zV', uCf, myThid) |
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj, 'zV', uCf, |
491 |
CALL MNC_CW_RL_W('D','mom_vi',0,0, 'zU', vCf, myThid) |
& offsets, myThid) |
492 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj, 'zU', vCf, |
493 |
|
& offsets, myThid) |
494 |
ENDIF |
ENDIF |
495 |
#endif /* ALLOW_MNC */ |
#endif /* ALLOW_MNC */ |
496 |
ENDIF |
ENDIF |
542 |
ENDIF |
ENDIF |
543 |
#ifdef ALLOW_MNC |
#ifdef ALLOW_MNC |
544 |
IF (useMNC .AND. snapshot_mnc) THEN |
IF (useMNC .AND. snapshot_mnc) THEN |
545 |
CALL MNC_CW_RL_W('D','mom_vi',0,0, 'KEx', uCf, myThid) |
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj, 'KEx', uCf, |
546 |
CALL MNC_CW_RL_W('D','mom_vi',0,0, 'KEy', vCf, myThid) |
& offsets, myThid) |
547 |
ENDIF |
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj, 'KEy', vCf, |
548 |
|
& offsets, myThid) |
549 |
|
ENDIF |
550 |
#endif /* ALLOW_MNC */ |
#endif /* ALLOW_MNC */ |
551 |
ENDIF |
ENDIF |
552 |
|
|
585 |
ENDIF |
ENDIF |
586 |
#ifdef ALLOW_MNC |
#ifdef ALLOW_MNC |
587 |
IF (useMNC .AND. snapshot_mnc) THEN |
IF (useMNC .AND. snapshot_mnc) THEN |
588 |
CALL MNC_CW_RL_W('D','mom_vi',0,0,'Ds',strain, myThid) |
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj,'Ds',strain, |
589 |
CALL MNC_CW_RL_W('D','mom_vi',0,0,'Dt',tension, myThid) |
& offsets, myThid) |
590 |
CALL MNC_CW_RL_W('D','mom_vi',0,0,'Du',uDiss, myThid) |
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj,'Dt',tension, |
591 |
CALL MNC_CW_RL_W('D','mom_vi',0,0,'Dv',vDiss, myThid) |
& offsets, myThid) |
592 |
CALL MNC_CW_RL_W('D','mom_vi',0,0,'Z3',vort3, myThid) |
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj,'Du',uDiss, |
593 |
CALL MNC_CW_RL_W('D','mom_vi',0,0,'W3',omega3, myThid) |
& offsets, myThid) |
594 |
CALL MNC_CW_RL_W('D','mom_vi',0,0,'KE',KE, myThid) |
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj,'Dv',vDiss, |
595 |
CALL MNC_CW_RL_W('D','mom_vi',0,0,'D', hdiv, myThid) |
& offsets, myThid) |
596 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj,'Z3',vort3, |
597 |
|
& offsets, myThid) |
598 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj,'W3',omega3, |
599 |
|
& offsets, myThid) |
600 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj,'KE',KE, |
601 |
|
& offsets, myThid) |
602 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj,'D', hdiv, |
603 |
|
& offsets, myThid) |
604 |
ENDIF |
ENDIF |
605 |
#endif /* ALLOW_MNC */ |
#endif /* ALLOW_MNC */ |
606 |
ENDIF |
ENDIF |