File indexing completed on 2024-12-17 18:37:23 UTC
view on githubraw file Latest commit 87dd4f7d on 2024-01-17 18:17:24 UTC
87dd4f7d5f Oliv*0001 #include "OASIM_OPTIONS.h"
0002 #ifdef ALLOW_EXF
0003 #include "EXF_OPTIONS.h"
0004 #endif
0005
0006
0007
0008
0009
0010 SUBROUTINE OASIM_EXF_READPARMS( iUnit, oUnit, myThid )
0011
0012
0013
0014
0015
0016 IMPLICIT NONE
0017 #include "EEPARAMS.h"
0018 #include "SIZE.h"
0019 #include "PARAMS.h"
0020 #ifdef ALLOW_EXCH2
0021 #include "W2_EXCH2_SIZE.h"
0022 #include "W2_EXCH2_TOPOLOGY.h"
0023 #endif
0024 #ifdef ALLOW_GCHEM
0025 #include "GCHEM.h"
0026 #endif
0027 #ifdef ALLOW_EXF
0028 #ifdef USE_EXF_INTERPOLATION
0029 #include "SET_GRID.h"
0030 #include "EXF_CONSTANTS.h"
0031 #endif
0032 #include "EXF_PARAM.h"
0033 #include "EXF_INTERP_SIZE.h"
0034 #include "EXF_INTERP_PARAM.h"
0035 #endif
0036 #ifdef ALLOW_RADTRANS
0037 #include "RADTRANS_SIZE.h"
0038 #include "RADTRANS_PARAMS.h"
0039 #endif
0040 #include "OASIM_SIZE.h"
0041 #include "OASIM_PARAMS.h"
0042 #include "OASIM_EXF_PARAMS.h"
0043
0044
0045
0046
0047
0048 INTEGER iUnit, oUnit, myThid
0049
0050
0051
0052
0053
0054 #ifdef ALLOW_OASIM
0055 #ifdef ALLOW_EXF
0056
0057
0058 CHARACTER*(MAX_LEN_MBUF) msgBuf
0059 INTEGER j
0060
0061 NAMELIST/OASIM_FORCING_PARM/
0062 & useOasimYearlyFields,
0063 & oasim_timeInterp,
0064
0065 & aerTaufile,
0066 & aerTauperiod,
0067 & aerTauRepCycle,
0068 & aerTauStartTime,
0069 & aerTaustartdate1,
0070 & aerTaustartdate2,
0071 & aerTauconst,
0072 & aerTau_exfremo_intercept,
0073 & aerTau_exfremo_slope,
0074 & aerTaumask,
0075 & aerTau_inscal,
0076
0077 & asympfile,
0078 & asympperiod,
0079 & asympRepCycle,
0080 & asympStartTime,
0081 & asympstartdate1,
0082 & asympstartdate2,
0083 & asympconst,
0084 & asymp_exfremo_intercept,
0085 & asymp_exfremo_slope,
0086 & asympmask,
0087 & asymp_inscal,
0088
0089 & ssalbfile,
0090 & ssalbperiod,
0091 & ssalbRepCycle,
0092 & ssalbStartTime,
0093 & ssalbstartdate1,
0094 & ssalbstartdate2,
0095 & ssalbconst,
0096 & ssalb_exfremo_intercept,
0097 & ssalb_exfremo_slope,
0098 & ssalbmask,
0099 & ssalb_inscal,
0100
0101 & cldcovfile,
0102 & cldcovperiod,
0103 & cldcovRepCycle,
0104 & cldcovStartTime,
0105 & cldcovstartdate1,
0106 & cldcovstartdate2,
0107 & cldcovconst,
0108 & cldcov_exfremo_intercept,
0109 & cldcov_exfremo_slope,
0110 & cldcovmask,
0111 & cldcov_inscal,
0112
0113 & cldlwpfile,
0114 & cldlwpperiod,
0115 & cldlwpRepCycle,
0116 & cldlwpStartTime,
0117 & cldlwpstartdate1,
0118 & cldlwpstartdate2,
0119 & cldlwpconst,
0120 & cldlwp_exfremo_intercept,
0121 & cldlwp_exfremo_slope,
0122 & cldlwpmask,
0123 & cldlwp_inscal,
0124
0125 & cldrefile,
0126 & cldreperiod,
0127 & cldreRepCycle,
0128 & cldreStartTime,
0129 & cldrestartdate1,
0130 & cldrestartdate2,
0131 & cldreconst,
0132 & cldre_exfremo_intercept,
0133 & cldre_exfremo_slope,
0134 & cldremask,
0135 & cldre_inscal,
0136
0137 & presfile,
0138 & presperiod,
0139 & presRepCycle,
0140 & presStartTime,
0141 & presstartdate1,
0142 & presstartdate2,
0143 & presconst,
0144 & pres_exfremo_intercept,
0145 & pres_exfremo_slope,
0146 & presmask,
0147 & pres_inscal,
0148
0149 & oawindfile,
0150 & oawindperiod,
0151 & oawindRepCycle,
0152 & oawindStartTime,
0153 & oawindstartdate1,
0154 & oawindstartdate2,
0155 & oawindconst,
0156 & oawind_exfremo_intercept,
0157 & oawind_exfremo_slope,
0158 & oawindmask,
0159 & oawind_inscal,
0160
0161 & relhumfile,
0162 & relhumperiod,
0163 & relhumRepCycle,
0164 & relhumStartTime,
0165 & relhumstartdate1,
0166 & relhumstartdate2,
0167 & relhumconst,
0168 & relhum_exfremo_intercept,
0169 & relhum_exfremo_slope,
0170 & relhummask,
0171 & relhum_inscal,
0172
0173 & ozonefile,
0174 & ozoneperiod,
0175 & ozoneRepCycle,
0176 & ozoneStartTime,
0177 & ozonestartdate1,
0178 & ozonestartdate2,
0179 & ozoneconst,
0180 & ozone_exfremo_intercept,
0181 & ozone_exfremo_slope,
0182 & ozonemask,
0183 & ozone_inscal,
0184
0185 & wvfile,
0186 & wvperiod,
0187 & wvRepCycle,
0188 & wvStartTime,
0189 & wvstartdate1,
0190 & wvstartdate2,
0191 & wvconst,
0192 & wv_exfremo_intercept,
0193 & wv_exfremo_slope,
0194 & wvmask,
0195 & wv_inscal
0196
0197 #ifdef USE_EXF_INTERPOLATION
0198 NAMELIST/OASIM_INTERP_PARM/
0199 & aerTau_lon0,
0200 & aerTau_lat0,
0201 & aerTau_nlon,
0202 & aerTau_nlat,
0203 & aerTau_lon_inc,
0204 & aerTau_interpMethod,
0205 & aerTau_lat_inc,
0206
0207 & asymp_lon0,
0208 & asymp_lat0,
0209 & asymp_nlon,
0210 & asymp_nlat,
0211 & asymp_lon_inc,
0212 & asymp_interpMethod,
0213 & asymp_lat_inc,
0214
0215 & ssalb_lon0,
0216 & ssalb_lat0,
0217 & ssalb_nlon,
0218 & ssalb_nlat,
0219 & ssalb_lon_inc,
0220 & ssalb_interpMethod,
0221 & ssalb_lat_inc,
0222
0223 & cldcov_lon0,
0224 & cldcov_lat0,
0225 & cldcov_nlon,
0226 & cldcov_nlat,
0227 & cldcov_lon_inc,
0228 & cldcov_interpMethod,
0229 & cldcov_lat_inc,
0230
0231 & cldlwp_lon0,
0232 & cldlwp_lat0,
0233 & cldlwp_nlon,
0234 & cldlwp_nlat,
0235 & cldlwp_lon_inc,
0236 & cldlwp_interpMethod,
0237 & cldlwp_lat_inc,
0238
0239 & cldre_lon0,
0240 & cldre_lat0,
0241 & cldre_nlon,
0242 & cldre_nlat,
0243 & cldre_lon_inc,
0244 & cldre_interpMethod,
0245 & cldre_lat_inc,
0246
0247 & pres_lon0,
0248 & pres_lat0,
0249 & pres_nlon,
0250 & pres_nlat,
0251 & pres_lon_inc,
0252 & pres_interpMethod,
0253 & pres_lat_inc,
0254
0255 & oawind_lon0,
0256 & oawind_lat0,
0257 & oawind_nlon,
0258 & oawind_nlat,
0259 & oawind_lon_inc,
0260 & oawind_interpMethod,
0261 & oawind_lat_inc,
0262
0263 & relhum_lon0,
0264 & relhum_lat0,
0265 & relhum_nlon,
0266 & relhum_nlat,
0267 & relhum_lon_inc,
0268 & relhum_interpMethod,
0269 & relhum_lat_inc,
0270
0271 & ozone_lon0,
0272 & ozone_lat0,
0273 & ozone_nlon,
0274 & ozone_nlat,
0275 & ozone_lon_inc,
0276 & ozone_interpMethod,
0277 & ozone_lat_inc,
0278
0279 & wv_lon0,
0280 & wv_lat0,
0281 & wv_nlon,
0282 & wv_nlat,
0283 & wv_lon_inc,
0284 & wv_interpMethod,
0285 & wv_lat_inc
0286 #endif
0287
0288
0289
0290 useOasimYearlyFields = useExfYearlyFields
0291 oasim_timeInterp = 1
0292
0293 aerTaufile = ' '
0294 aerTauperiod = 0.0 _d 0
0295 aerTauRepCycle = repeatPeriod
0296 aerTauStartTime = UNSET_RL
0297 aerTaustartdate1 = 0
0298 aerTaustartdate2 = 0
0299 aerTauconst = 0.0 _d 0
0300 aerTau_exfremo_intercept = 0.0 _d 0
0301 aerTau_exfremo_slope = 0.0 _d 0
0302 aerTau_inscal = 1. _d 0
0303 aerTaumask = ' '
0304
0305 asympfile = ' '
0306 asympperiod = 0.0 _d 0
0307 asympRepCycle = repeatPeriod
0308 asympStartTime = UNSET_RL
0309 asympstartdate1 = 0
0310 asympstartdate2 = 0
0311 asympconst = 0.0 _d 0
0312 asymp_exfremo_intercept = 0.0 _d 0
0313 asymp_exfremo_slope = 0.0 _d 0
0314 asymp_inscal = 1. _d 0
0315 asympmask = ' '
0316
0317 ssalbfile = ' '
0318 ssalbperiod = 0.0 _d 0
0319 ssalbRepCycle = RepeatPeriod
0320 ssalbStartTime = UNSET_RL
0321 ssalbstartdate1 = 0
0322 ssalbstartdate2 = 0
0323 ssalbconst = 0.0 _d 0
0324 ssalb_exfremo_intercept = 0.0 _d 0
0325 ssalb_exfremo_slope = 0.0 _d 0
0326 ssalb_inscal = 1. _d 0
0327 ssalbmask = ' '
0328
0329 cldcovfile = ' '
0330 cldcovperiod = 0.0 _d 0
0331 cldcovRepCycle = repeatPeriod
0332 cldcovStartTime = UNSET_RL
0333 cldcovstartdate1 = 0
0334 cldcovstartdate2 = 0
0335 cldcovconst = UNSET_RL
0336 cldcov_exfremo_intercept = 0.0 _d 0
0337 cldcov_exfremo_slope = 0.0 _d 0
0338 cldcov_inscal = 1. _d 0
0339 cldcovmask = ' '
0340
0341 cldlwpfile = ' '
0342 cldlwpperiod = 0.0 _d 0
0343 cldlwpRepCycle = repeatPeriod
0344 cldlwpStartTime = UNSET_RL
0345 cldlwpstartdate1 = 0
0346 cldlwpstartdate2 = 0
0347 cldlwpconst = UNSET_RL
0348 cldlwp_exfremo_intercept = 0.0 _d 0
0349 cldlwp_exfremo_slope = 0.0 _d 0
0350 cldlwp_inscal = 1. _d 0
0351 cldlwpmask = ' '
0352
0353 cldrefile = ' '
0354 cldreperiod = 0.0 _d 0
0355 cldreRepCycle = repeatPeriod
0356 cldreStartTime = UNSET_RL
0357 cldrestartdate1 = 0
0358 cldrestartdate2 = 0
0359 cldreconst = UNSET_RL
0360 cldre_exfremo_intercept = 0.0 _d 0
0361 cldre_exfremo_slope = 0.0 _d 0
0362 cldre_inscal = 1. _d 0
0363 cldremask = ' '
0364
0365 presfile = ' '
0366 presperiod = 0.0 _d 0
0367 presRepCycle = repeatPeriod
0368 presStartTime = UNSET_RL
0369 presstartdate1 = 0
0370 presstartdate2 = 0
0371 presconst = UNSET_RL
0372 pres_exfremo_intercept = 0.0 _d 0
0373 pres_exfremo_slope = 0.0 _d 0
0374 pres_inscal = 1. _d 0
0375 presmask = ' '
0376
0377 oawindfile = ' '
0378 oawindperiod = 0.0 _d 0
0379 oawindRepCycle = repeatPeriod
0380 oawindStartTime = UNSET_RL
0381 oawindstartdate1 = 0
0382 oawindstartdate2 = 0
0383 oawindconst = UNSET_RL
0384 oawind_exfremo_intercept = 0.0 _d 0
0385 oawind_exfremo_slope = 0.0 _d 0
0386 oawind_inscal = 1. _d 0
0387 oawindmask = ' '
0388
0389 relhumfile = ' '
0390 relhumperiod = 0.0 _d 0
0391 relhumRepCycle = repeatPeriod
0392 relhumStartTime = UNSET_RL
0393 relhumstartdate1 = 0
0394 relhumstartdate2 = 0
0395 relhumconst = UNSET_RL
0396 relhum_exfremo_intercept = 0.0 _d 0
0397 relhum_exfremo_slope = 0.0 _d 0
0398 relhum_inscal = 1. _d 0
0399 relhummask = ' '
0400
0401 ozonefile = ' '
0402 ozoneperiod = 0.0 _d 0
0403 ozoneRepCycle = repeatPeriod
0404 ozoneStartTime = UNSET_RL
0405 ozonestartdate1 = 0
0406 ozonestartdate2 = 0
0407 ozoneconst = UNSET_RL
0408 ozone_exfremo_intercept = 0.0 _d 0
0409 ozone_exfremo_slope = 0.0 _d 0
0410 ozone_inscal = 1. _d 0
0411 ozonemask = ' '
0412
0413 wvfile = ' '
0414 wvperiod = 0.0 _d 0
0415 wvRepCycle = repeatPeriod
0416 wvStartTime = UNSET_RL
0417 wvstartdate1 = 0
0418 wvstartdate2 = 0
0419 wvconst = UNSET_RL
0420 wv_exfremo_intercept = 0.0 _d 0
0421 wv_exfremo_slope = 0.0 _d 0
0422 wv_inscal = 1. _d 0
0423 wvmask = ' '
0424
0425 #ifdef USE_EXF_INTERPOLATION
0426 aerTau_lon0 = inp_lon0
0427 aerTau_lat0 = inp_lat0
0428 aerTau_nlon = inp_gNx
0429 aerTau_nlat = inp_gNy
0430 aerTau_lon_inc = inp_dLon
0431 aerTau_interpMethod = 1
0432
0433 asymp_lon0 = inp_lon0
0434 asymp_lat0 = inp_lat0
0435 asymp_nlon = inp_gNx
0436 asymp_nlat = inp_gNy
0437 asymp_lon_inc = inp_dLon
0438 asymp_interpMethod = 1
0439
0440 ssalb_lon0 = inp_lon0
0441 ssalb_lat0 = inp_lat0
0442 ssalb_nlon = inp_gNx
0443 ssalb_nlat = inp_gNy
0444 ssalb_lon_inc = inp_dLon
0445 ssalb_interpMethod = 1
0446
0447 cldcov_lon0 = inp_lon0
0448 cldcov_lat0 = inp_lat0
0449 cldcov_nlon = inp_gNx
0450 cldcov_nlat = inp_gNy
0451 cldcov_lon_inc = inp_dLon
0452 cldcov_interpMethod = 1
0453
0454 cldlwp_lon0 = inp_lon0
0455 cldlwp_lat0 = inp_lat0
0456 cldlwp_nlon = inp_gNx
0457 cldlwp_nlat = inp_gNy
0458 cldlwp_lon_inc = inp_dLon
0459 cldlwp_interpMethod = 1
0460
0461 cldre_lon0 = inp_lon0
0462 cldre_lat0 = inp_lat0
0463 cldre_nlon = inp_gNx
0464 cldre_nlat = inp_gNy
0465 cldre_lon_inc = inp_dLon
0466 cldre_interpMethod = 1
0467
0468 pres_lon0 = inp_lon0
0469 pres_lat0 = inp_lat0
0470 pres_nlon = inp_gNx
0471 pres_nlat = inp_gNy
0472 pres_lon_inc = inp_dLon
0473 pres_interpMethod = 1
0474
0475 oawind_lon0 = inp_lon0
0476 oawind_lat0 = inp_lat0
0477 oawind_nlon = inp_gNx
0478 oawind_nlat = inp_gNy
0479 oawind_lon_inc = inp_dLon
0480 oawind_interpMethod = 1
0481
0482 relhum_lon0 = inp_lon0
0483 relhum_lat0 = inp_lat0
0484 relhum_nlon = inp_gNx
0485 relhum_nlat = inp_gNy
0486 relhum_lon_inc = inp_dLon
0487 relhum_interpMethod = 1
0488
0489 ozone_lon0 = inp_lon0
0490 ozone_lat0 = inp_lat0
0491 ozone_nlon = inp_gNx
0492 ozone_nlat = inp_gNy
0493 ozone_lon_inc = inp_dLon
0494 ozone_interpMethod = 1
0495
0496 wv_lon0 = inp_lon0
0497 wv_lat0 = inp_lat0
0498 wv_nlon = inp_gNx
0499 wv_nlat = inp_gNy
0500 wv_lon_inc = inp_dLon
0501 wv_interpMethod = 1
0502
0503 DO j=1,MAX_LAT_INC
0504 aerTau_lat_inc(j) = inp_dLat(j)
0505 asymp_lat_inc(j) = inp_dLat(j)
0506 ssalb_lat_inc(j) = inp_dLat(j)
0507 cldcov_lat_inc(j) = inp_dLat(j)
0508 cldlwp_lat_inc(j) = inp_dLat(j)
0509 cldre_lat_inc(j) = inp_dLat(j)
0510 pres_lat_inc(j) = inp_dLat(j)
0511 oawind_lat_inc(j) = inp_dLat(j)
0512 relhum_lat_inc(j) = inp_dLat(j)
0513 ozone_lat_inc(j) = inp_dLat(j)
0514 wv_lat_inc(j) = inp_dLat(j)
0515 ENDDO
0516 #endif /* USE_EXF_INTERPOLATION */
0517
0518
0519
0520 READ(UNIT=iUnit, NML=OASIM_FORCING_PARM)
0521 #ifdef USE_EXF_INTERPOLATION
0522 READ(UNIT=iUnit, NML=OASIM_INTERP_PARM)
0523 #endif
0524
0525
0526
0527 IF (oUnit .GE. 0) THEN
0528 WRITE(UNIT=oUnit, NML=OASIM_FORCING_PARM)
0529 #ifdef USE_EXF_INTERPOLATION
0530 WRITE(UNIT=oUnit, NML=OASIM_INTERP_PARM)
0531 #endif
0532 ENDIF
0533
0534 #endif /* ALLOW_EXF */
0535 #endif /* ALLOW_OASIM */
0536
0537 RETURN
0538 END