File indexing completed on 2026-03-19 05:08:30 UTC
view on githubraw file Latest commit 69361556 on 2026-03-18 21:20:20 UTC
7bfe6112e8 Jean*0001 #include "CTRL_OPTIONS.h"
57c22ecc45 Jean*0002 #include "AD_CONFIG.h"
69361556c2 Mart*0003 #if ( defined ALLOW_GENARR2D_CONTROL \
0004 || defined ALLOW_GENARR3D_CONTROL \
0005 || defined ALLOW_GENTIM2D_CONTROL )
0006 # define ALLOW_GENARR_CONTROL
0007 #endif
cf705a6c8e Mart*0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 SUBROUTINE CTRL_READPARMS( myThid )
0019
0020
0021
0022
0023
0024
0025
0026 IMPLICIT NONE
0027
0028
042be14492 Patr*0029 #include "EEPARAMS.h"
0030 #include "SIZE.h"
0031 #include "PARAMS.h"
61a813cf9a Gael*0032 #ifdef ALLOW_CTRL
0033 # include "CTRL_SIZE.h"
4d72283393 Mart*0034 # include "CTRL.h"
61a813cf9a Gael*0035 # include "CTRL_GENARR.h"
0036 # include "CTRL_OBCS.h"
cf705a6c8e Mart*0037 # include "ctrl_local_params.h"
61a813cf9a Gael*0038 #endif
a5904a1bbe Gael*0039 #ifdef ALLOW_AUTODIFF
0040 #include "AUTODIFF_PARAMS.h"
0041 #endif
042be14492 Patr*0042
cf705a6c8e Mart*0043
0044 INTEGER myThid
042be14492 Patr*0045
f9d7cbfb72 Ou W*0046
0047 INTEGER ILNBLNK
0048 EXTERNAL ILNBLNK
0049
cf705a6c8e Mart*0050
0051 INTEGER iUnit
0052 INTEGER nRetired
0053 CHARACTER*(MAX_LEN_MBUF) msgBuf
69361556c2 Mart*0054 #ifdef ALLOW_GENARR_CONTROL
cf705a6c8e Mart*0055 INTEGER iarr,jarr
02585d30f9 Gael*0056 #endif
f9d7cbfb72 Ou W*0057 CHARACTER*(MAX_LEN_FNAM) namBuf
0058 INTEGER IL
0059 #ifdef HAVE_SYSTEM
0060 INTEGER pIL
0061 #endif
69361556c2 Mart*0062
0063 _RL mult_default
cf705a6c8e Mart*0064
0065 LOGICAL ctrlUseGen
0066 LOGICAL ctrlSmoothCorrel3D
0067 LOGICAL ctrlSmoothCorrel2D
69361556c2 Mart*0068 #ifndef ALLOW_COST
0069
0070 _RL mult_obcsN, mult_obcsS
0071 _RL mult_obcsE, mult_obcsW
0072 _RL mult_obcsvol, mult_ageos
0073 # ifdef ALLOW_GENARR_CONTROL
0074 _RL mult_gentim2d(maxCtrlTim2D)
0075 _RL mult_genarr2d(maxCtrlArr2D)
0076 _RL mult_genarr3d(maxCtrlArr3D)
0077 # endif
0078 #endif
cf705a6c8e Mart*0079
0080
0081
0082 NAMELIST /CTRL_NML/
983e72444d Patr*0083 & xx_theta_file, xx_salt_file,
0084 & xx_hflux_file, xx_hflux_remo_intercept, xx_hflux_remo_slope,
042be14492 Patr*0085 & xx_hfluxstartdate1, xx_hfluxstartdate2, xx_hfluxperiod,
983e72444d Patr*0086 & xx_sflux_file, xx_sflux_remo_intercept, xx_sflux_remo_slope,
042be14492 Patr*0087 & xx_sfluxstartdate1, xx_sfluxstartdate2, xx_sfluxperiod,
983e72444d Patr*0088 & xx_tauu_file, xx_tauu_remo_intercept, xx_tauu_remo_slope,
042be14492 Patr*0089 & xx_tauustartdate1, xx_tauustartdate2, xx_tauuperiod,
983e72444d Patr*0090 & xx_tauv_file, xx_tauv_remo_intercept, xx_tauv_remo_slope,
042be14492 Patr*0091 & xx_tauvstartdate1, xx_tauvstartdate2, xx_tauvperiod,
983e72444d Patr*0092 & xx_atemp_file, xx_atemp_remo_intercept, xx_atemp_remo_slope,
042be14492 Patr*0093 & xx_atempstartdate1, xx_atempstartdate2, xx_atempperiod,
983e72444d Patr*0094 & xx_aqh_file, xx_aqh_remo_intercept, xx_aqh_remo_slope,
042be14492 Patr*0095 & xx_aqhstartdate1, xx_aqhstartdate2, xx_aqhperiod,
983e72444d Patr*0096 & xx_precip_file, xx_precip_remo_intercept, xx_precip_remo_slope,
9ab1d0672d Patr*0097 & xx_precipstartdate1, xx_precipstartdate2, xx_precipperiod,
983e72444d Patr*0098 & xx_swflux_file, xx_swflux_remo_intercept, xx_swflux_remo_slope,
5ceb56546e Patr*0099 & xx_swfluxstartdate1, xx_swfluxstartdate2, xx_swfluxperiod,
983e72444d Patr*0100 & xx_swdown_file, xx_swdown_remo_intercept, xx_swdown_remo_slope,
02568c8633 Patr*0101 & xx_swdownstartdate1, xx_swdownstartdate2, xx_swdownperiod,
983e72444d Patr*0102 & xx_lwflux_file, xx_lwflux_remo_intercept, xx_lwflux_remo_slope,
0103 & xx_lwfluxstartdate1, xx_lwfluxstartdate2, xx_lwfluxperiod,
0104 & xx_lwdown_file, xx_lwdown_remo_intercept, xx_lwdown_remo_slope,
0105 & xx_lwdownstartdate1, xx_lwdownstartdate2, xx_lwdownperiod,
0106 & xx_evap_file, xx_evap_remo_intercept, xx_evap_remo_slope,
0107 & xx_evapstartdate1, xx_evapstartdate2, xx_evapperiod,
7ef594fa1c Jean*0108 & xx_snowprecip_file, xx_snowprecip_remo_intercept,
983e72444d Patr*0109 & xx_snowprecip_remo_slope, xx_snowprecipperiod,
0110 & xx_snowprecipstartdate1, xx_snowprecipstartdate2,
7ef594fa1c Jean*0111 & xx_apressure_file, xx_apressure_remo_intercept,
983e72444d Patr*0112 & xx_apressure_remo_slope, xx_apressureperiod,
0113 & xx_apressurestartdate1, xx_apressurestartdate2,
0114 & xx_runoff_file, xx_runoff_remo_intercept, xx_runoff_remo_slope,
0115 & xx_runoffstartdate1, xx_runoffstartdate2, xx_runoffperiod,
0116 & xx_uwind_file, xx_uwind_remo_intercept, xx_uwind_remo_slope,
042be14492 Patr*0117 & xx_uwindstartdate1, xx_uwindstartdate2, xx_uwindperiod,
983e72444d Patr*0118 & xx_vwind_file, xx_vwind_remo_intercept, xx_vwind_remo_slope,
042be14492 Patr*0119 & xx_vwindstartdate1, xx_vwindstartdate2, xx_vwindperiod,
bc12ca2c8b Patr*0120 & xx_aqh_mean_file, xx_atemp_mean_file, xx_precip_mean_file,
0121 & xx_swdown_mean_file, xx_uwind_mean_file, xx_vwind_mean_file,
69361556c2 Mart*0122 & xx_obcsN_file,
0123 & xx_obcsNstartdate1, xx_obcsNstartdate2, xx_obcsNperiod,
0124 & xx_obcsS_file,
0125 & xx_obcsSstartdate1, xx_obcsSstartdate2, xx_obcsSperiod,
0126 & xx_obcsE_file,
0127 & xx_obcsEstartdate1, xx_obcsEstartdate2, xx_obcsEperiod,
0128 & xx_obcsW_file,
0129 & xx_obcsWstartdate1, xx_obcsWstartdate2, xx_obcsWperiod,
7e2482cabc Gael*0130 & xx_diffkr_file, xx_kapgm_file, xx_kapredi_file, xx_tr1_file,
b142f4a690 Patr*0131 & xx_sst_file, xx_sst_remo_intercept, xx_sst_remo_slope,
0132 & xx_sss_file, xx_sss_remo_intercept, xx_sss_remo_slope,
103f30c840 Patr*0133 & xx_sststartdate1, xx_sststartdate2, xx_sstperiod,
0134 & xx_sssstartdate1, xx_sssstartdate2, xx_sssperiod,
7bfe6112e8 Jean*0135 & xx_depth_file, xx_gen2d_file, xx_gen3d_file,
ffe95b3b07 Patr*0136 & xx_efluxy_file, xx_efluxp_file, xx_bottomdrag_file,
983e72444d Patr*0137 & xx_edtaux_file, xx_edtauy_file,
0138 & xx_uvel_file, xx_vvel_file, xx_etan_file,
784bc8f884 Patr*0139 & xx_siarea_file, xx_siheff_file, xx_sihsnow_file,
7ef594fa1c Jean*0140 & xx_shifwflx_file,
0141 & xx_shifwflx_remo_intercept, xx_shifwflx_remo_slope,
1d82288286 Mart*0142 & xx_shifwflxstartdate1, xx_shifwflxstartdate2, xx_shifwflxperiod,
69361556c2 Mart*0143 & mult_obcsN, mult_obcsS, mult_obcsE, mult_obcsW,
0144 & mult_obcsvol, mult_ageos,
0145 & obcs_data_errfile,
b6f5c14800 Gael*0146 & doInitXX, ctrlSmoothCorrel3D, ctrlSmoothCorrel2D, ctrlUseGen,
b052f6c8f1 Patr*0147 & doPackDiag,
983e72444d Patr*0148 & doZscaleUnpack, doZscalePack,
0149 & doMainUnpack, doMainPack,
516917913e Patr*0150 & doSinglePrecTapelev,
ca0df8acbf Patr*0151 & doAdmtlmBypassAD,
f9d7cbfb72 Ou W*0152 & delZexp, forcingPrecond, ctrlprec, ctrlDir
798126c2ad Davi*0153
0154 & ,xx_hfluxm_file
0155
042be14492 Patr*0156
cf705a6c8e Mart*0157 NAMELIST /CTRL_PACKNAMES/
d04f98ba8f Patr*0158 & yadmark, yctrlid, yctrlposunpack, yctrlpospack,
042be14492 Patr*0159 & ctrlname, costname, scalname, maskname, metaname
0160
69361556c2 Mart*0161 #ifdef ALLOW_GENARR_CONTROL
cf705a6c8e Mart*0162 NAMELIST /CTRL_NML_GENARR/
7bd66d7dc3 Patr*0163 & xx_genarr2d_file, xx_genarr3d_file, xx_gentim2d_file,
3145d51f22 Patr*0164 & xx_genarr2d_weight, xx_genarr3d_weight, xx_gentim2d_weight,
bd00ac563a Gael*0165 & xx_genarr2d_bounds, xx_genarr3d_bounds, xx_gentim2d_bounds,
513e004a84 Gael*0166 & genarr2dPrecond, genarr3dPrecond, gentim2dPrecond,
0167 & mult_gentim2d,mult_genarr2d,mult_genarr3d,
0168 & xx_genarr2d_preproc, xx_genarr2d_preproc_i,
0169 & xx_genarr2d_preproc_r, xx_genarr2d_preproc_c,
0170 & xx_genarr3d_preproc, xx_genarr3d_preproc_i,
0171 & xx_genarr3d_preproc_r, xx_genarr3d_preproc_c,
0172 & xx_gentim2d_preproc, xx_gentim2d_preproc_i,
0173 & xx_gentim2d_preproc_r, xx_gentim2d_preproc_c,
9bf17fb3ed Gael*0174 & xx_gentim2d_period,
7bd66d7dc3 Patr*0175 & xx_gentim2d_startdate1, xx_gentim2d_startdate2,
513e004a84 Gael*0176 & xx_gentim2d_cumsum,xx_gentim2d_glosum
7bd66d7dc3 Patr*0177 #endif
0178
219393e304 Gael*0179 IF ( .NOT.useCTRL ) THEN
0180
0181 _BEGIN_MASTER(myThid)
0182
0183
0184 CALL PACKAGES_UNUSED_MSG( 'useCTRL', ' ', ' ' )
0185 _END_MASTER(myThid)
0186 RETURN
0187 ENDIF
0188
042be14492 Patr*0189 _BEGIN_MASTER( myThid )
0190
cf705a6c8e Mart*0191
8f0b59c61c Patr*0192 doInitXX = .TRUE.
456bf2eff2 Jean*0193 #ifdef ALLOW_SMOOTH_CORREL3D
439bdb021f Gael*0194 ctrlSmoothCorrel3D = .TRUE.
0195 #else
0196 ctrlSmoothCorrel3D = .FALSE.
0197 #endif
456bf2eff2 Jean*0198 #ifdef ALLOW_SMOOTH_CORREL2D
439bdb021f Gael*0199 ctrlSmoothCorrel2D = .TRUE.
0200 #else
0201 ctrlSmoothCorrel2D = .FALSE.
0202 #endif
b6f5c14800 Gael*0203 ctrlUseGen = .TRUE.
8f0b59c61c Patr*0204 #ifdef ALLOW_ADMTLM
0205 doAdmTlm = .TRUE.
0206 #else
0207 doAdmTlm = .FALSE.
0208 #endif
0ba65c94ff Patr*0209 doPackDiag = .FALSE.
b052f6c8f1 Patr*0210 doZscaleUnpack = .FALSE.
0211 doZscalePack = .FALSE.
f8659cb5d2 Patr*0212 doMainUnpack = .TRUE.
f29f3cc477 Jean*0213 #if (defined (ALLOW_ADJOINT_RUN)||defined (ALLOW_TANGENTLINEAR_RUN))
f8659cb5d2 Patr*0214 doMainPack = .TRUE.
456bf2eff2 Jean*0215 #else
0216 doMainPack = .FALSE.
0217 #endif
516917913e Patr*0218 doSinglePrecTapelev = .FALSE.
8a10dfc8f1 Patr*0219 doAdmtlmBypassAD = .FALSE.
8f0b59c61c Patr*0220
ca0df8acbf Patr*0221 delZexp = 0.
3a2820aa92 Gael*0222 forcingPrecond = 1. _d 0
ca0df8acbf Patr*0223
6b47d550f4 Mart*0224 #ifdef CTRL_SET_PREC_32
0225
0226
0227 ctrlprec = 32
0228 #else
0229 ctrlprec = 64
0230 #endif
0231
69361556c2 Mart*0232 obcs_data_errfile = ' '
f9d7cbfb72 Ou W*0233 ctrlDir = ' '
0234
8f901f15d1 Patr*0235 xx_theta_file = 'xx_theta'
0236 xx_salt_file = 'xx_salt'
cf705a6c8e Mart*0237
e936cea1a6 Patr*0238 xx_gen2d_file = 'xx_gen2d'
0239 xx_gen3d_file = 'xx_gen3d'
7bd66d7dc3 Patr*0240
69361556c2 Mart*0241 #ifdef ALLOW_GENARR_CONTROL
ffe95b3b07 Patr*0242 do iarr = 1, maxCtrlArr2D
954f010844 Gael*0243 write(xx_genarr2d_file(iarr)(1:MAX_LEN_FNAM),'(a)') ' '
0244 #ifdef ALLOW_OPENAD
ffe95b3b07 Patr*0245 write(xx_genarr2d_file(iarr)(1:14),'(a,i2.2)')
0246 & 'xx_genarr2d_', iarr
0247 write(xx_genarr2d_file(iarr)(15:MAX_LEN_FNAM),'(a)') ' '
954f010844 Gael*0248 #endif
3145d51f22 Patr*0249 write(xx_genarr2d_weight(iarr)(1:MAX_LEN_FNAM),'(a)') ' '
6b47d550f4 Mart*0250 genarr2dPrecond(iarr) = 1. _d 0
69361556c2 Mart*0251 mult_genarr2d(iarr) = UNSET_RL
02585d30f9 Gael*0252 do jarr = 1, 5
0253 xx_genarr2d_bounds(jarr,iarr) = 0. _d 0
0254 enddo
513e004a84 Gael*0255 do jarr=1,maxCtrlProc
0256 xx_genarr2d_preproc(jarr,iarr) = ' '
0257 xx_genarr2d_preproc_c(jarr,iarr) = ' '
0258 xx_genarr2d_preproc_i(jarr,iarr) = 0
0259 xx_genarr2d_preproc_r(jarr,iarr) = 0. _d 0
0260 enddo
ffe95b3b07 Patr*0261 enddo
cf705a6c8e Mart*0262
ffe95b3b07 Patr*0263 do iarr = 1, maxCtrlArr3D
954f010844 Gael*0264 write(xx_genarr3d_file(iarr)(1:MAX_LEN_FNAM),'(a)') ' '
0265 #ifdef ALLOW_OPENAD
ffe95b3b07 Patr*0266 write(xx_genarr3d_file(iarr)(1:14),'(a,i2.2)')
0267 & 'xx_genarr3d_', iarr
0268 write(xx_genarr3d_file(iarr)(15:MAX_LEN_FNAM),'(a)') ' '
954f010844 Gael*0269 #endif
3145d51f22 Patr*0270 write(xx_genarr3d_weight(iarr)(1:MAX_LEN_FNAM),'(a)') ' '
6b47d550f4 Mart*0271 genarr3dPrecond(iarr) = 1. _d 0
69361556c2 Mart*0272 mult_genarr3d(iarr) = UNSET_RL
02585d30f9 Gael*0273 do jarr = 1, 5
0274 xx_genarr3d_bounds(jarr,iarr) = 0. _d 0
0275 enddo
513e004a84 Gael*0276 do jarr=1,maxCtrlProc
0277 xx_genarr3d_preproc(jarr,iarr) = ' '
0278 xx_genarr3d_preproc_c(jarr,iarr) = ' '
0279 xx_genarr3d_preproc_i(jarr,iarr) = 0
0280 xx_genarr3d_preproc_r(jarr,iarr) = 0. _d 0
0281 enddo
ffe95b3b07 Patr*0282 enddo
cf705a6c8e Mart*0283
7bd66d7dc3 Patr*0284 do iarr = 1, maxCtrlTim2D
954f010844 Gael*0285 write(xx_gentim2d_file(iarr)(1:MAX_LEN_FNAM),'(a)') ' '
0286 #ifdef ALLOW_OPENAD
7bd66d7dc3 Patr*0287 write(xx_gentim2d_file(iarr)(1:14),'(a,i2.2)')
0288 & 'xx_gentim2d_', iarr
0289 write(xx_gentim2d_file(iarr)(15:MAX_LEN_FNAM),'(a)') ' '
954f010844 Gael*0290 #endif
3145d51f22 Patr*0291 write(xx_gentim2d_weight(iarr)(1:MAX_LEN_FNAM),'(a)') ' '
0292 xx_gentim2d_startdate1(iarr) = 0
0293 xx_gentim2d_startdate2(iarr) = 0
0294 xx_gentim2d_period(iarr) = 0. _d 0
a87570e2e8 Gael*0295 xx_gentim2d_cumsum(iarr) = .FALSE.
0296 xx_gentim2d_glosum(iarr) = .FALSE.
513e004a84 Gael*0297 do jarr=1,maxCtrlProc
0298 xx_gentim2d_preproc(jarr,iarr) = ' '
0299 xx_gentim2d_preproc_c(jarr,iarr) = ' '
0300 xx_gentim2d_preproc_i(jarr,iarr) = 0
0301 xx_gentim2d_preproc_r(jarr,iarr) = 0. _d 0
0302 enddo
ea1c7c7217 Gael*0303 gentim2dPrecond(iarr) = 1. _d 0
69361556c2 Mart*0304 mult_gentim2d(iarr) = UNSET_RL
bd00ac563a Gael*0305 do jarr = 1, 5
0306 xx_gentim2d_bounds(jarr,iarr) = 0. _d 0
0307 enddo
7bd66d7dc3 Patr*0308 enddo
0309 #endif
cf705a6c8e Mart*0310
69361556c2 Mart*0311 xx_obcsNstartdate1 = 0
0312 xx_obcsNstartdate2 = 0
0313 xx_obcsNperiod = 0. _d 0
0314 xx_obcsN_file = 'xx_obcsn'
0315
0316 xx_obcsSstartdate1 = 0
0317 xx_obcsSstartdate2 = 0
0318 xx_obcsSperiod = 0. _d 0
0319 xx_obcsS_file = 'xx_obcss'
0320
0321 xx_obcsEstartdate1 = 0
0322 xx_obcsEstartdate2 = 0
0323 xx_obcsEperiod = 0. _d 0
0324 xx_obcsE_file = 'xx_obcse'
0325
0326 xx_obcsWstartdate1 = 0
0327 xx_obcsWstartdate2 = 0
0328 xx_obcsWperiod = 0. _d 0
0329 xx_obcsW_file = 'xx_obcsw'
0330
0331 mult_obcsN = 0. _d 0
0332 mult_obcsS = 0. _d 0
0333 mult_obcsE = 0. _d 0
0334 mult_obcsW = 0. _d 0
0335 mult_obcsvol = 0. _d 0
0336 mult_ageos = 0. _d 0
cf705a6c8e Mart*0337
0338
0339
0340 CALL CTRL_SET_RETIRED_PARMS(xx_hfluxstartdate1,
0341 I xx_hfluxstartdate2, xx_hfluxperiod, xx_hflux_file,
0342 I xx_hflux_file, xx_hflux_remo_intercept,
0343 I xx_hflux_remo_slope , myThid )
0344 CALL CTRL_SET_RETIRED_PARMS(xx_sfluxstartdate1,
0345 I xx_sfluxstartdate2, xx_sfluxperiod, xx_sflux_file,
0346 I xx_sflux_file, xx_sflux_remo_intercept,
0347 I xx_sflux_remo_slope, myThid )
0348 CALL CTRL_SET_RETIRED_PARMS(xx_tauustartdate1,xx_tauustartdate2,
0349 I xx_tauuperiod, xx_tauu_file, xx_tauu_file,
0350 I xx_tauu_remo_intercept, xx_tauu_remo_slope, myThid )
0351 CALL CTRL_SET_RETIRED_PARMS(xx_tauvstartdate1,xx_tauvstartdate2,
0352 I xx_tauvperiod, xx_tauv_file, xx_tauv_file,
0353 I xx_tauv_remo_intercept, xx_tauv_remo_slope, myThid )
0354 CALL CTRL_SET_RETIRED_PARMS(xx_atempstartdate1,
0355 I xx_atempstartdate2, xx_atempperiod, xx_atemp_file,
0356 I xx_atemp_mean_file, xx_atemp_remo_intercept,
0357 I xx_atemp_remo_slope, myThid )
0358 CALL CTRL_SET_RETIRED_PARMS(xx_aqhstartdate1, xx_aqhstartdate2,
0359 I xx_aqhperiod, xx_aqh_file, xx_aqh_mean_file,
0360 I xx_aqh_remo_intercept, xx_aqh_remo_slope, myThid )
0361 CALL CTRL_SET_RETIRED_PARMS(xx_precipstartdate1,
0362 I xx_precipstartdate2, xx_precipperiod, xx_precip_file,
0363 I xx_precip_mean_file, xx_precip_remo_intercept,
0364 I xx_precip_remo_slope, myThid )
0365 CALL CTRL_SET_RETIRED_PARMS(xx_sfluxstartdate1,
0366 I xx_sfluxstartdate2, xx_sfluxperiod, xx_sflux_file,
0367 I xx_sflux_file, xx_sflux_remo_intercept,xx_sflux_remo_slope,
0368 I myThid )
0369 CALL CTRL_SET_RETIRED_PARMS(xx_swdownstartdate1,
0370 I xx_swdownstartdate2, xx_swdownperiod, xx_swdown_file,
0371 I xx_swdown_mean_file, xx_swdown_remo_intercept,
0372 I xx_swdown_remo_slope, myThid )
0373 CALL CTRL_SET_RETIRED_PARMS(xx_lwfluxstartdate1,
0374 I xx_lwfluxstartdate2, xx_lwfluxperiod, xx_lwflux_file,
0375 I xx_lwflux_file, xx_lwflux_remo_intercept,
0376 I xx_lwflux_remo_slope, myThid )
0377 CALL CTRL_SET_RETIRED_PARMS(xx_lwdownstartdate1,
0378 I xx_lwdownstartdate2, xx_lwdownperiod, xx_lwdown_file,
0379 I xx_lwdown_file, xx_lwdown_remo_intercept,
0380 I xx_lwdown_remo_slope, myThid )
0381 CALL CTRL_SET_RETIRED_PARMS(xx_evapstartdate1,xx_evapstartdate2,
0382 I xx_evapperiod, xx_evap_file, xx_evap_file,
0383 I xx_evap_remo_intercept, xx_evap_remo_slope, myThid )
0384 CALL CTRL_SET_RETIRED_PARMS(xx_snowprecipstartdate1,
0385 I xx_snowprecipstartdate2, xx_snowprecipperiod,
0386 I xx_snowprecip_file, xx_snowprecip_file,
0387 I xx_snowprecip_remo_intercept, xx_snowprecip_remo_slope,
0388 I myThid )
0389 CALL CTRL_SET_RETIRED_PARMS(xx_apressurestartdate1,
0390 I xx_apressurestartdate2, xx_apressureperiod,
0391 I xx_apressure_file, xx_apressure_file,
0392 I xx_apressure_remo_intercept, xx_apressure_remo_slope,
0393 I myThid )
0394 CALL CTRL_SET_RETIRED_PARMS(xx_runoffstartdate1,
0395 I xx_runoffstartdate2, xx_runoffperiod, xx_runoff_file,
0396 I xx_runoff_file, xx_runoff_remo_intercept,
0397 I xx_runoff_remo_slope, myThid )
0398 CALL CTRL_SET_RETIRED_PARMS(xx_uwindstartdate1,
0399 I xx_uwindstartdate2, xx_uwindperiod, xx_uwind_file,
0400 I xx_uwind_file, xx_uwind_remo_intercept,xx_uwind_remo_slope,
0401 I myThid )
0402 CALL CTRL_SET_RETIRED_PARMS(xx_vwindstartdate1,
0403 I xx_vwindstartdate2, xx_vwindperiod, xx_vwind_file,
0404 I xx_vwind_file, xx_vwind_remo_intercept,xx_vwind_remo_slope,
0405 I myThid )
0406 CALL CTRL_SET_RETIRED_PARMS(xx_sststartdate1, xx_sststartdate2,
0407 I xx_sstperiod, xx_sst_file, xx_sst_file,
0408 I xx_sst_remo_intercept, xx_sst_remo_slope, myThid )
0409 CALL CTRL_SET_RETIRED_PARMS(xx_sssstartdate1, xx_sssstartdate2,
0410 I xx_sssperiod, xx_sss_file, xx_sss_file,
0411 I xx_sss_remo_intercept, xx_sss_remo_slope, myThid )
0412 CALL CTRL_SET_RETIRED_PARMS(xx_shifwflxstartdate1,
0413 I xx_shifwflxstartdate2, xx_shifwflxperiod, xx_shifwflx_file,
0414 I xx_shifwflx_file, xx_shifwflx_remo_intercept,
0415 I xx_shifwflx_remo_slope, myThid )
0416
0417 xx_diffkr_file = ' '
0418 xx_kapgm_file = ' '
0419 xx_kapredi_file = ' '
0420 xx_tr1_file = ' '
0421 xx_depth_file = ' '
0422 xx_efluxy_file = ' '
0423 xx_efluxp_file = ' '
0424 xx_bottomdrag_file = ' '
0425 xx_edtaux_file = ' '
0426 xx_edtauy_file = ' '
0427 xx_uvel_file = ' '
0428 xx_vvel_file = ' '
0429 xx_etan_file = ' '
0430 xx_siarea_file = ' '
0431 xx_siheff_file = ' '
0432 xx_sihsnow_file = ' '
798126c2ad Davi*0433
cf705a6c8e Mart*0434 xx_hfluxm_file = ' '
798126c2ad Davi*0435
cf705a6c8e Mart*0436
042be14492 Patr*0437
9eb96e5404 Patr*0438 #ifdef ALLOW_TANGENTLINEAR_RUN
0439 yadprefix = 'g_'
042be14492 Patr*0440 yadmark = 'g_'
9eb96e5404 Patr*0441 #else
0442 yadprefix = 'ad'
0443 yadmark = 'ad'
042be14492 Patr*0444 #endif
0445 yctrlid = 'MIT_CE_000'
d04f98ba8f Patr*0446 yctrlposunpack = '.opt'
0447 yctrlpospack = '.opt'
214a1cd575 Patr*0448 ctrlname = 'ecco_ctrl'
0449 costname = 'ecco_cost'
042be14492 Patr*0450 scalname = ' '
0451 maskname = ' '
0452 metaname = ' '
0453
cf705a6c8e Mart*0454
9aaf43452b Patr*0455 WRITE(msgBuf,'(A)') 'CTRL_READPARMS: opening data.ctrl'
0456 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0457 & SQUEEZE_RIGHT , 1)
0458
0459 CALL OPEN_COPY_DATA_FILE(
0460 I 'data.ctrl', 'CTRL_READPARMS',
0461 O iUnit,
0462 I myThid )
0463
0464 READ(unit = iUnit, nml = ctrl_nml)
0465 READ(unit = iUnit, nml = ctrl_packnames)
69361556c2 Mart*0466 #ifdef ALLOW_GENARR_CONTROL
7bd66d7dc3 Patr*0467 READ(unit = iUnit, nml = ctrl_nml_genarr)
0468 #endif
9aaf43452b Patr*0469
7ef594fa1c Jean*0470 WRITE(msgBuf,'(A)')
9aaf43452b Patr*0471 & 'CTRL_READPARMS: finished reading data.ctrl'
0472 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0473 & SQUEEZE_RIGHT , 1)
0474
7a77863887 Mart*0475 #ifdef SINGLE_DISK_IO
0476 CLOSE(iUnit)
0477 #else
0478 CLOSE(iUnit,STATUS='DELETE')
0479 #endif /* SINGLE_DISK_IO */
042be14492 Patr*0480
69361556c2 Mart*0481
0482 mult_default = 0. _d 0
0483 IF ( useECCO ) mult_default = 1. _d 0
0484 #ifdef ALLOW_GENARR2D_CONTROL
0485 DO iarr = 1, maxCtrlArr2D
0486 IF ( mult_genarr2d(iarr) .EQ. UNSET_RL )
0487 & mult_genarr2d(iarr) = mult_default
0488 ENDDO
0489 #endif
0490 #ifdef ALLOW_GENARR3D_CONTROL
0491 DO iarr = 1, maxCtrlArr3D
0492 IF ( mult_genarr3d(iarr) .EQ. UNSET_RL )
0493 & mult_genarr3d(iarr) = mult_default
0494 ENDDO
0495 #endif
0496 #ifdef ALLOW_GENTIM2D_CONTROL
0497 DO iarr = 1, maxCtrlTim2D
0498 IF ( mult_gentim2d(iarr) .EQ. UNSET_RL )
0499 & mult_gentim2d(iarr) = mult_default
0500 ENDDO
0501 #endif
0502
0503
0504
0505
0506 useCtrlCostContribution = .FALSE.
0507 useObcsCostContribution = .FALSE.
0508 #ifdef ALLOW_COST
0509 # ifdef ALLOW_GENARR2D_CONTROL
0510 DO iarr = 1, maxCtrlArr2D
0511 useCtrlCostContribution = useCtrlCostContribution
0512 & .OR. mult_genarr2d(iarr) .GT. 0. _d 0
0513 ENDDO
0514 # endif
0515 # ifdef ALLOW_GENARR3D_CONTROL
0516 DO iarr = 1, maxCtrlArr3D
0517 useCtrlCostContribution = useCtrlCostContribution
0518 & .OR. mult_genarr3d(iarr) .GT. 0. _d 0
0519 ENDDO
0520 # endif
0521 # ifdef ALLOW_GENTIM2D_CONTROL
0522 DO iarr = 1, maxCtrlTim2D
0523 useCtrlCostContribution = useCtrlCostContribution
0524 & .OR. mult_gentim2d(iarr) .GT. 0. _d 0
0525 ENDDO
0526 # endif
0527 # ifdef ALLOW_OBCS
0528 IF ( mult_obcsN .GT. 0. _d 0 .OR. mult_obcsS .GT. 0. _d 0 .OR.
0529 & mult_obcsE .GT. 0. _d 0 .OR. mult_obcsW .GT. 0. _d 0 .OR.
0530 & mult_obcsvol.GT.0. _d 0 .OR. mult_ageos .GT. 0. _d 0 )
0531 & useObcsCostContribution = .TRUE.
0532 # endif
0533 #endif
0534
f9d7cbfb72 Ou W*0535
0536 IF ( ctrlDir .NE. ' ' ) THEN
0537 IL = ILNBLNK( ctrlDir )
0538
0539 IF ( IL.LT.MAX_LEN_FNAM .AND. ctrlDir(IL:IL).NE.'/' ) THEN
0540 namBuf(1:IL) = ctrlDir(1:IL)
0541 WRITE(ctrlDir(1:IL+1),'(2A)') namBuf(1:IL),'/'
0542 ENDIF
0543 #ifdef HAVE_SYSTEM
0544
0545 IL = ILNBLNK( ctrlDir ) -1
0546 WRITE(namBuf,'(2A)') ' mkdir -p ', ctrlDir(1:IL)
0547 pIL = 1 + ILNBLNK( namBuf )
0548 WRITE(standardMessageUnit,'(3A)')
0549 & '==> SYSTEM CALL (from CTRL_READPARMS): >',
0550 & namBuf(1:pIL), '<'
0551 CALL SYSTEM( namBuf(1:pIL) )
0552 #else
0553 WRITE(msgBuf,'(2A)') '** WARNING ** CTRL_READPARMS: ',
0554 & 'cannot call mkdir -> please create ctrlDir manually'
0555 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
0556 & SQUEEZE_RIGHT, myThid )
0557 #endif
0558 ENDIF
0559
0560 IF (ctrlDir .NE. ' ') THEN
0561 WRITE(msgBuf,'(2A)')
0562 & 'read-write ctrl files from ', ctrlDir(1:IL)
0563 ELSE
0564 WRITE(msgBuf,'(A)')
0565 & 'read-write ctrl files from current run directory'
0566 ENDIF
0567 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0568 & SQUEEZE_RIGHT, myThid )
0569
0570
cf705a6c8e Mart*0571 nRetired = 0
0572 IF ( ctrlSmoothCorrel2D ) THEN
0573 WRITE(msgBuf,'(2A)') 'S/R CTRL_READPARMS: ',
0574 & 'ctrlSmoothCorrel2D no longer allowed in file "data.ctrl"'
0575 CALL PRINT_ERROR( msgBuf, myThid )
0576 #ifdef ALLOW_SMOOTH_CORREL2D
0577 WRITE(msgBuf,'(2A)') 'S/R CTRL_READPARMS: ',
0578 & ' nor is ALLOW_SMOOTH_CORREL2D allowed to be defined.'
0579 CALL PRINT_ERROR( msgBuf, myThid )
0580 #endif
0581 WRITE(msgBuf,'(A)')
0582 & 'S/R CTRL_READPARMS: Please use the smooth-pkg instead'
0583 CALL PRINT_ERROR( msgBuf, myThid )
0584 nRetired = nRetired + 1
0585 ENDIF
0586 IF ( ctrlSmoothCorrel3D ) THEN
0587 WRITE(msgBuf,'(2A)') 'S/R CTRL_READPARMS: ',
0588 & 'ctrlSmoothCorrel3D no longer allowed in file "data.ctrl"'
0589 CALL PRINT_ERROR( msgBuf, myThid )
0590 #ifdef ALLOW_SMOOTH_CORREL3D
0591 WRITE(msgBuf,'(2A)') 'S/R CTRL_READPARMS: ',
0592 & ' nor is ALLOW_SMOOTH_CORREL3D allowed to be defined.'
0593 CALL PRINT_ERROR( msgBuf, myThid )
a5904a1bbe Gael*0594 #endif
cf705a6c8e Mart*0595 WRITE(msgBuf,'(A)')
0596 & 'S/R CTRL_READPARMS: Please use the smooth-pkg instead'
0597 CALL PRINT_ERROR( msgBuf, myThid )
0598 nRetired = nRetired + 1
0599 ENDIF
0600 IF ( .NOT. ctrlUseGen ) THEN
0601 WRITE(msgBuf,'(A,A)')
0602 & 'S/R CTRL_READPARMS: ctrlUseGen',
0603 & ' is no longer allowed in file "data.ctrl"'
0604 CALL PRINT_ERROR( msgBuf, myThid )
0605 nRetired = nRetired + 1
0606 ENDIF
0607 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_hflux',
0608 I xx_hfluxstartdate1, xx_hfluxstartdate2,
0609 I xx_hfluxperiod, xx_hflux_file, ' ',
0610 I xx_hflux_remo_intercept, xx_hflux_remo_slope,
0611 U nRetired,
0612 I myThid )
0613 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_sflux',
0614 I xx_sfluxstartdate1, xx_sfluxstartdate2,
0615 I xx_sfluxperiod, xx_sflux_file, ' ',
0616 I xx_sflux_remo_intercept,xx_sflux_remo_slope,
0617 U nRetired,
0618 I myThid )
0619 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_tauu',
0620 I xx_tauustartdate1, xx_tauustartdate2,
0621 I xx_tauuperiod, xx_tauu_file, ' ',
0622 I xx_tauu_remo_intercept, xx_tauu_remo_slope,
0623 U nRetired,
0624 I myThid )
0625 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_tauv',
0626 I xx_tauvstartdate1,xx_tauvstartdate2,
0627 I xx_tauvperiod, xx_tauv_file, ' ',
0628 I xx_tauv_remo_intercept, xx_tauv_remo_slope,
0629 U nRetired,
0630 I myThid )
0631 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_atemp',
0632 I xx_atempstartdate1, xx_atempstartdate2,
0633 I xx_atempperiod, xx_atemp_file, xx_atemp_mean_file,
0634 I xx_atemp_remo_intercept, xx_atemp_remo_slope,
0635 U nRetired,
0636 I myThid )
0637 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_aqh',
0638 I xx_aqhstartdate1, xx_aqhstartdate2,
0639 I xx_aqhperiod, xx_aqh_file, xx_aqh_mean_file,
0640 I xx_aqh_remo_intercept, xx_aqh_remo_slope,
0641 U nRetired,
0642 I myThid )
0643 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_precip',
0644 I xx_precipstartdate1, xx_precipstartdate2,
0645 I xx_precipperiod, xx_precip_file, xx_precip_mean_file,
0646 I xx_precip_remo_intercept, xx_precip_remo_slope,
0647 U nRetired,
0648 I myThid )
0649 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_sflux',
0650 I xx_sfluxstartdate1, xx_sfluxstartdate2,
0651 I xx_sfluxperiod, xx_sflux_file, ' ',
0652 I xx_sflux_remo_intercept,xx_sflux_remo_slope,
0653 U nRetired,
0654 I myThid )
0655 CALL CTRL_CHECK_RETIRED_PARMS('xx_swdown',
0656 I xx_swdownstartdate1, xx_swdownstartdate2,
0657 I xx_swdownperiod, xx_swdown_file, xx_swdown_mean_file,
0658 I xx_swdown_remo_intercept, xx_swdown_remo_slope,
0659 U nRetired,
0660 I myThid )
0661 CALL CTRL_CHECK_RETIRED_PARMS('xx_lwflux',
0662 I xx_lwfluxstartdate1, xx_lwfluxstartdate2,
0663 I xx_lwfluxperiod, xx_lwflux_file, ' ',
0664 I xx_lwflux_remo_intercept, xx_lwflux_remo_slope,
0665 U nRetired,
0666 I myThid )
0667 CALL CTRL_CHECK_RETIRED_PARMS('xx_lwdown',
0668 I xx_lwdownstartdate1, xx_lwdownstartdate2,
0669 I xx_lwdownperiod, xx_lwdown_file, ' ',
0670 I xx_lwdown_remo_intercept, xx_lwdown_remo_slope,
0671 U nRetired,
0672 I myThid )
0673 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_evap',
0674 I xx_evapstartdate1, xx_evapstartdate2,
0675 I xx_evapperiod, xx_evap_file, ' ',
0676 I xx_evap_remo_intercept, xx_evap_remo_slope,
0677 U nRetired,
0678 I myThid )
0679 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_snowprecip',
0680 I xx_snowprecipstartdate1, xx_snowprecipstartdate2,
0681 I xx_snowprecipperiod, xx_snowprecip_file, ' ',
0682 I xx_snowprecip_remo_intercept, xx_snowprecip_remo_slope,
0683 U nRetired,
0684 I myThid )
0685 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_apressure',
0686 I xx_apressurestartdate1, xx_apressurestartdate2,
0687 I xx_apressureperiod, xx_apressure_file, ' ',
0688 I xx_apressure_remo_intercept, xx_apressure_remo_slope,
0689 U nRetired,
0690 I myThid )
0691 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_runoff',
0692 I xx_runoffstartdate1, xx_runoffstartdate2,
0693 I xx_runoffperiod, xx_runoff_file, ' ',
0694 I xx_runoff_remo_intercept, xx_runoff_remo_slope,
0695 U nRetired,
0696 I myThid )
0697 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_uwind',
0698 I xx_uwindstartdate1, xx_uwindstartdate2,
0699 I xx_uwindperiod, xx_uwind_file, ' ',
0700 I xx_uwind_remo_intercept,xx_uwind_remo_slope,
0701 U nRetired,
0702 I myThid )
0703 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_vwind',
0704 I xx_vwindstartdate1, xx_vwindstartdate2,
0705 I xx_vwindperiod, xx_vwind_file, ' ',
0706 I xx_vwind_remo_intercept,xx_vwind_remo_slope,
0707 U nRetired,
0708 I myThid )
0709 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_sst',
0710 I xx_sststartdate1, xx_sststartdate2,
0711 I xx_sstperiod, xx_sst_file, ' ',
0712 I xx_sst_remo_intercept, xx_sst_remo_slope,
0713 U nRetired,
0714 I myThid )
0715 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_sss',
0716 I xx_sssstartdate1, xx_sssstartdate2,
0717 I xx_sssperiod, xx_sss_file, ' ',
0718 I xx_sss_remo_intercept, xx_sss_remo_slope,
0719 U nRetired,
0720 I myThid )
0721 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_shifwflx',
0722 I xx_shifwflxstartdate1, xx_shifwflxstartdate2,
0723 I xx_shifwflxperiod, xx_shifwflx_file, ' ',
0724 I xx_shifwflx_remo_intercept, xx_shifwflx_remo_slope,
0725 U nRetired,
0726 I myThid )
0727 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_diffkr_file',
0728 I UNSET_I, UNSET_I, UNSET_RL, xx_diffkr_file, ' ',
0729 I UNSET_RL, UNSET_RL,
0730 U nRetired,
0731 I myThid )
0732 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_kapgm_file',
0733 I UNSET_I, UNSET_I, UNSET_RL, xx_kapgm_file, ' ',
0734 I UNSET_RL, UNSET_RL,
0735 U nRetired,
0736 I myThid )
0737 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_kapredi_file',
0738 I UNSET_I, UNSET_I, UNSET_RL, xx_kapredi_file, ' ',
0739 I UNSET_RL, UNSET_RL,
0740 U nRetired,
0741 I myThid )
0742 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_tr1_file',
0743 I UNSET_I, UNSET_I, UNSET_RL, xx_tr1_file, ' ',
0744 I UNSET_RL, UNSET_RL,
0745 U nRetired,
0746 I myThid )
0747 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_depth_file',
0748 I UNSET_I, UNSET_I, UNSET_RL, xx_depth_file, ' ',
0749 I UNSET_RL, UNSET_RL,
0750 U nRetired,
0751 I myThid )
0752 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_efluxy_file',
0753 I UNSET_I, UNSET_I, UNSET_RL, xx_efluxy_file, ' ',
0754 I UNSET_RL, UNSET_RL,
0755 U nRetired,
0756 I myThid )
0757 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_efluxp_file',
0758 I UNSET_I, UNSET_I, UNSET_RL, xx_efluxp_file, ' ',
0759 I UNSET_RL, UNSET_RL,
0760 U nRetired,
0761 I myThid )
0762 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_bottomdrag_file',
0763 I UNSET_I, UNSET_I, UNSET_RL, xx_bottomdrag_file, ' ',
0764 I UNSET_RL, UNSET_RL,
0765 U nRetired,
0766 I myThid )
0767 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_edtaux_file',
0768 I UNSET_I, UNSET_I, UNSET_RL, xx_edtaux_file, ' ',
0769 I UNSET_RL, UNSET_RL,
0770 U nRetired,
0771 I myThid )
0772 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_edtauy_file',
0773 I UNSET_I, UNSET_I, UNSET_RL, xx_edtauy_file, ' ',
0774 I UNSET_RL, UNSET_RL,
0775 U nRetired,
0776 I myThid )
0777 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_uvel_file',
0778 I UNSET_I, UNSET_I, UNSET_RL, xx_uvel_file, ' ',
0779 I UNSET_RL, UNSET_RL,
0780 U nRetired,
0781 I myThid )
0782 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_vvel_file',
0783 I UNSET_I, UNSET_I, UNSET_RL, xx_vvel_file, ' ',
0784 I UNSET_RL, UNSET_RL,
0785 U nRetired,
0786 I myThid )
0787 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_etan_file',
0788 I UNSET_I, UNSET_I, UNSET_RL, xx_etan_file, ' ',
0789 I UNSET_RL, UNSET_RL,
0790 U nRetired,
0791 I myThid )
0792 CALL CTRL_CHECK_RETIRED_PARMS( 'xx_hfluxm_file',
0793 I UNSET_I, UNSET_I, UNSET_RL, xx_hfluxm_file, ' ',
0794 I UNSET_RL, UNSET_RL,
0795 U nRetired,
0796 I myThid )
0797
0798 IF ( nRetired .GT. 0 ) THEN
0799 WRITE(msgBuf,'(2A)') 'S/R CTRL_READPARMS: ',
0800 & 'Error reading parameter file "data.ctrl"'
0801 CALL PRINT_ERROR( msgBuf, myThid )
0802 WRITE(msgBuf,'(A,I3,A)') 'S/R CTRL_READPARMS: ', nRetired,
0803 & ' out of date parameters were found in namelist CTRL_NML'
0804 CALL PRINT_ERROR( msgBuf, myThid )
0805 CALL ALL_PROC_DIE( 0 )
0806 STOP 'ABNORMAL END: S/R CTRL_READPARMS'
0807 ENDIF
a5904a1bbe Gael*0808
042be14492 Patr*0809 _END_MASTER( myThid )
0810
0811 _BARRIER
0812
cf705a6c8e Mart*0813 RETURN
0814 END
0815
0816
0817
0818
0819
0820 SUBROUTINE CTRL_SET_RETIRED_PARMS(
0821 I xx_startdate1,
0822 I xx_startdate2,
0823 I xx_period,
0824 I xx_file,
0825 I xx_mean_file,
0826 I xx_remo_intercept,
0827 I xx_remo_slope,
0828 I myThid )
0829
0830
0831
0832
0833
0834
0835
0836 IMPLICIT NONE
0837
0838 #include "EEPARAMS.h"
0839
0840
0841 INTEGER xx_startdate1, xx_startdate2
0842 _RL xx_period
0843 CHARACTER*(*) xx_file, xx_mean_file
0844 _RL xx_remo_intercept, xx_remo_slope
0845 INTEGER myThid
0846
0847
0848
0849 xx_startdate1 = UNSET_I
0850 xx_startdate2 = UNSET_I
0851 xx_period = UNSET_RL
0852 xx_remo_intercept = UNSET_RL
0853 xx_remo_slope = UNSET_RL
0854 xx_file = ' '
0855 xx_mean_file = ' '
0856
0857 RETURN
0858 END
0859
0860
0861
0862
0863
0864 SUBROUTINE CTRL_CHECK_RETIRED_PARMS(
0865 I xx_name,
0866 I xx_startdate1,
0867 I xx_startdate2,
0868 I xx_period,
0869 I xx_file,
0870 I xx_mean_file,
0871 I xx_remo_intercept,
0872 I xx_remo_slope,
0873 U nRetired,
0874 I myThid )
0875
0876
0877
0878
0879
0880
0881
0882 IMPLICIT NONE
0883
0884 #include "EEPARAMS.h"
0885
0886
0887 CHARACTER*(*) xx_name
0888 INTEGER xx_startdate1, xx_startdate2
0889 _RL xx_period
0890 CHARACTER*(*) xx_file, xx_mean_file
0891 _RL xx_remo_intercept, xx_remo_slope
0892 INTEGER nRetired
0893 INTEGER myThid
0894
0895
0896 INTEGER ILNBLNK
0897 EXTERNAL ILNBLNK
0898
0899
0900 INTEGER il
0901 CHARACTER*(MAX_LEN_MBUF) msgBuf
0902
0903
0904 IF ( xx_startdate1 .NE. UNSET_I
0905 & .OR. xx_startdate2 .NE. UNSET_I
0906 & .OR. xx_period .NE. UNSET_RL
0907 & .OR. xx_remo_intercept .NE. UNSET_RL
0908 & .OR. xx_remo_slope .NE. UNSET_RL
0909 & .OR. xx_file .NE. ' '
0910 & .OR. xx_mean_file .NE. ' ' ) THEN
0911 il = ILNBLNK(xx_name)
0912 WRITE(msgBuf,'(A,A,A)')
0913 & 'S/R CTRL_READPARMS: ', xx_name(1:il),
0914 & '* is no longer allowed in file "data.ctrl"'
0915 CALL PRINT_ERROR( msgBuf, myThid )
0916 WRITE(msgBuf,'(A)')
0917 & 'S/R CTRL_READPARMS: use generic controls instead'
0918 CALL PRINT_ERROR( msgBuf, myThid )
0919 nRetired = nRetired + 1
0920 ENDIF
0921
0922 RETURN
0923 END