C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_is_on.F,v 1.4 2006/10/17 18:56:31 jmc Exp $
C $Name: $
#include "DIAG_OPTIONS.h"
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
CBOP 0
C !ROUTINE: DIAGNOSTICS_IS_ON
C !INTERFACE:
LOGICAL FUNCTION DIAGNOSTICS_IS_ON( diagName, myThid )
C !DESCRIPTION:
C *==========================================================*
C | FUNCTION DIAGNOSTIC_IS_ON
C | o Return TRUE if diagnostics "diagName" is Active
C *==========================================================*
C !USES:
IMPLICIT NONE
#include "EEPARAMS.h"
#include "SIZE.h"
#include "DIAGNOSTICS_SIZE.h"
#include "DIAGNOSTICS.h"
C !INPUT PARAMETERS:
C diagName :: diagnostic identificator name (8 characters long)
C myThid :: my thread Id number
CHARACTER*8 diagName
INTEGER myThid
CEOP
C !LOCAL VARIABLES:
INTEGER n,m
INTEGER ip,iSp
INTEGER bi,bj
DIAGNOSTICS_IS_ON = .FALSE.
bi = myBxLo(myThid)
bj = myByLo(myThid)
C- search for this diag. in the active 2D/3D diagnostics list
DO n=1,nlists
DO m=1,nActive(n)
IF ( diagName.EQ.flds(m,n) .AND. idiag(m,n).NE.0 ) THEN
ip = ABS(idiag(m,n))
IF ( ndiag(ip,bi,bj).GE.0 ) DIAGNOSTICS_IS_ON = .TRUE.
ENDIF
ENDDO
ENDDO
IF ( .NOT.DIAGNOSTICS_IS_ON ) THEN
C- search for this diag. in the active statistics-diagnostics list
DO n=1,diagSt_nbLists
DO m=1,diagSt_nbActv(n)
IF ( diagName.EQ.diagSt_Flds(m,n)
& .AND.iSdiag(m,n).NE.0 ) THEN
iSp = ABS(iSdiag(m,n))
IF (qSdiag(0,0,iSp,bi,bj).GE.0.) DIAGNOSTICS_IS_ON = .TRUE.
ENDIF
ENDDO
ENDDO
ENDIF
RETURN
END