61 |
INTEGER i,j,k,bi,bj |
INTEGER i,j,k,bi,bj |
62 |
INTEGER km1 |
INTEGER km1 |
63 |
|
|
|
tmpFac = 1. _d 0 |
|
|
|
|
64 |
IF ( selectVars.EQ.2 .OR. selectVars.EQ.3 ) THEN |
IF ( selectVars.EQ.2 .OR. selectVars.EQ.3 ) THEN |
65 |
C-- fill momentum state-var diagnostics: |
C-- fill momentum state-var diagnostics: |
66 |
|
|
79 |
CALL DIAGNOSTICS_FILL(tmp1k,'RSURF ',0,1,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmp1k,'RSURF ',0,1,0,1,1,myThid) |
80 |
ENDIF |
ENDIF |
81 |
|
|
82 |
CALL DIAGNOSTICS_SCALE_FILL(etaN,tmpFac,2, |
CALL DIAGNOSTICS_SCALE_FILL( etaN, oneRL, 2, |
83 |
& 'ETANSQ ',0, 1,0,1,1,myThid) |
& 'ETANSQ ',0, 1,0,1,1,myThid) |
84 |
|
|
85 |
#ifdef EXACT_CONSERV |
#ifdef EXACT_CONSERV |
86 |
CALL DIAGNOSTICS_SCALE_FILL(dEtaHdt,tmpFac,2, |
CALL DIAGNOSTICS_SCALE_FILL( dEtaHdt, oneRL, 2, |
87 |
& 'DETADT2 ',0, 1,0,1,1,myThid) |
& 'DETADT2 ',0, 1,0,1,1,myThid) |
88 |
#endif |
#endif |
89 |
#ifdef ALLOW_NONHYDROSTATIC |
#ifdef ALLOW_NONHYDROSTATIC |
96 |
CALL DIAGNOSTICS_FILL(vVel, 'VVEL ',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(vVel, 'VVEL ',0,Nr,0,1,1,myThid) |
97 |
CALL DIAGNOSTICS_FILL(wVel, 'WVEL ',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(wVel, 'WVEL ',0,Nr,0,1,1,myThid) |
98 |
|
|
99 |
CALL DIAGNOSTICS_SCALE_FILL(uVel,tmpFac,2, |
CALL DIAGNOSTICS_SCALE_FILL( uVel, oneRL, 2, |
100 |
& 'UVELSQ ',0,Nr,0,1,1,myThid) |
& 'UVELSQ ',0,Nr,0,1,1,myThid) |
101 |
CALL DIAGNOSTICS_SCALE_FILL(vVel,tmpFac,2, |
CALL DIAGNOSTICS_SCALE_FILL( vVel, oneRL, 2, |
102 |
& 'VVELSQ ',0,Nr,0,1,1,myThid) |
& 'VVELSQ ',0,Nr,0,1,1,myThid) |
103 |
CALL DIAGNOSTICS_SCALE_FILL(wVel,tmpFac,2, |
CALL DIAGNOSTICS_SCALE_FILL( wVel, oneRL, 2, |
104 |
& 'WVELSQ ',0,Nr,0,1,1,myThid) |
& 'WVELSQ ',0,Nr,0,1,1,myThid) |
105 |
|
|
106 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
350 |
C NOTE: send a '0' for the bibjflag and allow counter to be incremented |
C NOTE: send a '0' for the bibjflag and allow counter to be incremented |
351 |
C (next fill for these diagnostics will NOT allow counter to be incremented) |
C (next fill for these diagnostics will NOT allow counter to be incremented) |
352 |
|
|
353 |
IF ( DIAGNOSTICS_IS_ON('TOTUTEND',myThid) ) THEN |
tmpFac = -86400. _d 0/deltaTMom |
354 |
DO bj = myByLo(myThid), myByHi(myThid) |
CALL DIAGNOSTICS_SCALE_FILL( uVel, tmpFac, 1, |
355 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
& 'TOTUTEND',0,Nr,0,1,1,myThid ) |
356 |
DO k=1,Nr |
CALL DIAGNOSTICS_SCALE_FILL( vVel, tmpFac, 1, |
357 |
DO j = 1,sNy |
& 'TOTVTEND',0,Nr,0,1,1,myThid ) |
|
DO i = 1,sNx+1 |
|
|
tmpMk(i,j,k,bi,bj) = -uVel(i,j,k,bi,bj) |
|
|
. *86400./dTtracerLev(1) |
|
|
ENDDO |
|
|
ENDDO |
|
|
ENDDO |
|
|
ENDDO |
|
|
ENDDO |
|
|
CALL DIAGNOSTICS_FILL(tmpMk,'TOTUTEND',0,Nr,0,1,1,myThid) |
|
|
ENDIF |
|
|
|
|
|
IF ( DIAGNOSTICS_IS_ON('TOTVTEND',myThid) ) THEN |
|
|
DO bj = myByLo(myThid), myByHi(myThid) |
|
|
DO bi = myBxLo(myThid), myBxHi(myThid) |
|
|
DO k=1,Nr |
|
|
DO j = 1,sNy+1 |
|
|
DO i = 1,sNx |
|
|
tmpMk(i,j,k,bi,bj) = -vVel(i,j,k,bi,bj) |
|
|
. *86400./dTtracerLev(1) |
|
|
ENDDO |
|
|
ENDDO |
|
|
ENDDO |
|
|
ENDDO |
|
|
ENDDO |
|
|
CALL DIAGNOSTICS_FILL(tmpMk,'TOTVTEND',0,Nr,0,1,1,myThid) |
|
|
ENDIF |
|
358 |
|
|
359 |
IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN |
360 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
361 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
362 |
DO k=1,Nr |
DO k=1,Nr |
363 |
|
tmpFac = -86400. _d 0/dTtracerLev(k) |
364 |
DO j = 1,sNy |
DO j = 1,sNy |
365 |
DO i = 1,sNx |
DO i = 1,sNx |
366 |
tmpMk(i,j,k,bi,bj) = -theta(i,j,k,bi,bj) |
tmpMk(i,j,k,bi,bj) = tmpFac*theta(i,j,k,bi,bj) |
|
. *86400./dTtracerLev(1) |
|
367 |
ENDDO |
ENDDO |
368 |
ENDDO |
ENDDO |
369 |
ENDDO |
ENDDO |
376 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
377 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
378 |
DO k=1,Nr |
DO k=1,Nr |
379 |
|
tmpFac = -86400. _d 0/dTtracerLev(k) |
380 |
DO j = 1,sNy |
DO j = 1,sNy |
381 |
DO i = 1,sNx |
DO i = 1,sNx |
382 |
tmpMk(i,j,k,bi,bj) = -salt(i,j,k,bi,bj) |
tmpMk(i,j,k,bi,bj) = tmpFac*salt(i,j,k,bi,bj) |
|
. *86400./dTtracerLev(1) |
|
383 |
ENDDO |
ENDDO |
384 |
ENDDO |
ENDDO |
385 |
ENDDO |
ENDDO |
421 |
ENDIF |
ENDIF |
422 |
#endif /* ALLOW_FIZHI */ |
#endif /* ALLOW_FIZHI */ |
423 |
|
|
424 |
CALL DIAGNOSTICS_SCALE_FILL(theta,tmpFac,2, |
CALL DIAGNOSTICS_SCALE_FILL( theta, oneRL, 2, |
425 |
& 'THETASQ ',0,Nr,0,1,1,myThid) |
& 'THETASQ ',0,Nr,0,1,1,myThid) |
426 |
CALL DIAGNOSTICS_SCALE_FILL(salt,tmpFac,2, |
CALL DIAGNOSTICS_SCALE_FILL( salt, oneRL, 2, |
427 |
& 'SALTSQ ',0,Nr,0,1,1,myThid) |
& 'SALTSQ ',0,Nr,0,1,1,myThid) |
428 |
|
|
429 |
#ifdef ALLOW_GENERIC_ADVDIFF |
#ifdef ALLOW_GENERIC_ADVDIFF |
490 |
ENDDO |
ENDDO |
491 |
ENDDO |
ENDDO |
492 |
CALL DIAGNOSTICS_FILL( tmpMk,'SALTanom',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL( tmpMk,'SALTanom',0,Nr,0,1,1,myThid) |
493 |
CALL DIAGNOSTICS_SCALE_FILL(tmpMk,tmpFac,2, |
CALL DIAGNOSTICS_SCALE_FILL( tmpMk, oneRL, 2, |
494 |
& 'SALTSQan',0,Nr,0,1,1,myThid) |
& 'SALTSQan',0,Nr,0,1,1,myThid) |
495 |
ENDIF |
ENDIF |
496 |
|
|
638 |
IF ( selectVars.EQ.4 ) THEN |
IF ( selectVars.EQ.4 ) THEN |
639 |
C Second fill sequence for state variable tendency diagnostics: add state variable |
C Second fill sequence for state variable tendency diagnostics: add state variable |
640 |
C NOTE: send a '-1' for the bibjflag and do not increment counter |
C NOTE: send a '-1' for the bibjflag and do not increment counter |
641 |
C (next fill for these diagnostics WILL allow counter to be incremented) |
C (previous fill for these diagnostics DID allow counter to be incremented) |
642 |
|
|
643 |
IF ( DIAGNOSTICS_IS_ON('TOTUTEND',myThid) ) THEN |
tmpFac = 86400. _d 0/deltaTMom |
644 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
645 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
646 |
DO k=1,Nr |
CALL DIAGNOSTICS_SCALE_FILL( uVel, tmpFac, 1, |
647 |
DO j = 1,sNy |
& 'TOTUTEND',0,Nr,-1,bi,bj,myThid ) |
648 |
DO i = 1,sNx+1 |
CALL DIAGNOSTICS_SCALE_FILL( vVel, tmpFac, 1, |
649 |
tmpMk(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) |
& 'TOTVTEND',0,Nr,-1,bi,bj,myThid ) |
|
. *86400./dTtracerLev(1) |
|
|
ENDDO |
|
|
ENDDO |
|
|
ENDDO |
|
|
CALL DIAGNOSTICS_FILL(tmpMk,'TOTUTEND',0,Nr,-1,bi,bj,myThid) |
|
|
ENDDO |
|
650 |
ENDDO |
ENDDO |
651 |
ENDIF |
ENDDO |
|
|
|
|
IF ( DIAGNOSTICS_IS_ON('TOTVTEND',myThid) ) THEN |
|
|
DO bj = myByLo(myThid), myByHi(myThid) |
|
|
DO bi = myBxLo(myThid), myBxHi(myThid) |
|
|
DO k=1,Nr |
|
|
DO j = 1,sNy+1 |
|
|
DO i = 1,sNx |
|
|
tmpMk(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) |
|
|
. *86400./dTtracerLev(1) |
|
|
ENDDO |
|
|
ENDDO |
|
|
ENDDO |
|
|
CALL DIAGNOSTICS_FILL(tmpMk,'TOTVTEND',0,Nr,-1,bi,bj,myThid) |
|
|
ENDDO |
|
|
ENDDO |
|
|
ENDIF |
|
652 |
|
|
653 |
IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN |
654 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
655 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
656 |
DO k=1,Nr |
DO k=1,Nr |
657 |
|
tmpFac = 86400. _d 0/dTtracerLev(k) |
658 |
DO j = 1,sNy |
DO j = 1,sNy |
659 |
DO i = 1,sNx |
DO i = 1,sNx |
660 |
tmpMk(i,j,k,bi,bj) = theta(i,j,k,bi,bj) |
tmpMk(i,j,k,bi,bj) = tmpFac*theta(i,j,k,bi,bj) |
|
. *86400./dTtracerLev(1) |
|
661 |
ENDDO |
ENDDO |
662 |
ENDDO |
ENDDO |
663 |
ENDDO |
ENDDO |
670 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
671 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
672 |
DO k=1,Nr |
DO k=1,Nr |
673 |
|
tmpFac = 86400. _d 0/dTtracerLev(k) |
674 |
DO j = 1,sNy |
DO j = 1,sNy |
675 |
DO i = 1,sNx |
DO i = 1,sNx |
676 |
tmpMk(i,j,k,bi,bj) = salt(i,j,k,bi,bj) |
tmpMk(i,j,k,bi,bj) = tmpFac*salt(i,j,k,bi,bj) |
|
. *86400./dTtracerLev(1) |
|
677 |
ENDDO |
ENDDO |
678 |
ENDDO |
ENDDO |
679 |
ENDDO |
ENDDO |