source: trunk/LMDZ.COMMON/libf/evolution/conf_pem.F90 @ 2950

Last change on this file since 2950 was 2918, checked in by llange, 3 years ago

PEM
Implementing Eran's idea: introduce a flag in the run_PEM.def to compute CO2 glacier flows or not
LL

File size: 3.1 KB
RevLine 
[2859]1MODULE conf_pem_mod
2
[2864]3IMPLICIT NONE
[2859]4
[2864]5CONTAINS
[2859]6
[2864]7  SUBROUTINE conf_pem
[2859]8
[2864]9#ifdef CPP_IOIPSL
10  use IOIPSL, only: getin
11#else
12  ! if not using IOIPSL, we still need to use (a local version of) getin
13  use ioipsl_getincom, only: getin
14#endif
15 
[2893]16  USE temps_mod_evol, ONLY: year_bp_ini, dt_pem, water_ice_criterion, co2_ice_criterion, ps_criterion, &
[2895]17                Max_iter_pem, evol_orbit_pem, var_obl, var_ex, var_lsp
18  USE comsoil_h_pem, only: soil_pem,fluxgeo,water_reservoir_nom,depth_breccia,depth_bedrock,reg_thprop_dependp
[2888]19  USE adsorption_mod,only: adsorption_pem
[2918]20  USE co2glaciers_mod, only: co2glaciersflow
21
[2888]22  CHARACTER(len=20),parameter :: modname ='conf_pem'
[2893]23
[2918]24!PEM parameters
[2893]25
[2918]26
27
[2864]28  year_bp_ini=0.
29  CALL getin('year_bp_ini', year_bp_ini)
[2859]30
[2864]31  dt_pem=1
32  CALL getin('dt_pem', dt_pem)
[2859]33
[2893]34  water_ice_criterion=0.2
35  CALL getin('water_ice_criterion', water_ice_criterion)
[2859]36
[2893]37  co2_ice_criterion=0.2
38  CALL getin('co2_ice_criterion', co2_ice_criterion)
39
[2888]40  ps_criterion = 0.15
41  CALL getin('ps_criterion',ps_criterion)
42
[2864]43  evol_orbit_pem=.false.
44  CALL getin('evol_orbit_pem', evol_orbit_pem)
[2859]45
[2864]46  Max_iter_pem=99999999
47  CALL getin('Max_iter_pem', Max_iter_pem)
[2859]48
[2918]49  co2glaciersflow = .true.
50  CALL getin('co2glaciersflow', co2glaciersflow)
51
[2864]52  soil_pem=.true.
53  CALL getin('soil_pem', soil_pem)
[2859]54
[2888]55  adsorption_pem = .true.
56  CALL getin('adsorption_pem',adsorption_pem)
57
58  fluxgeo = 0.
59  CALL getin('Fluxgeo_PEM',fluxgeo)
60  print*,'Flux Geothermal is set to',fluxgeo
61
[2894]62  var_obl = .true.
63  CALL getin('var_obl',var_obl)
[2895]64  print*,'Does obliquity vary ?',var_obl
[2894]65
66  var_ex = .true.
67  CALL getin('var_ex',var_ex)
[2895]68  print*,'Does excentricity vary ?',var_ex
[2894]69
70  var_lsp = .true.
71  CALL getin('var_lsp',var_lsp)
[2895]72  print*,'Does Ls peri vary ?',var_lsp
73   
74  depth_breccia   = 10.
75  CALL getin('depth_breccia',depth_breccia)
76  print*,'Depth of breccia is set to',depth_breccia
[2894]77
[2895]78  depth_bedrock   = 1000.
79  CALL getin('depth_bedrock',depth_bedrock)
80  print*,'Depth of bedrock is set to',depth_bedrock
81
82  reg_thprop_dependp = .false.
83  CALL getin('reg_thprop_dependp',reg_thprop_dependp)
84  print*, 'Thermal properties of the regolith vary with pressure ?', reg_thprop_dependp
85
86
[2888]87  if ((not(soil_pem)).and.adsorption_pem) then
88       print*,'Adsorption must be used when soil_pem = T'
89       call abort_physic(modname,"Adsorption must be used when soil_pem = T",1)
[2893]90  endif
[2888]91 
92  if ((not(soil_pem)).and.fluxgeo.gt.0.) then
93       print*,'Soil is not activated but Flux Geo > 0.'
[2895]94       call abort_physic(modname,"Soil is not activated but Flux Geo > 0.",1)
[2893]95  endif
[2895]96 
97  if ((not(soil_pem)).and.reg_thprop_dependp) then
98     print*,'Regolith properties vary with Ps only when soil is set to true'
99     call abort_physic(modname,'Regolith properties vary with Ps only when soil is set to true',1)
100  endif
[2894]101
102  if (evol_orbit_pem.and.year_bp_ini.eq.0.) then
[2895]103     print*,'You want to follow the file ob_ex_lsp.asc for changing orb parameters,'
104     print*,'but you did not specify from which year to start.'
105     call abort_physic(modname,"evol_orbit_pem=.true. but year_bp_ini=0",1)
106  endif
107
108  water_reservoir_nom = 1e4
[2888]109  CALL getin('water_reservoir_nom',water_reservoir_nom)
[2895]110
[2864]111  END SUBROUTINE conf_pem
[2859]112
113END MODULE conf_pem_mod
Note: See TracBrowser for help on using the repository browser.