211 |
ENDDO |
ENDDO |
212 |
|
|
213 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
214 |
IF ( useDiagnostics .AND.tracerId.GE.1 ) THEN |
IF ( useDiagnostics .AND.tracerId.NE.0 ) THEN |
215 |
|
IF ( tracerId.GE. 1 ) THEN |
216 |
C-- Set diagnostic suffix for the current tracer |
C-- Set diagnostic suffix for the current tracer |
217 |
#ifdef ALLOW_GENERIC_ADVDIFF |
#ifdef ALLOW_GENERIC_ADVDIFF |
218 |
diagSufx = GAD_DIAG_SUFX( tracerId, myThid ) |
diagSufx = GAD_DIAG_SUFX( tracerId, myThid ) |
219 |
#else |
#else |
220 |
diagSufx = 'aaaa' |
diagSufx = 'aaaa' |
221 |
#endif |
#endif |
222 |
diagName = 'DFrI'//diagSufx |
diagName = 'DFrI'//diagSufx |
223 |
|
ELSEIF ( tracerId.EQ. -1 ) THEN |
224 |
|
diagName = 'VISrI_Um' |
225 |
|
ELSEIF ( tracerId.EQ. -2 ) THEN |
226 |
|
diagName = 'VISrI_Vm' |
227 |
|
ELSE |
228 |
|
STOP 'IMPLIDIFF: should never reach this point !' |
229 |
|
ENDIF |
230 |
IF ( DIAGNOSTICS_IS_ON(diagName,myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON(diagName,myThid) ) THEN |
231 |
DO k= 1,Nr |
DO k= 1,Nr |
232 |
IF ( k.EQ.1 ) THEN |
IF ( k.EQ.1 ) THEN |
237 |
df(i,j) = 0. _d 0 |
df(i,j) = 0. _d 0 |
238 |
ENDDO |
ENDDO |
239 |
ENDDO |
ENDDO |
240 |
ELSE |
ELSEIF ( tracerId.GE.1 ) THEN |
241 |
DO j=1,sNy |
DO j=1,sNy |
242 |
DO i=1,sNx |
DO i=1,sNx |
243 |
df(i,j) = |
df(i,j) = |
244 |
& rA(i,j,bi,bj) |
& -rA(i,j,bi,bj) |
245 |
& * KappaRX(i,j,k)*recip_drC(k) |
& * KappaRX(i,j,k)*recip_drC(k) |
246 |
& * (gXnm1(i,j,k,bi,bj) - gXnm1(i,j,k-1,bi,bj)) |
& * (gXnm1(i,j,k,bi,bj) - gXnm1(i,j,k-1,bi,bj))*rkSign |
247 |
|
ENDDO |
248 |
|
ENDDO |
249 |
|
ELSEIF ( tracerId.EQ.-1 ) THEN |
250 |
|
DO j=1,sNy |
251 |
|
DO i=1,sNx+1 |
252 |
|
df(i,j) = |
253 |
|
& -rAw(i,j,bi,bj) |
254 |
|
& * KappaRX(i,j,k)*recip_drC(k) |
255 |
|
& * (gXnm1(i,j,k,bi,bj) - gXnm1(i,j,k-1,bi,bj))*rkSign |
256 |
|
& * _maskW(i,j,k,bi,bj) |
257 |
|
& * _maskW(i,j,k-1,bi,bj) |
258 |
|
ENDDO |
259 |
|
ENDDO |
260 |
|
ELSEIF ( tracerId.EQ.-2 ) THEN |
261 |
|
DO j=1,sNy+1 |
262 |
|
DO i=1,sNx |
263 |
|
df(i,j) = |
264 |
|
& -rAs(i,j,bi,bj) |
265 |
|
& * KappaRX(i,j,k)*recip_drC(k) |
266 |
|
& * (gXnm1(i,j,k,bi,bj) - gXnm1(i,j,k-1,bi,bj))*rkSign |
267 |
|
& * _maskS(i,j,k,bi,bj) |
268 |
|
& * _maskS(i,j,k-1,bi,bj) |
269 |
ENDDO |
ENDDO |
270 |
ENDDO |
ENDDO |
271 |
ENDIF |
ENDIF |