Back to home page

MITgcm

 
 

    


File indexing completed on 2025-12-15 06:13:37 UTC

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