C $Header: /u/gcmpack/MITgcm/model/src/diags_rho.F,v 1.1 2005/02/15 21:00:09 jmc Exp $
C $Name: $
#include "PACKAGES_CONFIG.h"
#include "CPP_OPTIONS.h"
CBOP
C !ROUTINE: DIAGS_RHO
C !INTERFACE:
SUBROUTINE DIAGS_RHO(
I k, bi, bj,
I rhoK, rhoKm1,
I myTime, myIter, myThid)
C !DESCRIPTION: \bv
C *==========================================================*
C | S/R DIAGS_RHO
C | o Buoyancy Flux diagnostics
C *==========================================================*
C *==========================================================*
C \ev
C !USES:
IMPLICIT NONE
C == Global variables ==
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#include "GRID.h"
c #include "SURFACE.h"
#include "DYNVARS.h"
C !INPUT/OUTPUT PARAMETERS:
C == Routine Arguments ==
C k, bi,bj :: level & tile indices
C phiHydC :: hydrostatic potential anomaly at cell center
C (atmos: =Geopotential ; ocean-z: =Pressure/rho)
C myTime :: Current time
C myIter :: Current iteration number
C myThid :: Instance number for this call of the routine.
INTEGER k, bi,bj
_RL rhoK (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
_RL rhoKm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
_RL tmpFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
_RL myTime
INTEGER myIter, myThid
CEOP
#ifdef ALLOW_DIAGNOSTICS
C !LOCAL VARIABLES:
C == Local variables ==
C i,j :: Loop counters
INTEGER i,j
LOGICAL DIAGNOSTICS_IS_ON
EXTERNAL
IF ( DIAGNOSTICS_IS_ON('RHOANOSQ',myThid) ) THEN
DO j=1,sNy
DO i=1,sNx
tmpFld(i,j) = rhoK(i,j)*rhoK(i,j)
ENDDO
ENDDO
CALL DIAGNOSTICS_FILL(tmpFld,'RHOANOSQ',k,1,2,bi,bj,myThid)
ENDIF
IF ( DIAGNOSTICS_IS_ON('URHOMASS',myThid) ) THEN
DO j=1,sNy
DO i=1,sNx+1
tmpFld(i,j) = uVel(i,j,k,bi,bj)*hFacW(i,j,k,bi,bj)
& *(rhoK(i-1,j)+rhoK(i,j))*0.5 _d 0
ENDDO
ENDDO
CALL DIAGNOSTICS_FILL(tmpFld,'URHOMASS',k,1,2,bi,bj,myThid)
ENDIF
IF ( DIAGNOSTICS_IS_ON('VRHOMASS',myThid) ) THEN
DO j=1,sNy+1
DO i=1,sNx
tmpFld(i,j) = vVel(i,j,k,bi,bj)*hFacS(i,j,k,bi,bj)
& *(rhoK(i,j-1)+rhoK(i,j))*0.5 _d 0
ENDDO
ENDDO
CALL DIAGNOSTICS_FILL(tmpFld,'VRHOMASS',k,1,2,bi,bj,myThid)
ENDIF
IF ( DIAGNOSTICS_IS_ON('WRHOMASS',myThid) ) THEN
IF ( k.EQ.1 ) THEN
DO j=1,sNy
DO i=1,sNx
tmpFld(i,j) = wVel(i,j,k,bi,bj)*rhoK(i,j)
ENDDO
ENDDO
ELSE
DO j=1,sNy
DO i=1,sNx
tmpFld(i,j) = wVel(i,j,k,bi,bj)
& *(rhoKm1(i,j)+rhoK(i,j))*0.5 _d 0
ENDDO
ENDDO
ENDIF
CALL DIAGNOSTICS_FILL(tmpFld,'WRHOMASS',k,1,2,bi,bj,myThid)
ENDIF
#endif /* ALLOW_DIAGNOSTICS */
RETURN
END