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.
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.
should not get set to a value smaller than 6, so:
Vspng_nk = 6 |
only depends on the timestep and the horizontal resolution. 'nu' in the equation below should have a value of around 0.8.
nu = Vspng_coeftop*DT / (DX**2) |
With DT beeing the timestep in seconds and DX the average grid size in meters one can now calculate Vspng_coeftop with:
Vspng_coeftop = 0.8 / DT * (DX**2) |
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)"
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 :
Voici la description des paramètres utilisés dans la routine vspng_drv_lam :
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.
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".
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 :
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