Back to home page

MITgcm

 
 

    


File indexing completed on 2024-05-25 05:10:20 UTC

view on githubraw file Latest commit 00f81e67 on 2024-05-24 21:00:12 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       |
5593e3ac8c Jean*0109 C       |-- SBO_READPARMS
ba9a45d563 Jean*0110 C       |
5593e3ac8c Jean*0111 C       |-- ATM_PHYS_READPARMS
48121039da Jean*0112 C       |
                0113 C       |-- FIZHI_READPARMS
                0114 C       |
                0115 C       |-- DIAGNOSTICS_READPARMS
39cebd8084 Ed H*0116 C       |
                0117 C       |-- REGRID_READPARMS
dfc9bc933c Ryan*0118 C       |
                0119 C       |-- LAYERS_READPARMS
                0120 C       |
5593e3ac8c Jean*0121 C       |-- NEST_CHILD_READPARMS
                0122 C       |-- NEST_PARENT_READPARMS
                0123 C       |
6591b3fcc3 Jean*0124 C       |-- NEST2W_C_READPARMS
                0125 C       |-- NEST2W_P_READPARMS
                0126 C       |
5593e3ac8c Jean*0127 C       |-- CPL_READPARMS
                0128 C       |
696c4221e9 Mart*0129 C       |-- OASIS_READPARMS
                0130 C       |
5593e3ac8c Jean*0131 C       |-- RUNCLOCK_READPARMS
                0132 C       |
dfc9bc933c Ryan*0133 C       |-- MYPACKAGE_READPARMS
9366854e02 Chri*0134 
                0135 C     !USES:
                0136       IMPLICIT NONE
c859c0e3e6 Patr*0137 C     == Global variables ==
                0138 #include "SIZE.h"
                0139 #include "EEPARAMS.h"
                0140 #include "PARAMS.h"
                0141 
                0142 C     == Routine arguments ==
                0143       INTEGER myThid
9366854e02 Chri*0144 CEOP
c859c0e3e6 Patr*0145 
cdf6d093b9 Ed H*0146 #ifdef ALLOW_MNC
1219e7c863 Jean*0147 C--   if useMNC=T, read run-time flags for MNC; otherwise just return
                0148       CALL MNC_READPARMS( myThid )
cdf6d093b9 Ed H*0149 #endif
                0150 
462fd48b6a Mart*0151 #ifdef ALLOW_CAL
1219e7c863 Jean*0152 C--   if useCAL=T, set the calendar package parameters.
                0153 C      otherwise, just set cal_setStatus=-1 and return
                0154       CALL CAL_READPARMS( myThid )
462fd48b6a Mart*0155 #endif
                0156 
173921fccd Mart*0157 #ifdef ALLOW_EXF
1219e7c863 Jean*0158 C--   if useEXF=T, set EXF parameters; otherwise just return
                0159       CALL EXF_READPARMS  ( myThid )
173921fccd Mart*0160 #endif
                0161 
5593e3ac8c Jean*0162 #ifdef ALLOW_OBCS
1219e7c863 Jean*0163 C--   if useOBCS=T, set OBCS parameters; otherwise just return
                0164       CALL OBCS_READPARMS( myThid )
c859c0e3e6 Patr*0165 #endif
                0166 
5593e3ac8c Jean*0167 #ifdef ALLOW_SHAP_FILT
1219e7c863 Jean*0168 C--   if useSHAP_FILT=T, set Shapiro-Filter parameters; otherwise just return
                0169       CALL SHAP_FILT_READPARMS( myThid )
1db41719d4 Jean*0170 #endif
                0171 
5593e3ac8c Jean*0172 #ifdef ALLOW_ZONAL_FILT
1219e7c863 Jean*0173 C--   if useZONAL_FILT=T, set Zonal-Filter parameters; otherwise just return
                0174       CALL ZONAL_FILT_READPARMS( myThid )
15338fa568 Dimi*0175 #endif
                0176 
5593e3ac8c Jean*0177 #ifdef ALLOW_OPPS
1219e7c863 Jean*0178 C--   if useOPPS=T, set OPPS parameters; otherwise just return
                0179       CALL OPPS_READPARMS( myThid )
c859c0e3e6 Patr*0180 #endif
                0181 
e864122ae8 Mart*0182 #ifdef ALLOW_PP81
1219e7c863 Jean*0183 C--   if usePP81=T, set PP81 parameters; otherwise just return
                0184       CALL PP81_READPARMS( myThid )
e864122ae8 Mart*0185 #endif
                0186 
d8d1486ca1 Jean*0187 #ifdef ALLOW_KL10
                0188 C--   if useKL10=T, set KL10 parameters; otherwise just return
                0189       CALL KL10_READPARMS( myThid )
                0190 #endif
                0191 
e864122ae8 Mart*0192 #ifdef ALLOW_MY82
1219e7c863 Jean*0193 C--   if useMY82=T, set MY82 parameters; otherwise just return
                0194       CALL MY82_READPARMS( myThid )
e864122ae8 Mart*0195 #endif
                0196 
69a7b27187 Mart*0197 #ifdef ALLOW_GGL90
1219e7c863 Jean*0198 C--   if useGGL90=T, set GGL90 parameters; otherwise just return
                0199       CALL GGL90_READPARMS( myThid )
69a7b27187 Mart*0200 #endif
                0201 
5593e3ac8c Jean*0202 #ifdef ALLOW_KPP
1219e7c863 Jean*0203 C--   if useKPP=T, set KPP parameters; otherwise just return
                0204       CALL KPP_READPARMS( myThid )
aea29c8517 Alis*0205 #endif
                0206 
5593e3ac8c Jean*0207 #ifdef ALLOW_GMREDI
1219e7c863 Jean*0208 C--   if useGMRedi=T, set GM/Redi parameters; otherwise just return
                0209       CALL GMREDI_READPARMS( myThid )
d71c33e3de Jean*0210 #endif
                0211 
5593e3ac8c Jean*0212 #ifdef ALLOW_BBL
1219e7c863 Jean*0213 C--   if useBBL=T, set BBL parameters; otherwise just return
                0214       CALL BBL_READPARMS( myThid )
fb481a83c2 Alis*0215 #endif
                0216 
5593e3ac8c Jean*0217 #ifdef ALLOW_DOWN_SLOPE
1219e7c863 Jean*0218 C--   if useDOWN_SLOPE=T, set Down-Slope flow parameters; otherwise just return
                0219       CALL DWNSLP_READPARMS( myThid )
4e66ab0b67 Oliv*0220 #endif
                0221 
7753507405 Curt*0222 #ifdef ALLOW_BULK_FORCE
1219e7c863 Jean*0223 C--   if useBulkForce=T, set BULKF parameters; otherwise just return
                0224       CALL BULKF_READPARMS( myThid )
6424ee9bc0 Curt*0225 #endif
                0226 
5593e3ac8c Jean*0227 #ifdef ALLOW_EBM
1219e7c863 Jean*0228 C--   if useEBM=T, set EBM parameters; otherwise just return
                0229       CALL EBM_READPARMS( myThid )
6424ee9bc0 Curt*0230 #endif
                0231 
5593e3ac8c Jean*0232 #ifdef ALLOW_CHEAPAML
1219e7c863 Jean*0233 C--   if useCheapAML=T, set CheapAML parameters; otherwise just return
                0234       CALL CHEAPAML_READPARMS( myThid )
5593e3ac8c Jean*0235 #endif
                0236 
                0237 #ifdef ALLOW_FLT
1219e7c863 Jean*0238 C--   if useFLT=T, set Floats (FLT) parameters; otherwise just return
                0239       CALL FLT_READPARMS( myThid )
5593e3ac8c Jean*0240 #endif /* ALLOW_FLT */
                0241 
b9d14ac827 Jean*0242 #ifdef ALLOW_LONGSTEP
1219e7c863 Jean*0243 C--   if usePTRACERS=T, set Long-Step parameters; otherwise just return
                0244 C- note : need to call LONGSTEP_READPARMS before PTRACERS_READPARMS
                0245       CALL LONGSTEP_READPARMS( myThid )
b9d14ac827 Jean*0246 #endif
5c43c390b6 Alis*0247 #ifdef ALLOW_PTRACERS
1219e7c863 Jean*0248 C--   if usePTRACERS=T, set Passive-Traces parameters; otherwise just return
                0249       CALL PTRACERS_READPARMS( myThid )
cf2549e769 Patr*0250 #endif
                0251 
                0252 #ifdef ALLOW_GCHEM
1219e7c863 Jean*0253 C--   if useGCHEM=T, set GCHEM parameters; otherwise just return
                0254       CALL GCHEM_READPARMS( myThid )
5c43c390b6 Alis*0255 #endif
176ce185cd Step*0256 
                0257 #ifdef ALLOW_RBCS
1219e7c863 Jean*0258 C--   if useRBCS=T, set RBCS parameters; otherwise just return
                0259       CALL RBCS_READPARMS( myThid )
176ce185cd Step*0260 #endif
5c43c390b6 Alis*0261 
5593e3ac8c Jean*0262 #ifdef ALLOW_OFFLINE
1219e7c863 Jean*0263 C--   if useOffLine=T, set OFFLINE parameters; otherwise just return
                0264       CALL OFFLINE_READPARMS( myThid )
5593e3ac8c Jean*0265 #endif
                0266 
                0267 #ifdef ALLOW_MATRIX
1219e7c863 Jean*0268 C--   if useMATRIX=T, set MATRIX parameters; otherwise just return
                0269       CALL MATRIX_READPARMS ( myThid )
5593e3ac8c Jean*0270 #endif
                0271 
148dd84005 jm-c 0272 #ifdef ALLOW_STREAMICE
                0273 C--   if useStreamIce=T, set STREAMICE parameters; otherwise just return
                0274       CALL STREAMICE_READPARMS( myThid )
b5aa60a554 Dimi*0275 #endif
                0276 
5593e3ac8c Jean*0277 #ifdef ALLOW_SHELFICE
1219e7c863 Jean*0278 C--   if useShelfIce=T, set SHELFICE parameters; otherwise just return
                0279       CALL SHELFICE_READPARMS( myThid )
5593e3ac8c Jean*0280 #endif
                0281 
00f81e6785 Ou W*0282 #ifdef ALLOW_STEEP_ICECAVITY
                0283 C--   if useSTIC=T, set STEEP_ICECAVITY parameters; otherwise just return
                0284       CALL STIC_READPARMS( myThid )
                0285 #endif
                0286 
5593e3ac8c Jean*0287 #ifdef ALLOW_ICEFRONT
1219e7c863 Jean*0288 C--   if useICEFRONT=T, set ICEFRONT parameters; otherwise just return
                0289       CALL ICEFRONT_READPARMS( myThid )
5593e3ac8c Jean*0290 #endif
                0291 
148dd84005 jm-c 0292 #ifdef ALLOW_SEAICE
                0293 C--   if useSEAICE=T, set SEAICE parameters; otherwise just return
                0294       CALL SEAICE_READPARMS( myThid )
                0295 #endif
                0296 
                0297 #ifdef ALLOW_SALT_PLUME
                0298 C--   if useSALT_PLUME=T, set SALT_PLUME parameters; otherwise just return
                0299       CALL SALT_PLUME_READPARMS( myThid )
                0300 #endif
                0301 
5593e3ac8c Jean*0302 #ifdef ALLOW_THSICE
1219e7c863 Jean*0303 C--   if useThSIce=T, set Therm.Sea-Ice parameters; otherwise just return
                0304       CALL THSICE_READPARMS( myThid )
86f14fa6df Jean*0305 #endif
                0306 
b8e989b7a2 Jean*0307 #ifdef ALLOW_LAND
                0308 C--   if useLand=T, set LAND pkg parameters; otherwise just return
                0309       CALL LAND_READPARMS( myThid )
                0310 #endif
                0311 
3c287b198c Jean*0312 #ifdef ALLOW_AUTODIFF
                0313 C--   Initialise autodiff parameters
                0314       CALL AUTODIFF_READPARMS( myThid )
                0315 #endif
                0316 
170b439592 Patr*0317 #ifdef ALLOW_CTRL
cccd4faf56 Patr*0318 C--   Initialise the optim. parameters.
1db41719d4 Jean*0319       CALL OPTIM_READPARMS( myThid )
5d7fa54ba5 Patr*0320 C--   Initialise the control parameters
1db41719d4 Jean*0321       CALL CTRL_READPARMS( myThid )
170b439592 Patr*0322 #endif
                0323 
                0324 #ifdef ALLOW_COST
5d7fa54ba5 Patr*0325 C--   Initialise the cost parameters
1db41719d4 Jean*0326       CALL COST_READPARMS( myThid )
cccd4faf56 Patr*0327 #endif
ad9b3080a0 Patr*0328 
edd57506ae Patr*0329 #ifdef ALLOW_GRDCHK
1219e7c863 Jean*0330 C--   if useGrdChk=T, set gradient-check parameters; otherwise just return
                0331       CALL GRDCHK_READPARMS( myThid )
2dcaa8b9a5 Patr*0332 #endif
                0333 
1a5b8b2149 Gael*0334 #ifdef ALLOW_SMOOTH
1219e7c863 Jean*0335 C--   if useSMOOTH=T, set SMOOTH parameters; otherwise just return
                0336       CALL SMOOTH_READPARMS ( myThid )
1a5b8b2149 Gael*0337 #endif
                0338 
438648d0e1 Patr*0339 #ifdef ALLOW_ECCO
c859c0e3e6 Patr*0340 c--   Initialize ECCO package parameters
1db41719d4 Jean*0341       CALL ECCO_READPARMS ( myThid )
c859c0e3e6 Patr*0342 #endif
                0343 
6e4c90fea3 Patr*0344 #ifdef ALLOW_PROFILES
1219e7c863 Jean*0345 C--   if usePROFILES=T, set PROFILES parameters; otherwise just return
                0346       CALL PROFILES_READPARMS ( myThid )
6e4c90fea3 Patr*0347 #endif
                0348 
5593e3ac8c Jean*0349 #ifdef ALLOW_SBO
1219e7c863 Jean*0350 C--   if useSBO=T, set SBO parameters; otherwise just return
                0351       CALL SBO_READPARMS( myThid )
5593e3ac8c Jean*0352 #endif
ba9a45d563 Jean*0353 
5593e3ac8c Jean*0354 #ifdef ALLOW_ATM_PHYS
1219e7c863 Jean*0355 C--   if useAtm_Phys=T, set Atm_Phys parameters; otherwise just return
                0356       CALL ATM_PHYS_READPARMS( myThid )
5593e3ac8c Jean*0357 #endif
c1b6df074d Jean*0358 
6aac8482f6 Andr*0359 #ifdef ALLOW_FIZHI
1219e7c863 Jean*0360 C--   if useFizhi=T, set fizhi parameters; otherwise just return
                0361       CALL FIZHI_READPARMS( myThid )
6aac8482f6 Andr*0362 #endif /* ALLOW_FIZHI */
                0363 
48121039da Jean*0364 #ifdef ALLOW_DIAGNOSTICS
564aee49d1 Jean*0365 C--   if useDiagnostics=T, set diagnostics choices
                0366 C      otherwise, just set pkgStatus=-1 and return
                0367       CALL DIAGNOSTICS_READPARMS( myThid )
48121039da Jean*0368 #endif /* ALLOW_DIAGNOSTICS */
                0369 
39cebd8084 Ed H*0370 #ifdef ALLOW_REGRID
1219e7c863 Jean*0371 C--   if useREGRID=T, set REGRID parameters; otherwise just return
                0372       CALL REGRID_READPARMS( myThid )
39cebd8084 Ed H*0373 #endif /* ALLOW_REGRID */
                0374 
dfc9bc933c Ryan*0375 #ifdef ALLOW_LAYERS
1219e7c863 Jean*0376 C--   if useLayers=T, set layers parameters; otherwise just return
                0377       CALL LAYERS_READPARMS( myThid )
dfc9bc933c Ryan*0378 #endif /* ALLOW_LAYERS */
                0379 
5593e3ac8c Jean*0380 #ifdef ALLOW_NEST_CHILD
                0381 C--    Initialize nest(ing) package parameters x CHILD
                0382        IF (useNEST_CHILD) CALL NEST_CHILD_READPARMS ( myThid )
                0383 #endif /* ALLOW_NEST_CHILD */
                0384 C
                0385 #ifdef ALLOW_NEST_PARENT
                0386 C--    Initialize nest(ing) package parameters x PARENT
                0387        IF (useNEST_PARENT) CALL NEST_PARENT_READPARMS ( myThid )
                0388 #endif /* ALLOW_NEST_PARENT */
                0389 
6591b3fcc3 Jean*0390 #ifdef ALLOW_NEST2W_CHILD
                0391 C--    Initialize Child 2-way nest(ing) package parameters
                0392        IF (useNest2W_child) CALL NEST2W_C_READPARMS( myThid )
                0393 #endif /* ALLOW_NEST2W_CHILD */
                0394 C
                0395 #ifdef ALLOW_NEST2W_PARENT
                0396 C--    Initialize Parent 2-way nest(ing) package parameters
                0397        IF (useNest2W_parent) CALL NEST2W_P_READPARMS( myThid )
                0398 #endif /* ALLOW_NEST2W_PARENT */
                0399 
5593e3ac8c Jean*0400 #ifdef COMPONENT_MODULE
                0401 C--   set Coupling parameters
                0402       IF ( useCoupler ) CALL CPL_READPARMS( myThid )
                0403 #endif /* COMPONENT_MODULE */
                0404 
696c4221e9 Mart*0405 #ifdef ALLOW_OASIS
                0406        IF (useOASIS) CALL OASIS_READPARMS ( myThid )
                0407 #endif
                0408 
5593e3ac8c Jean*0409 #ifdef ALLOW_RUNCLOCK
1219e7c863 Jean*0410 C--   if useRunClock=T, set RUNCLOCK parameters; otherwise just return
                0411       CALL RUNCLOCK_READPARMS( myThid )
5593e3ac8c Jean*0412 #endif
                0413 
dfc9bc933c Ryan*0414 #ifdef ALLOW_MYPACKAGE
1219e7c863 Jean*0415 C--   if useMYPACKAGE=T, set mypackage parameters; otherwise just return
                0416       CALL MYPACKAGE_READPARMS( myThid )
dfc9bc933c Ryan*0417 #endif
                0418 
10e4bbdd7f Jean*0419       RETURN
c859c0e3e6 Patr*0420       END