C $Header: /u/gcmpack/MITgcm/pkg/opps/opps_check.F,v 1.2 2004/09/23 12:02:54 mlosch Exp $ C $Name: $ #include "OPPS_OPTIONS.h" SUBROUTINE OPPS_CHECK( myThid ) C /==========================================================\ C | SUBROUTINE OPPS_CHECK | C | o Validate basic package setup and inter-package | C | dependencies. | C \==========================================================/ IMPLICIT NONE C === Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" C === Routine arguments === C myThid - Number of this instance of OPPS_CHECK INTEGER myThid #ifdef ALLOW_OPPS C === Local variables === C msgBuf - Informational/error meesage buffer CHARACTER*(MAX_LEN_MBUF) msgBuf WRITE(msgBuf,'(A)') 'OPPS_CHECK: #define ALLOW_OPPS' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , 1) C So far, OPPS works only with oceanic z-coordinates IF ( buoyancyRelation .NE. 'OCEANIC' ) THEN WRITE(msgBuf,'(A)') & 'OPPS works only with buoyancyRelation = ''OCEANIC''' CALL PRINT_ERROR( msgBuf , 1) STOP 'ABNORMAL END: S/R OPPS_CHECK' ENDIF C OPPS needs convection turned off (will be packaged later) IF (cAdjFreq.NE.0. .OR. & ivdc_kappa.NE.0. ) THEN WRITE(msgBuf,'(A)') 'Some form of convection has been enabled' CALL PRINT_ERROR( msgBuf , 1) STOP 'ABNORMAL END: S/R OPPS_CHECK' ENDIF IF ( useKPP ) THEN WRITE(msgBuf,'(A)') & 'OPPS and KPP cannot be turned on at the same time' CALL PRINT_ERROR( msgBuf , 1) STOP 'ABNORMAL END: S/R OPPS_CHECK' ENDIF IF ( usePP81 ) THEN WRITE(msgBuf,'(A)') & 'OPPS and PP81 cannot be turned on at the same time' CALL PRINT_ERROR( msgBuf , 1) STOP 'ABNORMAL END: S/R OPPS_CHECK' ENDIF IF ( useMY82 ) THEN WRITE(msgBuf,'(A)') & 'OPPS and MY82 cannot be turned on at the same time' CALL PRINT_ERROR( msgBuf , 1) STOP 'ABNORMAL END: S/R OPPS_CHECK' ENDIF IF ( useGGL90 ) THEN WRITE(msgBuf,'(A)') & 'OPPS and GGL90 cannot be turned on at the same time' CALL PRINT_ERROR( msgBuf , 1) STOP 'ABNORMAL END: S/R OPPS_CHECK' ENDIF #endif /* ALLOW_OPPS */ return end