Changeset 3572 for trunk/LMDZ.PLUTO/libf/phypluto/inifis_mod.F90
- Timestamp:
- Jan 13, 2025, 2:52:33 PM (3 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.PLUTO/libf/phypluto/inifis_mod.F90
r3557 r3572 776 776 if (is_master)write(*,*)trim(rname)//& 777 777 "Radiatively active haze ?" 778 aerohaze=.false. ! default value779 call getin_p(" aerohaze",aerohaze)780 if (is_master)write(*,*)trim(rname)//& 781 " aerohaze = ",aerohaze778 optichaze=.false. ! default value 779 call getin_p("optichaze",optichaze) 780 if (is_master)write(*,*)trim(rname)//& 781 "optichaze = ",optichaze 782 782 783 783 if (is_master)write(*,*)trim(rname)//& … … 1198 1198 1199 1199 !================================= 1200 ! TWOLAY scheme and NH3 cloudare left for retrocompatibility only,1201 ! You should now use N-LAYER scheme (see below).1202 1203 if (is_master) write(*,*)trim(rname)//&1204 ": Radiatively active two-layer aerosols?"1205 aeroback2lay=.false. ! default value1206 call getin_p("aeroback2lay",aeroback2lay)1207 if (is_master) write(*,*)trim(rname)//": aeroback2lay = ",aeroback2lay1208 1209 if (aeroback2lay.and.is_master) then1210 print*,'Warning : The TWOLAY AEROSOL scheme is deprecated and buggy...'1211 print*,'You should use the generic n-layer scheme (see aeronlay).'1212 endif1213 1214 if (is_master) write(*,*)trim(rname)//": Radiatively active ammonia cloud?"1215 aeronh3=.false. ! default value1216 call getin_p("aeronh3",aeronh3)1217 if (is_master) write(*,*)trim(rname)//": aeronh3 = ",aeronh31218 1219 if (aeronh3.and.is_master) then1220 print*,'Warning : You are using specific NH3 cloud scheme ...'1221 print*,'You should use the generic n-layer scheme (see aeronlay).'1222 endif1223 1224 if (is_master) write(*,*)trim(rname)//&1225 ": TWOLAY AEROSOL: total optical depth "//&1226 "in the tropospheric layer (visible)"1227 obs_tau_col_tropo=8.D01228 call getin_p("obs_tau_col_tropo",obs_tau_col_tropo)1229 if (is_master) write(*,*)trim(rname)//&1230 ": obs_tau_col_tropo = ",obs_tau_col_tropo1231 1232 if (is_master) write(*,*)trim(rname)//&1233 ": TWOLAY AEROSOL: total optical depth "//&1234 "in the stratospheric layer (visible)"1235 obs_tau_col_strato=0.08D01236 call getin_p("obs_tau_col_strato",obs_tau_col_strato)1237 if (is_master) write(*,*)trim(rname)//&1238 ": obs_tau_col_strato = ",obs_tau_col_strato1239 1240 if (is_master) write(*,*)trim(rname)//&1241 ": TWOLAY AEROSOL: optprop_back2lay_vis?"1242 optprop_back2lay_vis = 'optprop_saturn_vis_n20.dat'1243 call getin_p("optprop_back2lay_vis",optprop_back2lay_vis)1244 if (is_master) write(*,*)trim(rname)//&1245 ": optprop_back2lay_vis = ",trim(optprop_back2lay_vis)1246 1247 if (is_master) write(*,*)trim(rname)//&1248 ": TWOLAY AEROSOL: optprop_back2lay_ir?"1249 optprop_back2lay_ir = 'optprop_saturn_ir_n20.dat'1250 call getin_p("optprop_back2lay_ir",optprop_back2lay_ir)1251 if (is_master) write(*,*)trim(rname)//&1252 ": optprop_back2lay_ir = ",trim(optprop_back2lay_ir)1253 1254 if (is_master) write(*,*)trim(rname)//&1255 ": TWOLAY AEROSOL: pres_bottom_tropo? in pa"1256 pres_bottom_tropo=66000.01257 call getin_p("pres_bottom_tropo",pres_bottom_tropo)1258 if (is_master) write(*,*)trim(rname)//&1259 ": pres_bottom_tropo = ",pres_bottom_tropo1260 1261 if (is_master) write(*,*)trim(rname)//&1262 ": TWOLAY AEROSOL: pres_top_tropo? in pa"1263 pres_top_tropo=18000.01264 call getin_p("pres_top_tropo",pres_top_tropo)1265 if (is_master) write(*,*)trim(rname)//&1266 ": pres_top_tropo = ",pres_top_tropo1267 1268 if (is_master) write(*,*)trim(rname)//&1269 ": TWOLAY AEROSOL: pres_bottom_strato? in pa"1270 pres_bottom_strato=2000.01271 call getin_p("pres_bottom_strato",pres_bottom_strato)1272 if (is_master) write(*,*)trim(rname)//&1273 ": pres_bottom_strato = ",pres_bottom_strato1274 1275 ! Sanity check1276 if (pres_bottom_strato .gt. pres_top_tropo) then1277 if(is_master) then1278 print*,'Error : TWOLAY AEROSOL, Please ensure that in callphys.def'1279 print*,'you have pres_top_tropo > pres_bottom_strato !'1280 endif1281 call abort_physic(rname," pres_top_tropo > pres_bottom_strato!",1)1282 endif1283 1284 if (is_master) write(*,*)trim(rname)//&1285 ": TWOLAY AEROSOL: pres_top_strato? in pa"1286 pres_top_strato=100.01287 call getin_p("pres_top_strato",pres_top_strato)1288 if (is_master) write(*,*)trim(rname)//&1289 ": pres_top_strato = ",pres_top_strato1290 1291 if (is_master) write(*,*)trim(rname)//&1292 ": TWOLAY AEROSOL: particle size in the ", &1293 "tropospheric layer, in meters"1294 size_tropo=2.e-61295 call getin_p("size_tropo",size_tropo)1296 if (is_master) write(*,*)trim(rname)//": size_tropo = ",size_tropo1297 1298 if (is_master) write(*,*)trim(rname)//&1299 ": TWOLAY AEROSOL: particle size in the ", &1300 "stratospheric layer, in meters"1301 size_strato=1.e-71302 call getin_p("size_strato",size_strato)1303 if (is_master) write(*,*)trim(rname)//": size_strato = ",size_strato1304 1305 if (is_master) write(*,*)trim(rname)//&1306 ": NH3 (thin) cloud: total optical depth"1307 tau_nh3_cloud=7.D01308 call getin_p("tau_nh3_cloud",tau_nh3_cloud)1309 if (is_master) write(*,*)trim(rname)//": tau_nh3_cloud = ",tau_nh3_cloud1310 1311 if (is_master) write(*,*)trim(rname)//": NH3 (thin) cloud pressure level"1312 pres_nh3_cloud=7.D01313 call getin_p("pres_nh3_cloud",pres_nh3_cloud)1314 if (is_master) write(*,*)trim(rname)//": pres_nh3_cloud = ",pres_nh3_cloud1315 1316 if (is_master) write(*,*)trim(rname)//": NH3 (thin) cloud: particle sizes"1317 size_nh3_cloud=3.e-61318 call getin_p("size_nh3_cloud",size_nh3_cloud)1319 if (is_master) write(*,*)trim(rname)//": size_nh3_cloud = ",size_nh3_cloud1320 1321 !=================================1322 ! Generic N-LAYER aerosol scheme1323 1324 if (is_master) write(*,*)trim(rname)//&1325 ": Radiatively active generic n-layer aerosols?"1326 aeronlay=.false. ! default value1327 call getin_p("aeronlay",aeronlay)1328 if (is_master) write(*,*)trim(rname)//": aeronlay = ",aeronlay1329 1330 if (is_master) write(*,*)trim(rname)//&1331 ": Number of generic aerosols layers?"1332 nlayaero=1 ! default value1333 call getin_p("nlayaero",nlayaero)1334 ! Avoid to allocate arrays of size 01335 if (aeronlay .and. nlayaero.lt.1) then1336 if (is_master) then1337 print*, " You are trying to set no generic aerosols..."1338 print*, " Set aeronlay=.false. instead ! I abort."1339 endif1340 call abort_physic(rname,"no generic aerosols...",1)1341 endif1342 if (.not. aeronlay) nlayaero=11343 if (is_master) write(*,*)trim(rname)//": nlayaero = ",nlayaero1344 1345 ! This is necessary, we just set the number of aerosol layers1346 IF(.NOT.ALLOCATED(aeronlay_tauref)) ALLOCATE(aeronlay_tauref(nlayaero))1347 IF(.NOT.ALLOCATED(aeronlay_lamref)) ALLOCATE(aeronlay_lamref(nlayaero))1348 IF(.NOT.ALLOCATED(aeronlay_choice)) ALLOCATE(aeronlay_choice(nlayaero))1349 IF(.NOT.ALLOCATED(aeronlay_pbot)) ALLOCATE(aeronlay_pbot(nlayaero))1350 IF(.NOT.ALLOCATED(aeronlay_ptop)) ALLOCATE(aeronlay_ptop(nlayaero))1351 IF(.NOT.ALLOCATED(aeronlay_sclhght)) ALLOCATE(aeronlay_sclhght(nlayaero))1352 IF(.NOT.ALLOCATED(aeronlay_size)) ALLOCATE(aeronlay_size(nlayaero))1353 IF(.NOT.ALLOCATED(aeronlay_nueff)) ALLOCATE(aeronlay_nueff(nlayaero))1354 IF(.NOT.ALLOCATED(optprop_aeronlay_ir)) ALLOCATE(optprop_aeronlay_ir(nlayaero))1355 IF(.NOT.ALLOCATED(optprop_aeronlay_vis)) ALLOCATE(optprop_aeronlay_vis(nlayaero))1356 1357 if (is_master) write(*,*)trim(rname)//&1358 ": Generic n-layer aerosols: Optical depth at reference wavelenght"1359 aeronlay_tauref=1.0E-11360 call getin_p("aeronlay_tauref",aeronlay_tauref)1361 if (is_master) write(*,*)trim(rname)//&1362 ": aeronlay_tauref = ",aeronlay_tauref1363 1364 if (is_master) write(*,*)trim(rname)//&1365 ": Generic n-layer aerosols: Reference wavelenght for optical depths (m)"1366 aeronlay_lamref=0.6E-61367 call getin_p("aeronlay_lamref",aeronlay_lamref)1368 if (is_master) write(*,*)trim(rname)//&1369 ": aeronlay_lamref = ",aeronlay_lamref1370 1371 if (is_master) then1372 write(*,*)trim(rname)//&1373 ": Generic n-layer aerosols: Vertical profile choice : "1374 write(*,*)trim(rname)//&1375 " (1) Tau btwn ptop and pbot follows atm. scale height"1376 write(*,*)trim(rname)//&1377 " or (2) Tau above pbot follows its own scale height"1378 endif1379 aeronlay_choice=11380 call getin_p("aeronlay_choice",aeronlay_choice)1381 if (is_master) write(*,*)trim(rname)//&1382 ": aeronlay_choice = ",aeronlay_choice1383 1384 if (is_master) write(*,*)trim(rname)//&1385 ": Generic n-layer aerosols: bottom pressures (Pa)"1386 aeronlay_pbot=2000.01387 call getin_p("aeronlay_pbot",aeronlay_pbot)1388 if (is_master) write(*,*)trim(rname)//": aeronlay_pbot = ",aeronlay_pbot1389 1390 if (is_master) write(*,*)trim(rname)//&1391 ": Generic n-layer aerosols: (if choice=1) Top pressures (Pa) "1392 aeronlay_ptop=300000.01393 call getin_p("aeronlay_ptop",aeronlay_ptop)1394 if (is_master) write(*,*)trim(rname)//": aeronlay_ptop = ",aeronlay_ptop1395 1396 if (is_master) write(*,*)trim(rname)//&1397 ": Generic n-layer aerosols: (if choice=2) Scale height / atm. scale height"1398 aeronlay_sclhght=0.21399 call getin_p("aeronlay_sclhght",aeronlay_sclhght)1400 if (is_master) write(*,*)trim(rname)//&1401 ": aeronlay_sclhght = ",aeronlay_sclhght1402 1403 if (is_master) write(*,*)trim(rname)//&1404 ": Generic n-layer aerosols: particles effective radii (m)"1405 aeronlay_size=1.e-61406 call getin_p("aeronlay_size",aeronlay_size)1407 if (is_master) write(*,*)trim(rname)//": aeronlay_size = ",aeronlay_size1408 1409 if (is_master) write(*,*)trim(rname)//&1410 ": Generic n-layer aerosols: particles radii effective variance"1411 aeronlay_nueff=0.11412 call getin_p("aeronlay_nueff",aeronlay_nueff)1413 if (is_master) write(*,*)trim(rname)//": aeronlay_nueff = ",aeronlay_nueff1414 1415 if (is_master) write(*,*)trim(rname)//&1416 ": Generic n-layer aerosols: VIS optical properties file"1417 optprop_aeronlay_vis = 'optprop_saturn_vis_n20.dat'1418 call getin_p("optprop_aeronlay_vis",optprop_aeronlay_vis)1419 if (is_master) write(*,*)trim(rname)//&1420 ": optprop_aeronlay_vis = ",optprop_aeronlay_vis1421 1422 if (is_master) write(*,*)trim(rname)//&1423 ": Generic n-layer aerosols: IR optical properties file"1424 optprop_aeronlay_ir = 'optprop_saturn_ir_n20.dat'1425 call getin_p("optprop_aeronlay_ir",optprop_aeronlay_ir)1426 if (is_master) write(*,*)trim(rname)//&1427 ": optprop_aeronlay_ir = ",optprop_aeronlay_ir1428 1429 1430 !=================================1431 1200 1432 1201 if (is_master) write(*,*)trim(rname)//& … … 1460 1229 call getin_p("sedimentation",sedimentation) 1461 1230 if (is_master) write(*,*)trim(rname)//": sedimentation = ",sedimentation 1462 1463 if (is_master) write(*,*)trim(rname)//": Generic Condensation of tracers ?"1464 generic_condensation=.false. !default value1465 call getin_p("generic_condensation",generic_condensation)1466 if (is_master) write(*,*)trim(rname)//": generic_condensation = ",generic_condensation1467 1231 1468 1232 if (is_master) write(*,*)trim(rname)//": Spectral Dependant albedo ?" … … 1533 1297 call abort_physic(rname, 'if paleo is set, fast must be true', 1) 1534 1298 endif 1535 if ((haze_proffix.or.haze_radproffix).and..not. aerohaze) then1536 call abort_physic(rname, 'for now, haze/rad proffix only works w aerohaze=T', 1)1299 if ((haze_proffix.or.haze_radproffix).and..not.optichaze) then 1300 call abort_physic(rname, 'for now, haze/rad_proffix only works with optichaze=T', 1) 1537 1301 endif 1538 1302 if (carbox.and.condcosurf.and.no_n2frost) then
Note: See TracChangeset
for help on using the changeset viewer.