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

Last change on this file since 1009 was 790, checked in by acolaitis, 12 years ago

MESOSCALE. Fixed lifting for LES runs (put lifting after newsedim otherwise lifting is stupidly counteracted). Transferred LES def files to SIMU DEF. Added def files for high resolution monster LES. Fixed a small bug in makemeso for debug.

File size: 3.0 KB
Line 
1         if (.not.callrichsl) then
2       
3             DO ig=1,ngrid
4!! sensible heat flux in W/m2
5
6             sensheat(ig) = zflubid(ig)-capcal(ig)*zdtsdif(ig)
7
8!! u star in similarity theory in m/s
9             ustar(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 sensheat :
19
20            sensheat(ig) = (pplay(ig,1)/(r*pt(ig,1)))*cpp
21     &        *sqrt(pu(ig,1)*pu(ig,1) + pv(ig,1)*pv(ig,1)
22     &        + (log(1.+0.7*wstar(ig) + 2.3*wstar(ig)**2))**2)
23     &        *zcdh(ig)*(tsurf(ig)-zh(ig,1))
24
25! New SL parametrization, ustar is more accurately computed in vdif_cd :
26
27            ustar(ig) = sqrt(zcdv(ig)*
28     &   (pu(ig,1)*pu(ig,1) + pv(ig,1)*pv(ig,1)
29     &     + (log(1.+0.7*wstar(ig) + 2.3*wstar(ig)**2))**2)
30     &                     )
31            ENDDO   
32
33         endif  !of if callrichsl
34
35!         write (*,*) 'PHYS HFX cp zdts', sensheat(100), zflubid(100),
36!     .       capcal(100),
37!     .       zdtsdif(100)
38!         write (*,*) 'PHYS UST', ustar(100)
39
40!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
41!!! LES LES
42       IF (flag_LES) THEN       
43
44         write (*,*) '************************************************'
45         write (*,*) '** LES mode: the difv part is only used to'
46         write (*,*) '**  provide HFX and UST to the dynamics'
47         write (*,*) '** NB: - dudif, dvdif, dhdif, dqdif are set to 0'
48         write (*,*) '**     - tsurf is updated'     
49         write (*,*) '************************************************'
50
51         DO ig=1,ngrid
52          wstar(ig)=0.  !! no additional gustiness needed in surface layer (see vdifc.F)
53          DO l=1,nlayer
54            zdvdif(ig,l) = 0.
55            zdudif(ig,l) = 0.
56            zdhdif(ig,l) = 0.
57          ENDDO
58         ENDDO
59         IF (lifting .and. doubleq) THEN
60         !! lifted dust is injected in the first layer.
61         !! Sedimentation must be called after turbulent mixing, i.e. on next step, after WRF.
62         !! => lifted dust is not incremented before the sedimentation step.
63            zdqdif(:,1,:)=0.
64            zdqdif(:,1,igcm_dust_number)=-zdqsdif(:,igcm_dust_number)
65            zdqdif(:,1,igcm_dust_mass)=-zdqsdif(:,igcm_dust_mass)
66            zdqdif(:,2:nlayermx,:)=0.
67            DO iq=1, nq
68              IF ((iq .ne. igcm_dust_mass)
69     &        .and. (iq .ne. igcm_dust_number)) THEN
70                zdqsdif(:,iq)=0.
71              ENDIF
72            ENDDO
73         ELSE
74            DO ig=1,ngrid
75             DO l=1,nlayer
76              DO iq=1, nq
77                zdqdif(ig,l,iq) = 0.
78                zdqsdif(ig,iq) = 0. !! sortir de la boucle
79              ENDDO
80             ENDDO
81            ENDDO
82         ENDIF
83      ENDIF
84!!! LES LES       
85!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Note: See TracBrowser for help on using the repository browser.