56 |
_RL phxFac,phyFac, psFac |
_RL phxFac,phyFac, psFac |
57 |
_RL gUtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL gUtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
58 |
_RL gVtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL gVtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
59 |
|
#ifdef ALLOW_DIAGNOSTICS |
60 |
C Allow diagnosis of external forcing |
C Allow diagnosis of external forcing |
61 |
|
LOGICAL externForcDiagIsOn |
62 |
|
LOGICAL DIAGNOSTICS_IS_ON |
63 |
|
EXTERNAL DIAGNOSTICS_IS_ON |
64 |
_RL gUext(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL gUext(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
65 |
_RL gVext(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL gVext(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
66 |
|
#endif |
67 |
#ifdef ALLOW_CD_CODE |
#ifdef ALLOW_CD_CODE |
68 |
_RL guCor(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL guCor(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
69 |
_RL gvCor(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL gvCor(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
91 |
momForcing_In_AB = .TRUE. |
momForcing_In_AB = .TRUE. |
92 |
momDissip_In_AB = .TRUE. |
momDissip_In_AB = .TRUE. |
93 |
|
|
94 |
|
#ifdef ALLOW_DIAGNOSTICS |
95 |
|
externForcDiagIsOn = useDiagnostics .AND. momForcing |
96 |
|
IF ( externForcDiagIsOn ) THEN |
97 |
|
externForcDiagIsOn = DIAGNOSTICS_IS_ON('Um_Ext ',myThid) |
98 |
|
& .OR. DIAGNOSTICS_IS_ON('Vm_Ext ',myThid) |
99 |
|
ENDIF |
100 |
|
#endif /* ALLOW_DIAGNOSTICS */ |
101 |
|
|
102 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
103 |
|
|
104 |
C- Initialize local arrays (not really necessary but safer) |
C- Initialize local arrays (not really necessary but safer) |
106 |
DO i=1-Olx,sNx+Olx |
DO i=1-Olx,sNx+Olx |
107 |
gUtmp(i,j) = 0. _d 0 |
gUtmp(i,j) = 0. _d 0 |
108 |
gVtmp(i,j) = 0. _d 0 |
gVtmp(i,j) = 0. _d 0 |
|
gUext(i,j) = 0. _d 0 |
|
|
gVext(i,j) = 0. _d 0 |
|
109 |
#ifdef ALLOW_CD_CODE |
#ifdef ALLOW_CD_CODE |
110 |
guCor(i,j) = 0. _d 0 |
guCor(i,j) = 0. _d 0 |
111 |
gvCor(i,j) = 0. _d 0 |
gvCor(i,j) = 0. _d 0 |
140 |
C-- Forcing term inside the Adams-Bashforth: |
C-- Forcing term inside the Adams-Bashforth: |
141 |
IF (momForcing .AND. momForcing_In_AB) THEN |
IF (momForcing .AND. momForcing_In_AB) THEN |
142 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
143 |
IF ( useDiagnostics ) THEN |
IF ( useDiagnostics .AND. externForcDiagIsOn ) THEN |
144 |
DO j=jMin,jMax |
DO j=1,sNy+1 |
145 |
DO i=iMin,iMax |
DO i=1,sNx+1 |
146 |
gUext(i,j) = gU(i,j,k,bi,bj) |
gUext(i,j) = gU(i,j,k,bi,bj) |
147 |
gVext(i,j) = gV(i,j,k,bi,bj) |
gVext(i,j) = gV(i,j,k,bi,bj) |
148 |
ENDDO |
ENDDO |
158 |
I myTime,myThid) |
I myTime,myThid) |
159 |
|
|
160 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
161 |
IF ( useDiagnostics ) THEN |
IF ( useDiagnostics .AND. externForcDiagIsOn ) THEN |
162 |
DO j=jMin,jMax |
DO j=1,sNy+1 |
163 |
DO i=iMin,iMax |
DO i=1,sNx+1 |
164 |
gUext(i,j) = gU(i,j,k,bi,bj)-gUext(i,j) |
gUext(i,j) = gU(i,j,k,bi,bj)-gUext(i,j) |
165 |
gVext(i,j) = gV(i,j,k,bi,bj)-gVext(i,j) |
gVext(i,j) = gV(i,j,k,bi,bj)-gVext(i,j) |
166 |
ENDDO |
ENDDO |
213 |
ENDDO |
ENDDO |
214 |
ENDIF |
ENDIF |
215 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
216 |
IF ( useDiagnostics ) THEN |
IF ( useDiagnostics .AND. externForcDiagIsOn ) THEN |
217 |
DO j=jMin,jMax |
DO j=1,sNy+1 |
218 |
DO i=iMin,iMax |
DO i=1,sNx+1 |
219 |
gUext(i,j) = gU(i,j,k,bi,bj) |
gUext(i,j) = gU(i,j,k,bi,bj) |
220 |
gVext(i,j) = gV(i,j,k,bi,bj) |
gVext(i,j) = gV(i,j,k,bi,bj) |
221 |
ENDDO |
ENDDO |
231 |
I myTime,myThid) |
I myTime,myThid) |
232 |
|
|
233 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
234 |
IF ( useDiagnostics ) THEN |
IF ( useDiagnostics .AND. externForcDiagIsOn ) THEN |
235 |
DO j=jMin,jMax |
DO j=1,sNy+1 |
236 |
DO i=iMin,iMax |
DO i=1,sNx+1 |
237 |
gUext(i,j) = gU(i,j,k,bi,bj)-gUext(i,j) |
gUext(i,j) = gU(i,j,k,bi,bj)-gUext(i,j) |
238 |
gVext(i,j) = gV(i,j,k,bi,bj)-gVext(i,j) |
gVext(i,j) = gV(i,j,k,bi,bj)-gVext(i,j) |
239 |
ENDDO |
ENDDO |
241 |
ENDIF |
ENDIF |
242 |
#endif /* ALLOW_DIAGNOSTICS */ |
#endif /* ALLOW_DIAGNOSTICS */ |
243 |
|
|
|
#ifdef ALLOW_DIAGNOSTICS |
|
|
IF ( useDiagnostics ) THEN |
|
|
CALL DIAGNOSTICS_FILL(gUext,'Um_Ext ',k,1,2,bi,bj,myThid) |
|
|
CALL DIAGNOSTICS_FILL(gVext,'Vm_Ext ',k,1,2,bi,bj,myThid) |
|
|
ENDIF |
|
|
#endif /* ALLOW_DIAGNOSTICS */ |
|
|
|
|
244 |
C- for CD-scheme, compute gU,Vtmp = gU,V^n + forcing |
C- for CD-scheme, compute gU,Vtmp = gU,V^n + forcing |
245 |
IF (useCDscheme) THEN |
IF (useCDscheme) THEN |
246 |
DO j=jMin,jMax |
DO j=jMin,jMax |
344 |
ENDDO |
ENDDO |
345 |
|
|
346 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
347 |
|
IF ( useDiagnostics .AND. externForcDiagIsOn ) THEN |
348 |
|
CALL DIAGNOSTICS_FILL(gUext,'Um_Ext ',k,1,2,bi,bj,myThid) |
349 |
|
CALL DIAGNOSTICS_FILL(gVext,'Vm_Ext ',k,1,2,bi,bj,myThid) |
350 |
|
ENDIF |
351 |
#ifdef ALLOW_CD_CODE |
#ifdef ALLOW_CD_CODE |
352 |
IF ( useCDscheme .AND. useDiagnostics ) THEN |
IF ( useCDscheme .AND. useDiagnostics ) THEN |
353 |
CALL DIAGNOSTICS_FILL(guCor,'Um_Cori ',k,1,2,bi,bj,myThid) |
CALL DIAGNOSTICS_FILL(guCor,'Um_Cori ',k,1,2,bi,bj,myThid) |