source: LMDZ5/branches/IPSLCM6.0.11pre/libf/phymar/Mod_SISVAT_kkl.f90 @ 5443

Last change on this file since 5443 was 2089, checked in by Laurent Fairhead, 10 years ago

Inclusion de la physique de MAR


Integration of MAR physics

File size: 14.6 KB
Line 
1      module Mod_SISVAT_kkl
2
3!--------------------------------------------------------------------------+
4!                                                     Wed 26-Jun-2013  MAR |
5!     module Mod_SISVAT_kkl contains the main (prognostic) variables of    |
6!                Soil/Ice Snow Vegetation Atmosphere Transfer Scheme       |
7!                                                                          |
8!     version 3.p.4.1 created by H. Gallee,           Tue  4-Feb-2013      |
9!           Last Modification by H. Gallee,           Wed 26-Jun-2013      |
10!                                                                          |
11!--------------------------------------------------------------------------+
12
13
14      use Mod_Real
15
16
17      IMPLICIT NONE
18
19
20! SISVAT INPUT        Variables
21! -----------------------------
22
23      integer, SAVE         ,ALLOCATABLE ,dimension(:,:)    ::  LSmask  ! Land-Sea   Mask
24      integer, SAVE         ,ALLOCATABLE ,dimension(:,:)    ::  isotSV  ! Soil       Type
25      integer, SAVE         ,ALLOCATABLE ,dimension(:,:)    ::  iWaFSV  ! Soil       Drainage:(1,0)=(y,n)
26      integer, SAVE         ,ALLOCATABLE ,dimension(:,:)    ::  ivgtSV  ! Vegetation Type
27
28      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  FracSV  ! Grid Cell Fraction  (Mosaic)                       [-]
29      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  coszSV  ! Cosine of Sun zenithal Angle
30      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  sol_SV  ! Downward  Solar    Radiation
31      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  IRd_SV  ! Downward  Longwave Radiation
32
33      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  drr_SV  ! Rain  Intensity                              [kg/m2/s]
34      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  dsn_SV  ! Snow  Intensity                              [kg/m2/s]
35      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  dsnbSV  ! Idem, fraction, from Drift                         [-]
36      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  esnbSV  ! Idem, fraction, from Drift                         [-]
37      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  dbs_SV  ! Drift Amount                                   [kg/m2]
38      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  BrosSV  ! Buffer Snow Layer Density
39      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  BG1sSV  ! Buffer Snow Layer Dendricity / Sphericity          [-]
40      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  BG2sSV  ! Buffer Snow Layer Sphericity / Size                [-] [0.0001 m]
41      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  dz0_SV  ! dz0(Sastrugi dh)                                   [m]
42
43      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  cld_SV  ! Cloudiness (seen from SBL)
44      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  za__SV  ! SBL Height
45      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  Ua__SV  !(SBL Top)  Wind Velocity, x-Direction, t          [m/s]
46      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  Ua0_SV  !(SBL Top)  Wind Velocity, x-Direction, t -dt      [m/s]
47      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  Va__SV  !(SBL Top)  Wind Velocity, y-Direction, t          [m/s]
48      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  Va0_SV  !(SBL Top)  Wind Velocity, y-Direction, t -dt      [m/s]
49      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  VV__SV  !(SBL Top)  Wind Velocity
50      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  VV10SV  ! 10-m      Wind Velocity
51      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  VVs_SV  !(Sastr,V)  Relevance
52      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  RRsxSV  !(Sastr,V)  Counter
53      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  DDsxSV  !(Sastr,V)  Angle
54      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  DDs_SV  !(Sastr,V)  Angle
55      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  TaT_SV  ! SBL Top   Temperature
56      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  Ts__SV  ! Surface   Air Temperature     (Mosaic)             [K]
57      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  pkPaSV  ! Surface   Pressure                               [kPa]
58      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:,:)  ::  WindSV  ! Wind      Speed                                  [m/s]
59      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:,:)  ::  zza_SV  ! Atmospheric  Levels HEIGHTS                        [m]
60      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:,:)  ::  roa_SV  ! Air       Volumic   Mass                        [T/m3]
61      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:,:)  ::  Kz__SV  ! Turbulent Diffusion Coefficients                [m2/s]
62      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:,:)  ::  pktaSV  ! Temperature / Exner Potential (Current Value in (PHY_)SISVAT)
63      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:,:)  ::  pkt0SV  ! Temperature / Exner Potential (INPUT         of (PHY_)SISVAT)
64      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  ExnrSV  ! Surface       Exner Potential
65      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:,:)  ::  qv__SV  ! Specific  Humidity                             [kg/kg]
66      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  rhT_SV  ! SBL Top   Air  Density
67      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  QaT_SV  ! SBL Top   Specific Humidity
68      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  dQa_SV  ! SBL Flux  Limitation of Qa
69      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  SHumSV  ! Surface   Specific Humidity
70      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  dSdTSV  ! Sensible Heat Flux T Derivat.
71      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  dLdTSV  ! Latent   Heat Flux T Derivat.
72      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  qsnoSV  ! SBL Mean  Snow       Content
73
74      real(kind=real8), SAVE                              ::  zSBLSV  ! SBL Height (Initial Value)
75
76      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  z0__SV  ! Roughness Length Momentum    (Mosaic)              [m]
77      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  LAI0SV  ! Nominal Leaf Area Index
78      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  glf0SV  ! Green   Leaf Fraction
79
80      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  alb0SV  ! Soil    Albedo
81      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  slopSV  ! Snow/Ice/Soil-Water Surf. Slope                    [-]
82      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  slorSV  ! Snow/Ice/Soil-Water Surf. Slope               [radian]
83      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  ROF_SV  !  Cumulative Run-Off          (Mosaic)        [mm w.e.]
84
85      character(len=18)                             ::  daHost  ! Date Host Model
86
87
88! SISVAT INPUT/OUTPUT Variables
89! -----------------------------
90
91      integer, SAVE         ,ALLOCATABLE ,dimension(:,:)    ::  isnoSV  ! Nb of Ice/Snow Layers
92      integer, SAVE         ,ALLOCATABLE ,dimension(:,:)    ::  ispiSV  ! Uppermost superimposed ice
93      integer, SAVE         ,ALLOCATABLE ,dimension(:,:)    ::  iiceSV  ! Nb of Ice      Layers
94      integer, SAVE         ,ALLOCATABLE ,dimension(:,:,:)  ::  istoSV  ! Snow Layer     History
95
96      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  albcSV  ! Coupl. Surface Albedo (Surface-Canopy / Ocean)
97      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  alb_SV  ! Surface-Canopy Albedo
98      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  emi_SV  ! Surface-Canopy Emissivity
99      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  IRs_SV  ! Soil           IR Flux
100      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  LMO_SV  ! Monin-Obukhov  Scale
101      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  us__SV  ! Friction       Velocity
102      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  uts_SV  ! Temperature  Turbulent Scale
103      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  cutsSV  ! Temperature  Turbulent Scale C.
104      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  uqs_SV  ! Spec.Humid.  Turbulent Scale
105      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  ussbSV  ! Blowing Snow Erosion   Flux  (Buffer)
106      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  uss_SV  ! Blowing Snow Turbulent Scale
107      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  ussxSV  ! Blowing Snow Turbulent Scale (modified)
108      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  usthSV  ! Blowing Snow Erosion Thresh.
109! #BD real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  uds_SV  ! Blowing Dust Turbulent Scale               [kg/kg m/s]
110      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  rCDmSV  ! Square  Root Contribut. Drag_m
111      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  rCDhSV  ! Square  Root Contribut. Drag_h
112      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  Z0m_SV  ! Momentum     Roughness Length
113      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  Z0mmSV  !  z0(Momentum,    Time Mean)                        [m]
114      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  Z0mnSV  !  z0(Momentum,    instanta.)                        [m]
115      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  Z0roSV  ! Subgrid Topo Roughness Length
116      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  Z0SaSV  !  z0(Sastrugi  h)                                   [m]
117      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  Z0e_SV  !  z0(Snow eroded)                                   [m]
118      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  Z0emSV  !  z0(Snow eroded, Time Mean)                        [m]
119      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  Z0enSV  !  z0(Snow eroded, instanta.)                        [m]
120      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  Z0h_SV  ! Heat         Roughness Length
121      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  Z0hmSV  !  z0(Heat,        Time Mean)                        [m]
122      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  Z0hnSV  !  z0(Heat,        instanta.)                        [m]
123
124      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  snCaSV  ! Canopy  Snow   Thickness
125      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  rrCaSV  ! Canopy  Water  Content
126      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  psivSV  ! Leaf    Water  Potential
127      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  TvegSV  ! Vegetation     Temperature
128
129      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:,:)  ::  TsisSV  ! Snow/Ice/Soil-Water Temperature
130      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:,:)  ::  ro__SV  ! Snow/Ice/Soil-Water VolumicMass
131      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:,:)  ::  eta_SV  ! Snow/Ice/Soil     Water Content
132      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:,:)  ::  G1snSV  ! Snow Dendricity/Sphericity
133      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:,:)  ::  G2snSV  ! Snow Sphericity/Size
134      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:,:)  ::  dzsnSV  ! Snow Layer  Thickness
135      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:,:)  ::  agsnSV  ! Snow Age
136      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  BufsSV  ! Snow Buffer Layer
137      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  rusnSV  ! Surficial   Water
138      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  SWf_SV  ! Normalized  Decay
139      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  SWS_SV  ! Surficial Water Status
140      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  HFraSV  ! Frazil      Thickness
141
142      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  zWE_SV  ! Current   Snow Thickness                        [mmWE]
143      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  zWEcSV  ! Compacted Snow Thickness                        [mmWE]
144      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  dwemSV  ! Only Melting over dt__SV                        [mmWE]
145      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  dwerSV  ! Refreezing   over dt__SV                        [mmWE]
146      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  dwesSV  ! Sublimation  over dt__SV                        [mmWE]
147      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  wem0SV  ! Only Melting      Budget                        [mmWE]
148      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  wem_SV  ! Only Melting      Budget                        [mmWE]
149      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  wer0SV  ! Refreezing        Budget                        [mmWE]
150      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  wer_SV  ! Refreezing        Budget                        [mmWE]
151      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  wes0SV  ! Sublimation       Budget                        [mmWE]
152      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  wes_SV  ! Sublimation       Budget                        [mmWE]
153      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  wee_SV  ! EvapotranspirationBudget                        [mmWE]
154
155
156! SISVAT OUTPUT       Variables
157! -----------------------------
158
159      integer, SAVE         ,ALLOCATABLE ,dimension(:)      ::  no__SV  ! OUTPUT file Unit Number
160      integer, SAVE         ,ALLOCATABLE ,dimension(:)      ::  IOi_SV  ! OUTPUT point   i Coordinate (independant txt file)
161      integer, SAVE         ,ALLOCATABLE ,dimension(:)      ::  IOj_SV  ! OUTPUT point   j Coordinate (independant txt file)
162      integer, SAVE         ,ALLOCATABLE ,dimension(:)      ::  i___SV  ! OUTPUT point   i Coordinate
163      integer, SAVE         ,ALLOCATABLE ,dimension(:)      ::  j___SV  ! OUTPUT point   j Coordinate
164      integer, SAVE         ,ALLOCATABLE ,dimension(:)      ::  n___SV  ! OUTPUT point   n Coordinate
165      integer, SAVE         ,ALLOCATABLE ,dimension(:,:)    ::  lwriSV  ! OUTPUT point vec Index
166
167      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  IRu_SV  ! UPward    IR Flux (effective)
168      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  hSalSV  ! Saltating Layer Height
169      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  qSalSV  ! Saltating Snow  Concentration
170      real(kind=real8), SAVE,ALLOCATABLE ,dimension(:,:)    ::  RnofSV  ! RunOFF    Intensity
171
172      end module Mod_SISVAT_kkl
Note: See TracBrowser for help on using the repository browser.