Thermal plume model Generic PCM

From Planets
Revision as of 11:54, 5 March 2025 by Alesaux (talk | contribs)

Jump to: navigation, search

Description of the Thermal plume model

Implementation in the Generic PCM

Code

Edition history

Authors: F. Hourdin, C. Rio, A. Mathieu, A. Boissinot, A. Le Saux

Version du 09.02.07

  Calculation of vertical transport in the boundary layer in the presence of explicitly represented “thermals” with cloud processes
  Rewriting from a paper listing in Habas, 14/02/00
  Thermal energy is assumed to be homogeneous and dissipated by mixing with its surroundings. 
  The length l_mix controls the mixing efficiency.
  The transport of the different species is calculated by taking into account:
    1. upward mass flux
    2. downward mass flux
    3. entrainment
    4. a detrainment

Modif 2013/01/04 (FH hourdin@lmd.jussieu.fr)

   Introduction of an implicit computation of vertical advection in the environment of thermal plumes in thermcell_dq
   impl = 0 : explicit ; impl = 1 : implicit ; impl =-1 : old version
   controled by iflag_thermals =
      15, 16 run with impl=-1 : numerical convergence with NPv3
      17, 18 run with impl=1  : more stable
   15 and 17 correspond to the activation of the stratocumulus "bidouille"

Major changes 2018-19 (AB alexandre.boissinot@lmd.jussieu.fr)

   New detr and entre formulae (no longer alimentation)
   lmin can be greater than 1
   Mix every tracer
   Can stack verticaly multiple plumes (it makes thermcell_dv2 unusable for the moment)

Modif 2024 (ALS, arthur.le-saux@lmd.ipsl.fr)

   Implementation to take into account generic tracers

How to use it?

In a 1D rcm1d run

The TPM is activated in callphys.def with

calltherm = .True.

Remember to also turn off the convective adjustment scheme to use only one parametrisation of convection

calladj  = .True.

Then, several options may be used to tune the model

dvimpl               = .False.
dqimpl               = .True.
r_aspect_thermals    = 2.0
tau_thermals         = 0.0
betalpha             = 0.9
afact                = 0.9
fact_epsilon         = 1.e-4
alpha_max            = 0.7
fomass_max           = 0.5
pres_limit           = 1.e3
nu                   = 0.0


In a 3D DYNAMICO run

References