Back to home page

MITgcm

 
 

    


File indexing completed on 2024-05-25 05:10:19 UTC

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