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