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

Last change on this file since 2965 was 2963, checked in by romain.vande, 3 years ago

Mars PEM :

Adapt PEM to the subslope PCM configuration, it is now fully compatible.

Create a PEM folder in deftank that contains:

run_pem1: a bash file that runs chained simulation of PEM as well as running a parameterizable number of PCM simulation in between.

It also takes care of reshaping XIOS output as well as renaming outputs etc… in the spirit of run_month1.

It is written for Irene machine and the header needs to be adapted for other machines.

run_PEM.def: A text file that shows the possible parameters to choose before a PEM simulation.

It should be included at the end of run.def just like callphys.def

ob_ex_lsp.asc: An ascii file containing the obliquity, eccentricity, ls_peri data from Laskar in Martian year.
README: A txt file explaining the content of the folder

Adapt field_def_physics_mars.xml to consider the case with 7 subslopes in the PCM.
Change context_lmdz_physics.xml to be able to output the file needed by the PEM.

Correct a few other minor bugs.

RV

File size: 3.9 KB
Line 
1MODULE conf_pem_mod
2
3IMPLICIT NONE
4
5CONTAINS
6
7  SUBROUTINE conf_pem
8
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 
16  USE temps_mod_evol, ONLY: year_bp_ini, dt_pem, water_ice_criterion, co2_ice_criterion, ps_criterion, &
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
19  USE adsorption_mod,only: adsorption_pem
20  USE co2glaciers_mod, only: co2glaciersflow
21  use ice_table_mod, only: icetable_equilibrium, icetable_dynamic
22
23  CHARACTER(len=20),parameter :: modname ='conf_pem'
24
25!PEM parameters
26
27! #---------- ORBITAL parameters --------------#
28
29  evol_orbit_pem=.false.
30  CALL getin('evol_orbit_pem', evol_orbit_pem)
31
32  year_bp_ini=0.
33  CALL getin('year_bp_ini', year_bp_ini)
34
35  var_obl = .true.
36  CALL getin('var_obl',var_obl)
37  print*,'Does obliquity vary ?',var_obl
38
39  var_ex = .true.
40  CALL getin('var_ex',var_ex)
41  print*,'Does excentricity vary ?',var_ex
42
43  var_lsp = .true.
44  CALL getin('var_lsp',var_lsp)
45  print*,'Does Ls peri vary ?',var_lsp
46
47! #---------- Stopping criterion parameters --------------#
48
49  Max_iter_pem=99999999
50  CALL getin('Max_iter_pem', Max_iter_pem)
51
52  water_ice_criterion=0.2
53  CALL getin('water_ice_criterion', water_ice_criterion)
54
55  co2_ice_criterion=0.2
56  CALL getin('co2_ice_criterion', co2_ice_criterion)
57
58  ps_criterion = 0.15
59  CALL getin('ps_criterion',ps_criterion)
60
61  dt_pem=1
62  CALL getin('dt_pem', dt_pem)
63
64! #---------- Subsurface parameters --------------#
65
66  soil_pem=.true.
67  CALL getin('soil_pem', soil_pem)
68
69  adsorption_pem = .true.
70  CALL getin('adsorption_pem',adsorption_pem)
71
72  co2glaciersflow = .true.
73  CALL getin('co2glaciersflow', co2glaciersflow)
74
75  reg_thprop_dependp = .false.
76  CALL getin('reg_thprop_dependp',reg_thprop_dependp)
77  print*, 'Thermal properties of the regolith vary with pressure ?', reg_thprop_dependp
78
79! #---------- Layering parameters --------------#
80
81  fluxgeo = 0.
82  CALL getin('Fluxgeo_PEM',fluxgeo)
83  print*,'Flux Geothermal is set to',fluxgeo
84   
85  depth_breccia   = 10.
86  CALL getin('depth_breccia',depth_breccia)
87  print*,'Depth of breccia is set to',depth_breccia
88
89  depth_bedrock   = 1000.
90  CALL getin('depth_bedrock',depth_bedrock)
91  print*,'Depth of bedrock is set to',depth_bedrock
92
93   icetable_equilibrium = .true.
94   CALL getin('icetable_equilibrium',icetable_equilibrium)
95   print*, 'Do we compute the ice table at equilibrium?', icetable_equilibrium
96
97   icetable_dynamic = .false.
98   CALL getin('icetable_dynamic',icetable_dynamic)
99   print*, 'Do we compute the ice table with the dynamic method?', icetable_dynamic
100
101  if ((not(soil_pem)).and.((icetable_equilibrium).or.(icetable_dynamic))) then
102       print*,'Ice table  must be used when soil_pem = T'
103       call abort_physic(modname,"Ice table  must be used when soil_pem = T",1)
104  endif
105
106  if ((not(soil_pem)).and.adsorption_pem) then
107       print*,'Adsorption must be used when soil_pem = T'
108       call abort_physic(modname,"Adsorption must be used when soil_pem = T",1)
109  endif
110 
111  if ((not(soil_pem)).and.(fluxgeo.gt.0.)) then
112       print*,'Soil is not activated but Flux Geo > 0.'
113       call abort_physic(modname,"Soil is not activated but Flux Geo > 0.",1)
114  endif
115 
116  if ((not(soil_pem)).and.reg_thprop_dependp) then
117     print*,'Regolith properties vary with Ps only when soil is set to true'
118     call abort_physic(modname,'Regolith properties vary with Ps only when soil is set to true',1)
119  endif
120
121  if (evol_orbit_pem.and.year_bp_ini.eq.0.) then
122     print*,'You want to follow the file ob_ex_lsp.asc for changing orb parameters,'
123     print*,'but you did not specify from which year to start.'
124     call abort_physic(modname,"evol_orbit_pem=.true. but year_bp_ini=0",1)
125  endif
126
127  water_reservoir_nom = 1e4
128  CALL getin('water_reservoir_nom',water_reservoir_nom)
129
130  END SUBROUTINE conf_pem
131
132END MODULE conf_pem_mod
Note: See TracBrowser for help on using the repository browser.