C $Header: /u/gcmpack/MITgcm/pkg/streamice/streamice_diagnostics_state.F,v 1.7 2015/09/08 15:19:10 dgoldberg Exp $
C $Name: $
#include "STREAMICE_OPTIONS.h"
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
CBOP
SUBROUTINE STREAMICE_DIAGNOSTICS_STATE( myTime, myIter, myThid )
C /============================================================\
C | SUBROUTINE |
C | o |
C |============================================================|
C | |
C \============================================================/
IMPLICIT NONE
C === Global variables ===
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#include "STREAMICE.h"
_RL myTime
INTEGER myIter, myThid, i, j, bi, bj
#ifdef ALLOW_STREAMICE
CHARACTER*(MAX_LEN_MBUF) msgBuf
#ifdef ALLOW_DIAGNOSTICS
#ifdef ALLOW_OPENAD
_RL u_streamice_diag(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL v_streamice_diag(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL u_surf_diag(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL v_surf_diag(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL h_streamice_diag(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL area_diag(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL float_frac_diag(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL surf_diag(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
#ifdef STREAMICE_HYBRID_STRESS
_RL streamice_taubx_diag(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL streamice_tauby_diag(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
#endif
#ifdef ALLOW_STREAMICE_2DTRACER
_RL trac2d_diag
#endif
DO bj = myByLo(myThid), myByHi(myThid)
DO bi = myBxLo(myThid), myBxHi(myThid)
DO j=1-OLy,sNy+OLy
DO i=1-OLx,sNx+OLx
u_streamice_diag(i,j,bi,bj) = u_streamice(i,j,bi,bj)v
v_streamice_diag(i,j,bi,bj) = v_streamice(i,j,bi,bj)v
h_streamice_diag(i,j,bi,bj) = H_streamice(i,j,bi,bj)v
area_diag(i,j,bi,bj) = area_shelf_streamice(i,j,bi,bj)v
#ifdef STREAMICE_SMOOTH_FLOATATION
float_frac_diag(i,j,bi,bj) =
& float_frac_streamice(i,j,bi,bj)v
#endif
surf_diag(i,j,bi,bj) =
& surf_el_streamice(i,j,bi,bj)v
#ifdef STREAMICE_HYBRID_STRESS
streamice_taubx_diag(i,j,bi,bj) =
$ streamice_taubx(i,j,bi,bj)v
streamice_tauby_diag(i,j,bi,bj) =
$ streamice_tauby(i,j,bi,bj)v
u_surf_diag(i,j,bi,bj) = streamice_u_surf(i,j,bi,bj)v
v_surf_diag(i,j,bi,bj) = streamice_v_surf(i,j,bi,bj)v
#endif
#ifdef ALLOW_STREAMICE_2DTRACER
trac2d_diag(i,j,bi,bj)=trac2d(i,j,bi,bj)v
#endif
ENDDO
ENDDO
ENDDO
ENDDO
#endif
IF ( useDiagnostics ) THEN
WRITE(msgBuf,'(A)') 'CALLING FILL DIAGNOSTICS'
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
& SQUEEZE_RIGHT , 1)
#ifdef ALLOW_OPENAD
CALL DIAGNOSTICS_FILL(U_streamice_diag,'SI_Uvel ',
& 0,1,0,1,1,myThid)
CALL DIAGNOSTICS_FILL(V_streamice_diag,'SI_Vvel ',
& 0,1,0,1,1,myThid)
CALL DIAGNOSTICS_FILL(H_streamice_diag,'SI_Thick',
& 0,1,0,1,1,myThid)
CALL DIAGNOSTICS_FILL(area_diag,'SI_area ',
& 0,1,0,1,1,myThid)
CALL DIAGNOSTICS_FILL(surf_diag,'SI_selev',
& 0,1,0,1,1,myThid)
#else
CALL DIAGNOSTICS_FILL(U_streamice,'SI_Uvel ',
& 0,1,0,1,1,myThid)
CALL DIAGNOSTICS_FILL(V_streamice,'SI_Vvel ',
& 0,1,0,1,1,myThid)
CALL DIAGNOSTICS_FILL(H_streamice,'SI_Thick',
& 0,1,0,1,1,myThid)
CALL DIAGNOSTICS_FILL(area_shelf_streamice,'SI_area ',
& 0,1,0,1,1,myThid)
CALL DIAGNOSTICS_FILL(float_frac_streamice,'SI_float',
& 0,1,0,1,1,myThid)
CALL DIAGNOSTICS_FILL(surf_el_streamice,'SI_selev',
& 0,1,0,1,1,myThid)
#endif
#ifdef ALLOW_OPENAD
#ifdef STREAMICE_SMOOTH_FLOATATION
CALL DIAGNOSTICS_FILL(float_frac_diag,'SI_float',
& 0,1,0,1,1,myThid)
#else
CALL DIAGNOSTICS_FILL(float_frac_streamice,'SI_float',
& 0,1,0,1,1,myThid)
#endif
#endif
CALL DIAGNOSTICS_FILL_RS(STREAMICE_hmask,'SI_hmask',
& 0,1,0,1,1,myThid)
#ifdef STREAMICE_HYBRID_STRESS
CALL DIAGNOSTICS_FILL(streamice_u_bed,'SI_ubase',
& 0,1,0,1,1,myThid)
CALL DIAGNOSTICS_FILL(STREAMICE_v_bed,'SI_vbase',
& 0,1,0,1,1,myThid)
#ifdef ALLOW_OPENAD
CALL DIAGNOSTICS_FILL(streamice_taubx_diag,'SI_taubx',
& 0,1,0,1,1,myThid)
CALL DIAGNOSTICS_FILL(STREAMICE_tauby_diag,'SI_tauby',
& 0,1,0,1,1,myThid)
CALL DIAGNOSTICS_FILL(u_surf_diag,'SI_usurf',
& 0,1,0,1,1,myThid)
CALL DIAGNOSTICS_FILL(v_surf_diag,'SI_vsurf',
& 0,1,0,1,1,myThid)
#else
CALL DIAGNOSTICS_FILL(streamice_taubx,'SI_taubx',
& 0,1,0,1,1,myThid)
CALL DIAGNOSTICS_FILL(STREAMICE_tauby,'SI_tauby',
& 0,1,0,1,1,myThid)
CALL DIAGNOSTICS_FILL(streamice_u_surf,'SI_usurf',
& 0,1,0,1,1,myThid)
CALL DIAGNOSTICS_FILL(streamice_v_surf,'SI_vsurf',
& 0,1,0,1,1,myThid)
#endif
#endif
#ifdef ALLOW_STREAMICE_2DTRACER
#ifdef ALLOW_OPENAD
CALL DIAGNOSTICS_FILL(trac2d_diag,'SI2Dtrac',
& 0,1,0,1,1,myThid)
#else
CALL DIAGNOSTICS_FILL(trac2d,'SI2Dtrac',
& 0,1,0,1,1,myThid)
#endif
#endif
ENDIF
#endif /* ALLOW_DIAGNOSTICS */
#endif
RETURN
END