source: trunk/LMDZ.MARS/libf/phymars/surfdat_h.F90 @ 2156

Last change on this file since 2156 was 2079, checked in by mvals, 6 years ago

Mars GCM:

  • Update of rocketduststorm_mod.F90 :

We want to separate both parametrizations related to the formation of the detached dust layers. Therefore, rocketduststorm_mod.F90 now only comprises the rocket dust storm scheme, whereas it contained
also before the calculation of the vertical velocity induced by the presence of the sub-grid scale topography. This latter part is under development and will be integrated as a fully independant
parametrization: the aim is to simulate the entrainment of dust by slope winds, from the boundary layer up to the top of the sub-grid scale topography.

  • Addition of initial surface parameters "summit" and "base" to prepare the previously described slope wind parametrization

MV

File size: 3.5 KB
Line 
1module surfdat_h
2
3  ! arrays are allocated in conf_phys
4  real,save,allocatable :: albedodat(:) ! albedo of bare ground
5  real,save,allocatable :: phisfi(:) ! geopotential at ground level
6  real,save :: albedice(2) ! default albedo for ice (1: North H. 2: South H.)
7  real,save :: emisice(2) ! ice emissivity; 1:Northern hemisphere 2:Southern hemisphere
8  real,save :: emissiv ! emissivity of bare ground
9  logical,save :: TESicealbedo ! use TES ice cap albedoes (if set to .true.)
10  logical,save,allocatable :: watercaptag(:) ! flag for water ice surface
11  real, save, allocatable :: dryness(:)
12     
13  logical,save :: temptag !temp tag for water caps
14     
15  real,save :: albedo_h2o_ice ! water ice albedo
16  real,save :: inert_h2o_ice ! water ice thermal inertia
17  real,save :: frost_albedo_threshold ! water frost thickness on the ground (kg.m^-2, ie mm)
18  real,save :: TESice_Ncoef ! coefficient for TES ice albedo in Northern hemisphere
19  real,save :: TESice_Scoef ! coefficient for TES ice albedo in Southern hemisphere
20  real,save :: iceradius(2) , dtemisice(2)
21  real,save,allocatable :: zmea(:),zstd(:),zsig(:),zgam(:),zthe(:)
22  real,save,allocatable :: hmons(:),summit(:),base(:)
23  real,save,allocatable :: z0(:) ! surface roughness length (m)
24  real,save :: z0_default ! default (constant over planet) surface roughness (m)
25
26  !! variables
27  REAL,SAVE,ALLOCATABLE :: tsurf(:)   ! Surface temperature (K)
28  REAL,SAVE,ALLOCATABLE :: co2ice(:)  ! co2 ice surface layer (kg.m-2) 
29  REAL,SAVE,ALLOCATABLE :: emis(:)    ! Thermal IR surface emissivity
30  REAL,SAVE,ALLOCATABLE :: capcal(:) ! surface heat capacity (J m-2 K-1)
31  REAL,SAVE,ALLOCATABLE :: fluxgrd(:) ! surface conduction flux (W.m-2)
32  REAL,ALLOCATABLE,SAVE :: qsurf(:,:) ! tracer on surface (e.g. kg.m-2)
33
34contains
35
36  subroutine ini_surfdat_h(ngrid,nq)
37 
38  implicit none
39  integer,intent(in) :: ngrid ! number of atmospheric columns
40  integer,intent(in) :: nq ! number of tracers 
41
42    allocate(albedodat(ngrid))
43    allocate(phisfi(ngrid))
44    allocate(watercaptag(ngrid))
45    allocate(dryness(ngrid))
46    allocate(zmea(ngrid))
47    allocate(zstd(ngrid))
48    allocate(zsig(ngrid))
49    allocate(zgam(ngrid))
50    allocate(zthe(ngrid))
51    allocate(z0(ngrid))
52    allocate(qsurf(ngrid,nq))
53    allocate(tsurf(ngrid))
54    allocate(co2ice(ngrid))
55    allocate(emis(ngrid))
56    allocate(capcal(ngrid))
57    allocate(fluxgrd(ngrid))
58    allocate(hmons(ngrid))
59    allocate(summit(ngrid))
60    allocate(base(ngrid))
61   
62  end subroutine ini_surfdat_h
63
64
65  subroutine end_surfdat_h
66
67  implicit none
68
69    if (allocated(albedodat))   deallocate(albedodat)
70    if (allocated(phisfi))      deallocate(phisfi)
71    if (allocated(watercaptag)) deallocate(watercaptag)
72    if (allocated(dryness))     deallocate(dryness)
73    if (allocated(zmea))        deallocate(zmea)
74    if (allocated(zstd))        deallocate(zstd)
75    if (allocated(zsig))        deallocate(zsig)
76    if (allocated(zgam))        deallocate(zgam)
77    if (allocated(zthe))        deallocate(zthe)
78    if (allocated(z0))          deallocate(z0)
79    if (allocated(qsurf))       deallocate(qsurf)
80    if (allocated(tsurf))       deallocate(tsurf)
81    if (allocated(co2ice))      deallocate(co2ice)
82    if (allocated(emis))        deallocate(emis)
83    if (allocated(capcal))      deallocate(capcal)
84    if (allocated(fluxgrd))     deallocate(fluxgrd)
85    if (allocated(hmons))       deallocate(hmons)
86    if (allocated(summit))      deallocate(summit)
87    if (allocated(base))        deallocate(base)
88   
89  end subroutine end_surfdat_h
90
91end module surfdat_h
Note: See TracBrowser for help on using the repository browser.