SURFEX v8.1
General documentation of Surfex
modd_snow_par.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! ######################
6  MODULE modd_snow_par
7 ! ######################
8 !
9 !!**** *MODD_SNOW_PAR* - declaration of parameters related
10 !! to the snow parameterization
11 !!
12 !! PURPOSE
13 !! -------
14 ! The purpose of this declarative module is to specify the
15 ! parameters related to the surface parameterization of snow.
16 !
17 !!
18 !!** IMPLICIT ARGUMENTS
19 !! ------------------
20 !! None
21 !!
22 !! REFERENCE
23 !! ---------
24 !!
25 !!
26 !! AUTHOR
27 !! ------
28 !! V. Masson *Meteo France*
29 !!
30 !! MODIFICATIONS
31 !! -------------
32 !! Original 01/2004
33 !! P. Samuelsson 10/2014 MEB complements
34 !-------------------------------------------------------------------------------
35 !
36 !* 0. DECLARATIONS
37 ! ------------
38 !
39 IMPLICIT NONE
40 !
41 !--------------------------------------------------------------------------------
42 ! Snow on the ground: Given in ini_surf_csts and/or in NAM_SURF_CSTS
43 !--------------------------------------------------------------------------------
44 !
45 ! Snow emissivity:
46 !
47 REAL, SAVE :: xemissn
48 !
49 ! Minimum and maximum values of the albedo of snow:
50 !
51 REAL, SAVE :: xansmin
52 REAL, SAVE :: xansmax
53 !
54 ! Minimum and maximum values of the albedo of permanet snow/ice:
55 !
56 REAL, SAVE :: xaglamin
57 REAL, SAVE :: xaglamax
58 !
59 ! Use recommended settings for snow albedo (FALSE = ISBA default)
60 !
61 LOGICAL,SAVE :: lmebrec
62 !
63 ! Fraction of maximum value of the albedo of snow that is reached for melting
64 ! snow
65 !
66 REAL, SAVE :: xansfracmel
67 !
68 ! Threeshold temperature above which the snow albedo starts to decrease
69 !
70 REAL, SAVE :: xtempans
71 !
72 ! Minimum value of the albedo of snow reached under canopy vegetation:
73 !
74 REAL, SAVE :: xansminmeb
75 !
76 ! Prescribed ice albedo in 3 spectral bands for glacier simulation with CROCUS scheme.
77 REAL, SAVE :: xalbice1,xalbice2,xalbice3
78 !
79 
80 ! Density threshold for ice detection in CROCUS scheme.
81 REAL, SAVE :: xrhothreshold_ice
82 
83 !for ageing effects
84 REAL, SAVE :: xvaging_noglacier, xvaging_glacier
85 
86 ! percentage of the total pore volume to compute the max liquid water holding capacity
87 REAL, SAVE :: xpercentagepore
88 
89 ! Height (m) of aged snow in glacier case (allows Pn=1)
90 !
91 REAL, SAVE :: xhgla
92 !
93 ! Coefficient for calculation of snow fraction over vegetation
94 !
95 REAL, SAVE :: xwsnv
96 !
97 ! Roughness length of pure snow surface (m)
98 !
99 REAL, SAVE :: xz0sn
100 !
101 ! Roughness length for heat of pure snow surface (m)
102 !
103 REAL, SAVE :: xz0hsn
104 !
105 ! Roughness length ratio between ice and snow
106 REAL, SAVE :: xz0icez0snow
107 !
108 ! Snow Melt timescale with D95 (s): needed to prevent time step
109 ! dependence of melt when snow fraction < unity.
110 !
111 REAL, SAVE :: xtau_smelt
112 !
113 !--------------------------------------------------------------------------------
114 ! Snow on the ground: PARAMETER
115 !--------------------------------------------------------------------------------
116 !
117 ! Critical value of the equivalent water content
118 ! of the snow reservoir for snow fractional coverage and albedo computations
119 !
120 REAL, PARAMETER :: xwcrn = 10.0 ! (kg m-2) Veg (default value)
121 REAL, PARAMETER :: xwcrn_expl = 1.0 ! (kg m-2) Veg explicit
122 REAL, PARAMETER :: xwcrn_roof = 1.0 ! (kg m-2) Roofs
123 REAL, PARAMETER :: xwcrn_road = 1.0 ! (kg m-2) Roads
124 REAL, PARAMETER :: xwcrn_veg = 1.0 ! (kg m-2) Urban veg
125 !
126 ! Critical value of the total snow depth for ground snow fractional coverage
127 !
128 REAL, PARAMETER :: xdcrn_expl = 0.01 ! (m) Veg explicit
129 !
130 ! Critical value of snow emissivity
131 !
132 REAL, PARAMETER :: xemcrin = 0.98
133 !
134 ! Minimum and maximum values of the albedo of snow:
135 !
136 REAL, PARAMETER :: xansmin_roof = 0.30 ! (-) Roofs
137 REAL, PARAMETER :: xansmin_road = 0.15 ! (-) Roads
138 !
139 REAL, PARAMETER :: xansmax_roof = 0.85 ! (-) Roofs
140 REAL, PARAMETER :: xansmax_road = 0.85 ! (-) Roads
141 !
142 ! Snow aging coefficients (albedo and Force-Restore density):
143 !
144 REAL, PARAMETER :: xans_todry = 0.008 ! (-) Veg (default value)
145 REAL, PARAMETER :: xans_todry_roof = 0.008 ! (-) Roofs
146 REAL, PARAMETER :: xans_todry_road = 0.008 ! (-) Roads
147 REAL, PARAMETER :: xans_todry_meb = 0.016 ! (-) Surface under canopy vegetation
148 !
149 REAL, PARAMETER :: xans_t = 0.240 ! (-) Veg (default value)
150 REAL, PARAMETER :: xans_t_roof = 0.174 ! (-) Roofs
151 REAL, PARAMETER :: xans_t_road = 0.174 ! (-) Roads (alley simul)
152 REAL, PARAMETER :: xans_t_meb = 0.480 ! (-) Surface under canopy vegetation
153 !
154 ! Minimum and maximum values of the density of snow
155 ! for Force-Restore snow option
156 !
157 REAL, PARAMETER :: xrhosmin = 100. ! (kg m-3) Veg (Default value)
158 REAL, PARAMETER :: xrhosmin_roof = 100. ! (kg m-3) Roofs
159 REAL, PARAMETER :: xrhosmin_road = 100. ! (kg m-3) Roads
160 !
161 REAL, PARAMETER :: xrhosmax = 300. ! (kg m-3) Veg (Default value)
162 REAL, PARAMETER :: xrhosmax_roof = 300. ! (kg m-3) Roofs
163 REAL, PARAMETER :: xrhosmax_road = 350. ! (kg m-3) Roads
164 !
165 ! Minimum and maximum values of the density of snow
166 ! for ISBA-ES snow option
167 !
168 REAL, PARAMETER :: xrhosmin_es = 50. ! (kg m-3)
169 REAL, PARAMETER :: xrhosmax_es = 750. ! (kg m-3)
170 !
171 ! ISBA-ES Critical snow depth at which snow grid thicknesses constant
172 !
173 REAL, PARAMETER :: xsnowcritd = 0.03 ! (m)
174 !
175 ! ISBA-ES Minimum total snow depth for thermal calculations.
176 ! Used to prevent numerical problems as snow becomes vanishingly thin.
177 !
178 REAL, PARAMETER :: xsnowdmin = 0.000001 ! (m)
179 !
180 ! Maximum Richardson number limit for very stable conditions using the ISBA-ES 'RIL' option
181 !
182 REAL, PARAMETER :: x_ri_max = 0.20
183 !
184 ! ISBA-ES Maximum snow liquid water holding capacity (fraction by mass) parameters:
185 !
186 REAL, PARAMETER :: xwsnowholdmax2 = 0.10 ! (-)
187 REAL, PARAMETER :: xwsnowholdmax1 = 0.03 ! (-)
188 REAL, PARAMETER :: xsnowrhohold = 200.0 ! (kg/m3)
189 !
190 ! ISBA-ES arameters for grain size computation :
191 !
192 REAL, PARAMETER :: xsnow_agrain = 1.6e-4 ! (m)
193 REAL, PARAMETER :: xsnow_bgrain = 1.1e-13 ! (m13/kg4)
194 REAL, PARAMETER :: xsnow_cgrain = 0.5e-4 ! (m)
195 REAL, PARAMETER :: xdsgrain_max = 2.796e-3 ! m
196 !
197 !--------------------------------------------------------------------------------
198 ! Calibration coefficients for CROCUS and ES albedo computation
199 !--------------------------------------------------------------------------------
200 !
201 REAL, PARAMETER :: xd1 = 1., xd2 = 3., xd3 = 4., xx = 99., &
202  xvalb2 = .96, xvalb3 = 1.58, xvalb4 = .92, xvalb5 = .90, &
203  xvalb6 = 15.4, xvalb7 = 346.3, xvalb8 = 32.31, xvalb9 = .88, &
204  xvalb10 = .200, xvalb11 = .6, xvdiop1 = 2.3e-3, xvrpre1 = .5, &
205  xvrpre2=1.5
206 !
207 ! for ageing effects:
208 REAL, PARAMETER :: xvpres1 = 87000.
209 !
210 ! spectral bands
211 !
212 INTEGER, PARAMETER :: nspec_band_snow = 3
213 !
214 ! for spectral distribution and thickness effects
215 REAL, PARAMETER :: xvspec1 = .71, xvspec2 = .21, xvspec3 = .08
216 !
217 ! for thickness effects
218 REAL, PARAMETER :: xvw1 = .80, xvw2 = .20 , xvd1 = .02, xvd2 = .01
219 !
220 !--------------------------------------------------------------------------------
221 ! calibration coefficients for exctinction computation
222 REAL, PARAMETER :: xvbeta1 = 1.92e-3, xvbeta2 = 40., xvbeta3 = 1.098e-2, &
223  xvbeta4 = 100., xvbeta5 = 2000.
224 !
225 ! ISBA-ES minimum cosinus of zenithal angle
226 REAL, PARAMETER :: xmincoszen = 0.01
227 !
228 !--------------------------------------------------------------------------------
229 ! ISBA-ES Thermal conductivity coefficients from Anderson (1976):
230 ! see Boone, Meteo-France/CNRM Note de Centre No. 70 (2002)
231 !
232 REAL, PARAMETER :: xsnowthrmcond1 = 0.02 ! [W/(m K)]
233 REAL, PARAMETER :: xsnowthrmcond2 = 2.5e-6 ! [W m5/(kg2 K)]
234 !
235 ! ISBA-ES Thermal conductivity: Implicit vapor diffn effects
236 ! (sig only for new snow OR high altitudes)
237 ! from Sun et al. (1999): based on data from Jordan (1991)
238 ! see Boone, Meteo-France/CNRM Note de Centre No. 70 (2002)
239 !
240 REAL, PARAMETER :: xsnowthrmcond_avap = -0.06023 ! [W/(m K)]
241 REAL, PARAMETER :: xsnowthrmcond_bvap = -2.5425 ! (W/m)
242 REAL, PARAMETER :: xsnowthrmcond_cvap = -289.99 ! (K)
243 !
244 ! Crocus thermal conducitivity coefficient from Yen (1981)
245 REAL, PARAMETER :: xvrkz6 = 1.88
246 !
247 !--------------------------------------------------------------------------------
248 ! ISBA-ES CROCUS (Pahaut 1976): snowfall density coefficients:
249 !
250 REAL, PARAMETER :: xsnowfall_a_sn = 109.0 ! kg/m3
251 REAL, PARAMETER :: xsnowfall_b_sn = 6.0 ! kg/(m3 K)
252 REAL, PARAMETER :: xsnowfall_c_sn = 26.0 ! kg/(m7/2 s1/2)
253 !
254 ! Coefficients for the optimal vertical grid calculation
255 REAL, PARAMETER :: xdz1 = 0.01
256 REAL, PARAMETER :: xdz2 = 0.0125
257 REAL, PARAMETER :: xdz3 = 0.015
258 REAL, PARAMETER :: xdz3_bis = 0.03
259 REAL, PARAMETER :: xdz4 = 0.04
260 REAL, PARAMETER :: xdz5 = 0.05
261 REAL, PARAMETER :: xdz_base = 0.02
262 REAL, PARAMETER :: xdz_internal = 0.07
263 REAL, PARAMETER :: xscale_cm = 100.
264 REAL,DIMENSION(5), PARAMETER :: xdzmax_internal = (/0.5,1.,2.,4.,10./)
265 REAL, PARAMETER :: xdzmin_top_extrem = 0.0001
266 !
267 ! Below this threshold of snowfall, new snowfall are aggregated with surface layer to avoid numerical problems
268 ! (0.03 mm/h)
269 REAL,PARAMETER :: xsnowfall_threshold = 0.0333/3600.
270 
271 ! The ratio between a new surface layer thickness and the second layer surface thickness is limited to 1/10
272 REAL,PARAMETER :: xratio_newlayer = 0.1
273 
274 ! Coefficients for cases with very thick snowpacks
275 REAL, PARAMETER :: xdepth_threshold1 = 3.
276 REAL, PARAMETER :: xdepth_threshold2 = 20.
277 REAL, PARAMETER :: xdepth_surface = 3.
278 !
279 ! Coefficients for computing the difference in 2 snow layer characteristics
280 REAL, PARAMETER :: xdiff_1 = 20.
281 REAL, PARAMETER :: xdiff_max = 200.
282 REAL, PARAMETER :: xscale_diff = 25.
283 !
284 ! Coeefficients for snow layer splitting
285 REAL, PARAMETER :: xdzmin_top = 0.01
286 REAL, PARAMETER :: xdzmin_top_bis = 0.005
287 REAL, PARAMETER :: xdzmin_bot = 0.02
288 REAL, PARAMETER :: xsplit_coef = 8.
289 !
290 ! Coeefficients for snow layer agregation
291 REAL, PARAMETER :: xagreg_coef_1 = 5.
292 REAL, PARAMETER :: xagreg_coef_2 = 4.5
293 !
294 !--------------------------------------------------------------------------------
295 !
296 ! Calibration coefficients
297 REAL, PARAMETER :: xvtime = 48*3600. ! characteristic time for
298 !compaction and metamorphism by wind drift
299 !
300 REAL, PARAMETER :: xvromax = 350. ! maximum density for
301 ! drift compaction UNIT : kg m-3
302 REAL, PARAMETER :: xvromin = 50. ! minimum density for
303 ! mobility computation UNIT : kg m-3
304 REAL, PARAMETER :: xvmob1 = 0.295 ! coefficient for computing
305 ! the mobility index
306 REAL, PARAMETER :: xvmob2 = 0.833 ! coefficient for computing
307 ! the mobility index
308 REAL, PARAMETER :: xvmob3 = 0.583 ! coefficient for computing
309 ! the mobility index
310 REAL, PARAMETER :: xvmob4 = -0.0583 ! coefficient for computing
311 ! the mobility index
312 REAL, PARAMETER :: xvdrift1 = 2.868 ! coefficient for computing
313 ! the drift index
314 REAL, PARAMETER :: xvdrift2 = 0.085 ! coefficient for computing
315 ! the drift index
316 REAL, PARAMETER :: xvdrift3 = 3.25 ! coefficient for computing
317 ! the drift index
318 REAL, PARAMETER :: xvsizemin = 3.e-4 ! minimum size decrease
319 ! by drift UNIT = m
320 !
321 ! modif_EB pour sublim
322 ! a pour but de tenir compte du fait que le vent moyen est > rafales
323 ! on en tient compte egalement pour diminuer la duree de l'effet
324 REAL, PARAMETER :: xcoef_ff = 1.25 ! coefficient for gust diagnosis from average wind
325 REAL, PARAMETER :: xcoef_effect = 1.0 ! coefficient for impact on density du drift
326 REAL, PARAMETER :: xqs_ref = 2.e-5 ! valeur de reference de ZQS pour effet neige
327 !
328 !--------------------------------------------------------------------------------
329 !
330 ! ISBA-ES snow grid parameters
331 !
332 REAL, PARAMETER, DIMENSION(3) :: xsgcoef1 = (/0.25, 0.50, 0.25/)
333 REAL, PARAMETER, DIMENSION(2) :: xsgcoef2 = (/0.05, 0.34/)
334 REAL, PARAMETER, DIMENSION(10) :: xsgcoef3 = (/0.025, 0.033, 0.043, &
335  0.055, 0.071, 0.091, 0.117, 0.150, &
336  0.193, 0.247/)
337 !
338 ! Minimum total snow depth at which surface layer thickness is constant:
339 !
340 REAL, PARAMETER :: xsnowtrans = 0.20 ! (m)
341 REAL, PARAMETER :: xsnowtrans1 = 0.40 ! (m)
342 REAL, PARAMETER :: xsnowtrans2 = 0.6061 ! (m)
343 REAL, PARAMETER :: xsnowtrans3 = 0.7143 ! (m)
344 REAL, PARAMETER :: xsnowtrans4 = 0.9259 ! (m)
345 REAL, PARAMETER :: xsnowtrans5 = 1.4493 ! (m)
346 !
347 !------------------------------------------------------------------------------
348 !
349 !Parameters for MEPRA grain type
350 INTEGER, PARAMETER :: ifr = 0
351 INTEGER, PARAMETER :: ifr_lb = 1
352 INTEGER, PARAMETER :: ilb = 2
353 INTEGER, PARAMETER :: ilb_fin = 3
354 INTEGER, PARAMETER :: ilb_ang = 4
355 INTEGER, PARAMETER :: iroul = 5
356 INTEGER, PARAMETER :: ifin = 6
357 INTEGER, PARAMETER :: ifin_ar = 7
358 INTEGER, PARAMETER :: ifin_ang = 8
359 INTEGER, PARAMETER :: ipl = 9
360 INTEGER, PARAMETER :: ipl_gob = 10
361 INTEGER, PARAMETER :: igob = 11
362 INTEGER, PARAMETER :: igel = 12
363 INTEGER, PARAMETER :: igob_fon = 13
364 INTEGER, PARAMETER :: iron_ang = 14
365 !
366 !------------------------------------------------------------------------------
367 !
368 ! array which describes dendritic grain as a function of dendricity and sphericity
369 ! these 2 variables are discretised in an 10*10 array ( between 0 and 1 by 0.1 step)
370 INTEGER,DIMENSION(100),PARAMETER :: icris_dend1d=(/&
371  ilb_ang,ilb_ang,ilb_ang,ilb,ilb,ilb,ifr_lb,ifr_lb,ifr,ifr,&
372  ilb_ang,ilb_ang,ilb_ang,ilb,ilb,ilb,ifr_lb,ifr_lb,ifr,ifr,&
373  ilb_ang,ilb_ang,ilb_ang,ilb,ilb,ilb,ifr_lb,ifr_lb,ifr,ifr,&
374  ilb_ang,ilb_ang,ilb_ang,ilb,ilb,ilb,ifr_lb,ifr_lb,ifr,ifr,&
375  ilb_ang,ilb_ang,ilb_ang,ilb,ilb,ilb,ifr_lb,ifr_lb,ifr,ifr,&
376  ilb_fin,ilb_fin,ilb_fin,ilb,ilb,ilb,ifr_lb,ifr_lb,ifr,ifr,&
377  ilb_fin,ilb_fin,ilb_fin,ilb,ilb,ilb,ifr_lb,ifr_lb,ifr,ifr,&
378  ilb_fin,ilb_fin,ilb_fin,ilb,ilb,ilb,ifr_lb,ifr_lb,ifr,ifr,&
379  ilb_fin,ilb_fin,ilb_fin,ilb,ilb,ilb,ifr_lb,ifr_lb,ifr,ifr,&
380  ilb_fin,ilb_fin,ilb_fin,ilb,ilb,ilb,ifr_lb,ifr_lb,ifr,ifr/)
381 
382 INTEGER,DIMENSION(180),PARAMETER :: icris_nondend1d=(/&
383  ipl,ipl,ifin_ang,ifin_ang,ifin_ang,ifin_ang,ifin_ang,ifin_ang,ifin,ifin,&
384  ipl,ipl,ifin_ang,ifin_ang,ifin_ang,ifin_ang,ifin_ang,ifin_ang,ifin,ifin,&
385  ipl,ipl,ifin_ang,ifin_ang,ifin_ang,ifin_ang,ifin_ang,ifin_ang,ifin,ifin,&
386  ipl,ipl,ifin_ang,ifin_ang,ifin_ang,ifin_ang,ifin_ang,ifin_ang,ifin,ifin,&
387  ipl_gob,ipl_gob,ipl_gob,ipl_gob,ipl_gob,igob_fon,igob_fon,igob_fon,igob_fon,igob_fon,&
388  igob,igob,igob,igob,igob,igob_fon,igob_fon,igob_fon,igob_fon,igob_fon,&
389  iron_ang,iron_ang,iron_ang,iron_ang,iron_ang,ifin_ar,ifin_ar,ifin_ar,ifin_ar,ifin_ar,&
390  iron_ang,iron_ang,iron_ang,iron_ang,iron_ang,igel,igel,igel,igel,igel,&
391  iron_ang,iron_ang,iron_ang,iron_ang,iron_ang,igel,igel,igel,igel,igel,&
392  iron_ang,iron_ang,iron_ang,iron_ang,iron_ang,igob_fon,igob_fon,igob_fon,igob_fon,igob_fon,&
393  iron_ang,iron_ang,iron_ang,iron_ang,iron_ang,igob_fon,igob_fon,igob_fon,igob_fon,igob_fon,&
394  iron_ang,iron_ang,iron_ang,iron_ang,iron_ang,igob_fon,igob_fon,igob_fon,igob_fon,igob_fon,&
395  iron_ang,iron_ang,iron_ang,iron_ang,iron_ang,ifin_ar,ifin_ar,ifin_ar,ifin_ar,ifin_ar,&
396  iron_ang,iron_ang,iron_ang,iron_ang,iron_ang,igel,igel,igel,igel,igel,&
397  iron_ang,iron_ang,iron_ang,iron_ang,iron_ang,igel,igel,igel,igel,igel,&
398  iron_ang,iron_ang,iron_ang,iron_ang,iron_ang,igob_fon,igob_fon,igob_fon,igob_fon,igob_fon,&
399  iron_ang,iron_ang,iron_ang,iron_ang,iron_ang,igob_fon,igob_fon,igob_fon,igob_fon,igob_fon,&
400  iron_ang,iron_ang,iron_ang,iron_ang,iron_ang,igob_fon,igob_fon,igob_fon,igob_fon,igob_fon/)
401 !
402 END MODULE modd_snow_par
403 
404 
405 
406 
407 
408 
409 
410 
411 
412 
413 
414