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
742cf4499c Jean*0001 #include "PACKAGES_CONFIG.h"
c859c0e3e6 Patr*0002 #include "CPP_OPTIONS.h"
                0003 
9366854e02 Chri*0004 CBOP
                0005 C     !ROUTINE: PACKAGES_BOOT
                0006 C     !INTERFACE:
c859c0e3e6 Patr*0007       SUBROUTINE PACKAGES_BOOT( myThid )
                0008 
9366854e02 Chri*0009 C     !DESCRIPTION: \bv
                0010 C     *==========================================================*
1db41719d4 Jean*0011 C     | SUBROUTINE PACKAGES_BOOT
                0012 C     | o Routine to parse runtime package selection file
9366854e02 Chri*0013 C     *==========================================================*
1db41719d4 Jean*0014 C     | Routine reads a flat file which contains a single flag
                0015 C     | for each known "package". Flag can enables runtime
                0016 C     | activation or deactivation of a package. The data is read
                0017 C     | from a file called data.pkg.
                0018 C     | Note - If a runtime activation flag is set on but the
                0019 C     |        package code was not included in the build then
                0020 C     |        the default behavior is to stop with an error.
9366854e02 Chri*0021 C     *==========================================================*
                0022 C     \ev
                0023 
                0024 C     !USES:
                0025       IMPLICIT NONE
c859c0e3e6 Patr*0026 C     === Global variables ===
                0027 #include "SIZE.h"
                0028 #include "EEPARAMS.h"
                0029 #include "PARAMS.h"
                0030 
9366854e02 Chri*0031 C     !INPUT/OUTPUT PARAMETERS:
c859c0e3e6 Patr*0032 C     === Routine arguments ===
d4cd801c9b Jean*0033 C     myThid   :: my Thread Id number
c859c0e3e6 Patr*0034       INTEGER myThid
                0035 
9366854e02 Chri*0036 C     !LOCAL VARIABLES:
                0037 C     === Local variables ===
d4cd801c9b Jean*0038 C     msgBuf   :: Informational/error message buffer
                0039 C     iUnit    :: Work variable for IO unit number
9366854e02 Chri*0040       CHARACTER*(MAX_LEN_MBUF) msgBuf
                0041       INTEGER iUnit
e7f4a72d78 Jean*0042       LOGICAL locFlag
3c287b198c Jean*0043 CEOP
9366854e02 Chri*0044 
                0045 C     data.pkg namelists
c859c0e3e6 Patr*0046       NAMELIST /PACKAGES/
1db41719d4 Jean*0047      &          useOBCS,
                0048      &          useSHAP_FILT,
                0049      &          useZONAL_FILT,
69a7b27187 Mart*0050      &          useOPPS,
e864122ae8 Mart*0051      &          usePP81,
d8d1486ca1 Jean*0052      &          useKL10,
e864122ae8 Mart*0053      &          useMY82,
69a7b27187 Mart*0054      &          useGGL90,
c859c0e3e6 Patr*0055      &          useKPP,
                0056      &          useGMRedi,
1db41719d4 Jean*0057      &          useDOWN_SLOPE,
15338fa568 Dimi*0058      &          useBBL,
5c264f5173 Jean*0059      &          useCAL,
342da43f96 Patr*0060      &          useEXF,
1db41719d4 Jean*0061      &          useBulkForce,
                0062      &          useEBM,
                0063      &          useCheapAML,
ea7d076e20 Gael*0064      &          useAUTODIFF,
1db41719d4 Jean*0065      &          useGrdchk,
a8ee74bbd1 Gael*0066      &          useSMOOTH,
e994210c2e Gael*0067      &          usePROFILES,
aea29c8517 Alis*0068      &          useECCO,
a424c359ed Gael*0069      &          useCTRL,
1db41719d4 Jean*0070      &          useSBO,
5c43c390b6 Alis*0071      &          useFLT,
5ee2971ab8 Patr*0072      &          usePTRACERS,
0a90236bb2 Mart*0073      &          useGCHEM,
176ce185cd Step*0074      &          useRBCS,
f4b031356b Jean*0075      &          useOffLine,
1db41719d4 Jean*0076      &          useMATRIX,
e0b3e1bdd8 Dimi*0077      &          useFRAZIL,
6424ee9bc0 Curt*0078      &          useSEAICE,
1db41719d4 Jean*0079      &          useSALT_PLUME,
a6cbc7a360 Mart*0080      &          useShelfIce,
77a55fbebd Patr*0081      &          useStreamIce,
5da8ce63fa Dimi*0082      &          useICEFRONT,
4532acebd5 Andr*0083      &          useThSIce,
5593e3ac8c Jean*0084      &          useLand,
427e24e121 Jean*0085      &          useATM2d,
1db41719d4 Jean*0086      &          useAIM,
5593e3ac8c Jean*0087      &          useAtm_Phys,
1db41719d4 Jean*0088      &          useFizhi,
                0089      &          useGridAlt,
f4b031356b Jean*0090      &          useDiagnostics,
39cebd8084 Ed H*0091      &          useREGRID,
dfc9bc933c Ryan*0092      &          useLayers,
1db41719d4 Jean*0093      &          useMNC,
1eeb28fe07 Alis*0094      &          useRunClock,
0dc94a8572 Patr*0095      &          useEMBED_FILES,
86f14fa6df Jean*0096      &          useMYPACKAGE
c859c0e3e6 Patr*0097 
                0098       _BEGIN_MASTER(myThid)
                0099 
9366854e02 Chri*0100       WRITE(msgBuf,'(A)') ' PACKAGES_BOOT: opening data.pkg'
c859c0e3e6 Patr*0101       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
06bb0cec77 Jean*0102      &                    SQUEEZE_RIGHT , myThid )
855e7aca52 Jean*0103 
c859c0e3e6 Patr*0104       CALL OPEN_COPY_DATA_FILE(
                0105      I                          'data.pkg', 'PACKAGES_BOOT',
                0106      O                          iUnit,
                0107      I                          myThid )
                0108 
                0109 C--   Default package configuration
1db41719d4 Jean*0110 c     useGAD          =.FALSE.
                0111       useOBCS         =.FALSE.
                0112       useSHAP_FILT    =.FALSE.
                0113       useZONAL_FILT   =.FALSE.
742cf4499c Jean*0114       useOPPS         =.FALSE.
                0115       usePP81         =.FALSE.
d8d1486ca1 Jean*0116       useKL10         =.FALSE.
742cf4499c Jean*0117       useMY82         =.FALSE.
                0118       useGGL90        =.FALSE.
                0119       useKPP          =.FALSE.
                0120       useGMRedi       =.FALSE.
1db41719d4 Jean*0121       useDOWN_SLOPE   =.FALSE.
15338fa568 Dimi*0122       useBBL          =.FALSE.
742cf4499c Jean*0123       useCAL          =.FALSE.
                0124       useEXF          =.FALSE.
1db41719d4 Jean*0125       useBulkForce    =.FALSE.
742cf4499c Jean*0126       useEBM          =.FALSE.
1db41719d4 Jean*0127       useCheapAML     =.FALSE.
ea7d076e20 Gael*0128       useAUTODIFF     =.FALSE.
742cf4499c Jean*0129       useGrdchk       =.FALSE.
d4cd801c9b Jean*0130       useSMOOTH       =.FALSE.
e994210c2e Gael*0131       usePROFILES     =.FALSE.
742cf4499c Jean*0132       useECCO         =.FALSE.
a424c359ed Gael*0133       useCTRL         =.FALSE.
1db41719d4 Jean*0134       useSBO          =.FALSE.
742cf4499c Jean*0135       useFLT          =.FALSE.
                0136       usePTRACERS     =.FALSE.
                0137       useGCHEM        =.FALSE.
                0138       useRBCS         =.FALSE.
                0139       useOffLine      =.FALSE.
                0140       useMATRIX       =.FALSE.
e0b3e1bdd8 Dimi*0141       useFRAZIL       =.FALSE.
742cf4499c Jean*0142       useSEAICE       =.FALSE.
1db41719d4 Jean*0143       useSALT_PLUME   =.FALSE.
742cf4499c Jean*0144       useShelfIce     =.FALSE.
77a55fbebd Patr*0145       useStreamIce    =.FALSE.
5da8ce63fa Dimi*0146       useICEFRONT     =.FALSE.
742cf4499c Jean*0147       useThSIce       =.FALSE.
5593e3ac8c Jean*0148       useLand         =.FALSE.
427e24e121 Jean*0149       useATM2d        =.FALSE.
1db41719d4 Jean*0150       useAIM          =.FALSE.
5593e3ac8c Jean*0151       useAtm_Phys     =.FALSE.
1db41719d4 Jean*0152       useFizhi        =.FALSE.
                0153       useGridAlt      =.FALSE.
742cf4499c Jean*0154       useDiagnostics  =.FALSE.
1db41719d4 Jean*0155       useREGRID       =.FALSE.
dfc9bc933c Ryan*0156       useLayers       =.FALSE.
742cf4499c Jean*0157       useMNC          =.FALSE.
                0158       useRunClock     =.FALSE.
8436deef25 Jean*0159       useEMBED_FILES  =.FALSE.
86f14fa6df Jean*0160       useMYPACKAGE    =.FALSE.
c859c0e3e6 Patr*0161 
04a46538ca Jean*0162 C-    Adjust default to account for pkgs without run-time On/Off switch
                0163 #ifdef ALLOW_AUTODIFF
ea7d076e20 Gael*0164       useAUTODIFF     =.TRUE.
04a46538ca Jean*0165 # ifdef ALLOW_ECCO
                0166       useECCO         =.TRUE.
                0167 # endif
                0168 # ifdef ALLOW_CTRL
                0169       useCTRL         =.TRUE.
                0170 # endif
                0171 #endif /* ALLOW_AUTODIFF */
                0172 
c859c0e3e6 Patr*0173 C--   Read parameters from open data file
                0174       READ(UNIT=iUnit,NML=PACKAGES)
                0175 
9366854e02 Chri*0176       WRITE(msgBuf,'(A)') ' PACKAGES_BOOT: finished reading data.pkg'
c859c0e3e6 Patr*0177       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
06bb0cec77 Jean*0178      &                    SQUEEZE_RIGHT , myThid )
c859c0e3e6 Patr*0179 
                0180 C--   Close the open data file
a6485b3244 Mart*0181 #ifdef SINGLE_DISK_IO
c859c0e3e6 Patr*0182       CLOSE(iUnit)
a6485b3244 Mart*0183 #else
                0184       CLOSE(iUnit,STATUS='DELETE')
                0185 #endif /* SINGLE_DISK_IO */
855e7aca52 Jean*0186 
742cf4499c Jean*0187 C--   packages with hard-coded switch
3f577a7fe7 Jean*0188 #ifndef HAVE_NETCDF
f2ff73b3e2 Gael*0189       IF (usePROFILES) THEN
3f577a7fe7 Jean*0190         WRITE(msgBuf,'(2A)') '** WARNING ** pkg/profiles uses NetCDF',
                0191      &   ' which is unavailable (genmake2 test failed)'
f2ff73b3e2 Gael*0192         CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
                0193      &                      SQUEEZE_RIGHT, myThid )
3f577a7fe7 Jean*0194         WRITE(msgBuf,'(2A)') '** WARNING ** PACKAGES_BOOT:',
                0195      &                       ' ==> Reset usePROFILES to FALSE'
f2ff73b3e2 Gael*0196         CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
                0197      &                      SQUEEZE_RIGHT, myThid )
3f577a7fe7 Jean*0198         WRITE(msgBuf,'(2A)') ' PACKAGES_BOOT: undef HAVE_NETCDF',
                0199      &                       ' ==> Reset usePROFILES to FALSE'
                0200         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
f2ff73b3e2 Gael*0201      &                      SQUEEZE_RIGHT, myThid )
                0202         usePROFILES=.FALSE.
                0203       ENDIF
                0204 #endif
                0205 
ab65297823 Jean*0206 #ifdef ALLOW_CAL
e994210c2e Gael*0207       IF (usePROFILES) useCAL = .TRUE.
a424c359ed Gael*0208       IF (useECCO) useCAL = .TRUE.
                0209 #endif
                0210 
                0211 #ifdef ALLOW_CTRL
                0212       IF (useGrdchk) useCTRL = .TRUE.
345f7357c1 Gael*0213 #endif
                0214 
855e7aca52 Jean*0215 C--   packages with an implied switch
                0216       useGAD = tempStepping .OR. saltStepping .OR. usePTRACERS
                0217 
ab65297823 Jean*0218 #ifdef ALLOW_CAL
                0219 c     IF (useEXF) useCAL = .TRUE.
                0220 C--   Double warning (StdErr & StdOut) after changing useCAL setting
                0221       IF ( useEXF .AND. .NOT. useCAL ) THEN
                0222         WRITE(msgBuf,'(2A)') '** WARNING ** PACKAGES_BOOT: ',
                0223      &    'useCAL no longer set to T when using EXF (useEXF=T)'
                0224         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0225      &                      SQUEEZE_RIGHT, myThid )
                0226         CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
                0227      &                      SQUEEZE_RIGHT, myThid )
                0228         WRITE(msgBuf,'(2A)') '** WARNING ** PACKAGES_BOOT: ',
                0229      &    ' as it used to be before checkpoint66d (2017/02/13)'
                0230         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0231      &                      SQUEEZE_RIGHT, myThid )
                0232         CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
                0233      &                      SQUEEZE_RIGHT, myThid )
                0234         WRITE(msgBuf,'(2A)') '** WARNING ** PACKAGES_BOOT: ',
                0235      &    'To continue to use pkg/cal with EXF, need to add:'
                0236         CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
                0237      &                      SQUEEZE_RIGHT, myThid )
                0238         WRITE(msgBuf,'(2A)') '** WARNING ** PACKAGES_BOOT: ',
                0239      &    '> useCAL=.TRUE., < in file "data.pkg"'
                0240         CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
                0241      &                      SQUEEZE_RIGHT, myThid )
                0242       ENDIF
                0243 #endif /* ALLOW_CAL */
                0244 
e7f4a72d78 Jean*0245 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0246 C--   Short summary of which package is compiled and used
                0247       WRITE(msgBuf,'(2A)') ' PACKAGES_BOOT: On/Off package Summary'
                0248       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0249      &                    SQUEEZE_RIGHT, myThid )
                0250 
                0251 C----- pkgs with a standard "usePKG" On/Off switch in "data.pkg":
                0252       WRITE(standardMessageUnit,'(2A)') ' --------  pkgs with a',
                0253      & ' standard "usePKG" On/Off switch in "data.pkg":  --------'
                0254 #ifdef ALLOW_OBCS
                0255       CALL PACKAGES_PRINT_MSG( useOBCS,       'OBCS',        ' ' )
                0256 #endif
                0257 #ifdef ALLOW_SHAP_FILT
                0258       CALL PACKAGES_PRINT_MSG( useSHAP_FILT,  'SHAP_FILT',   ' ' )
                0259 #endif
                0260 #ifdef ALLOW_ZONAL_FILT
                0261       CALL PACKAGES_PRINT_MSG( useZONAL_FILT, 'ZONAL_FILT',  ' ' )
                0262 #endif
                0263 #ifdef ALLOW_OPPS
                0264       CALL PACKAGES_PRINT_MSG( useOPPS,       'OPPS',        ' ' )
                0265 #endif
                0266 #ifdef ALLOW_PP81
                0267       CALL PACKAGES_PRINT_MSG( usePP81,       'PP81',        ' ' )
                0268 #endif
d8d1486ca1 Jean*0269 #ifdef ALLOW_KL10
                0270       CALL PACKAGES_PRINT_MSG( useKL10,       'KL10',        ' ' )
                0271 #endif
e7f4a72d78 Jean*0272 #ifdef ALLOW_MY82
                0273       CALL PACKAGES_PRINT_MSG( useMY82,       'MY82',        ' ' )
                0274 #endif
                0275 #ifdef ALLOW_GGL90
                0276       CALL PACKAGES_PRINT_MSG( useGGL90,      'GGL90',       ' ' )
                0277 #endif
                0278 #ifdef ALLOW_KPP
                0279       CALL PACKAGES_PRINT_MSG( useKPP,        'KPP',         ' ' )
                0280 #endif
                0281 #ifdef ALLOW_GMREDI
                0282       CALL PACKAGES_PRINT_MSG( useGMRedi,     'GMRedi',      ' ' )
                0283 #endif
                0284 #ifdef ALLOW_DOWN_SLOPE
                0285       CALL PACKAGES_PRINT_MSG( useDOWN_SLOPE, 'DOWN_SLOPE',  ' ' )
                0286 #endif
                0287 #ifdef ALLOW_BBL
                0288       CALL PACKAGES_PRINT_MSG( useBBL,        'BBL',         ' ' )
                0289 #endif
                0290 #ifdef ALLOW_CAL
                0291       CALL PACKAGES_PRINT_MSG( useCAL,        'CAL',         ' ' )
                0292 #endif
                0293 #ifdef ALLOW_EXF
                0294       CALL PACKAGES_PRINT_MSG( useEXF,        'EXF',         ' ' )
                0295 #endif
                0296 #ifdef ALLOW_BULK_FORCE
                0297       CALL PACKAGES_PRINT_MSG(useBulkForce,'BULK_FORCE','useBulkForce')
                0298 #endif
                0299 #ifdef ALLOW_EBM
                0300       CALL PACKAGES_PRINT_MSG( useEBM,        'EBM',         ' ' )
                0301 #endif
                0302 #ifdef ALLOW_CHEAPAML
                0303       CALL PACKAGES_PRINT_MSG( useCheapAML,   'CheapAML',    ' ' )
                0304 #endif
ea7d076e20 Gael*0305 #ifdef ALLOW_AUTODIFF
                0306       CALL PACKAGES_PRINT_MSG( useAUTODIFF,   'AUTODIFF',    ' ' )
                0307 #endif
e7f4a72d78 Jean*0308 #ifdef ALLOW_GRDCHK
                0309       CALL PACKAGES_PRINT_MSG( useGrdchk,     'Grdchk',      ' ' )
                0310 #endif
                0311 #ifdef ALLOW_SMOOTH
                0312       CALL PACKAGES_PRINT_MSG( useSMOOTH,     'SMOOTH',      ' ' )
                0313 #endif
                0314 #ifdef ALLOW_PROFILES
                0315       CALL PACKAGES_PRINT_MSG( usePROFILES,   'PROFILES',    ' ' )
                0316 #endif
                0317 #ifdef ALLOW_ECCO
                0318       CALL PACKAGES_PRINT_MSG( useECCO,       'ECCO',        ' ' )
                0319 #endif
a424c359ed Gael*0320 #ifdef ALLOW_CTRL
                0321       CALL PACKAGES_PRINT_MSG( useCTRL,       'CTRL',        ' ' )
                0322 #endif
e7f4a72d78 Jean*0323 #ifdef ALLOW_SBO
                0324       CALL PACKAGES_PRINT_MSG( useSBO,        'SBO',         ' ' )
                0325 #endif
                0326 #ifdef ALLOW_FLT
                0327       CALL PACKAGES_PRINT_MSG( useFLT,        'FLT',         ' ' )
                0328 #endif
                0329 #ifdef ALLOW_PTRACERS
                0330       CALL PACKAGES_PRINT_MSG( usePTRACERS,   'PTRACERS',    ' ' )
                0331 #endif
                0332 #ifdef ALLOW_LONGSTEP
                0333       CALL PACKAGES_PRINT_MSG( usePTRACERS,'LONGSTEP','usePTRACERS' )
                0334 #endif
                0335 #ifdef ALLOW_GCHEM
                0336       CALL PACKAGES_PRINT_MSG( useGCHEM,      'GCHEM',       ' ' )
                0337 #endif
                0338 #ifdef ALLOW_RBCS
                0339       CALL PACKAGES_PRINT_MSG( useRBCS,       'RBCS',        ' ' )
                0340 #endif
                0341 #ifdef ALLOW_OFFLINE
                0342       CALL PACKAGES_PRINT_MSG( useOffLine,    'OffLine',     ' ' )
                0343 #endif
                0344 #ifdef ALLOW_MATRIX
                0345       CALL PACKAGES_PRINT_MSG( useMATRIX,     'MATRIX',      ' ' )
                0346 #endif
                0347 #ifdef ALLOW_FRAZIL
                0348       CALL PACKAGES_PRINT_MSG( useFRAZIL,     'FRAZIL',      ' ' )
                0349 #endif
                0350 #ifdef ALLOW_SEAICE
                0351       CALL PACKAGES_PRINT_MSG( useSEAICE,     'SEAICE',      ' ' )
                0352 #endif
                0353 #ifdef ALLOW_SALT_PLUME
                0354       CALL PACKAGES_PRINT_MSG( useSALT_PLUME, 'SALT_PLUME',  ' ' )
                0355 #endif
                0356 #ifdef ALLOW_SHELFICE
                0357       CALL PACKAGES_PRINT_MSG( useShelfIce,   'ShelfIce',    ' ' )
                0358 #endif
                0359 #ifdef ALLOW_STREAMICE
                0360       CALL PACKAGES_PRINT_MSG( useStreamIce,  'StreamIce',   ' ' )
                0361 #endif
                0362 #ifdef ALLOW_ICEFRONT
                0363       CALL PACKAGES_PRINT_MSG( useICEFRONT,   'ICEFRONT',    ' ' )
                0364 #endif
                0365 #ifdef ALLOW_THSICE
                0366       CALL PACKAGES_PRINT_MSG( useThSIce,     'ThSIce',      ' ' )
                0367 #endif
                0368 #ifdef ALLOW_LAND
                0369       CALL PACKAGES_PRINT_MSG( useLand,       'Land',        ' ' )
                0370 #endif
                0371 #ifdef ALLOW_ATM2D
427e24e121 Jean*0372       CALL PACKAGES_PRINT_MSG( useATM2d,      'ATM2d',       ' ' )
e7f4a72d78 Jean*0373 #endif
                0374 #ifdef ALLOW_AIM_V23
                0375       CALL PACKAGES_PRINT_MSG( useAIM,        'aim_v23', 'useAIM' )
                0376 #endif
                0377 #ifdef ALLOW_ATM_PHYS
                0378       CALL PACKAGES_PRINT_MSG( useAtm_Phys,   'Atm_Phys',    ' ' )
                0379 #endif
                0380 #ifdef ALLOW_FIZHI
                0381       CALL PACKAGES_PRINT_MSG( useFizhi,      'Fizhi',       ' ' )
                0382 #endif
                0383 #ifdef ALLOW_GRIDALT
                0384       CALL PACKAGES_PRINT_MSG( useGridAlt,    'GridAlt',     ' ' )
                0385 #endif
                0386 #ifdef ALLOW_DIAGNOSTICS
                0387       CALL PACKAGES_PRINT_MSG( useDiagnostics,'Diagnostics', ' ' )
                0388 #endif
                0389 #ifdef ALLOW_REGRID
                0390       CALL PACKAGES_PRINT_MSG( useREGRID,     'REGRID',      ' ' )
                0391 #endif
                0392 #ifdef ALLOW_LAYERS
                0393       CALL PACKAGES_PRINT_MSG( useLayers,     'Layers',      ' ' )
                0394 #endif
                0395 #ifdef ALLOW_MNC
                0396       CALL PACKAGES_PRINT_MSG( useMNC,        'MNC',         ' ' )
                0397 #endif
                0398 #ifdef ALLOW_RUNCLOCK
                0399       CALL PACKAGES_PRINT_MSG( useRunClock,   'RunClock',    ' ' )
                0400 #endif
                0401 #ifdef ALLOW_EMBED_FILES
                0402       CALL PACKAGES_PRINT_MSG( useEMBED_FILES,'EMBED_FILES', ' ' )
                0403 #endif
                0404 #ifdef ALLOW_MYPACKAGE
                0405       CALL PACKAGES_PRINT_MSG( useMYPACKAGE,  'MYPACKAGE',   ' ' )
                0406 #endif
                0407 
                0408 C----- pkgs without standard "usePKG" in "data.pkg":
                0409       WRITE(standardMessageUnit,'(2A)') ' -------- pkgs without',
                0410      & ' standard "usePKG" On/Off switch in "data.pkg":  --------'
                0411 #ifdef ALLOW_GENERIC_ADVDIFF
                0412       CALL PACKAGES_PRINT_MSG( useGAD, 'GENERIC_ADVDIFF', 'useGAD' )
                0413 #endif
                0414 #ifdef ALLOW_MOM_COMMON
                0415       CALL PACKAGES_PRINT_MSG( momStepping,'MOM_COMMON','momStepping' )
                0416 #endif
                0417 #ifdef ALLOW_MOM_VECINV
                0418       locFlag = momStepping .AND. vectorInvariantMomentum
                0419       CALL PACKAGES_PRINT_MSG( locFlag, 'MOM_VECINV',
                0420      &                                  '+vectorInvariantMomentum' )
                0421 #endif
                0422 #ifdef ALLOW_MOM_FLUXFORM
                0423       locFlag = momStepping .AND. .NOT.vectorInvariantMomentum
                0424       CALL PACKAGES_PRINT_MSG( locFlag, 'MOM_FLUXFORM',
                0425      &                                  '& not vectorInvariantMom' )
                0426 #endif
                0427 #ifdef ALLOW_CD_CODE
                0428       CALL PACKAGES_PRINT_MSG( useCDscheme, 'CD_CODE', 'useCDscheme' )
                0429 #endif
                0430 #ifdef ALLOW_MONITOR
                0431       locFlag = monitorFreq.GT.0.
                0432       CALL PACKAGES_PRINT_MSG( locFlag, 'MONITOR', 'monitorFreq > 0.' )
                0433 #endif
                0434 #ifdef ALLOW_TIMEAVE
                0435       locFlag = taveFreq.GT.0.
                0436       CALL PACKAGES_PRINT_MSG( locFlag,  'TIMEAVE', 'taveFreq > 0.' )
                0437 #endif
                0438 #ifdef ALLOW_DEBUG
                0439       CALL PACKAGES_PRINT_MSG( debugMode, 'DEBUG', 'debugMode' )
                0440 #endif
                0441 #ifdef ALLOW_COMPON_COMMUNIC
                0442       CALL PACKAGES_PRINT_MSG( useCoupler, 'COMPON_COMMUNIC',
                0443      &                         'useCoupler' )
                0444 #endif
                0445 #ifdef ALLOW_ATM_COMPON_INTERF
                0446       CALL PACKAGES_PRINT_MSG( useCoupler, 'ATM_COMPON_INTERF',
                0447      &                         'useCoupler' )
                0448 #endif
                0449 #ifdef ALLOW_OCN_COMPON_INTERF
                0450       CALL PACKAGES_PRINT_MSG( useCoupler, 'OCN_COMPON_INTERF',
                0451      &                         'useCoupler' )
                0452 #endif
                0453 C----- pkgs without a run-time switch:
                0454       locFlag = .TRUE.
                0455 #ifdef ALLOW_ATM_OCN_COUPLER
                0456       CALL PACKAGES_PRINT_MSG( locFlag, 'ATM_OCN_COUPLER', 'Used' )
                0457 #endif
                0458 #ifdef ALLOW_EXCH2
                0459       CALL PACKAGES_PRINT_MSG( locFlag, 'EXCH2',      'Used' )
                0460 #endif
                0461 #ifdef ALLOW_RW
                0462       CALL PACKAGES_PRINT_MSG( locFlag, 'RW',        'Used' )
                0463 #endif
                0464 #ifdef ALLOW_MDSIO
                0465       CALL PACKAGES_PRINT_MSG( locFlag, 'MDSIO',     'Used' )
                0466 #endif
                0467 #ifdef ALLOW_SHOWFLOPS
                0468       CALL PACKAGES_PRINT_MSG( locFlag, 'SHOWFLOPS', 'Used' )
                0469 #endif
                0470 C----- AD related pkgs:
                0471 #ifdef ALLOW_ADMTLM
                0472       CALL PACKAGES_PRINT_MSG( locFlag, 'ADMTLM',     'Used' )
                0473 #endif
                0474 #ifdef ALLOW_AUTODIFF
                0475       CALL PACKAGES_PRINT_MSG( locFlag, 'AUTODIFF',   'Used' )
                0476 #endif
                0477 #ifdef ALLOW_OPENAD
                0478       CALL PACKAGES_PRINT_MSG( locFlag, 'OPENAD',     'Used' )
                0479 #endif
                0480 #ifdef ALLOW_COST
                0481       CALL PACKAGES_PRINT_MSG( locFlag, 'COST',       'Used' )
                0482 #endif
                0483 C----- mysterious pkgs:
                0484 #ifdef ALLOW_SPHERE
                0485       CALL PACKAGES_PRINT_MSG( locFlag, 'SPHERE',     'None' )
                0486 #endif
                0487 #ifdef ALLOW_CHRONOS
                0488       CALL PACKAGES_PRINT_MSG( locFlag, 'CHRONOS',    'None' )
                0489 #endif
                0490 #ifdef ALLOW_ATM_COMMON
                0491       CALL PACKAGES_PRINT_MSG( locFlag, 'ATM_COMMON', 'None' )
                0492 #endif
                0493 
                0494       WRITE(msgBuf,'(2A)') ' PACKAGES_BOOT: End of package Summary'
                0495       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0496      &                    SQUEEZE_RIGHT, myThid )
                0497       WRITE(msgBuf,'(A)') ' '
                0498       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0499      &                    SQUEEZE_RIGHT, myThid )
                0500 
06bb0cec77 Jean*0501       _END_MASTER(myThid)
                0502 
c859c0e3e6 Patr*0503 C--   Everyone else must wait for the parameters to be loaded
                0504       _BARRIER
                0505 
d410a4724b Jean*0506       RETURN
                0507       END