include file: debug.h,4
!-------------------------------------------------------------------------
! NASA/GSFC, Data Assimilation Office, Code 910.3, GEOS/DAS !
!-------------------------------------------------------------------------
!BOP
!
! !INCLUDE: Debug.h --- Debugging Macros
!
! !DESCRIPTION:
!
! The following CPP macros define the calls to the F90ass, Enter
! and Leave in DebugUtilitiesModule.F if the -DDEBUG\_ON option
! is set on the compile line. The line \#include <Debug.h> makes
! use of these facilities. In production compilations where
! DEBUG\_ON is not set, Debug.h defines blank lines and thus
! does not affect code performance.
!
! Note that, unlike other include statements, "Debug.h" must be
! included {\it before} the IMPLICIT NONE statement (since
! "Debug.h" contains a USE DebugUtilitiesModule statement).
!
! Compile options used: {\tt DEBUG\_ON}
!
! !SEE ALSO:
!
! DebugUtilitiesModule.F - Debugging module (implementation)
!
! !REVISION HISTORY:
!
! 97.09.30 Sawyer Creation
! 98.03.09 Sawyer Renamed Debug.h, prepared for Walkthrough
! 98.09.03 Sawyer DEBUG_ON does not work with f90 -cpp on SGI
!
!EOP
!-------------------------------------------------------------------------
!BOC
#if defined( DEBUG_ON ) && !defined( IRIX64 )
!
! This include file is unusual in that it MUST BE PLACED BEFORE
! IMPLICIT NONE, not it the usual location for include files
!
USE DebugUtilitiesModule
, ONLY: DumAssert, DumEnter, DumLeave
#endif
#if defined( DEBUG_ON ) && !defined( IRIX64 )
#define CPP_ASSERT_INFO(cond_) PRINT *, "Assert: ", cond_," l:", __LINE__
#define CPP_ASSERT_F90(cond_) CALL DumAssert
(cond_,__FILE__,__LINE__)
#else
#define CPP_ASSERT_INFO(cond_) ! PRINT *, "Assert: ", Excised Test," l:", __LINE__
#define CPP_ASSERT_F90(cond_) ! CALL DumAssert(Excised Test,__FILE__,__LINE__)
#endif
#if defined( DEBUG_ON ) && !defined( IRIX64 )
#define CPP_ENTER_PROCEDURE(ROUTINE_NAME) CALL DumEnter
( ROUTINE_NAME )
#define CPP_LEAVE_PROCEDURE(ROUTINE_NAME) CALL DumLeave
( ROUTINE_NAME )
#else
#define CPP_ENTER_PROCEDURE(ROUTINE_NAME) ! CALL DumEnter( ROUTINE_NAME )
#define CPP_LEAVE_PROCEDURE(ROUTINE_NAME) ! CALL DumLeave( ROUTINE_NAME )
#endif
!EOC
!-------------------------------------------------------------------------