--- MITgcm/model/src/packages_check.F 2007/11/28 09:26:16 1.42 +++ MITgcm/model/src/packages_check.F 2012/02/04 01:43:40 1.56 @@ -1,4 +1,4 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/src/packages_check.F,v 1.42 2007/11/28 09:26:16 dimitri Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/src/packages_check.F,v 1.56 2012/02/04 01:43:40 heimbach Exp $ C $Name: $ #include "PACKAGES_CONFIG.h" @@ -35,10 +35,18 @@ C !LOCAL VARIABLES: C === Local variables === -C msgBuf :: Informational/error meesage buffer +C msgBuf :: Informational/error message buffer CHARACTER*(MAX_LEN_MBUF) msgBuf CEOP + WRITE(msgBuf,'(A)') + &'== Packages configuration : Check & print summary ==' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(A)') ' ' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + C--- Start with non-standard packages (without or with non standard flag) #ifndef ALLOW_MNC @@ -79,9 +87,7 @@ ENDIF #endif -#ifdef ALLOW_GENERIC_ADVDIFF - IF (useGAD) CALL GAD_CHECK( myThid ) -#else +#ifndef ALLOW_GENERIC_ADVDIFF IF ( tempStepping .OR. saltStepping ) THEN WRITE(msgBuf,'(2A)') & 'PACKAGES_CHECK: cannot step forward Temp or Salt', @@ -107,7 +113,7 @@ #endif #ifndef ALLOW_CD_CODE - IF (useCDscheme) CALL PACKAGES_ERROR_MSG( + IF (useCDscheme) CALL PACKAGES_ERROR_MSG( & 'CD_CODE', 'useCDscheme=.T.', myThid ) #endif @@ -155,13 +161,26 @@ IF (useGMRedi) CALL PACKAGES_ERROR_MSG('GMRedi',' ',myThid) #endif +#ifndef ALLOW_DOWN_SLOPE + IF (useDOWN_SLOPE) + & CALL PACKAGES_ERROR_MSG('DOWN_SLOPE',' ',myThid) +#endif + +#ifdef ALLOW_BBL + IF (useBBL) CALL BBL_CHECK( myThid ) +#else + IF (useBBL) CALL PACKAGES_ERROR_MSG('BBL',' ',myThid) +#endif + #ifdef ALLOW_OBCS IF (useOBCS) CALL OBCS_CHECK( myThid ) #else IF (useOBCS) CALL PACKAGES_ERROR_MSG('OBCS',' ',myThid) #endif -#ifndef ALLOW_EXF +#ifdef ALLOW_EXF + IF (useEXF) CALL EXF_CHECK( myThid ) +#else IF (useEXF) CALL PACKAGES_ERROR_MSG('EXF',' ',myThid) #endif @@ -170,6 +189,14 @@ & 'BULK_FORCE', 'useBulkForce=.T.', myThid ) #endif +#ifndef ALLOW_EBM + IF (useEBM) CALL PACKAGES_ERROR_MSG('EBM',' ',myThid) +#endif + +#ifndef ALLOW_CHEAPAML + IF (useCheapAML) CALL PACKAGES_ERROR_MSG('CheapAML',' ',myThid) +#endif + #ifdef ALLOW_THSICE IF (useThSIce) CALL THSICE_CHECK( myThid ) #else @@ -185,15 +212,19 @@ #endif #ifndef ALLOW_LAND - IF (useLand) CALL PACKAGES_ERROR_MSG('LAND',' ',myThid) + IF (useLand) CALL PACKAGES_ERROR_MSG('Land',' ',myThid) #endif -#ifndef ALLOW_PTRACERS - IF (usePTRACERS) CALL PACKAGES_ERROR_MSG('PTRACERS',' ',myThid) +#ifndef ALLOW_FIZHI + IF (useFizhi) CALL PACKAGES_ERROR_MSG('Fizhi',' ',myThid) #endif -#ifndef ALLOW_MATRIX - IF (useMATRIX) CALL PACKAGES_ERROR_MSG('MATRIX',' ',myThid) +#ifndef ALLOW_GRIDALT + IF (useGridAlt) CALL PACKAGES_ERROR_MSG('GridAlt',' ',myThid) +#endif + +#ifndef ALLOW_PTRACERS + IF (usePTRACERS) CALL PACKAGES_ERROR_MSG('PTRACERS',' ',myThid) #endif #ifdef ALLOW_GCHEM @@ -202,10 +233,18 @@ IF (useGCHEM) CALL PACKAGES_ERROR_MSG('GCHEM',' ',myThid) #endif +#ifndef ALLOW_RBCS + IF (useRBCS) CALL PACKAGES_ERROR_MSG('RBCS',' ',myThid) +#endif + #ifndef ALLOW_OFFLINE IF (useOffLine) CALL PACKAGES_ERROR_MSG('OffLine',' ',myThid) #endif +#ifndef ALLOW_MATRIX + IF (useMATRIX) CALL PACKAGES_ERROR_MSG('MATRIX',' ',myThid) +#endif + #ifndef ALLOW_SHAP_FILT IF (useSHAP_FILT) & CALL PACKAGES_ERROR_MSG( 'SHAP_FILT', ' ', myThid ) @@ -232,12 +271,30 @@ IF (useSEAICE) CALL PACKAGES_ERROR_MSG('SEAICE',' ',myThid) #endif +#ifdef ALLOW_SALT_PLUME + IF (useSALT_PLUME)CALL SALT_PLUME_CHECK( myThid ) +#else + IF (useSALT_PLUME)CALL PACKAGES_ERROR_MSG('SALT_PLUME',' ',myThid) +#endif + #ifdef ALLOW_SHELFICE IF (useShelfIce) CALL SHELFICE_CHECK( myThid ) #else IF (useShelfIce) CALL PACKAGES_ERROR_MSG('ShelfIce',' ',myThid) #endif +#ifdef ALLOW_STREAMICE + IF (useStreamIce) CALL STREAMICE_CHECK( myThid ) +#else + IF (useStreamIce) CALL PACKAGES_ERROR_MSG('StreamIce',' ',myThid) +#endif + +#ifdef ALLOW_ICEFRONT + IF (useICEFRONT) CALL ICEFRONT_CHECK( myThid ) +#else + IF (useICEFRONT) CALL PACKAGES_ERROR_MSG('ICEFRONT',' ',myThid) +#endif + #ifdef ALLOW_AUTODIFF CALL AUTODIFF_CHECK( myThid ) #endif @@ -254,6 +311,10 @@ IF (useGRDCHK) CALL GRDCHK_CHECK( myThid ) #endif +#ifndef ALLOW_SMOOTH + IF (useSMOOTH) CALL PACKAGES_ERROR_MSG('SMOOTH',' ',myThid) +#endif + #ifdef ALLOW_DIAGNOSTICS IF (useDiagnostics) CALL DIAGNOSTICS_CHECK( myThid ) #else @@ -267,16 +328,51 @@ IF (useREGRID) CALL PACKAGES_ERROR_MSG('REGRID',' ',myThid) #endif +#ifdef ALLOW_LAYERS + IF ( useLayers ) CALL LAYERS_CHECK( myThid ) +#else + IF ( useLayers ) CALL PACKAGES_ERROR_MSG('LAYERS',' ',myThid) +#endif /* ALLOW_LAYERS */ + +#ifdef ALLOW_NEST_CHILD + IF (useNEST_CHILD) CALL NEST_CHILD_CHECK( myThid ) +#else + IF (useNEST_CHILD) CALL PACKAGES_ERROR_MSG( + & 'NEST_CHILD',' ',myThid) +#endif + +#ifdef ALLOW_NEST_PARENT + IF (useNEST_PARENT) CALL NEST_PARENT_CHECK( myThid ) +#else + IF (useNEST_PARENT) CALL PACKAGES_ERROR_MSG( + & 'NEST_PARENT',' ',myThid) +#endif + +#ifdef ALLOW_OASIS + IF (useOASIS) CALL OASIS_CHECK( myThid ) +#else + IF (useOASIS) CALL PACKAGES_ERROR_MSG('OASIS',' ',myThid) +#endif + +#ifdef ALLOW_ECCO + CALL ECCO_CHECK( myThid ) +#endif + +#ifndef ALLOW_EMBED_FILES + IF (useEMBED_FILES) CALL PACKAGES_ERROR_MSG( + & 'EMBED_FILES',' ',myThid) +#endif + #ifdef ALLOW_MYPACKAGE IF (useMYPACKAGE) CALL MYPACKAGE_CHECK( myThid ) #else IF (useMYPACKAGE) CALL PACKAGES_ERROR_MSG('MYPACKAGE',' ',myThid) #endif -#ifdef ALLOW_SALT_PLUME - IF (useSALT_PLUME)CALL SALT_PLUME_CHECK( myThid ) -#else - IF (useSALT_PLUME)CALL PACKAGES_ERROR_MSG('SALT_PLUME',' ',myThid) +#ifdef ALLOW_GENERIC_ADVDIFF +C- Check generic AdvDiff setting and related overlap minimum size: +C for this reason, called after other ${pkg}_check S/R + IF (useGAD) CALL GAD_CHECK( myThid ) #endif C--- Exclusive packages (which cannot be used together): @@ -286,6 +382,17 @@ CALL PRINT_ERROR( msgBuf , myThid ) WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ', & ' but cannot be used together => need to select only one.' + CALL PRINT_ERROR( msgBuf , myThid ) + STOP 'ABNORMAL END: S/R PACKAGES_CHECK' + ENDIF + +C--- Exclusive packages (which cannot be used together): + IF ( useDOWN_SLOPE .AND. useBBL ) THEN + WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ', + & 'both useDOWN_SLOPE and useBBL are set' + CALL PRINT_ERROR( msgBuf , myThid ) + WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ', + & ' but cannot be used together => need to select only one.' CALL PRINT_ERROR( msgBuf , myThid ) STOP 'ABNORMAL END: S/R PACKAGES_CHECK' ENDIF