C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/pkg/icefront/icefront_check.F,v 1.5 2010/04/30 22:10:39 yunx Exp $ C $Name: $ #include "ICEFRONT_OPTIONS.h" SUBROUTINE ICEFRONT_CHECK( myThid ) C /==========================================================\ C | SUBROUTINE ICEFRONT_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" #include "ICEFRONT.h" C === Routine arguments === C myThid - Number of this instance of ICEFRONT_CHECK INTEGER myThid #ifdef ALLOW_ICEFRONT C === Local variables === C msgBuf - Informational/error meesage buffer CHARACTER*(MAX_LEN_MBUF) msgBuf _BEGIN_MASTER(myThid) WRITE(msgBuf,'(A)') 'ICEFRONT_CHECK: #define ALLOW_ICEFRONT' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) C So far, ICEFRONT works only with oceanic z-coordinates IF ( buoyancyRelation .NE. 'OCEANIC' ) THEN WRITE(msgBuf,'(A)') & 'ICEFRONT works only with buoyancyRelation = ''OCEANIC''' CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R ICEFRONT_CHECK' ENDIF #ifdef ALLOW_SUBGLACIAL_RUNOFF #ifndef ALLOW_ADDFLUID C-- If there is subglacial runoff, addMass (in main code) should be C turned on by setting #define ALLOW_ADDFLUID in 'CPP_OPTIONS.h' WRITE(msgBuf,'(A,A)') & 'SUBGLACIAL_RUNOFF requires ALLOW_ADDFLUID turned on ', & 'in CPP_OPTIONS.h' CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R ICEFRONT_CHECK' #endif IF (SGrunoffFile .NE. ' ') THEN C-- If there is subglacial runoff, addMass (in main code) should C be turned on by setting selectAddFluid = 1; IF ( selectAddFluid .NE. 1 ) THEN WRITE(msgBuf,'(A)') & 'SUBGLACIAL_RUNOFF requires selectAddFluid = 1' CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R ICEFRONT_CHECK' ENDIF C-- Issue a warning if temp_addMass or salt_addMass are not set. IF ( temp_addMass .EQ. UNSET_RL ) THEN WRITE(msgBuf,'(A)') & 'temp_addMass has not been set; defaults to local value' CALL PRINT_ERROR( msgBuf, myThid ) ENDIF IF ( salt_addMass .EQ. UNSET_RL ) THEN WRITE(msgBuf,'(A)') & 'salt_addMass has not been set; defaults to local value' CALL PRINT_ERROR( msgBuf, myThid ) ENDIF ENDIF #endif /* ALLOW_SUBGLACIAL_RUNOFF*/ CML#ifdef ALLOW_NONHYDROSTATIC CML IF ( nonHydrostatic ) THEN CML WRITE(msgBuf,'(A)') CML & 'Currently ICEFRONT and nonHydrostatic cannot be turned' CML CALL PRINT_ERROR( msgBuf , 1) CML WRITE(msgBuf,'(A)') 'on at the same time' CML CALL PRINT_ERROR( msgBuf , 1) CML STOP 'ABNORMAL END: S/R ICEFRONT_CHECK' CML ENDIF CML#endif /* ALLOW_NONHYDROSTATIC */ _END_MASTER(myThid) #endif /* ALLOW_ICEFRONT */ RETURN END