source: trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_les.F @ 329

Last change on this file since 329 was 290, checked in by acolaitis, 14 years ago

--- AC 07/09/2011 ---

This is a major update for thermals and richardson layer parametrization. This update stabilizes thermals (further
studies might show that we can reduce the value of nsplit in gcm. To be tested.), and prevent downdrafts from descending into
the surface layer, which was acting as a cold feedback on the thermals. The Richardson surface layer now features
different gustiness coefficients for Richardson, heat and momentum so that u* and t* are correctly represented.

Upcoming updates will change surflayer_interpol.F90 to implement those changes in the interpolation scheme as well.

*
IMPORTANT : several parts of the vdifc code might want to use these new definitions for gustiness, u* and t*. exemple : dust devil routines
that recompute u* ? lifting routines ? TODO !

M 289 libf/phymars/thermcell_main_mars.F90
-----------------> Added iterations to the velocity / buoyancy / entrainment / detrainment

computation to ensure correct convergence. Iteration number is for now set to
4, which is probably too much. This will be changed once several cases are tested.
The minimum is probably 2 iterations.

M 289 libf/phymars/vdifc.F
-----------------> Subgrid gustiness parametrization now uses different gustiness beta coefficients

for heat and momentum. Comparisons with LES at Exomars landing site, matching u*
and teta* suggests values of beta=0.7 for momentum and beta=1.2 for heat, where
the formula for large scale horizontal winds in the first layer is :

U02 = pu2 + pv2 + (beta*wmax_th)2

M 289 libf/phymars/vdif_cd.F
-----------------> LES data suggests that Richardson number distribution during daytime has a very large

standart deviation due to highly negative Richardsons on several gridpoints. As a consequence,
the mean Richardson in daytime in the LES is much more negative than in LES. In the gcm,
parametrized subgrid turbulence prevents such cases, which can be dangerous in nearly unstable conditions.
Hence, we use beta=0.5 instead of one, so that we keep the anti-crazy-hfx function of beta and we increase the
norm of negative Richardsons in general for daytime conditions. This is set in conjonction with
beta settings for heat and momentum in vdifc.

M 289 libf/phymars/meso_inc/meso_inc_les.F
-----------------> HFX and USTM computations now uses the different betas for heat and momentum.


File size: 2.1 KB
Line 
1         if (callrichsl .eq. .false.) then
2       
3             DO ig=1,ngrid
4!! sensible heat flux in W/m2
5
6             hfx(ig) = zflubid(ig)-capcal(ig)*zdtsdif(ig)
7
8!! u star in similarity theory in m/s
9             ust(ig) = 0.4
10     .               * sqrt( pu(ig,1)*pu(ig,1) + pv(ig,1)*pv(ig,1) )
11     .               / log( 1.E+0 + zzlay(ig,1)/z0_default )
12             ENDDO
13
14         else
15
16            DO ig=1,ngrid
17
18! New SL parametrization, correct formulation for hfx :
19
20            hfx(ig) = (pplay(ig,1)/(r*pt(ig,1)))*cpp
21     &        *sqrt(pu(ig,1)*pu(ig,1) + pv(ig,1)*pv(ig,1)
22     &        + (1.2*wmax_th(ig))**2)
23     &        *zcdh(ig)*(tsurf(ig)-zh(ig,1))
24
25! New SL parametrization, ust is more accurately computed in vdif_cd :
26            ust(ig) = sqrt(zcdv(ig)*
27     &   (pu(ig,1)*pu(ig,1) + pv(ig,1)*pv(ig,1) + (0.7*wmax_th(ig))**2)
28     &                     )
29
30            ENDDO   
31
32         endif  !of if callrichsl
33
34!         write (*,*) 'PHYS HFX cp zdts', hfx(100), zflubid(100),
35!     .       capcal(100),
36!     .       zdtsdif(100)
37!         write (*,*) 'PHYS UST', ust(100)
38
39!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
40!!! LES LES
41       IF (flag_LES) THEN       
42
43         write (*,*) '************************************************'
44         write (*,*) '** LES mode: the difv part is only used to'
45         write (*,*) '**  provide HFX and UST to the dynamics'
46         write (*,*) '** NB: - dudif, dvdif, dhdif, dqdif are set to 0'
47         write (*,*) '**     - tsurf is updated'     
48         write (*,*) '************************************************'
49
50         DO ig=1,ngrid
51          wmax_th(ig)=0.  !! no additional gustiness needed in surface layer (see vdifc.F)
52          DO l=1,nlayer
53            zdvdif(ig,l) = 0.
54            zdudif(ig,l) = 0.
55            zdhdif(ig,l) = 0.
56            DO iq=1, nq
57              zdqdif(ig,l,iq) = 0.
58              zdqsdif(ig,iq) = 0. !! sortir de la boucle
59            ENDDO
60          ENDDO
61         ENDDO
62      ENDIF
63!!! LES LES       
64!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Note: See TracBrowser for help on using the repository browser.