C $Header: /u/gcmpack/MITgcm/pkg/layers/layers_diagnostics_init.F,v 1.6 2014/06/04 14:48:32 rpa Exp $
C $Name: $
#include "LAYERS_OPTIONS.h"
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
CBOP 0
C !ROUTINE: LAYERS_DIAGNOSTICS_INIT
C !INTERFACE:
SUBROUTINE LAYERS_DIAGNOSTICS_INIT( myThid )
C !DESCRIPTION:
C Initialize list of all available diagnostics for LAYERS package
C !USES:
IMPLICIT NONE
#include "EEPARAMS.h"
#include "SIZE.h"
#include "PARAMS.h"
#ifdef ALLOW_LAYERS
# include "LAYERS_SIZE.h"
# include "LAYERS.h"
#endif
C !INPUT/OUTPUT PARAMETERS:
C myThid :: my Thread Id number
INTEGER myThid
#ifdef ALLOW_LAYERS
#ifdef ALLOW_DIAGNOSTICS
C !FUNCTIONS:
INTEGER DIAGS_GET_PARMS_I
EXTERNAL
CHARACTER*(16) DIAGS_MK_UNITS
EXTERNAL
C !LOCAL VARIABLES:
INTEGER iLa
INTEGER diagNum
INTEGER diagMate
CHARACTER*8 diagName
CHARACTER*16 diagCode
CHARACTER*16 diagUnits
CHARACTER*(80) diagTitle
CHARACTER*2 rUnit2c
CEOP
c IF ( useDiagnostics ) THEN
IF ( usingPCoords ) THEN
rUnit2c= 'Pa'
ELSE
rUnit2c= 'm '
ENDIF
diagNum = DIAGS_GET_PARMS_I( 'LAST_DIAG_ID', myThid )
DO iLa=1,layers_maxNum
IF ( layers_num(iLa).NE.0 ) THEN
#if (defined LAYERS_UFLUX) (defined LAYERS_VFLUX)
C --- UH, VH
WRITE(diagName,'(A4,I1,A3)') 'LaUH',iLa,layers_name(iLa)
diagTitle = 'Layer Integrated zonal Transport (UH, m^2/s)'
diagUnits = DIAGS_MK_UNITS( rUnit2c//'.m/s', myThid )
diagCode = 'UU MX '
diagMate = diagNum + 2
CALL DIAGNOSTICS_ADDTOLIST( diagNum,
I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
CALL DIAGNOSTICS_SETKLEV( diagName, Nlayers , myThid )
WRITE(diagName,'(A4,I1,A3)') 'LaVH',iLa,layers_name(iLa)
diagTitle = 'Layer Integrated merid. Transport (VH, m^2/s)'
diagUnits = DIAGS_MK_UNITS( rUnit2c//'.m/s', myThid )
diagCode = 'VV MX '
diagMate = diagNum
CALL DIAGNOSTICS_ADDTOLIST( diagNum,
I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
CALL DIAGNOSTICS_SETKLEV( diagName, Nlayers , myThid )
#ifdef LAYERS_THICKNESS
C --- Thickness
WRITE(diagName,'(A4,I1,A3)') 'LaHw',iLa,layers_name(iLa)
diagTitle = 'Layer Thickness at U points (m)'
diagUnits = DIAGS_MK_UNITS( rUnit2c, myThid )
diagCode = 'SU MX '
diagMate = diagNum + 2
CALL DIAGNOSTICS_ADDTOLIST( diagNum,
I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
CALL DIAGNOSTICS_SETKLEV( diagName, Nlayers , myThid )
WRITE(diagName,'(A4,I1,A3)') 'LaHs',iLa,layers_name(iLa)
diagTitle = 'Layer Thickness at V points (m)'
diagUnits = DIAGS_MK_UNITS( rUnit2c, myThid )
diagCode = 'SV MX '
diagMate = diagNum
CALL DIAGNOSTICS_ADDTOLIST( diagNum,
I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
CALL DIAGNOSTICS_SETKLEV( diagName, Nlayers , myThid )
C --- PI
WRITE(diagName,'(A4,I1,A3)') 'LaPw',iLa,layers_name(iLa)
diagTitle = 'Layer Probability at U points [-]'
diagUnits = '1 '
diagCode = 'SU MX '
diagMate = diagNum + 2
CALL DIAGNOSTICS_ADDTOLIST( diagNum,
I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
CALL DIAGNOSTICS_SETKLEV( diagName, Nlayers , myThid )
WRITE(diagName,'(A4,I1,A3)') 'LaPs',iLa,layers_name(iLa)
diagTitle = 'Layer Probability at V points [-]'
diagUnits = '1 '
diagCode = 'SV MX '
diagMate = diagNum
CALL DIAGNOSTICS_ADDTOLIST( diagNum,
I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
CALL DIAGNOSTICS_SETKLEV( diagName, Nlayers , myThid )
C --- U, V
WRITE(diagName,'(A4,I1,A3)') 'LaUa',iLa,layers_name(iLa)
diagTitle = 'Layer-averaged U velocity (non-weighted) (m/s)'
diagUnits = 'm/s '
diagCode = 'UU MX '
diagMate = diagNum + 2
CALL DIAGNOSTICS_ADDTOLIST( diagNum,
I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
CALL DIAGNOSTICS_SETKLEV( diagName, Nlayers , myThid )
WRITE(diagName,'(A4,I1,A3)') 'LaVa',iLa,layers_name(iLa)
diagTitle = 'Layer-averaged V velocity (non-weighted) (m/s)'
diagUnits = 'm/s '
diagCode = 'VV MX '
diagMate = diagNum
CALL DIAGNOSTICS_ADDTOLIST( diagNum,
I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
CALL DIAGNOSTICS_SETKLEV( diagName, Nlayers , myThid )
#endif /* LAYERS_THICKNESS */
#endif /* LAYERS_UFLUX or LAYERS_VFLUX */
#ifdef LAYERS_THERMODYNAMICS
WRITE(diagName,'(A4,I1,A3)') 'LaTs',iLa,layers_name(iLa)
diagTitle = 'Layer THETA transformation from surf. forc.'
diagUnits = 'm deg./s '
diagCode = 'SM MX '
diagMate = 0
CALL DIAGNOSTICS_ADDTOLIST( diagNum,
I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
CALL DIAGNOSTICS_SETKLEV( diagName, Nlayers , myThid )
WRITE(diagName,'(A4,I1,A3)') 'LaTh',iLa,layers_name(iLa)
diagTitle = 'Layer THETA transformation from horiz. diff.'
diagUnits = 'm deg./s '
diagCode = 'SM MX '
diagMate = 0
CALL DIAGNOSTICS_ADDTOLIST( diagNum,
I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
CALL DIAGNOSTICS_SETKLEV( diagName, Nlayers , myThid )
WRITE(diagName,'(A4,I1,A3)') 'LaTr',iLa,layers_name(iLa)
diagTitle = 'Layer THETA transformation from vert. diff.'
diagUnits = 'm deg./s '
diagCode = 'SM MX '
diagMate = 0
CALL DIAGNOSTICS_ADDTOLIST( diagNum,
I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
CALL DIAGNOSTICS_SETKLEV( diagName, Nlayers , myThid )
WRITE(diagName,'(A4,I1,A3)') 'LaSs',iLa,layers_name(iLa)
diagTitle = 'Layer SALT transformation from surf. forc.'
diagUnits = 'm PSU/s '
diagCode = 'SM MX '
diagMate = 0
CALL DIAGNOSTICS_ADDTOLIST( diagNum,
I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
CALL DIAGNOSTICS_SETKLEV( diagName, Nlayers , myThid )
WRITE(diagName,'(A4,I1,A3)') 'LaSh',iLa,layers_name(iLa)
diagTitle = 'Layer SALT transformation from horiz. diff.'
diagUnits = 'm PSU/s '
diagCode = 'SM MX '
diagMate = 0
CALL DIAGNOSTICS_ADDTOLIST( diagNum,
I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
CALL DIAGNOSTICS_SETKLEV( diagName, Nlayers , myThid )
WRITE(diagName,'(A4,I1,A3)') 'LaSr',iLa,layers_name(iLa)
diagTitle = 'Layer SALT transformation from vert. diff.'
diagUnits = 'm PSU/s '
diagCode = 'SM MX '
diagMate = 0
CALL DIAGNOSTICS_ADDTOLIST( diagNum,
I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
CALL DIAGNOSTICS_SETKLEV( diagName, Nlayers , myThid )
WRITE(diagName,'(A4,I1,A3)') 'LaHc',iLa,layers_name(iLa)
diagTitle = 'Layer Thickness at tracer points (m)'
diagUnits = DIAGS_MK_UNITS( rUnit2c, myThid )
diagCode = 'SM MX '
diagMate = 0
CALL DIAGNOSTICS_ADDTOLIST( diagNum,
I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
CALL DIAGNOSTICS_SETKLEV( diagName, Nlayers , myThid )
C --- PI
WRITE(diagName,'(A4,I1,A3)') 'LaPc',iLa,layers_name(iLa)
diagTitle = 'Layer Probability at tracer points [-]'
diagUnits = '1 '
diagCode = 'SM MX '
diagMate = 0
CALL DIAGNOSTICS_ADDTOLIST( diagNum,
I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
CALL DIAGNOSTICS_SETKLEV( diagName, Nlayers , myThid )
#endif /* LAYERS_THERMODYNAMICS */
ENDIF
ENDDO
c ENDIF
#endif /* ALLOW_DIAGNOSTICS */
#endif /* ALLOW_LAYERS */
RETURN
END