Gemclim 3.3.3.1 diffusion

Un article de Informaticiens département des sciences de la Terre et l'atmosphère
Aller à: navigation, charcher


Ce qui suit est un survol des différentes options d'éponges dans notre modèle. Je donnerai une brève description des options, de la routine qui fait le travail et du processus mis en place pour chacune des options.


Vrtd

Voici le commentaire qu'on trouve dans vrtd :

"Apply a background vertical diffusion on the horizontal momentum components u and v, and optionally theta, using an implicit time scheme."

Il s'agit d'une option codée par Sylvie Gravel pour la dynamique à partir de la routine difver6 de la physique, mais qui peux être utilisée sans faire appel aux paramétrages. C'est donc quelque chose qui sera utilisé dans des études de sensibilité de la dynamique et non pas à proprement parler une éponge. De plus, cette option s'applique sur toute la colonne atmosphérique et non pas seulement près du toit. On ne devrait donc pas l'utiliser normalement. Il y a deux clés associées à cette option: Vrtd_L (.false. par défaut) qui l'active et Vrtd_theta_L (aussi .false. par défaut) qui active les calculs sur la variable théta.

Vspng

Voici le commentaire qu'on trouve dans vspng_main :

"Applies horizontal diffusion with vertical modulation of the diffusion coefficient on Vspng_nk top levels via

    (a) del-2 horizontal diffusion used for non-LAM (vspng_drv)

    (b) 9 point explicit filter used for LAM (vspng_drv_lam)"


Pour le mode GLOBAL

Voici la description des paramètres utilisés dans vspng_drv :

"The diffusion coefficients are (Cstv_uvdf_8*Cstv_dt_8) for the horizontal momentum and (Cstv_phidf_8*Cstv_dt_8) for all other variables."

Paramètres pertinentes :

  • Vspng_nk est la profondeur de l'éponge à partir du toit (=0 par défaut).
  • Vspng_uvwdt_L contrôle un mode par lequel l'éponge est appliquée sur Vspng_nk niveaux pour les variables du momentum et seulement au toit pour toutes les autres variables (.true. par défaut).
  • Vspng_mf, le facteur de multiplication de l'intensité de la diffusion verticale dans les Vspng_nk niveaux où on applique cette éponge (=0 par défaut).
  • Vspng_rwnd_L qui, lorsque égale à .true., fait en sorte que le calcul s'effectue sur les vents réels, plutôt que les vents images (.false. par défaut).
  • Vspng_njpole, une modulation de cette éponge près des pôles de calculs dans la routine vspng_abc. Il s'agit du nombre de points sur lequel cette modulation sera appliquée (=3 par défaut).
  • Hzd_difva_L qui, lorsque égale à .true., contrôle la modulation latitudinale du coefficient de la diffusion horizontale (.false. par défaut).
  • Vspng_zmean_L qui, lorsque égale à .true., fait en sorte que le calcul ne se fait pas sur la moyenne zonale des champs affectés via des appels à la routine vspng_zmean (.false. par défaut).


Pour le mode LAM

Voici la description des paramètres utilisés dans la routine vspng_drv_lam :

  • La paramètres Vspng_nk et Vspng_rwnd_L ont le même sens que pour le mode GLOBAL.
  • Vspng_nutop est le paramètre principal de cette éponge. Lorsque Vspng_nutop < 0, Vspng_nk est re-défini à 0 (=-1 par défaut).
  • Vspng_niter est le nombre d'itération d'application du filtre/éponge dans la routine vspng_lam et est défini comme suit "int( 4. * Vspng_nutop + 0.99 )" dans la routine vspng_set.
  • Vspng_nu, le profil vertical de l'éponge, est quand à lui défini comme suit :
do k=1,Vspng_nk
  Vspng_nu(k) = Vspng_nutop/max( 1.,Vspng_niter ) * ( sin( (pi/2) * ( hybm(Vspng_nk)-hybm(k) ) / ( hybm(Vspng_nk)-hybm(1) ) ) **2
end do

où hybm est la valeur non-normalisée de la coordonnée verticale (i.e. GEM2). Le premier niveau du modèle étant au toit, ce vecteur est seulement défini pour les premier Vspng_nk niveaux.


Hspng

Voici le commentaire qu'on trouve dans hspng_main :

"Applies del-2 horizontal diffusion on the poles for Hspng_nj (=0 par défaut) rows with the diffusion coefficient Hspng_mf (=800. par défaut)".

De plus, le paramètre Hzd_difva_L est aussi utilisé ici. Et le paramètre Hspng_uvwdt_L a le même sens que Vspng_rwnd_L pour l'éponge Vspng. Notons que cette troisième variante d'éponge n'est pas active en mode LAM. De même, dans mon setup GLOBAL, on trouvera que "Hspng_mf=0" et "Hspng_nj=0".


Vlsp

 Une diffusion verticale amplifiée appliquée par la physique sur le momentum près de l'équateur. Ce qui suit s'applique au mode GLOBAL.

Les paramètres suivant contrôlent ce processus...

Tout d'abord du côté de la dynamique, ceux utilisés dans la routine itf_phy_vlsp et leur valeur par défaut :

  • P_lmvd_valeq_8 = 1.  ! Une valeur éloignée de l'équateur (i.e. à mllat degrés)
  • P_lmvd_valml_8 = 1.  ! Une valeur proche de l'équateur (i.e. à eqlat degrés)
  • P_lmvd_mllat_8 = 30. ! Ces deux latitudes definissent l'étendue d'une rampe
  • P_lmvd_eqlat_8 = 5.  ! où on passe de P_lmvd_valml_8 à P_lmvd_valeq_8

Dans mon setup GLOBAL, je définis P_lmvd_valml_8=0.0, ce qui limite strictement les valeurs non-nulles du champs P_lmvd_vlsp qui sera calculé dans itf_phy_vlsp à un canal équatorial. Ce P_lmvd_vlsp sera ensuite transféré à eponmod dans le bus dynamique de la physique. La routine difver6 appellera cette variable SPONMOD ("sponge modulation factor").

Dans le mode LAM, aucun des calculs précédents n'est effectués et la variable eponmod du bus dynamique est simplement initialisé à 1. Il n'y a donc pas de rampe géographique séparant les positions où cette diffusion amplifiée sera appliquée ou non.

De son côté, la physique lira comme paramètre le vecteur EPONGE dans son namelist. Le nombre d'éléments lus déterminera la profondeur de cette éponge, i.e. lorsque "EPONGE*SPONMOD > 0.", on utilisera le maximum de ce produit et du coefficient local de diffusion momentum dans les calculs subséquents. Les valeurs placées dans EPONGE sont général de "grandes" valeurs. Par défaut, EPONGE=0.

On comprendra donc que dans le mode LAM, seule la variable EPONGE contrôle l'application de cette éponge: Il n'a pas de restriction géographique à son application.


Auteur: Bernard Dugas
Dernière révision: Septembre 2014