source: trunk/LMDZ.COMMON/libf/evolution/comsoil_h_PEM.F90 @ 2909

Last change on this file since 2909 was 2895, checked in by llange, 2 years ago

PEM
Soil temperature initialisation has been updated
Conf_PEM improved by adding some options to the users (thermal regolith depend on the pressure, depth of the subsurface layers, etc.)
Minor edits then (+ svn update with RV had some issues, so there are some "artefact changes" ...)
LL

File size: 3.5 KB
Line 
1module comsoil_h_PEM
2
3implicit none
4  integer, parameter :: nsoilmx_PEM = 27               ! number of layers in the PEM
5  integer, parameter :: n_1km = 23                     ! index at which we have overcome 1km
6
7  real,save,allocatable,dimension(:) :: layer_PEM      ! soil layer depths   [m]
8  real,save,allocatable,dimension(:) :: mlayer_PEM     ! soil mid-layer depths [m]
9  real,save,allocatable,dimension(:,:,:) :: TI_PEM     ! soil thermal inertia [SI]
10    real,save,allocatable,dimension(:,:) :: inertiedat_PEM ! soil thermal inertia saved as reference for current climate [SI]
11  ! variables (FC: built in firstcall in soil.F)
12  REAL,SAVE,ALLOCATABLE :: tsoil_PEM(:,:,:)       ! sub-surface temperatures [K]
13  real,save,allocatable :: mthermdiff_PEM(:,:)  ! (FC) mid-layer thermal diffusivity [SI]
14  real,save,allocatable :: thermdiff_PEM(:,:)   ! (FC) inter-layer thermal diffusivity [SI]
15  real,save,allocatable :: coefq_PEM(:)         ! (FC) q_{k+1/2} coefficients [SI]
16  real,save,allocatable :: coefd_PEM(:,:)       ! (FC) d_k coefficients [SI]
17  real,save,allocatable :: alph_PEM(:,:)      ! (FC) alpha_k coefficients [SI]
18  real,save,allocatable :: beta_PEM(:,:)      ! beta_k coefficients [SI]
19  real,save :: mu_PEM                           ! mu coefficient [SI]
20  real,save :: fluxgeo                               ! Geothermal flux [W/m^2]
21  real,save :: depth_breccia                         ! Depth at which we have breccia [m]
22  real,save :: depth_bedrock                         ! Depth at which we have bedrock [m]
23  integer,save :: index_breccia                         ! last index of the depth grid before having breccia
24  integer,save :: index_bedrock                         ! last index of the depth grid before having bedrock
25  LOGICAL soil_pem  ! True by default, to run with the subsurface physic. Read in pem.def
26  real,save,allocatable,dimension(:) :: water_reservoir      ! Large reserve of water   [kg/m^2]
27  real,save :: water_reservoir_nom
28  logical, save :: reg_thprop_dependp ! thermal properites of the regolith vary with the surface pressure
29
30contains
31
32  subroutine ini_comsoil_h_PEM(ngrid,nslope)
33 
34  implicit none
35  integer,intent(in) :: ngrid ! number of atmospheric columns
36  integer,intent(in) :: nslope ! number of slope within a mesh
37
38    allocate(layer_PEM(nsoilmx_PEM))
39    allocate(mlayer_PEM(0:nsoilmx_PEM-1))
40    allocate(TI_PEM(ngrid,nsoilmx_PEM,nslope))
41    allocate(tsoil_PEM(ngrid,nsoilmx_PEM,nslope))
42    allocate(mthermdiff_PEM(ngrid,0:nsoilmx_PEM-1))
43    allocate(thermdiff_PEM(ngrid,nsoilmx_PEM-1))
44    allocate(coefq_PEM(0:nsoilmx_PEM-1))
45    allocate(coefd_PEM(ngrid,nsoilmx_PEM-1))
46    allocate(alph_PEM(ngrid,nsoilmx_PEM-1))
47    allocate(beta_PEM(ngrid,nsoilmx_PEM-1))
48    allocate(inertiedat_PEM(ngrid,nsoilmx_PEM))
49    allocate(water_reservoir(ngrid))
50  end subroutine ini_comsoil_h_PEM
51
52
53  subroutine end_comsoil_h_PEM
54
55  implicit none
56
57    if (allocated(layer_PEM)) deallocate(layer_PEM)
58    if (allocated(mlayer_PEM)) deallocate(mlayer_PEM)
59    if (allocated(TI_PEM)) deallocate(TI_PEM)
60    if (allocated(tsoil_PEM)) deallocate(tsoil_PEM)
61    if (allocated(mthermdiff_PEM)) deallocate(mthermdiff_PEM)
62    if (allocated(thermdiff_PEM)) deallocate(thermdiff_PEM)
63    if (allocated(coefq_PEM)) deallocate(coefq_PEM)
64    if (allocated(coefd_PEM)) deallocate(coefd_PEM)
65    if (allocated(alph_PEM)) deallocate(alph_PEM)
66    if (allocated(beta_PEM)) deallocate(beta_PEM)
67    if (allocated(inertiedat_PEM)) deallocate(inertiedat_PEM)
68    if (allocated(water_reservoir)) deallocate(water_reservoir)
69  end subroutine end_comsoil_h_PEM
70
71end module comsoil_h_PEM
Note: See TracBrowser for help on using the repository browser.