Ignore:
Timestamp:
Jan 13, 2025, 2:52:33 PM (3 weeks ago)
Author:
debatzbr
Message:

Remove generic_aerosols and generic_condensation, along with their related variables (useless). RENAME THE VARIABLE AEROHAZE TO OPTICHAZE.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.PLUTO/libf/phypluto/inifis_mod.F90

    r3557 r3572  
    776776     if (is_master)write(*,*)trim(rname)//&
    777777     "Radiatively active haze ?"
    778      aerohaze=.false. ! default value
    779      call getin_p("aerohaze",aerohaze)
    780      if (is_master)write(*,*)trim(rname)//&
    781      "aerohaze = ",aerohaze
     778     optichaze=.false. ! default value
     779     call getin_p("optichaze",optichaze)
     780     if (is_master)write(*,*)trim(rname)//&
     781     "optichaze = ",optichaze
    782782
    783783     if (is_master)write(*,*)trim(rname)//&
     
    11981198
    11991199!=================================
    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 value
    1206      call getin_p("aeroback2lay",aeroback2lay)
    1207      if (is_master) write(*,*)trim(rname)//": aeroback2lay = ",aeroback2lay
    1208 
    1209      if (aeroback2lay.and.is_master) then
    1210        print*,'Warning : The TWOLAY AEROSOL scheme is deprecated and buggy...'
    1211        print*,'You should use the generic n-layer scheme (see aeronlay).'
    1212      endif
    1213 
    1214      if (is_master) write(*,*)trim(rname)//": Radiatively active ammonia cloud?"
    1215      aeronh3=.false.     ! default value
    1216      call getin_p("aeronh3",aeronh3)
    1217      if (is_master) write(*,*)trim(rname)//": aeronh3 = ",aeronh3
    1218 
    1219      if (aeronh3.and.is_master) then
    1220        print*,'Warning : You are using specific NH3 cloud scheme ...'
    1221        print*,'You should use the generic n-layer scheme (see aeronlay).'
    1222      endif
    1223 
    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.D0
    1228      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_tropo
    1231 
    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.08D0
    1236      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_strato
    1239 
    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.0
    1257      call getin_p("pres_bottom_tropo",pres_bottom_tropo)
    1258      if (is_master) write(*,*)trim(rname)//&
    1259        ": pres_bottom_tropo = ",pres_bottom_tropo
    1260 
    1261      if (is_master) write(*,*)trim(rname)//&
    1262        ": TWOLAY AEROSOL: pres_top_tropo? in pa"
    1263      pres_top_tropo=18000.0
    1264      call getin_p("pres_top_tropo",pres_top_tropo)
    1265      if (is_master) write(*,*)trim(rname)//&
    1266        ": pres_top_tropo = ",pres_top_tropo
    1267 
    1268      if (is_master) write(*,*)trim(rname)//&
    1269        ": TWOLAY AEROSOL: pres_bottom_strato? in pa"
    1270      pres_bottom_strato=2000.0
    1271      call getin_p("pres_bottom_strato",pres_bottom_strato)
    1272      if (is_master) write(*,*)trim(rname)//&
    1273        ": pres_bottom_strato = ",pres_bottom_strato
    1274 
    1275      ! Sanity check
    1276      if (pres_bottom_strato .gt. pres_top_tropo) then
    1277        if(is_master) then
    1278        print*,'Error : TWOLAY AEROSOL, Please ensure that in callphys.def'
    1279        print*,'you have pres_top_tropo > pres_bottom_strato !'
    1280        endif
    1281        call abort_physic(rname," pres_top_tropo > pres_bottom_strato!",1)
    1282      endif
    1283 
    1284      if (is_master) write(*,*)trim(rname)//&
    1285        ": TWOLAY AEROSOL: pres_top_strato? in pa"
    1286      pres_top_strato=100.0
    1287      call getin_p("pres_top_strato",pres_top_strato)
    1288      if (is_master) write(*,*)trim(rname)//&
    1289        ": pres_top_strato = ",pres_top_strato
    1290 
    1291      if (is_master) write(*,*)trim(rname)//&
    1292        ": TWOLAY AEROSOL: particle size in the ", &
    1293        "tropospheric layer, in meters"
    1294      size_tropo=2.e-6
    1295      call getin_p("size_tropo",size_tropo)
    1296      if (is_master) write(*,*)trim(rname)//": size_tropo = ",size_tropo
    1297 
    1298      if (is_master) write(*,*)trim(rname)//&
    1299        ": TWOLAY AEROSOL: particle size in the ", &
    1300        "stratospheric layer, in meters"
    1301      size_strato=1.e-7
    1302      call getin_p("size_strato",size_strato)
    1303      if (is_master) write(*,*)trim(rname)//": size_strato = ",size_strato
    1304 
    1305      if (is_master) write(*,*)trim(rname)//&
    1306        ": NH3 (thin) cloud: total optical depth"
    1307      tau_nh3_cloud=7.D0
    1308      call getin_p("tau_nh3_cloud",tau_nh3_cloud)
    1309      if (is_master) write(*,*)trim(rname)//": tau_nh3_cloud = ",tau_nh3_cloud
    1310 
    1311      if (is_master) write(*,*)trim(rname)//": NH3 (thin) cloud pressure level"
    1312      pres_nh3_cloud=7.D0
    1313      call getin_p("pres_nh3_cloud",pres_nh3_cloud)
    1314      if (is_master) write(*,*)trim(rname)//": pres_nh3_cloud = ",pres_nh3_cloud
    1315 
    1316      if (is_master) write(*,*)trim(rname)//": NH3 (thin) cloud: particle sizes"
    1317      size_nh3_cloud=3.e-6
    1318      call getin_p("size_nh3_cloud",size_nh3_cloud)
    1319      if (is_master) write(*,*)trim(rname)//": size_nh3_cloud = ",size_nh3_cloud
    1320 
    1321 !=================================
    1322 ! Generic N-LAYER aerosol scheme
    1323 
    1324      if (is_master) write(*,*)trim(rname)//&
    1325        ": Radiatively active generic n-layer aerosols?"
    1326      aeronlay=.false.     ! default value
    1327      call getin_p("aeronlay",aeronlay)
    1328      if (is_master) write(*,*)trim(rname)//": aeronlay = ",aeronlay
    1329 
    1330      if (is_master) write(*,*)trim(rname)//&
    1331        ": Number of generic aerosols layers?"
    1332      nlayaero=1     ! default value
    1333      call getin_p("nlayaero",nlayaero)
    1334      ! Avoid to allocate arrays of size 0
    1335      if (aeronlay .and. nlayaero.lt.1) then
    1336        if (is_master) then
    1337        print*, " You are trying to set no generic aerosols..."
    1338        print*, " Set aeronlay=.false. instead ! I abort."
    1339        endif
    1340        call abort_physic(rname,"no generic aerosols...",1)
    1341      endif
    1342      if (.not. aeronlay) nlayaero=1
    1343      if (is_master) write(*,*)trim(rname)//": nlayaero = ",nlayaero
    1344 
    1345      ! This is necessary, we just set the number of aerosol layers
    1346      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-1
    1360      call getin_p("aeronlay_tauref",aeronlay_tauref)
    1361      if (is_master) write(*,*)trim(rname)//&
    1362        ": aeronlay_tauref = ",aeronlay_tauref
    1363 
    1364      if (is_master) write(*,*)trim(rname)//&
    1365        ": Generic n-layer aerosols: Reference wavelenght for optical depths (m)"
    1366      aeronlay_lamref=0.6E-6
    1367      call getin_p("aeronlay_lamref",aeronlay_lamref)
    1368      if (is_master) write(*,*)trim(rname)//&
    1369        ": aeronlay_lamref = ",aeronlay_lamref
    1370 
    1371      if (is_master) then
    1372        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      endif
    1379      aeronlay_choice=1
    1380      call getin_p("aeronlay_choice",aeronlay_choice)
    1381      if (is_master) write(*,*)trim(rname)//&
    1382        ": aeronlay_choice = ",aeronlay_choice
    1383 
    1384      if (is_master) write(*,*)trim(rname)//&
    1385        ": Generic n-layer aerosols: bottom pressures (Pa)"
    1386      aeronlay_pbot=2000.0
    1387      call getin_p("aeronlay_pbot",aeronlay_pbot)
    1388      if (is_master) write(*,*)trim(rname)//": aeronlay_pbot = ",aeronlay_pbot
    1389 
    1390      if (is_master) write(*,*)trim(rname)//&
    1391        ": Generic n-layer aerosols: (if choice=1) Top pressures (Pa) "
    1392      aeronlay_ptop=300000.0
    1393      call getin_p("aeronlay_ptop",aeronlay_ptop)
    1394      if (is_master) write(*,*)trim(rname)//": aeronlay_ptop = ",aeronlay_ptop
    1395 
    1396      if (is_master) write(*,*)trim(rname)//&
    1397        ": Generic n-layer aerosols: (if choice=2) Scale height / atm. scale height"
    1398      aeronlay_sclhght=0.2
    1399      call getin_p("aeronlay_sclhght",aeronlay_sclhght)
    1400      if (is_master) write(*,*)trim(rname)//&
    1401        ": aeronlay_sclhght = ",aeronlay_sclhght
    1402 
    1403      if (is_master) write(*,*)trim(rname)//&
    1404        ": Generic n-layer aerosols: particles effective radii (m)"
    1405      aeronlay_size=1.e-6
    1406      call getin_p("aeronlay_size",aeronlay_size)
    1407      if (is_master) write(*,*)trim(rname)//": aeronlay_size = ",aeronlay_size
    1408 
    1409      if (is_master) write(*,*)trim(rname)//&
    1410        ": Generic n-layer aerosols: particles radii effective variance"
    1411      aeronlay_nueff=0.1
    1412      call getin_p("aeronlay_nueff",aeronlay_nueff)
    1413      if (is_master) write(*,*)trim(rname)//": aeronlay_nueff = ",aeronlay_nueff
    1414 
    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_vis
    1421 
    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_ir
    1428 
    1429 
    1430 !=================================
    14311200
    14321201     if (is_master) write(*,*)trim(rname)//&
     
    14601229     call getin_p("sedimentation",sedimentation)
    14611230     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 value
    1465      call getin_p("generic_condensation",generic_condensation)
    1466      if (is_master) write(*,*)trim(rname)//": generic_condensation = ",generic_condensation
    14671231
    14681232     if (is_master) write(*,*)trim(rname)//": Spectral Dependant albedo ?"
     
    15331297         call abort_physic(rname, 'if paleo is set, fast must be true', 1)
    15341298     endif
    1535      if ((haze_proffix.or.haze_radproffix).and..not.aerohaze) then
    1536          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)
    15371301     endif
    15381302      if (carbox.and.condcosurf.and.no_n2frost) then
Note: See TracChangeset for help on using the changeset viewer.