Back to home page

MITgcm

 
 

    


File indexing completed on 2024-02-01 06:10:09 UTC

view on githubraw file Latest commit 427e24e1 on 2024-01-31 16:50:14 UTC
6d54cf9ca1 Ed H*0001 #include "PACKAGES_CONFIG.h"
2b6828d138 Alis*0002 #include "CPP_OPTIONS.h"
                0003 
9366854e02 Chri*0004 CBOP
                0005 C     !ROUTINE: PACKAGES_CHECK
                0006 C     !INTERFACE:
c859c0e3e6 Patr*0007       SUBROUTINE PACKAGES_CHECK( myThid )
9366854e02 Chri*0008 C     !DESCRIPTION: \bv
                0009 C     *==========================================================*
266d33b714 Jean*0010 C     | SUBROUTINE PACKAGES_CHECK
                0011 C     | o Check runtime activated packages have been built in.
9366854e02 Chri*0012 C     *==========================================================*
266d33b714 Jean*0013 C     | All packages can be selected/deselected at build time
                0014 C     | ( when code is compiled ) and activated/deactivated at
                0015 C     | runtime. This routine does a quick check to trap packages
                0016 C     | that were activated at runtime but that were not compiled
                0017 C     | in at build time.
9366854e02 Chri*0018 C     *==========================================================*
                0019 C     \ev
2b6828d138 Alis*0020 
8f92343d9b Jean*0021 C     !CALLING SEQUENCE:
                0022 C     PACKAGES_CHECK
                0023 C       |
                0024 C       |-- OBCS_CHECK
                0025 C       |
                0026 C       |-- OPPS_CHECK
                0027 C       |
                0028 C       |-- PP81_CHECK
                0029 C       |
                0030 C       |-- KL10_CHECK
                0031 C       |
                0032 C       |-- MY82_CHECK
                0033 C       |
                0034 C       |-- GGL90_CHECK
                0035 C       |
                0036 C       |-- KPP_CHECK
                0037 C       |
                0038 C       |-- GMREDI_CHECK
                0039 C       |
                0040 C       |-- BBL_CHECK
                0041 C       |
                0042 C       |-- EXF_CHECK
                0043 C       |
cc9097e522 Oliv*0044 C       |-- LONGSTEP_CHECK
                0045 C       |
8f92343d9b Jean*0046 C       |-- PTRACERS_CHECK
                0047 C       |
                0048 C       |-- GCHEM_CHECK
                0049 C       |
                0050 C       |-- OFFLINE_CHECK
                0051 C       |
                0052 C       |-- SEAICE_CHECK
                0053 C       |
                0054 C       |-- SHELFICE_CHECK
                0055 C       |
7b8b86ab99 Timo*0056 C       |-- SMOOTH_CHECK
                0057 C       |
8f92343d9b Jean*0058 C       |-- STREAMICE_CHECK
                0059 C       |
                0060 C       |-- ICEFRONT_CHECK
                0061 C       |
                0062 C       |-- THSICE_CHECK
                0063 C       |
                0064 C       |-- LAND_CHECK
                0065 C       |
                0066 C       |-- ATM_PHYS_CHECK
                0067 C       |
                0068 C       |-- AUTODIFF_CHECK
                0069 C       |
                0070 C       |-- CTRL_CHECK
                0071 C       |
                0072 C       |-- COST_CHECK
                0073 C       |
d4b64b229a Jean*0074 C       |-- ECCO_CHECK
                0075 C       |
8f92343d9b Jean*0076 C       |-- GRDCHK_CHECK
                0077 C       |
                0078 C       |-- SBO_CHECK
                0079 C       |
                0080 C       |-- DIAGNOSTICS_CHECK
                0081 C       |
                0082 C       |-- REGRID_CHECK
                0083 C       |
                0084 C       |-- LAYERS_CHECK
                0085 C       |
                0086 C       |-- NEST_CHILD_CHECK
                0087 C       |
                0088 C       |-- NEST_PARENT_CHECK
                0089 C       |
                0090 C       |-- OASIS_CHECK
                0091 C       |
                0092 C       |-- RUNCLOCK_CHECK
                0093 C       |
                0094 C       |-- MYPACKAGE_CHECK
                0095 C       |
                0096 C       |-- GAD_CHECK
                0097 
61e1a786bb Jean*0098 C     !USES:
9366854e02 Chri*0099       IMPLICIT NONE
2b6828d138 Alis*0100 C     === Global variables ===
                0101 #include "SIZE.h"
                0102 #include "EEPARAMS.h"
                0103 #include "PARAMS.h"
                0104 
9366854e02 Chri*0105 C     !INPUT/OUTPUT PARAMETERS:
2b6828d138 Alis*0106 C     === Routine arguments ===
308c696200 Jean*0107 C     myThid :: my Thread Id number
2b6828d138 Alis*0108       INTEGER myThid
                0109 
9366854e02 Chri*0110 C     !LOCAL VARIABLES:
2b6828d138 Alis*0111 C     === Local variables ===
ba9a45d563 Jean*0112 C     msgBuf :: Informational/error message buffer
266d33b714 Jean*0113       CHARACTER*(MAX_LEN_MBUF) msgBuf
9366854e02 Chri*0114 CEOP
2b6828d138 Alis*0115 
308c696200 Jean*0116       _BEGIN_MASTER(myThid)
c19461ac28 Jean*0117       WRITE(msgBuf,'(A)')
                0118      &'== Packages configuration : Check & print summary =='
                0119       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0120      &                    SQUEEZE_RIGHT, myThid )
                0121       WRITE(msgBuf,'(A)') ' '
                0122       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0123      &                    SQUEEZE_RIGHT, myThid )
308c696200 Jean*0124       _END_MASTER(myThid)
c19461ac28 Jean*0125 
266d33b714 Jean*0126 C---  Start with non-standard packages (without or with non standard flag)
                0127 
                0128 #ifndef ALLOW_MNC
                0129       IF (useMNC) THEN
308c696200 Jean*0130         _BEGIN_MASTER(myThid)
                0131         WRITE(msgBuf,'(2A)') '** WARNING **',
266d33b714 Jean*0132      &   ' PACKAGES_CHECK: useMNC is TRUE'
                0133         CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
308c696200 Jean*0134      &                      SQUEEZE_RIGHT, myThid )
                0135         WRITE(msgBuf,'(2A)') '** WARNING **',
266d33b714 Jean*0136      &   ' but pkg/mnc has not been compiled (#undef ALLOW_MNC)'
                0137         CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
308c696200 Jean*0138      &                      SQUEEZE_RIGHT, myThid )
                0139         _END_MASTER(myThid)
266d33b714 Jean*0140       ENDIF
                0141 #endif
                0142 
                0143 #ifndef ALLOW_MOM_VECINV
                0144       IF ( momStepping .AND. vectorInvariantMomentum ) THEN
                0145         WRITE(msgBuf,'(2A)')
                0146      &   'PACKAGES_CHECK: cannot step forward Momentum',
                0147      &   ' without pkg/mom_vecinv'
d85d0a6fc1 Jean*0148         CALL PRINT_ERROR( msgBuf , myThid )
266d33b714 Jean*0149         WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
                0150      &   'Re-compile with pkg "mom_vecinv" in packages.conf'
d85d0a6fc1 Jean*0151         CALL PRINT_ERROR( msgBuf , myThid )
308c696200 Jean*0152         CALL ALL_PROC_DIE( myThid )
266d33b714 Jean*0153         STOP 'ABNORMAL END: S/R PACKAGES_CHECK'
                0154       ENDIF
                0155 #endif
                0156 #ifndef ALLOW_MOM_FLUXFORM
                0157       IF ( momStepping .AND. .NOT.vectorInvariantMomentum ) THEN
                0158         WRITE(msgBuf,'(2A)')
                0159      &   'PACKAGES_CHECK: cannot step forward Momentum',
                0160      &   ' without pkg/mom_fluxform'
d85d0a6fc1 Jean*0161         CALL PRINT_ERROR( msgBuf , myThid )
266d33b714 Jean*0162         WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
                0163      &   'Re-compile with pkg "mom_fluxform" in packages.conf'
d85d0a6fc1 Jean*0164         CALL PRINT_ERROR( msgBuf , myThid )
308c696200 Jean*0165         CALL ALL_PROC_DIE( myThid )
266d33b714 Jean*0166         STOP 'ABNORMAL END: S/R PACKAGES_CHECK'
                0167       ENDIF
1eeb28fe07 Alis*0168 #endif
                0169 
608c101f3d Jean*0170 #ifndef ALLOW_GENERIC_ADVDIFF
266d33b714 Jean*0171       IF ( tempStepping .OR. saltStepping ) THEN
                0172         WRITE(msgBuf,'(2A)')
                0173      &  'PACKAGES_CHECK: cannot step forward Temp or Salt',
                0174      &  ' without pkg/generic_advdiff'
d85d0a6fc1 Jean*0175         CALL PRINT_ERROR( msgBuf , myThid )
266d33b714 Jean*0176         WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
                0177      &  'Re-compile with pkg "generic_advdiff" in packages.conf'
d85d0a6fc1 Jean*0178         CALL PRINT_ERROR( msgBuf , myThid )
308c696200 Jean*0179         CALL ALL_PROC_DIE( myThid )
266d33b714 Jean*0180         STOP 'ABNORMAL END: S/R PACKAGES_CHECK'
                0181       ENDIF
                0182 #endif
                0183 
                0184 #ifndef ALLOW_MONITOR
                0185 C     If monitorFreq is finite, make sure the pkg/monitor is being compiled
d85d0a6fc1 Jean*0186       IF (monitorFreq.NE.0.) CALL PACKAGES_ERROR_MSG(
                0187      &                  'MONITOR', 'monitorFreq <> 0', myThid )
266d33b714 Jean*0188 #endif
                0189 
                0190 #ifndef ALLOW_TIMEAVE
                0191 C     If taveFreq is finite, make sure the pkg/timeave is being compiled
d85d0a6fc1 Jean*0192       IF (taveFreq.NE.0.) CALL PACKAGES_ERROR_MSG(
                0193      &                  'TIMEAVE', 'taveFreq <> 0', myThid )
                0194 #endif
                0195 
                0196 #ifndef ALLOW_CD_CODE
77a55fbebd Patr*0197        IF (useCDscheme) CALL PACKAGES_ERROR_MSG(
d85d0a6fc1 Jean*0198      &                  'CD_CODE', 'useCDscheme=.T.', myThid )
266d33b714 Jean*0199 #endif
                0200 
                0201 C---  Continue with standard packages (with standard usePKG flag)
                0202 
5593e3ac8c Jean*0203 #ifdef ALLOW_OBCS
                0204       IF (useOBCS) CALL OBCS_CHECK( myThid )
266d33b714 Jean*0205 #else
5593e3ac8c Jean*0206       IF (useOBCS) CALL PACKAGES_ERROR_MSG('OBCS',' ',myThid)
9da3c4e8e8 Jean*0207 #endif
                0208 
5593e3ac8c Jean*0209 #ifndef ALLOW_SHAP_FILT
                0210       IF (useSHAP_FILT)
                0211      &   CALL PACKAGES_ERROR_MSG( 'SHAP_FILT', ' ', myThid )
                0212 #endif
                0213 
                0214 #ifndef ALLOW_ZONAL_FILT
                0215       IF (useZONAL_FILT)
                0216      &   CALL PACKAGES_ERROR_MSG( 'ZONAL_FILT', ' ', myThid )
                0217 #endif
                0218 
                0219 #ifdef ALLOW_OPPS
                0220       IF (useOPPS) CALL OPPS_CHECK( myThid )
2b6828d138 Alis*0221 #else
5593e3ac8c Jean*0222       IF (useOPPS) CALL PACKAGES_ERROR_MSG('OPPS',' ',myThid)
2b6828d138 Alis*0223 #endif
                0224 
e864122ae8 Mart*0225 #ifdef ALLOW_PP81
                0226       IF (usePP81) CALL PP81_CHECK( myThid )
                0227 #else
d85d0a6fc1 Jean*0228       IF (usePP81) CALL PACKAGES_ERROR_MSG('PP81',' ',myThid)
e864122ae8 Mart*0229 #endif
                0230 
d8d1486ca1 Jean*0231 #ifdef ALLOW_KL10
                0232       IF (useKL10) CALL KL10_CHECK( myThid )
                0233 #else
                0234       IF (useKL10) CALL PACKAGES_ERROR_MSG('KL10',' ',myThid)
                0235 #endif
                0236 
e864122ae8 Mart*0237 #ifdef ALLOW_MY82
                0238       IF (useMY82) CALL MY82_CHECK( myThid )
                0239 #else
d85d0a6fc1 Jean*0240       IF (useMY82) CALL PACKAGES_ERROR_MSG('MY82',' ',myThid)
e864122ae8 Mart*0241 #endif
                0242 
69a7b27187 Mart*0243 #ifdef ALLOW_GGL90
                0244       IF (useGGL90) CALL GGL90_CHECK( myThid )
                0245 #else
d85d0a6fc1 Jean*0246       IF (useGGL90) CALL PACKAGES_ERROR_MSG('GGL90',' ',myThid)
69a7b27187 Mart*0247 #endif
                0248 
5593e3ac8c Jean*0249 #ifdef ALLOW_KPP
                0250       IF (useKPP) CALL KPP_CHECK( myThid )
69a7b27187 Mart*0251 #else
5593e3ac8c Jean*0252       IF (useKPP) CALL PACKAGES_ERROR_MSG('KPP',' ',myThid)
69a7b27187 Mart*0253 #endif
                0254 
d9cbf1fa03 Patr*0255 #ifdef ALLOW_GMREDI
c859c0e3e6 Patr*0256       IF (useGMRedi) CALL GMREDI_CHECK( myThid )
d9cbf1fa03 Patr*0257 #else
d85d0a6fc1 Jean*0258       IF (useGMRedi) CALL PACKAGES_ERROR_MSG('GMRedi',' ',myThid)
2b6828d138 Alis*0259 #endif
                0260 
15338fa568 Dimi*0261 #ifdef ALLOW_BBL
                0262       IF (useBBL) CALL BBL_CHECK( myThid )
                0263 #else
                0264       IF (useBBL) CALL PACKAGES_ERROR_MSG('BBL',' ',myThid)
                0265 #endif
                0266 
5593e3ac8c Jean*0267 #ifndef ALLOW_DOWN_SLOPE
                0268       IF (useDOWN_SLOPE)
                0269      &            CALL PACKAGES_ERROR_MSG('DOWN_SLOPE',' ',myThid)
d85d0a6fc1 Jean*0270 #endif
                0271 
5c264f5173 Jean*0272 #ifndef ALLOW_CAL
                0273       IF (useCAL) CALL PACKAGES_ERROR_MSG('CAL',' ',myThid)
                0274 #endif
                0275 
3529a6b907 Jean*0276 #ifdef ALLOW_EXF
                0277       IF (useEXF) CALL EXF_CHECK( myThid )
                0278 #else
d85d0a6fc1 Jean*0279       IF (useEXF) CALL PACKAGES_ERROR_MSG('EXF',' ',myThid)
fb481a83c2 Alis*0280 #endif
                0281 
e65934771e Jean*0282 #ifndef ALLOW_BULK_FORCE
d85d0a6fc1 Jean*0283       IF (useBulkForce) CALL PACKAGES_ERROR_MSG(
                0284      &                  'BULK_FORCE', 'useBulkForce=.T.', myThid )
e65934771e Jean*0285 #endif
                0286 
58d0aa8f35 Jean*0287 #ifndef ALLOW_EBM
                0288       IF (useEBM) CALL PACKAGES_ERROR_MSG('EBM',' ',myThid)
                0289 #endif
                0290 
                0291 #ifndef ALLOW_CHEAPAML
                0292       IF (useCheapAML) CALL PACKAGES_ERROR_MSG('CheapAML',' ',myThid)
                0293 #endif
                0294 
5593e3ac8c Jean*0295 #ifndef ALLOW_FLT
                0296       IF (useFLT) CALL PACKAGES_ERROR_MSG('FLT',' ',myThid)
58d0aa8f35 Jean*0297 #endif
                0298 
cc9097e522 Oliv*0299 #ifdef ALLOW_LONGSTEP
                0300       IF (usePTRACERS) CALL LONGSTEP_CHECK( myThid )
                0301 #endif
                0302 
f22b775377 Jean*0303 #ifdef ALLOW_PTRACERS
                0304       IF (usePTRACERS) CALL PTRACERS_CHECK( myThid )
                0305 #else
58d0aa8f35 Jean*0306       IF (usePTRACERS) CALL PACKAGES_ERROR_MSG('PTRACERS',' ',myThid)
f6c3f3b6f4 Jean*0307 #endif
                0308 
0a90236bb2 Mart*0309 #ifdef ALLOW_GCHEM
                0310       IF (useGCHEM) CALL GCHEM_CHECK( myThid )
                0311 #else
d85d0a6fc1 Jean*0312       IF (useGCHEM) CALL PACKAGES_ERROR_MSG('GCHEM',' ',myThid)
0a90236bb2 Mart*0313 #endif
                0314 
58d0aa8f35 Jean*0315 #ifndef ALLOW_RBCS
                0316       IF (useRBCS) CALL PACKAGES_ERROR_MSG('RBCS',' ',myThid)
                0317 #endif
                0318 
b55b62ef62 Jean*0319 #ifdef ALLOW_OFFLINE
                0320       IF (useOffLine) CALL OFFLINE_CHECK( myThid )
                0321 #else
d85d0a6fc1 Jean*0322       IF (useOffLine) CALL PACKAGES_ERROR_MSG('OffLine',' ',myThid)
f4b031356b Jean*0323 #endif
                0324 
58d0aa8f35 Jean*0325 #ifndef ALLOW_MATRIX
                0326       IF (useMATRIX) CALL PACKAGES_ERROR_MSG('MATRIX',' ',myThid)
                0327 #endif
                0328 
5593e3ac8c Jean*0329 #ifndef ALLOW_FRAZIL
                0330       IF (useFRAZIL) CALL PACKAGES_ERROR_MSG('FRAZIL',' ',myThid)
6060ec2938 Dimi*0331 #endif
                0332 
5ee2971ab8 Patr*0333 #ifdef ALLOW_SEAICE
                0334       IF (useSEAICE) CALL SEAICE_CHECK( myThid )
                0335 #else
d85d0a6fc1 Jean*0336       IF (useSEAICE) CALL PACKAGES_ERROR_MSG('SEAICE',' ',myThid)
5ee2971ab8 Patr*0337 #endif
                0338 
58d0aa8f35 Jean*0339 #ifdef ALLOW_SALT_PLUME
                0340       IF (useSALT_PLUME)CALL SALT_PLUME_CHECK( myThid )
                0341 #else
                0342       IF (useSALT_PLUME)CALL PACKAGES_ERROR_MSG('SALT_PLUME',' ',myThid)
                0343 #endif
                0344 
a6cbc7a360 Mart*0345 #ifdef ALLOW_SHELFICE
                0346       IF (useShelfIce) CALL SHELFICE_CHECK( myThid )
                0347 #else
d85d0a6fc1 Jean*0348       IF (useShelfIce) CALL PACKAGES_ERROR_MSG('ShelfIce',' ',myThid)
77a55fbebd Patr*0349 #endif
                0350 
7b8b86ab99 Timo*0351 #ifdef ALLOW_SMOOTH
                0352       IF (useSmooth) CALL SMOOTH_CHECK( myThid )
                0353 #else
                0354       IF (useSmooth) CALL PACKAGES_ERROR_MSG('Smooth',' ',myThid)
                0355 #endif
                0356 
77a55fbebd Patr*0357 #ifdef ALLOW_STREAMICE
                0358       IF (useStreamIce) CALL STREAMICE_CHECK( myThid )
                0359 #else
                0360       IF (useStreamIce) CALL PACKAGES_ERROR_MSG('StreamIce',' ',myThid)
a6cbc7a360 Mart*0361 #endif
                0362 
5da8ce63fa Dimi*0363 #ifdef ALLOW_ICEFRONT
                0364       IF (useICEFRONT) CALL ICEFRONT_CHECK( myThid )
                0365 #else
                0366       IF (useICEFRONT) CALL PACKAGES_ERROR_MSG('ICEFRONT',' ',myThid)
                0367 #endif
                0368 
5593e3ac8c Jean*0369 #ifdef ALLOW_THSICE
                0370       IF (useThSIce) CALL THSICE_CHECK( myThid )
                0371 #else
                0372       IF (useThSIce) CALL PACKAGES_ERROR_MSG('ThSIce',' ',myThid)
                0373 #endif
                0374 
b8e989b7a2 Jean*0375 #ifdef ALLOW_LAND
                0376       IF (useLand) CALL LAND_CHECK( myThid )
                0377 #else
5593e3ac8c Jean*0378       IF (useLand) CALL PACKAGES_ERROR_MSG('Land',' ',myThid)
                0379 #endif
                0380 
                0381 #ifndef ALLOW_ATM2D
427e24e121 Jean*0382       IF (useATM2d) CALL PACKAGES_ERROR_MSG('ATM2d',' ',myThid)
5593e3ac8c Jean*0383 #endif
                0384 
                0385 #ifndef ALLOW_AIM
                0386       IF (useAIM) CALL PACKAGES_ERROR_MSG('AIM',' ',myThid)
                0387 #endif
                0388 
3902f6236f Jean*0389 #ifdef ALLOW_ATM_PHYS
                0390       IF (useAtm_Phys) CALL ATM_PHYS_CHECK( myThid )
                0391 #else
5593e3ac8c Jean*0392       IF (useAtm_Phys) CALL PACKAGES_ERROR_MSG('Atm_Phys',' ',myThid)
                0393 #endif
                0394 
                0395 #ifndef ALLOW_FIZHI
                0396       IF (useFizhi) CALL PACKAGES_ERROR_MSG('Fizhi',' ',myThid)
                0397 #endif
                0398 
                0399 #ifndef ALLOW_GRIDALT
                0400       IF (useGridAlt) CALL PACKAGES_ERROR_MSG('GridAlt',' ',myThid)
                0401 #endif
                0402 
edd57506ae Patr*0403 #ifdef ALLOW_AUTODIFF
61e1a786bb Jean*0404       IF (useAUTODIFF) CALL AUTODIFF_CHECK( myThid )
170b439592 Patr*0405 #endif
                0406 
                0407 #ifdef ALLOW_CTRL
a424c359ed Gael*0408       IF (useCTRL) CALL CTRL_CHECK( myThid )
170b439592 Patr*0409 #endif
                0410 
                0411 #ifdef ALLOW_COST
5d7fa54ba5 Patr*0412       CALL COST_CHECK( myThid )
                0413 #endif
                0414 
d4b64b229a Jean*0415 #ifdef ALLOW_ECCO
                0416       IF (useECCO) CALL ECCO_CHECK( myThid )
63499de982 Patr*0417 #endif
                0418 
58d0aa8f35 Jean*0419 #ifndef ALLOW_SMOOTH
                0420       IF (useSMOOTH) CALL PACKAGES_ERROR_MSG('SMOOTH',' ',myThid)
                0421 #endif
                0422 
e994210c2e Gael*0423 #ifndef ALLOW_PROFILES
                0424       IF (usePROFILES) CALL PACKAGES_ERROR_MSG('PROFILES',' ',myThid)
                0425 #endif
                0426 
d4b64b229a Jean*0427 #ifdef ALLOW_GRDCHK
                0428       IF (useGrdChk) CALL GRDCHK_CHECK( myThid )
                0429 #else
                0430       IF (useGrdChk) CALL PACKAGES_ERROR_MSG('GrdChk',' ',myThid)
                0431 #endif
                0432 
5593e3ac8c Jean*0433 #ifdef ALLOW_SBO
                0434       IF (useSBO) CALL SBO_CHECK( myThid )
                0435 #else
                0436       IF (useSBO) CALL PACKAGES_ERROR_MSG('SBO',' ',myThid)
                0437 #endif
                0438 
48121039da Jean*0439 #ifdef ALLOW_DIAGNOSTICS
                0440       IF (useDiagnostics) CALL DIAGNOSTICS_CHECK( myThid )
                0441 #else
f4b031356b Jean*0442       IF (useDiagnostics)
d85d0a6fc1 Jean*0443      &   CALL PACKAGES_ERROR_MSG( 'Diagnostics', ' ', myThid )
48121039da Jean*0444 #endif
                0445 
39cebd8084 Ed H*0446 #ifdef ALLOW_REGRID
                0447       IF (useREGRID) CALL REGRID_CHECK( myThid )
                0448 #else
d85d0a6fc1 Jean*0449       IF (useREGRID) CALL PACKAGES_ERROR_MSG('REGRID',' ',myThid)
39cebd8084 Ed H*0450 #endif
                0451 
dfc9bc933c Ryan*0452 #ifdef ALLOW_LAYERS
                0453       IF ( useLayers ) CALL LAYERS_CHECK( myThid )
                0454 #else
                0455       IF ( useLayers ) CALL PACKAGES_ERROR_MSG('LAYERS',' ',myThid)
                0456 #endif /* ALLOW_LAYERS */
                0457 
ba9a45d563 Jean*0458 #ifdef ALLOW_NEST_CHILD
                0459       IF (useNEST_CHILD) CALL NEST_CHILD_CHECK( myThid )
                0460 #else
                0461       IF (useNEST_CHILD) CALL PACKAGES_ERROR_MSG(
                0462      & 'NEST_CHILD',' ',myThid)
                0463 #endif
                0464 
                0465 #ifdef ALLOW_NEST_PARENT
                0466       IF (useNEST_PARENT) CALL NEST_PARENT_CHECK( myThid )
                0467 #else
                0468       IF (useNEST_PARENT) CALL PACKAGES_ERROR_MSG(
                0469      & 'NEST_PARENT',' ',myThid)
                0470 #endif
                0471 
608c101f3d Jean*0472 #ifdef ALLOW_OASIS
                0473       IF (useOASIS) CALL OASIS_CHECK( myThid )
                0474 #else
                0475       IF (useOASIS) CALL PACKAGES_ERROR_MSG('OASIS',' ',myThid)
                0476 #endif
                0477 
5593e3ac8c Jean*0478 #ifdef ALLOW_RUNCLOCK
                0479       IF (useRunClock) CALL RUNCLOCK_CHECK( myThid )
                0480 #else
                0481       IF (useRunClock) CALL PACKAGES_ERROR_MSG('RunClock',' ',myThid)
608c101f3d Jean*0482 #endif
                0483 
58d0aa8f35 Jean*0484 #ifndef ALLOW_EMBED_FILES
                0485       IF (useEMBED_FILES) CALL PACKAGES_ERROR_MSG(
                0486      &                                  'EMBED_FILES',' ',myThid)
                0487 #endif
                0488 
0dc94a8572 Patr*0489 #ifdef ALLOW_MYPACKAGE
                0490       IF (useMYPACKAGE) CALL MYPACKAGE_CHECK( myThid )
                0491 #else
d85d0a6fc1 Jean*0492       IF (useMYPACKAGE) CALL PACKAGES_ERROR_MSG('MYPACKAGE',' ',myThid)
0dc94a8572 Patr*0493 #endif
                0494 
608c101f3d Jean*0495 #ifdef ALLOW_GENERIC_ADVDIFF
                0496 C-    Check generic AdvDiff setting and related overlap minimum size:
                0497 C     for this reason, called after other ${pkg}_check S/R
                0498       IF (useGAD) CALL GAD_CHECK( myThid )
dfc9bc933c Ryan*0499 #endif
95b5f9e47f Patr*0500 
d85d0a6fc1 Jean*0501 C---  Exclusive packages (which cannot be used together):
                0502       IF ( useEXF .AND. useBulkForce ) THEN
                0503         WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
                0504      &  'both useEXF and useBulkForce are set'
                0505         CALL PRINT_ERROR( msgBuf , myThid )
                0506         WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
                0507      &  ' but cannot be used together => need to select only one.'
                0508         CALL PRINT_ERROR( msgBuf , myThid )
308c696200 Jean*0509         CALL ALL_PROC_DIE( myThid )
d85d0a6fc1 Jean*0510         STOP 'ABNORMAL END: S/R PACKAGES_CHECK'
                0511       ENDIF
                0512 
15338fa568 Dimi*0513 C---  Exclusive packages (which cannot be used together):
                0514       IF ( useDOWN_SLOPE .AND. useBBL ) THEN
                0515         WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
                0516      &  'both useDOWN_SLOPE and useBBL are set'
                0517         CALL PRINT_ERROR( msgBuf , myThid )
                0518         WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
                0519      &  ' but cannot be used together => need to select only one.'
                0520         CALL PRINT_ERROR( msgBuf , myThid )
308c696200 Jean*0521         CALL ALL_PROC_DIE( myThid )
15338fa568 Dimi*0522         STOP 'ABNORMAL END: S/R PACKAGES_CHECK'
                0523       ENDIF
                0524 
fb481a83c2 Alis*0525       RETURN
                0526       END