Ignore:
Timestamp:
Sep 7, 2011, 3:20:37 PM (13 years ago)
Author:
acolaitis
Message:

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

  • Added new flag for the Richardson-based surface layer :

callrichsl, can be changed in callphys.def

One should always use the thermals model when using this surface layer model.
Somes cases (weakly unstable with low winds), when not using thermals, won't be well represented by the
Richardson surface layer. This stands for Mesoscale and Gcm but not for LES model.

Correct configs :

callrichsl = .true.
calltherm = .true.

callrichsl = .false.
calltherm = .false.

callrichsl = .false.
calltherm = .true.

Previously unstable config :

callrichsl = .true.
calltherm = .false.

  • To be able to run without thermals and with the new surface layer, a modification has been made to

physiq.F to account for gustiness in GCM and MESOSCALE for negative Richardson, so that :

callrichsl = .true.
calltherm = .false.

can now be used without problems, but is not recommended.

  • Consequently, callrichsl = .false. is now the default configuration for thermals.

We recall the available options in callphys.def for thermals :

outptherm = BOOLEAN (.false. by default) : outputs thermals related quantities (lots of diagfi)
nsplit_thermals = INTEGER (50 by default in gcm, 2 in mesoscale) : subtimestep for thermals model.

It is recommended to use at least 40 in the gcm, and at least 2 in the mesoscale.
The user can lower these values but should check it's log for anomalies or errors regarding
tracer transport in the thermals, or "granulosity" in the outputs for wmax, lmax and hfmax.


File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_les.F

    r268 r284  
    1          DO ig=1,ngrid
    2           !! sensible heat flux in W/m2
    3 !          hfx(ig) = zflubid(ig)-capcal(ig)*zdtsdif(ig)
     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
    417
    518! New SL parametrization, correct formulation for hfx :
    619
    7           hfx(ig) = (pplay(ig,1)/(r*pt(ig,1)))*cpp
    8      &    *sqrt((pu(ig,1)*pu(ig,1) + pv(ig,1)*pv(ig,1)))
    9      &    *zcdh(ig)*(tsurf(ig)-zh(ig,1))
     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.0*wmax_th(ig))**2)
     23     &        *zcdh(ig)*(tsurf(ig)-zh(ig,1))
    1024
    11           !! u star in similarity theory in m/s
    12 !          ust(ig) = 0.4
    13 !     .               * sqrt( pu(ig,1)*pu(ig,1) + pv(ig,1)*pv(ig,1) )
    14 !     .               / log( 1.E+0 + zzlay(ig,1)/z0_default )
    1525
    1626! New SL parametrization, ust is more accurately computed in vdif_cd :
    17         ust(ig) = sqrt(zcdv(ig)*(pu(ig,1)*pu(ig,1) + pv(ig,1)*pv(ig,1)))
     27            ust(ig) = sqrt(zcdv(ig)*
     28     &   (pu(ig,1)*pu(ig,1) + pv(ig,1)*pv(ig,1) + (1.0*wmax_th(ig))**2)
     29     &                     )
    1830
    19          ENDDO   
     31            ENDDO   
     32
     33         endif  !of if callrichsl
     34
    2035!         write (*,*) 'PHYS HFX cp zdts', hfx(100), zflubid(100),
    2136!     .       capcal(100),
Note: See TracChangeset for help on using the changeset viewer.