Version 1 (modified by nvuilsce, 13 years ago) (diff) |
---|
Fiche logz0
Description
La formulation faisant intervenir le logarithme de z0 (logz0) est une vieille méthode. La formulation faisant intervenir le cdrag moyen a été retravaillé dans la version LMD. Les valeurs de z0_over_height et height_displacement ont également été modifiées.
- Dans la version 1.9 :
- z0_over_height = 1/16 (~0.0625)
- height_displacement = 0.75
- Dans la version LMD :
- z0_over_height = 0.046
- height_displacement = 0.67
Choix
On enlève la formulation avec le logz0 (le flag z0cdrag_ave associé est à supprimer également). La nouvelle formulation de la routine condveg_z0cdrag doit apparaître dans la version merge sous forme d'un flag.La routine condveg_z0cdrag de la version LMD doit être renommée en condveg_z0cdrag_lmd et doit être réécrite pour travailler avec le couple « veget,veget_max » et non le couple « veget,frac_bare ». Proposition de déplacer les déclarations des paramètres z0_over_height et height_displacement et leur initialisation pour en faire des variables locales aux routines « condveg_z0cdrag » et « condveg_z0cdrag_lmd » et non plus des variables du module (de telle sorte que que l'activation du flag z0cdrag_lmd modifie également les valeurs de ces 2 paramètres.
Mise en oeuvre
- dans condveg.f90
- On remplace dans les déclarations de variables du module
LOGICAL, SAVE :: z0cdrag_ave=.FALSE.
parLOGICAL, SAVE :: z0cdrag_lmd=.FALSE.
- On remplace dans la routine condveg_var_init
z0cdrag_ave = .TRUE. CALL getin_p('Z0CDRAG_AVE', z0cdrag_ave)
parCALL getin_p('Z0CDRAG_LMD', z0cdrag_lmd)
- On remplace dans les routines condveg_var_init et condveg_update
IF(impaze) ... ELSE IF ( z0cdrag_ave ) THEN CALL condveg_z0cdrag(kjpindex, veget, veget_max, frac_nobio, totfrac_nobio, zlev, & & height, z0, roughheight) ELSE CALL condveg_z0logz(kjpindex, veget, veget_max, frac_nobio, totfrac_nobio, height, & & z0, roughheight) ENDIF ! ENDIF
parIF(impaze) ... ELSE IF ( z0cdrag_lmd ) THEN CALL condveg_z0cdrag_lmd(kjpindex, veget, veget_max, frac_nobio, totfrac_nobio, zlev, & & height, z0, roughheight) ELSE CALL condveg_z0cdrag(kjpindex, veget, veget_max, frac_nobio, totfrac_nobio, height, & & z0, roughheight) ENDIF ! ENDIF
- On remplace dans les déclarations de variables du module
Tests
conclure à l'issu d'une série de tests, sur la meilleure formulation à retenir entre condveg_z0cdrag et condveg_z0cdrag_lmd Test sur sites Fluxnet, autres ?