C $Header: /u/gcmpack/MITgcm/pkg/gmredi/gmredi_diagnostics_impl.F,v 1.1 2012/03/20 23:36:59 jmc Exp $ C $Name: $ #include "GMREDI_OPTIONS.h" CBOP C !ROUTINE: GMREDI_DIAGNOSTICS_IMPL C !INTERFACE: SUBROUTINE GMREDI_DIAGNOSTICS_IMPL( I myTime, myIter, myThid ) C !DESCRIPTION: \bv C *==========================================================* C | SUBROUTINE GMREDI_DIAGNOSTICS_IMPL C | o fill GM-Redi diagnostics for backward (implicit) terms C *==========================================================* C \ev C !USES: IMPLICIT NONE C === Global data === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" #include "DYNVARS.h" #include "GMREDI.h" C !INPUT/OUTPUT PARAMETERS: _RL myTime INTEGER myIter INTEGER myThid #ifdef ALLOW_DIAGNOSTICS C !FUNCTIONS: LOGICAL DIAGNOSTICS_IS_ON EXTERNAL #endif /* ALLOW_DIAGNOSTICS */ CEOP #ifdef ALLOW_GMREDI #ifdef ALLOW_DIAGNOSTICS C !LOCAL VARIABLES: INTEGER bi,bj INTEGER i,j,k _RL tmpVar(1-OLx:sNx+OLx,1-OLy:sNy+OLy) C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| IF ( useDiagnostics .AND. implicitDiffusion .AND. & Nr.GE.2 .AND. tempStepping ) THEN IF ( DIAGNOSTICS_IS_ON('GM_KwzTz', myThid ) ) THEN DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) CALL DIAGNOSTICS_COUNT( 'GM_KwzTz', bi, bj, myThid ) DO k=2,Nr DO j = 1, sNy DO i = 1, sNx tmpVar(i,j) = -recip_drC(k)*rkSign & *(theta(i,j,k,bi,bj)-theta(i,j,k-1,bi,bj)) & * maskC(i,j,k,bi,bj)*maskC(i,j,k-1,bi,bj) tmpVar(i,j) = tmpVar(i,j)*Kwz(i,j,k,bi,bj) & *rA(i,j,bi,bj) ENDDO ENDDO CALL DIAGNOSTICS_FILL( tmpVar, 'GM_KwzTz', & k, 1, 2, bi, bj, myThid ) ENDDO ENDDO ENDDO ENDIF ENDIF #endif /* ALLOW_DIAGNOSTICS */ #endif /* ALLOW_GMREDI */ RETURN END