Back to home page

MITgcm

 
 

    


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

view on githubraw file Latest commit ad59256d on 2025-12-15 00:05:36 UTC
6d54cf9ca1 Ed H*0001 #include "PACKAGES_CONFIG.h"
c859c0e3e6 Patr*0002 #include "CPP_OPTIONS.h"
                0003 
                0004 CStartOfInterface
9366854e02 Chri*0005 CBOP
                0006 C     !ROUTINE: PACKAGES_READPARMS
                0007 C     !INTERFACE:
c859c0e3e6 Patr*0008       SUBROUTINE PACKAGES_READPARMS(myThid)
                0009 
9366854e02 Chri*0010 C     !DESCRIPTION: \bv
                0011 C     *==========================================================*
1db41719d4 Jean*0012 C     | SUBROUTINE PACKAGES_READPARMS
                0013 C     | o Read runtime package configuration parameters
9366854e02 Chri*0014 C     *==========================================================*
1db41719d4 Jean*0015 C     |   Packages can have internal runtime configuration
                0016 C     |   parameters. A package provides a routine
                0017 C     |   ${PKGNAME}_READ_PARMS to read these parameters. In
                0018 C     |   general this routine should read parameters from a file
                0019 C     |   called data.${pkgname}.
                0020 C     |   This routine (S/R PACKAGES_READPARMS) calls per-package
                0021 C     |   parameter reading routines.
9366854e02 Chri*0022 C     *==========================================================*
                0023 C     \ev
                0024 
                0025 C     !CALLING SEQUENCE:
                0026 C     PACKAGES_READPARMS
                0027 C       |
c74c95df5c Jean*0028 C       |-- MNC_READPARMS
48121039da Jean*0029 C       |
462fd48b6a Mart*0030 C       |-- CAL_READPARMS
                0031 C       |
173921fccd Mart*0032 C       |-- EXF_READPARMS
                0033 C       |
5593e3ac8c Jean*0034 C       |-- OBCS_READPARMS
9366854e02 Chri*0035 C       |
5593e3ac8c Jean*0036 C       |-- SHAP_FILT_READPARMS
1db41719d4 Jean*0037 C       |
5593e3ac8c Jean*0038 C       |-- ZONAL_FILT_READPARMS
15338fa568 Dimi*0039 C       |
5593e3ac8c Jean*0040 C       |-- OPPS_READPARMS
9366854e02 Chri*0041 C       |
e864122ae8 Mart*0042 C       |-- PP81_READPARMS
                0043 C       |
d8d1486ca1 Jean*0044 C       |-- KL10_READPARMS
                0045 C       |
e864122ae8 Mart*0046 C       |-- MY82_READPARMS
                0047 C       |
69a7b27187 Mart*0048 C       |-- GGL90_READPARMS
                0049 C       |
5593e3ac8c Jean*0050 C       |-- KPP_READPARMS
a6cbc7a360 Mart*0051 C       |
5593e3ac8c Jean*0052 C       |-- GMREDI_READPARMS
5da8ce63fa Dimi*0053 C       |
5593e3ac8c Jean*0054 C       |-- BBL_READPARMS
9366854e02 Chri*0055 C       |
5593e3ac8c Jean*0056 C       |-- DWNSLP_READPARMS
d71c33e3de Jean*0057 C       |
5593e3ac8c Jean*0058 C       |-- BULKF_READPARMS
9366854e02 Chri*0059 C       |
5593e3ac8c Jean*0060 C       |-- EBM_READPARMS
f66c946416 Step*0061 C       |
5593e3ac8c Jean*0062 C       |-- CHEAPAML_READPARMS
48121039da Jean*0063 C       |
5593e3ac8c Jean*0064 C       |-- FLT_READPARMS
9366854e02 Chri*0065 C       |
b9d14ac827 Jean*0066 C       |-- LONGSTEP_READPARMS
b5aa60a554 Dimi*0067 C       |-- PTRACERS_READPARMS
                0068 C       |
48121039da Jean*0069 C       |-- GCHEM_READPARMS
9366854e02 Chri*0070 C       |
b5aa60a554 Dimi*0071 C       |-- RBCS_READPARMS
                0072 C       |
5593e3ac8c Jean*0073 C       |-- OFFLINE_READPARMS
                0074 C       |
                0075 C       |-- MATRIX_READPARMS
                0076 C       |
148dd84005 jm-c 0077 C       |-- STREAMICE_READPARMS
b5aa60a554 Dimi*0078 C       |
5593e3ac8c Jean*0079 C       |-- SHELFICE_READPARMS
                0080 C       |
00f81e6785 Ou W*0081 C       |-- STIC_READPARMS
                0082 C       |
5593e3ac8c Jean*0083 C       |-- ICEFRONT_READPARMS
                0084 C       |
148dd84005 jm-c 0085 C       |-- SEAICE_READPARMS
                0086 C       |
                0087 C       |-- SALT_PLUME_READPARMS
                0088 C       |
5593e3ac8c Jean*0089 C       |-- THSICE_READPARMS
86f14fa6df Jean*0090 C       |
b8e989b7a2 Jean*0091 C       |-- LAND_READPARMS
                0092 C       |
3c287b198c Jean*0093 C       |-- AUTODIFF_READPARMS
                0094 C       |
9366854e02 Chri*0095 C       |-- OPTIM_READPARMS
                0096 C       |
48121039da Jean*0097 C       |-- CTRL_READPARMS
                0098 C       |
                0099 C       |-- COST_READPARMS
                0100 C       |
9366854e02 Chri*0101 C       |-- GRDCHK_READPARMS
                0102 C       |
897e729c49 Jean*0103 C       |-- SMOOTH_READPARMS
                0104 C       |
9366854e02 Chri*0105 C       |-- ECCO_READPARMS
c1b6df074d Jean*0106 C       |
93f4e26372 Jean*0107 C       |-- PROFILES_READPARMS
                0108 C       |
ad59256d7d aver*0109 C       |-- OBSFIT_READPARMS
                0110 C       |
5593e3ac8c Jean*0111 C       |-- SBO_READPARMS
ba9a45d563 Jean*0112 C       |
5593e3ac8c Jean*0113 C       |-- ATM_PHYS_READPARMS
48121039da Jean*0114 C       |
                0115 C       |-- FIZHI_READPARMS
                0116 C       |
                0117 C       |-- DIAGNOSTICS_READPARMS
39cebd8084 Ed H*0118 C       |
                0119 C       |-- REGRID_READPARMS
dfc9bc933c Ryan*0120 C       |
                0121 C       |-- LAYERS_READPARMS
                0122 C       |
5593e3ac8c Jean*0123 C       |-- NEST_CHILD_READPARMS
                0124 C       |-- NEST_PARENT_READPARMS
                0125 C       |
6591b3fcc3 Jean*0126 C       |-- NEST2W_C_READPARMS
                0127 C       |-- NEST2W_P_READPARMS
                0128 C       |
5593e3ac8c Jean*0129 C       |-- CPL_READPARMS
                0130 C       |
696c4221e9 Mart*0131 C       |-- OASIS_READPARMS
                0132 C       |
5593e3ac8c Jean*0133 C       |-- RUNCLOCK_READPARMS
                0134 C       |
dfc9bc933c Ryan*0135 C       |-- MYPACKAGE_READPARMS
9366854e02 Chri*0136 
                0137 C     !USES:
                0138       IMPLICIT NONE
c859c0e3e6 Patr*0139 C     == Global variables ==
                0140 #include "SIZE.h"
                0141 #include "EEPARAMS.h"
                0142 #include "PARAMS.h"
                0143 
                0144 C     == Routine arguments ==
                0145       INTEGER myThid
9366854e02 Chri*0146 CEOP
c859c0e3e6 Patr*0147 
cdf6d093b9 Ed H*0148 #ifdef ALLOW_MNC
1219e7c863 Jean*0149 C--   if useMNC=T, read run-time flags for MNC; otherwise just return
                0150       CALL MNC_READPARMS( myThid )
cdf6d093b9 Ed H*0151 #endif
                0152 
462fd48b6a Mart*0153 #ifdef ALLOW_CAL
1219e7c863 Jean*0154 C--   if useCAL=T, set the calendar package parameters.
                0155 C      otherwise, just set cal_setStatus=-1 and return
                0156       CALL CAL_READPARMS( myThid )
462fd48b6a Mart*0157 #endif
                0158 
173921fccd Mart*0159 #ifdef ALLOW_EXF
1219e7c863 Jean*0160 C--   if useEXF=T, set EXF parameters; otherwise just return
                0161       CALL EXF_READPARMS  ( myThid )
173921fccd Mart*0162 #endif
                0163 
5593e3ac8c Jean*0164 #ifdef ALLOW_OBCS
1219e7c863 Jean*0165 C--   if useOBCS=T, set OBCS parameters; otherwise just return
                0166       CALL OBCS_READPARMS( myThid )
c859c0e3e6 Patr*0167 #endif
                0168 
5593e3ac8c Jean*0169 #ifdef ALLOW_SHAP_FILT
1219e7c863 Jean*0170 C--   if useSHAP_FILT=T, set Shapiro-Filter parameters; otherwise just return
                0171       CALL SHAP_FILT_READPARMS( myThid )
1db41719d4 Jean*0172 #endif
                0173 
5593e3ac8c Jean*0174 #ifdef ALLOW_ZONAL_FILT
1219e7c863 Jean*0175 C--   if useZONAL_FILT=T, set Zonal-Filter parameters; otherwise just return
                0176       CALL ZONAL_FILT_READPARMS( myThid )
15338fa568 Dimi*0177 #endif
                0178 
5593e3ac8c Jean*0179 #ifdef ALLOW_OPPS
1219e7c863 Jean*0180 C--   if useOPPS=T, set OPPS parameters; otherwise just return
                0181       CALL OPPS_READPARMS( myThid )
c859c0e3e6 Patr*0182 #endif
                0183 
e864122ae8 Mart*0184 #ifdef ALLOW_PP81
1219e7c863 Jean*0185 C--   if usePP81=T, set PP81 parameters; otherwise just return
                0186       CALL PP81_READPARMS( myThid )
e864122ae8 Mart*0187 #endif
                0188 
d8d1486ca1 Jean*0189 #ifdef ALLOW_KL10
                0190 C--   if useKL10=T, set KL10 parameters; otherwise just return
                0191       CALL KL10_READPARMS( myThid )
                0192 #endif
                0193 
e864122ae8 Mart*0194 #ifdef ALLOW_MY82
1219e7c863 Jean*0195 C--   if useMY82=T, set MY82 parameters; otherwise just return
                0196       CALL MY82_READPARMS( myThid )
e864122ae8 Mart*0197 #endif
                0198 
69a7b27187 Mart*0199 #ifdef ALLOW_GGL90
1219e7c863 Jean*0200 C--   if useGGL90=T, set GGL90 parameters; otherwise just return
                0201       CALL GGL90_READPARMS( myThid )
69a7b27187 Mart*0202 #endif
                0203 
5593e3ac8c Jean*0204 #ifdef ALLOW_KPP
1219e7c863 Jean*0205 C--   if useKPP=T, set KPP parameters; otherwise just return
                0206       CALL KPP_READPARMS( myThid )
aea29c8517 Alis*0207 #endif
                0208 
5593e3ac8c Jean*0209 #ifdef ALLOW_GMREDI
1219e7c863 Jean*0210 C--   if useGMRedi=T, set GM/Redi parameters; otherwise just return
                0211       CALL GMREDI_READPARMS( myThid )
d71c33e3de Jean*0212 #endif
                0213 
5593e3ac8c Jean*0214 #ifdef ALLOW_BBL
1219e7c863 Jean*0215 C--   if useBBL=T, set BBL parameters; otherwise just return
                0216       CALL BBL_READPARMS( myThid )
fb481a83c2 Alis*0217 #endif
                0218 
5593e3ac8c Jean*0219 #ifdef ALLOW_DOWN_SLOPE
1219e7c863 Jean*0220 C--   if useDOWN_SLOPE=T, set Down-Slope flow parameters; otherwise just return
                0221       CALL DWNSLP_READPARMS( myThid )
4e66ab0b67 Oliv*0222 #endif
                0223 
7753507405 Curt*0224 #ifdef ALLOW_BULK_FORCE
1219e7c863 Jean*0225 C--   if useBulkForce=T, set BULKF parameters; otherwise just return
                0226       CALL BULKF_READPARMS( myThid )
6424ee9bc0 Curt*0227 #endif
                0228 
5593e3ac8c Jean*0229 #ifdef ALLOW_EBM
1219e7c863 Jean*0230 C--   if useEBM=T, set EBM parameters; otherwise just return
                0231       CALL EBM_READPARMS( myThid )
6424ee9bc0 Curt*0232 #endif
                0233 
5593e3ac8c Jean*0234 #ifdef ALLOW_CHEAPAML
1219e7c863 Jean*0235 C--   if useCheapAML=T, set CheapAML parameters; otherwise just return
                0236       CALL CHEAPAML_READPARMS( myThid )
5593e3ac8c Jean*0237 #endif
                0238 
                0239 #ifdef ALLOW_FLT
1219e7c863 Jean*0240 C--   if useFLT=T, set Floats (FLT) parameters; otherwise just return
                0241       CALL FLT_READPARMS( myThid )
5593e3ac8c Jean*0242 #endif /* ALLOW_FLT */
                0243 
b9d14ac827 Jean*0244 #ifdef ALLOW_LONGSTEP
1219e7c863 Jean*0245 C--   if usePTRACERS=T, set Long-Step parameters; otherwise just return
                0246 C- note : need to call LONGSTEP_READPARMS before PTRACERS_READPARMS
                0247       CALL LONGSTEP_READPARMS( myThid )
b9d14ac827 Jean*0248 #endif
5c43c390b6 Alis*0249 #ifdef ALLOW_PTRACERS
1219e7c863 Jean*0250 C--   if usePTRACERS=T, set Passive-Traces parameters; otherwise just return
                0251       CALL PTRACERS_READPARMS( myThid )
cf2549e769 Patr*0252 #endif
                0253 
                0254 #ifdef ALLOW_GCHEM
1219e7c863 Jean*0255 C--   if useGCHEM=T, set GCHEM parameters; otherwise just return
                0256       CALL GCHEM_READPARMS( myThid )
5c43c390b6 Alis*0257 #endif
176ce185cd Step*0258 
                0259 #ifdef ALLOW_RBCS
1219e7c863 Jean*0260 C--   if useRBCS=T, set RBCS parameters; otherwise just return
                0261       CALL RBCS_READPARMS( myThid )
176ce185cd Step*0262 #endif
5c43c390b6 Alis*0263 
5593e3ac8c Jean*0264 #ifdef ALLOW_OFFLINE
1219e7c863 Jean*0265 C--   if useOffLine=T, set OFFLINE parameters; otherwise just return
                0266       CALL OFFLINE_READPARMS( myThid )
5593e3ac8c Jean*0267 #endif
                0268 
                0269 #ifdef ALLOW_MATRIX
1219e7c863 Jean*0270 C--   if useMATRIX=T, set MATRIX parameters; otherwise just return
ad59256d7d aver*0271       CALL MATRIX_READPARMS( myThid )
5593e3ac8c Jean*0272 #endif
                0273 
148dd84005 jm-c 0274 #ifdef ALLOW_STREAMICE
                0275 C--   if useStreamIce=T, set STREAMICE parameters; otherwise just return
                0276       CALL STREAMICE_READPARMS( myThid )
b5aa60a554 Dimi*0277 #endif
                0278 
5593e3ac8c Jean*0279 #ifdef ALLOW_SHELFICE
1219e7c863 Jean*0280 C--   if useShelfIce=T, set SHELFICE parameters; otherwise just return
                0281       CALL SHELFICE_READPARMS( myThid )
5593e3ac8c Jean*0282 #endif
                0283 
00f81e6785 Ou W*0284 #ifdef ALLOW_STEEP_ICECAVITY
                0285 C--   if useSTIC=T, set STEEP_ICECAVITY parameters; otherwise just return
                0286       CALL STIC_READPARMS( myThid )
                0287 #endif
                0288 
5593e3ac8c Jean*0289 #ifdef ALLOW_ICEFRONT
1219e7c863 Jean*0290 C--   if useICEFRONT=T, set ICEFRONT parameters; otherwise just return
                0291       CALL ICEFRONT_READPARMS( myThid )
5593e3ac8c Jean*0292 #endif
                0293 
148dd84005 jm-c 0294 #ifdef ALLOW_SEAICE
                0295 C--   if useSEAICE=T, set SEAICE parameters; otherwise just return
                0296       CALL SEAICE_READPARMS( myThid )
                0297 #endif
                0298 
                0299 #ifdef ALLOW_SALT_PLUME
                0300 C--   if useSALT_PLUME=T, set SALT_PLUME parameters; otherwise just return
                0301       CALL SALT_PLUME_READPARMS( myThid )
                0302 #endif
                0303 
5593e3ac8c Jean*0304 #ifdef ALLOW_THSICE
1219e7c863 Jean*0305 C--   if useThSIce=T, set Therm.Sea-Ice parameters; otherwise just return
                0306       CALL THSICE_READPARMS( myThid )
86f14fa6df Jean*0307 #endif
                0308 
b8e989b7a2 Jean*0309 #ifdef ALLOW_LAND
                0310 C--   if useLand=T, set LAND pkg parameters; otherwise just return
                0311       CALL LAND_READPARMS( myThid )
                0312 #endif
                0313 
3c287b198c Jean*0314 #ifdef ALLOW_AUTODIFF
                0315 C--   Initialise autodiff parameters
                0316       CALL AUTODIFF_READPARMS( myThid )
                0317 #endif
                0318 
170b439592 Patr*0319 #ifdef ALLOW_CTRL
cccd4faf56 Patr*0320 C--   Initialise the optim. parameters.
1db41719d4 Jean*0321       CALL OPTIM_READPARMS( myThid )
5d7fa54ba5 Patr*0322 C--   Initialise the control parameters
1db41719d4 Jean*0323       CALL CTRL_READPARMS( myThid )
170b439592 Patr*0324 #endif
                0325 
                0326 #ifdef ALLOW_COST
5d7fa54ba5 Patr*0327 C--   Initialise the cost parameters
1db41719d4 Jean*0328       CALL COST_READPARMS( myThid )
cccd4faf56 Patr*0329 #endif
ad9b3080a0 Patr*0330 
edd57506ae Patr*0331 #ifdef ALLOW_GRDCHK
1219e7c863 Jean*0332 C--   if useGrdChk=T, set gradient-check parameters; otherwise just return
                0333       CALL GRDCHK_READPARMS( myThid )
2dcaa8b9a5 Patr*0334 #endif
                0335 
1a5b8b2149 Gael*0336 #ifdef ALLOW_SMOOTH
1219e7c863 Jean*0337 C--   if useSMOOTH=T, set SMOOTH parameters; otherwise just return
ad59256d7d aver*0338       CALL SMOOTH_READPARMS( myThid )
1a5b8b2149 Gael*0339 #endif
                0340 
438648d0e1 Patr*0341 #ifdef ALLOW_ECCO
c859c0e3e6 Patr*0342 c--   Initialize ECCO package parameters
ad59256d7d aver*0343       CALL ECCO_READPARMS( myThid )
c859c0e3e6 Patr*0344 #endif
                0345 
6e4c90fea3 Patr*0346 #ifdef ALLOW_PROFILES
1219e7c863 Jean*0347 C--   if usePROFILES=T, set PROFILES parameters; otherwise just return
ad59256d7d aver*0348       CALL PROFILES_READPARMS( myThid )
                0349 #endif
                0350 
                0351 #ifdef ALLOW_OBSFIT
                0352 C--   if useOBSFIT=T, set OBSFIT parameters; otherwise just return
                0353       CALL OBSFIT_READPARMS( myThid )
6e4c90fea3 Patr*0354 #endif
                0355 
5593e3ac8c Jean*0356 #ifdef ALLOW_SBO
1219e7c863 Jean*0357 C--   if useSBO=T, set SBO parameters; otherwise just return
                0358       CALL SBO_READPARMS( myThid )
5593e3ac8c Jean*0359 #endif
ba9a45d563 Jean*0360 
5593e3ac8c Jean*0361 #ifdef ALLOW_ATM_PHYS
1219e7c863 Jean*0362 C--   if useAtm_Phys=T, set Atm_Phys parameters; otherwise just return
                0363       CALL ATM_PHYS_READPARMS( myThid )
5593e3ac8c Jean*0364 #endif
c1b6df074d Jean*0365 
6aac8482f6 Andr*0366 #ifdef ALLOW_FIZHI
1219e7c863 Jean*0367 C--   if useFizhi=T, set fizhi parameters; otherwise just return
                0368       CALL FIZHI_READPARMS( myThid )
6aac8482f6 Andr*0369 #endif /* ALLOW_FIZHI */
                0370 
48121039da Jean*0371 #ifdef ALLOW_DIAGNOSTICS
564aee49d1 Jean*0372 C--   if useDiagnostics=T, set diagnostics choices
                0373 C      otherwise, just set pkgStatus=-1 and return
                0374       CALL DIAGNOSTICS_READPARMS( myThid )
48121039da Jean*0375 #endif /* ALLOW_DIAGNOSTICS */
                0376 
39cebd8084 Ed H*0377 #ifdef ALLOW_REGRID
1219e7c863 Jean*0378 C--   if useREGRID=T, set REGRID parameters; otherwise just return
                0379       CALL REGRID_READPARMS( myThid )
39cebd8084 Ed H*0380 #endif /* ALLOW_REGRID */
                0381 
dfc9bc933c Ryan*0382 #ifdef ALLOW_LAYERS
1219e7c863 Jean*0383 C--   if useLayers=T, set layers parameters; otherwise just return
                0384       CALL LAYERS_READPARMS( myThid )
dfc9bc933c Ryan*0385 #endif /* ALLOW_LAYERS */
                0386 
5593e3ac8c Jean*0387 #ifdef ALLOW_NEST_CHILD
                0388 C--    Initialize nest(ing) package parameters x CHILD
ad59256d7d aver*0389        IF (useNEST_CHILD) CALL NEST_CHILD_READPARMS( myThid )
5593e3ac8c Jean*0390 #endif /* ALLOW_NEST_CHILD */
                0391 C
                0392 #ifdef ALLOW_NEST_PARENT
                0393 C--    Initialize nest(ing) package parameters x PARENT
ad59256d7d aver*0394        IF (useNEST_PARENT) CALL NEST_PARENT_READPARMS( myThid )
5593e3ac8c Jean*0395 #endif /* ALLOW_NEST_PARENT */
                0396 
6591b3fcc3 Jean*0397 #ifdef ALLOW_NEST2W_CHILD
                0398 C--    Initialize Child 2-way nest(ing) package parameters
                0399        IF (useNest2W_child) CALL NEST2W_C_READPARMS( myThid )
                0400 #endif /* ALLOW_NEST2W_CHILD */
                0401 C
                0402 #ifdef ALLOW_NEST2W_PARENT
                0403 C--    Initialize Parent 2-way nest(ing) package parameters
                0404        IF (useNest2W_parent) CALL NEST2W_P_READPARMS( myThid )
                0405 #endif /* ALLOW_NEST2W_PARENT */
                0406 
5593e3ac8c Jean*0407 #ifdef COMPONENT_MODULE
                0408 C--   set Coupling parameters
                0409       IF ( useCoupler ) CALL CPL_READPARMS( myThid )
                0410 #endif /* COMPONENT_MODULE */
                0411 
696c4221e9 Mart*0412 #ifdef ALLOW_OASIS
ad59256d7d aver*0413        IF (useOASIS) CALL OASIS_READPARMS( myThid )
696c4221e9 Mart*0414 #endif
                0415 
5593e3ac8c Jean*0416 #ifdef ALLOW_RUNCLOCK
1219e7c863 Jean*0417 C--   if useRunClock=T, set RUNCLOCK parameters; otherwise just return
                0418       CALL RUNCLOCK_READPARMS( myThid )
5593e3ac8c Jean*0419 #endif
                0420 
dfc9bc933c Ryan*0421 #ifdef ALLOW_MYPACKAGE
1219e7c863 Jean*0422 C--   if useMYPACKAGE=T, set mypackage parameters; otherwise just return
                0423       CALL MYPACKAGE_READPARMS( myThid )
dfc9bc933c Ryan*0424 #endif
                0425 
10e4bbdd7f Jean*0426       RETURN
c859c0e3e6 Patr*0427       END