Back to home page

MITgcm

 
 

    


File indexing completed on 2025-08-09 05:08:04 UTC

view on githubraw file Latest commit 5e44d2ea on 2025-08-09 03:50:44 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
5e44d2ea81 Jean*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'
5e44d2ea81 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'
5e44d2ea81 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'
5e44d2ea81 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'
5e44d2ea81 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'
5e44d2ea81 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'
5e44d2ea81 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
5e44d2ea81 Jean*0188       IF ( monitorFreq.NE.zeroRL ) CALL PACKAGES_ERROR_MSG(
d85d0a6fc1 Jean*0189      &                  'MONITOR', 'monitorFreq <> 0', myThid )
266d33b714 Jean*0190 #endif
                0191 
5e44d2ea81 Jean*0192       IF ( taveFreq.NE.zeroRL ) THEN
                0193 #ifdef ALLOW_TIMEAVE
                0194         WRITE(msgBuf,'(2A)') '** Warning **',
                0195      &   ' PACKAGES_CHECK: "pkg/timeave" no longer maintained'
                0196         CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
                0197      &                      SQUEEZE_RIGHT, myThid )
                0198         WRITE(msgBuf,'(2A)') '** Warning **',
                0199      &   ' PACKAGES_CHECK: and will be removed in future release'
                0200         CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
                0201      &                      SQUEEZE_RIGHT, myThid )
                0202 #else
266d33b714 Jean*0203 C     If taveFreq is finite, make sure the pkg/timeave is being compiled
5e44d2ea81 Jean*0204         CALL PACKAGES_ERROR_MSG( 'TIMEAVE', 'taveFreq <> 0', myThid )
d85d0a6fc1 Jean*0205 #endif
5e44d2ea81 Jean*0206       ENDIF
d85d0a6fc1 Jean*0207 
                0208 #ifndef ALLOW_CD_CODE
5e44d2ea81 Jean*0209        IF ( useCDscheme ) CALL PACKAGES_ERROR_MSG(
d85d0a6fc1 Jean*0210      &                  'CD_CODE', 'useCDscheme=.T.', myThid )
266d33b714 Jean*0211 #endif
                0212 
                0213 C---  Continue with standard packages (with standard usePKG flag)
                0214 
5593e3ac8c Jean*0215 #ifdef ALLOW_OBCS
5e44d2ea81 Jean*0216       IF ( useOBCS ) CALL OBCS_CHECK( myThid )
266d33b714 Jean*0217 #else
5e44d2ea81 Jean*0218       IF ( useOBCS ) CALL PACKAGES_ERROR_MSG( 'OBCS', ' ', myThid )
9da3c4e8e8 Jean*0219 #endif
                0220 
5593e3ac8c Jean*0221 #ifndef ALLOW_SHAP_FILT
5e44d2ea81 Jean*0222       IF ( useSHAP_FILT ) CALL PACKAGES_ERROR_MSG(
                0223      &                  'SHAP_FILT', ' ', myThid )
5593e3ac8c Jean*0224 #endif
                0225 
                0226 #ifndef ALLOW_ZONAL_FILT
5e44d2ea81 Jean*0227       IF ( useZONAL_FILT )
5593e3ac8c Jean*0228      &   CALL PACKAGES_ERROR_MSG( 'ZONAL_FILT', ' ', myThid )
                0229 #endif
                0230 
                0231 #ifdef ALLOW_OPPS
5e44d2ea81 Jean*0232       IF ( useOPPS ) CALL OPPS_CHECK( myThid )
2b6828d138 Alis*0233 #else
5e44d2ea81 Jean*0234       IF ( useOPPS ) CALL PACKAGES_ERROR_MSG( 'OPPS', ' ', myThid )
2b6828d138 Alis*0235 #endif
                0236 
e864122ae8 Mart*0237 #ifdef ALLOW_PP81
5e44d2ea81 Jean*0238       IF ( usePP81 ) CALL PP81_CHECK( myThid )
e864122ae8 Mart*0239 #else
5e44d2ea81 Jean*0240       IF ( usePP81 ) CALL PACKAGES_ERROR_MSG( 'PP81', ' ', myThid )
e864122ae8 Mart*0241 #endif
                0242 
d8d1486ca1 Jean*0243 #ifdef ALLOW_KL10
5e44d2ea81 Jean*0244       IF ( useKL10 ) CALL KL10_CHECK( myThid )
d8d1486ca1 Jean*0245 #else
5e44d2ea81 Jean*0246       IF ( useKL10 ) CALL PACKAGES_ERROR_MSG( 'KL10', ' ', myThid )
d8d1486ca1 Jean*0247 #endif
                0248 
e864122ae8 Mart*0249 #ifdef ALLOW_MY82
5e44d2ea81 Jean*0250       IF ( useMY82 ) CALL MY82_CHECK( myThid )
e864122ae8 Mart*0251 #else
5e44d2ea81 Jean*0252       IF ( useMY82 ) CALL PACKAGES_ERROR_MSG( 'MY82', ' ', myThid )
e864122ae8 Mart*0253 #endif
                0254 
69a7b27187 Mart*0255 #ifdef ALLOW_GGL90
5e44d2ea81 Jean*0256       IF ( useGGL90 ) CALL GGL90_CHECK( myThid )
69a7b27187 Mart*0257 #else
5e44d2ea81 Jean*0258       IF ( useGGL90 ) CALL PACKAGES_ERROR_MSG( 'GGL90', ' ', myThid )
69a7b27187 Mart*0259 #endif
                0260 
5593e3ac8c Jean*0261 #ifdef ALLOW_KPP
5e44d2ea81 Jean*0262       IF ( useKPP ) CALL KPP_CHECK( myThid )
69a7b27187 Mart*0263 #else
5e44d2ea81 Jean*0264       IF ( useKPP ) CALL PACKAGES_ERROR_MSG( 'KPP', ' ', myThid )
69a7b27187 Mart*0265 #endif
                0266 
d9cbf1fa03 Patr*0267 #ifdef ALLOW_GMREDI
5e44d2ea81 Jean*0268       IF ( useGMRedi ) CALL GMREDI_CHECK( myThid )
d9cbf1fa03 Patr*0269 #else
5e44d2ea81 Jean*0270       IF ( useGMRedi ) CALL PACKAGES_ERROR_MSG( 'GMRedi', ' ', myThid )
2b6828d138 Alis*0271 #endif
                0272 
15338fa568 Dimi*0273 #ifdef ALLOW_BBL
5e44d2ea81 Jean*0274       IF ( useBBL ) CALL BBL_CHECK( myThid )
15338fa568 Dimi*0275 #else
5e44d2ea81 Jean*0276       IF ( useBBL ) CALL PACKAGES_ERROR_MSG( 'BBL', ' ', myThid )
15338fa568 Dimi*0277 #endif
                0278 
5593e3ac8c Jean*0279 #ifndef ALLOW_DOWN_SLOPE
5e44d2ea81 Jean*0280       IF ( useDOWN_SLOPE ) CALL PACKAGES_ERROR_MSG(
                0281      &                  'DOWN_SLOPE', ' ', myThid )
d85d0a6fc1 Jean*0282 #endif
                0283 
5c264f5173 Jean*0284 #ifndef ALLOW_CAL
5e44d2ea81 Jean*0285       IF ( useCAL ) CALL PACKAGES_ERROR_MSG( 'CAL', ' ', myThid )
5c264f5173 Jean*0286 #endif
                0287 
3529a6b907 Jean*0288 #ifdef ALLOW_EXF
5e44d2ea81 Jean*0289       IF ( useEXF ) CALL EXF_CHECK( myThid )
3529a6b907 Jean*0290 #else
5e44d2ea81 Jean*0291       IF ( useEXF ) CALL PACKAGES_ERROR_MSG( 'EXF', ' ', myThid )
fb481a83c2 Alis*0292 #endif
                0293 
e65934771e Jean*0294 #ifndef ALLOW_BULK_FORCE
5e44d2ea81 Jean*0295       IF ( useBulkForce ) CALL PACKAGES_ERROR_MSG(
d85d0a6fc1 Jean*0296      &                  'BULK_FORCE', 'useBulkForce=.T.', myThid )
e65934771e Jean*0297 #endif
                0298 
58d0aa8f35 Jean*0299 #ifndef ALLOW_EBM
5e44d2ea81 Jean*0300       IF ( useEBM ) CALL PACKAGES_ERROR_MSG( 'EBM', ' ', myThid )
58d0aa8f35 Jean*0301 #endif
                0302 
                0303 #ifndef ALLOW_CHEAPAML
5e44d2ea81 Jean*0304       IF ( useCheapAML ) CALL PACKAGES_ERROR_MSG(
                0305      &                  'CheapAML', ' ', myThid )
58d0aa8f35 Jean*0306 #endif
                0307 
5593e3ac8c Jean*0308 #ifndef ALLOW_FLT
5e44d2ea81 Jean*0309       IF ( useFLT ) CALL PACKAGES_ERROR_MSG( 'FLT', ' ', myThid )
58d0aa8f35 Jean*0310 #endif
                0311 
cc9097e522 Oliv*0312 #ifdef ALLOW_LONGSTEP
5e44d2ea81 Jean*0313       IF ( usePTRACERS ) CALL LONGSTEP_CHECK( myThid )
cc9097e522 Oliv*0314 #endif
                0315 
f22b775377 Jean*0316 #ifdef ALLOW_PTRACERS
5e44d2ea81 Jean*0317       IF ( usePTRACERS ) CALL PTRACERS_CHECK( myThid )
f22b775377 Jean*0318 #else
5e44d2ea81 Jean*0319       IF ( usePTRACERS ) CALL PACKAGES_ERROR_MSG(
                0320      &                  'PTRACERS', ' ', myThid )
f6c3f3b6f4 Jean*0321 #endif
                0322 
0a90236bb2 Mart*0323 #ifdef ALLOW_GCHEM
5e44d2ea81 Jean*0324       IF ( useGCHEM ) CALL GCHEM_CHECK( myThid )
0a90236bb2 Mart*0325 #else
5e44d2ea81 Jean*0326       IF ( useGCHEM ) CALL PACKAGES_ERROR_MSG( 'GCHEM', ' ', myThid )
0a90236bb2 Mart*0327 #endif
                0328 
58d0aa8f35 Jean*0329 #ifndef ALLOW_RBCS
5e44d2ea81 Jean*0330       IF ( useRBCS ) CALL PACKAGES_ERROR_MSG( 'RBCS', ' ', myThid )
58d0aa8f35 Jean*0331 #endif
                0332 
b55b62ef62 Jean*0333 #ifdef ALLOW_OFFLINE
5e44d2ea81 Jean*0334       IF ( useOffLine ) CALL OFFLINE_CHECK( myThid )
b55b62ef62 Jean*0335 #else
5e44d2ea81 Jean*0336       IF ( useOffLine ) CALL PACKAGES_ERROR_MSG(
                0337      &                  'OffLine', ' ', myThid )
f4b031356b Jean*0338 #endif
                0339 
58d0aa8f35 Jean*0340 #ifndef ALLOW_MATRIX
5e44d2ea81 Jean*0341       IF ( useMATRIX ) CALL PACKAGES_ERROR_MSG( 'MATRIX', ' ', myThid )
58d0aa8f35 Jean*0342 #endif
                0343 
5593e3ac8c Jean*0344 #ifndef ALLOW_FRAZIL
5e44d2ea81 Jean*0345       IF ( useFRAZIL ) CALL PACKAGES_ERROR_MSG( 'FRAZIL', ' ', myThid )
6060ec2938 Dimi*0346 #endif
                0347 
5ee2971ab8 Patr*0348 #ifdef ALLOW_SEAICE
5e44d2ea81 Jean*0349       IF ( useSEAICE ) CALL SEAICE_CHECK( myThid )
5ee2971ab8 Patr*0350 #else
5e44d2ea81 Jean*0351       IF ( useSEAICE ) CALL PACKAGES_ERROR_MSG( 'SEAICE', ' ', myThid )
5ee2971ab8 Patr*0352 #endif
                0353 
58d0aa8f35 Jean*0354 #ifdef ALLOW_SALT_PLUME
5e44d2ea81 Jean*0355       IF ( useSALT_PLUME ) CALL SALT_PLUME_CHECK( myThid )
58d0aa8f35 Jean*0356 #else
5e44d2ea81 Jean*0357       IF ( useSALT_PLUME ) CALL PACKAGES_ERROR_MSG(
                0358      &                  'SALT_PLUME', ' ', myThid )
58d0aa8f35 Jean*0359 #endif
                0360 
a6cbc7a360 Mart*0361 #ifdef ALLOW_SHELFICE
5e44d2ea81 Jean*0362       IF ( useShelfIce ) CALL SHELFICE_CHECK( myThid )
a6cbc7a360 Mart*0363 #else
5e44d2ea81 Jean*0364       IF ( useShelfIce ) CALL PACKAGES_ERROR_MSG(
                0365      &                    'ShelfIce', ' ', myThid )
77a55fbebd Patr*0366 #endif
                0367 
00f81e6785 Ou W*0368 #ifdef ALLOW_STEEP_ICECAVITY
5e44d2ea81 Jean*0369       IF ( useSTIC ) CALL STIC_CHECK( myThid )
00f81e6785 Ou W*0370 #else
5e44d2ea81 Jean*0371       IF ( useSTIC ) CALL PACKAGES_ERROR_MSG(
                0372      &                  'STEEP_ICECAVITY', 'useSTIC=.T.', myThid )
00f81e6785 Ou W*0373 #endif
                0374 
7b8b86ab99 Timo*0375 #ifdef ALLOW_SMOOTH
5e44d2ea81 Jean*0376       IF ( useSmooth ) CALL SMOOTH_CHECK( myThid )
7b8b86ab99 Timo*0377 #else
5e44d2ea81 Jean*0378       IF ( useSmooth ) CALL PACKAGES_ERROR_MSG( 'Smooth', ' ', myThid )
7b8b86ab99 Timo*0379 #endif
                0380 
77a55fbebd Patr*0381 #ifdef ALLOW_STREAMICE
5e44d2ea81 Jean*0382       IF ( useStreamIce ) CALL STREAMICE_CHECK( myThid )
77a55fbebd Patr*0383 #else
5e44d2ea81 Jean*0384       IF ( useStreamIce ) CALL PACKAGES_ERROR_MSG(
                0385      &                  'StreamIce', ' ', myThid )
a6cbc7a360 Mart*0386 #endif
                0387 
5da8ce63fa Dimi*0388 #ifdef ALLOW_ICEFRONT
5e44d2ea81 Jean*0389       IF ( useICEFRONT ) CALL ICEFRONT_CHECK( myThid )
5da8ce63fa Dimi*0390 #else
5e44d2ea81 Jean*0391       IF ( useICEFRONT ) CALL PACKAGES_ERROR_MSG(
                0392      &                  'ICEFRONT', ' ', myThid )
5da8ce63fa Dimi*0393 #endif
                0394 
5593e3ac8c Jean*0395 #ifdef ALLOW_THSICE
5e44d2ea81 Jean*0396       IF ( useThSIce ) CALL THSICE_CHECK( myThid )
5593e3ac8c Jean*0397 #else
5e44d2ea81 Jean*0398       IF ( useThSIce ) CALL PACKAGES_ERROR_MSG( 'ThSIce', ' ', myThid )
5593e3ac8c Jean*0399 #endif
                0400 
b8e989b7a2 Jean*0401 #ifdef ALLOW_LAND
5e44d2ea81 Jean*0402       IF ( useLand ) CALL LAND_CHECK( myThid )
b8e989b7a2 Jean*0403 #else
5e44d2ea81 Jean*0404       IF ( useLand ) CALL PACKAGES_ERROR_MSG( 'Land', ' ', myThid )
5593e3ac8c Jean*0405 #endif
                0406 
                0407 #ifndef ALLOW_ATM2D
5e44d2ea81 Jean*0408       IF ( useATM2d ) CALL PACKAGES_ERROR_MSG( 'ATM2d', ' ', myThid )
5593e3ac8c Jean*0409 #endif
                0410 
                0411 #ifndef ALLOW_AIM
5e44d2ea81 Jean*0412       IF ( useAIM ) CALL PACKAGES_ERROR_MSG( 'AIM', ' ', myThid )
5593e3ac8c Jean*0413 #endif
                0414 
3902f6236f Jean*0415 #ifdef ALLOW_ATM_PHYS
5e44d2ea81 Jean*0416       IF ( useAtm_Phys ) CALL ATM_PHYS_CHECK( myThid )
3902f6236f Jean*0417 #else
5e44d2ea81 Jean*0418       IF ( useAtm_Phys ) CALL PACKAGES_ERROR_MSG(
                0419      &                  'Atm_Phys', ' ', myThid )
5593e3ac8c Jean*0420 #endif
                0421 
                0422 #ifndef ALLOW_FIZHI
5e44d2ea81 Jean*0423       IF ( useFizhi ) CALL PACKAGES_ERROR_MSG( 'Fizhi', ' ', myThid )
5593e3ac8c Jean*0424 #endif
                0425 
                0426 #ifndef ALLOW_GRIDALT
5e44d2ea81 Jean*0427       IF ( useGridAlt ) CALL PACKAGES_ERROR_MSG(
                0428      &                  'GridAlt', ' ', myThid )
5593e3ac8c Jean*0429 #endif
                0430 
edd57506ae Patr*0431 #ifdef ALLOW_AUTODIFF
5e44d2ea81 Jean*0432       IF ( useAUTODIFF ) CALL AUTODIFF_CHECK( myThid )
170b439592 Patr*0433 #endif
                0434 
                0435 #ifdef ALLOW_CTRL
5e44d2ea81 Jean*0436       IF ( useCTRL ) CALL CTRL_CHECK( myThid )
170b439592 Patr*0437 #endif
                0438 
                0439 #ifdef ALLOW_COST
5d7fa54ba5 Patr*0440       CALL COST_CHECK( myThid )
                0441 #endif
                0442 
d4b64b229a Jean*0443 #ifdef ALLOW_ECCO
5e44d2ea81 Jean*0444       IF ( useECCO ) CALL ECCO_CHECK( myThid )
63499de982 Patr*0445 #endif
                0446 
58d0aa8f35 Jean*0447 #ifndef ALLOW_SMOOTH
5e44d2ea81 Jean*0448       IF ( useSMOOTH ) CALL PACKAGES_ERROR_MSG( 'SMOOTH', ' ', myThid )
58d0aa8f35 Jean*0449 #endif
                0450 
e994210c2e Gael*0451 #ifndef ALLOW_PROFILES
5e44d2ea81 Jean*0452       IF ( usePROFILES ) CALL PACKAGES_ERROR_MSG(
                0453      &                  'PROFILES', ' ', myThid )
e994210c2e Gael*0454 #endif
                0455 
d4b64b229a Jean*0456 #ifdef ALLOW_GRDCHK
5e44d2ea81 Jean*0457       IF ( useGrdChk ) CALL GRDCHK_CHECK( myThid )
d4b64b229a Jean*0458 #else
5e44d2ea81 Jean*0459       IF ( useGrdChk ) CALL PACKAGES_ERROR_MSG( 'GrdChk', ' ', myThid )
d4b64b229a Jean*0460 #endif
                0461 
5593e3ac8c Jean*0462 #ifdef ALLOW_SBO
5e44d2ea81 Jean*0463       IF ( useSBO ) CALL SBO_CHECK( myThid )
5593e3ac8c Jean*0464 #else
5e44d2ea81 Jean*0465       IF ( useSBO ) CALL PACKAGES_ERROR_MSG( 'SBO', ' ', myThid )
5593e3ac8c Jean*0466 #endif
                0467 
48121039da Jean*0468 #ifdef ALLOW_DIAGNOSTICS
5e44d2ea81 Jean*0469       IF ( useDiagnostics ) CALL DIAGNOSTICS_CHECK( myThid )
48121039da Jean*0470 #else
5e44d2ea81 Jean*0471       IF ( useDiagnostics )
d85d0a6fc1 Jean*0472      &   CALL PACKAGES_ERROR_MSG( 'Diagnostics', ' ', myThid )
48121039da Jean*0473 #endif
                0474 
39cebd8084 Ed H*0475 #ifdef ALLOW_REGRID
5e44d2ea81 Jean*0476       IF ( useREGRID ) CALL REGRID_CHECK( myThid )
39cebd8084 Ed H*0477 #else
5e44d2ea81 Jean*0478       IF ( useREGRID ) CALL PACKAGES_ERROR_MSG( 'REGRID', ' ', myThid )
39cebd8084 Ed H*0479 #endif
                0480 
dfc9bc933c Ryan*0481 #ifdef ALLOW_LAYERS
                0482       IF ( useLayers ) CALL LAYERS_CHECK( myThid )
                0483 #else
5e44d2ea81 Jean*0484       IF ( useLayers ) CALL PACKAGES_ERROR_MSG( 'LAYERS', ' ', myThid )
dfc9bc933c Ryan*0485 #endif /* ALLOW_LAYERS */
                0486 
ba9a45d563 Jean*0487 #ifdef ALLOW_NEST_CHILD
5e44d2ea81 Jean*0488       IF ( useNEST_CHILD ) CALL NEST_CHILD_CHECK( myThid )
ba9a45d563 Jean*0489 #else
5e44d2ea81 Jean*0490       IF ( useNEST_CHILD ) CALL PACKAGES_ERROR_MSG(
                0491      &                  'NEST_CHILD', ' ', myThid )
ba9a45d563 Jean*0492 #endif
                0493 
                0494 #ifdef ALLOW_NEST_PARENT
5e44d2ea81 Jean*0495       IF ( useNEST_PARENT ) CALL NEST_PARENT_CHECK( myThid )
ba9a45d563 Jean*0496 #else
5e44d2ea81 Jean*0497       IF ( useNEST_PARENT ) CALL PACKAGES_ERROR_MSG(
                0498      &                  'NEST_PARENT', ' ', myThid )
ba9a45d563 Jean*0499 #endif
                0500 
608c101f3d Jean*0501 #ifdef ALLOW_OASIS
5e44d2ea81 Jean*0502       IF ( useOASIS ) CALL OASIS_CHECK( myThid )
608c101f3d Jean*0503 #else
5e44d2ea81 Jean*0504       IF ( useOASIS ) CALL PACKAGES_ERROR_MSG( 'OASIS', ' ', myThid )
608c101f3d Jean*0505 #endif
                0506 
5593e3ac8c Jean*0507 #ifdef ALLOW_RUNCLOCK
5e44d2ea81 Jean*0508       IF ( useRunClock ) CALL RUNCLOCK_CHECK( myThid )
5593e3ac8c Jean*0509 #else
5e44d2ea81 Jean*0510       IF ( useRunClock ) CALL PACKAGES_ERROR_MSG(
                0511      &                  'RunClock', ' ', myThid )
608c101f3d Jean*0512 #endif
                0513 
58d0aa8f35 Jean*0514 #ifndef ALLOW_EMBED_FILES
5e44d2ea81 Jean*0515       IF ( useEMBED_FILES ) CALL PACKAGES_ERROR_MSG(
                0516      &                  'EMBED_FILES', ' ', myThid )
58d0aa8f35 Jean*0517 #endif
                0518 
0dc94a8572 Patr*0519 #ifdef ALLOW_MYPACKAGE
5e44d2ea81 Jean*0520       IF ( useMYPACKAGE ) CALL MYPACKAGE_CHECK( myThid )
0dc94a8572 Patr*0521 #else
5e44d2ea81 Jean*0522       IF ( useMYPACKAGE ) CALL PACKAGES_ERROR_MSG(
                0523      &                  'MYPACKAGE', ' ', myThid )
0dc94a8572 Patr*0524 #endif
                0525 
608c101f3d Jean*0526 #ifdef ALLOW_GENERIC_ADVDIFF
                0527 C-    Check generic AdvDiff setting and related overlap minimum size:
                0528 C     for this reason, called after other ${pkg}_check S/R
5e44d2ea81 Jean*0529       IF ( useGAD ) CALL GAD_CHECK( myThid )
dfc9bc933c Ryan*0530 #endif
95b5f9e47f Patr*0531 
d85d0a6fc1 Jean*0532 C---  Exclusive packages (which cannot be used together):
                0533       IF ( useEXF .AND. useBulkForce ) THEN
                0534         WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
                0535      &  'both useEXF and useBulkForce are set'
5e44d2ea81 Jean*0536         CALL PRINT_ERROR( msgBuf, myThid )
d85d0a6fc1 Jean*0537         WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
                0538      &  ' but cannot be used together => need to select only one.'
5e44d2ea81 Jean*0539         CALL PRINT_ERROR( msgBuf, myThid )
308c696200 Jean*0540         CALL ALL_PROC_DIE( myThid )
d85d0a6fc1 Jean*0541         STOP 'ABNORMAL END: S/R PACKAGES_CHECK'
                0542       ENDIF
                0543 
15338fa568 Dimi*0544 C---  Exclusive packages (which cannot be used together):
                0545       IF ( useDOWN_SLOPE .AND. useBBL ) THEN
                0546         WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
                0547      &  'both useDOWN_SLOPE and useBBL are set'
5e44d2ea81 Jean*0548         CALL PRINT_ERROR( msgBuf, myThid )
15338fa568 Dimi*0549         WRITE(msgBuf,'(2A)') 'PACKAGES_CHECK: ',
                0550      &  ' but cannot be used together => need to select only one.'
5e44d2ea81 Jean*0551         CALL PRINT_ERROR( msgBuf, myThid )
308c696200 Jean*0552         CALL ALL_PROC_DIE( myThid )
15338fa568 Dimi*0553         STOP 'ABNORMAL END: S/R PACKAGES_CHECK'
                0554       ENDIF
                0555 
fb481a83c2 Alis*0556       RETURN
                0557       END