Changeset 3821 for trunk/LMDZ.COMMON/libf/evolution
- Timestamp:
- Jul 1, 2025, 2:17:10 PM (6 days ago)
- Location:
- trunk/LMDZ.COMMON/libf/evolution
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/evolution/changelog.txt
r3820 r3821 720 720 == 01/07/2025 == JBC 721 721 Bug correction in the launching script. 722 723 == 01/07/2025 == JBC 724 Addition of the flag 'impose_dust_ratio' (default: .false.) to impose a dust-to-ice ratio instead of a dust tendency for the layering algorithm. The ratio value can be set in the "run_PEM.def" by 'dust_to_ice_ratio' (default: 0.01). -
trunk/LMDZ.COMMON/libf/evolution/conf_pem.F90
r3517 r3821 29 29 use glaciers_mod, only: h2oice_flow, co2ice_flow, inf_h2oice_threshold, metam_co2ice_threshold, metam_h2oice_threshold, metam_h2oice, metam_co2ice 30 30 use ice_table_mod, only: icetable_equilibrium, icetable_dynamic 31 use layering_mod, only: layering_algo 31 use layering_mod, only: layering_algo, d_dust, impose_dust_ratio, dust2ice_ratio 32 32 use info_PEM_mod, only: iPCM, iPEM, nPCM, nPCM_ini 33 33 … … 188 188 call getin('layering',layering_algo) 189 189 190 d_dust = 1.e-3 ! kg.m-2.y-1 191 call getin('d_dust',d_dust) 192 193 impose_dust_ratio = .false. 194 call getin('impose_dust_ratio',impose_dust_ratio) 195 196 dust2ice_ratio = 0.01 197 call getin('dust2ice_ratio',dust2ice_ratio) 198 190 199 END SUBROUTINE conf_pem 191 200 -
trunk/LMDZ.COMMON/libf/evolution/deftank/run_PEM.def
r3791 r3821 14 14 # evol_orbit_pem=.false. 15 15 16 # If evol_orbit_pem=.true., number of Earth years before present to start the PEM run ?Default = 016 # If evol_orbit_pem=.true., number of Earth years before present to start the PEM run. Default = 0 17 17 # year_earth_bp_ini=0 18 18 … … 30 30 31 31 #---------- Stopping criteria parameters ----------# 32 # If evol_orbit_pem=.false., maximal number of iterations if no stopping criterion is reached ?Default=10000000032 # If evol_orbit_pem=.false., maximal number of iterations if no stopping criterion is reached. Default=100000000 33 33 # Max_iter_pem=10 34 34 35 # Acceptance rate of sublimating H2O ice surface change ?Default = 0.235 # Acceptance rate of sublimating H2O ice surface change. Default = 0.2 36 36 # h2o_ice_crit=0.2 37 37 38 # Acceptance rate of sublimating CO2 ice surface change ?Default = 0.238 # Acceptance rate of sublimating CO2 ice surface change. Default = 0.2 39 39 # co2_ice_crit=0.2 40 40 41 # Acceptance rate of pressure surface change ?Default = 0.1541 # Acceptance rate of pressure surface change. Default = 0.15 42 42 # ps_criterion = 0.15 43 43 44 # Acceptance of change for obliquity ?Default = 1.44 # Acceptance of change for obliquity. Default = 1. 45 45 # max_change_obl=1. 46 46 … … 61 61 # reg_thprop_dependp=.false. 62 62 63 # Value of the geothermal flux ?Default = 0.63 # Value of the geothermal flux. Default = 0. 64 64 # fluxgeo=0. 65 65 66 # Depth at which the breccia layer begins ?Default = 10 m66 # Depth at which the breccia layer begins. Default = 10 m 67 67 # depth_breccia=10. 68 68 69 # Depth at which the bedrock layer begins ?Default = 1000 m69 # Depth at which the bedrock layer begins. Default = 1000 m 70 70 # depth_bedrock=1000. 71 71 … … 77 77 78 78 #---------- Ice management parameters ----------# 79 # Amount of H2O ice to initialize the huge reservoir if the variable is not present in "startfi_PEM.nc" ?Default = 9200. kg.m-2 (= 10 m)79 # Amount of H2O ice to initialize the huge reservoir if the variable is not present in "startfi_PEM.nc". Default = 9200. kg.m-2 (= 10 m) 80 80 # ini_huge_h2oice=1.e4 81 81 82 # Threshold to consider the amount of H2O ice as an infinite reservoir ?Default = 460. kg.m-2 (= 0.5 m)82 # Threshold to consider the amount of H2O ice as an infinite reservoir. Default = 460. kg.m-2 (= 0.5 m) 83 83 # inf_h2oice_threshold=2.e3 84 84 … … 86 86 # metam_h2oice=.false. 87 87 88 # Threshold to consider frost is becoming perennial H2O ice ?Default = 460. kg.m-2 (= 0.5 m)88 # Threshold to consider frost is becoming perennial H2O ice. Default = 460. kg.m-2 (= 0.5 m) 89 89 # metam_h2oice_threshold=5.e-2 90 90 … … 95 95 # metam_co2ice=.false. 96 96 97 # Threshold to consider frost is becoming perennial CO2 ice ?Default = 16500. kg.m-2 (= 10 m)97 # Threshold to consider frost is becoming perennial CO2 ice. Default = 16500. kg.m-2 (= 10 m) 98 98 # metam_co2ice_threshold=16.e3 99 99 … … 104 104 # Do you want to run with the layering algorithm? Default = .false. 105 105 # layering=.true. 106 107 # Value of the dust tendency. Default = 1.e-3 kg.m-2.y-1 108 # d_dust=1.e-3 109 110 # Do you want to impose a dust-to-ice ratio instead of a dust tendency? Default = .false. 111 # impose_dust_ratio=.true. 112 113 # If impose_dust_ratio=.true., value of the dust-to-ice ratio. Default = 0.01 114 # dust2ice_ratio=0.05 106 115 107 116 # Some definitions for the physics, in file 'callphys.def' -
trunk/LMDZ.COMMON/libf/evolution/layering_mod.F90
r3809 r3821 19 19 20 20 ! Physical parameters 21 real, parameter :: d_dust = 1.e-3 ! Tendency of dust [kg.m-2.y-1] 22 real, parameter :: dry_lag_porosity = 0.4 ! Porosity of dust lag 23 real, parameter :: wet_lag_porosity = 0.1 ! Porosity of water ice lag 24 real, parameter :: regolith_porosity = 0.4 ! Porosity of regolith 25 real, parameter :: breccia_porosity = 0.1 ! Porosity of breccia 26 real, parameter :: co2ice_porosity = 0. ! Porosity of CO2 ice 27 real, parameter :: h2oice_porosity = 0. ! Porosity of H2O ice 28 real, parameter :: rho_dust = 2500. ! Density of dust [kg.m-3] 29 real, parameter :: rho_rock = 3200. ! Density of rock [kg.m-3] 30 real, parameter :: h_patchy_dust = 5.e-4 ! Height under which a dust lag is considered patchy [m] 31 real, parameter :: h_patchy_ice = 5.e-4 ! Height under which a H2O ice lag is considered patchy [m] 21 logical :: impose_dust_ratio = .false. ! Impose dust-to-ice ratio instead of dust tendency (see 'dust2ice_ratio') 22 real :: dust2ice_ratio = 0.01 ! Dust-to-ice ratio when ice condenses (1% by default) 23 real :: d_dust = 1.e-3 ! Tendency of dust [kg.m-2.y-1] 24 real, parameter :: dry_lag_porosity = 0.4 ! Porosity of dust lag 25 real, parameter :: wet_lag_porosity = 0.1 ! Porosity of water ice lag 26 real, parameter :: regolith_porosity = 0.4 ! Porosity of regolith 27 real, parameter :: breccia_porosity = 0.1 ! Porosity of breccia 28 real, parameter :: co2ice_porosity = 0. ! Porosity of CO2 ice 29 real, parameter :: h2oice_porosity = 0. ! Porosity of H2O ice 30 real, parameter :: rho_dust = 2500. ! Density of dust [kg.m-3] 31 real, parameter :: rho_rock = 3200. ! Density of rock [kg.m-3] 32 real, parameter :: h_patchy_dust = 5.e-4 ! Height under which a dust lag is considered patchy [m] 33 real, parameter :: h_patchy_ice = 5.e-4 ! Height under which a H2O ice lag is considered patchy [m] 32 34 33 35 ! Parameters for CO2 flux correction (inspired by Levrard et al. 2007) … … 574 576 ! Is the considered stratum a dust lag? 575 577 if (.not. is_dust_lag(current)) return 576 do while (is_dust_lag(current) .and. associated(current))578 do while (is_dust_lag(current)) 577 579 h_toplag = h_toplag + thickness(current) 578 current => current%down 580 if (associated(current%down)) then 581 current => current%down 582 else 583 exit 584 endif 579 585 enddo 586 587 if (.not. associated(current%down)) then ! Bottom of the layering -> no ice below 588 h_toplag = 0. 589 return 590 endif 591 580 592 ! Is the stratum below the dust lag made of ice? 581 if (current%h_h2oice > 0. .and. current%h_h2oice > current%h_co2ice) then ! There is more H2O ice than CO2 ice593 if (current%h_h2oice > 0. .and. current%h_h2oice > current%h_co2ice) then ! Yes, there is more H2O ice than CO2 ice 582 594 if (h_toplag < h_patchy_dust) then ! But the dust lag is too thin to considered ice as subsurface ice 583 595 h_toplag = 0. 584 596 h2o_ice = current%h_h2oice 585 597 endif 586 else if (current%h_co2ice > 0. .and. current%h_co2ice > current%h_h2oice) then ! There is more CO2 ice than H2O ice598 else if (current%h_co2ice > 0. .and. current%h_co2ice > current%h_h2oice) then ! No, there is more CO2 ice than H2O ice 587 599 h_toplag = 0. ! Because it matters only for H2O ice 588 600 if (h_toplag < h_patchy_ice) then ! But the dust lag is too thin to considered ice as subsurface ice … … 712 724 dh_h2oice = d_h2oice/rho_h2oice 713 725 ! To disable dust sedimenation when there is ice sublimation (because dust tendency is fixed) 714 if (dh_co2ice > 0. .or. dh_h2oice > 0.) then 715 dh_dust = d_dust/rho_dust 726 if (dh_co2ice >= 0. .and. dh_h2oice >= 0.) then 727 if (impose_dust_ratio) then 728 dh_dust = dust2ice_ratio*(dh_h2oice + dh_co2ice) 729 else 730 dh_dust = d_dust/rho_dust 731 endif 716 732 else 717 733 dh_dust = 0.
Note: See TracChangeset
for help on using the changeset viewer.