Back to home page

darwin3

 
 

    


File indexing completed on 2025-12-21 17:50:34 UTC

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