wiki:DevelopmentActivities/MergeHydro/evapnu_note

Version 1 (modified by nvuilsce, 10 years ago) (diff)

--

Proposition d’évolution de la variable EVAPNU (évaporation directe de l’eau contenue dans le sol)

Préambule

EVAPNU est le flux d’évaporation direct de l’eau contenue dans le sol. Il s’additionne, pour calculer l’évapotranspiration totale, à la transpiration, à la ré-évaporation de l’eau interceptée par le couvert, et à la sublimation. EVAPNU est aujourd’hui une variable calculée par point de grille, et non par PFT. Or sur chaque fraction de maille occupée par un PFT-N (maxvegetfrac(N)), la fraction non ombragée du sol (maxvegetfrac(N)-vegetfrac(N)) évapore sous la forme d’evapnu (uniquement, hors présence de neige).

Aujourd’hui, à chaque pas de temps, la fraction maxvegetfrac du PFT-1 est augmentée de la somme suivante : SUMN(maxvegetfrac(N)-vegetfrac(N) ; N>1) pour pouvoir calculer la variable evapnu.

Les problèmes que cela pose (peut-être non exhaustifs) :

  • Pour le PFT-11, vegetfrac(1) ≥ maxvegetfrac(1), ce qui est totalement contre-intuitif puisque pour tous les autres PFT-N (N>1), nous avons systématiquement l’inégalité inverse : vegetfrac(N) ≤ maxvegetfrac(N).
  • Le PFT-1 est défini comme étant le ‘désert’. Lui rajouter systématiquement les fractions de sol nu ‘non ombragé’ de chaque PFT-N (N>1) est incohérent par rapport à la nomenclature choisie pour le PFT-1.
  • Dans la version à 2 couches ‘Choisnel’, le réservoir de surface est différencié par PFT (le réservoir profond est homogénéisé à la fin de chaque pas de temps). Lorsque l’on mixe toutes les fractions de sol nu, on perd la spécificité par PFT : un PFT-N, qui aura dé-saturé son réservoir de surface plus rapidement qu’un autre, évaporera (dans la nature) moins que le PFT-M qui aura conservé l’eau de son réservoir superficiel. Ne pas tenir compte de cela a des implications sur le flux total de vapeur d’eau provenant du sol nu.
  • avec la version 11 couches de l’hydrologie, l’intégralité du profil vertical de l’humidité du sol n’est pas le même sous chaque PFT. Le point précédent devient donc encore plus critique.
  • Lorsque les bilans d’énergie seront faits séparément pour chaque PFT, il n’y a aucune raison pour que la fraction non ombragée du sol du PFT-N évapore de la même façon que la fraction non ombragée du PFT-M puisqu’elle n’aura pas la même quantité d’énergie reçue à évacuer [[BR]]

Indépendamment de la convergence entre les versions AR5 et CWRR (11 couches), une évolution du calcul de cette variable est donc nécessaire.

Objectifs

EVAPNU doit devenir une variable dépendante du PFT. Nous proposons donc de passer de ‘evapnu(i,j)’ à ‘evapnu(i,j,N)’, comme le sont les autres variables de l’évapotranspiration (hors sublimation de la neige). Cela demande que les variables ‘VBETA4’, ‘RSOL’ et ‘HDRY’, qui sont a) la fraction de la maille qui va subir une évaporation de type ‘evapnu’, b) la résistance du sol nu à l’évaporation, et c) la hauteur de sol sec (vue de l’atmosphère) deviennent elles aussi dépendantes du nombre de PFTs.

Modules concernés

ATTENTION, je ne me suis attachée qu’à l’hydrologie Choisnel, pas aux 11 couches 

  • Sechiba.f90
    • Rajouter 1 dimension à la déclaration de tableau des variables : vevapnu, rsol, vbeta4
    • Rajouter la déclaration de la dimension supplémentaire dans les ‘histwrite’ de ces variables
    • Modifier le calcul de ‘histvar(:)=(vevapnu(:)+vevapsno(:))/86400’ en calculant evapnu comme une somme sur les PFTs
    • Corriger les ‘ALLOCATE’ pour inclure nvm
    • Modifier l’initialisation de rsol (rsol(:) = -un)
  • Intersurf.f90
    • rajouter la dimension ‘nvm’ dans les histdef pour evapnu, vevapnu, vbeta4 et rsol.
  • Diffuco.f90
    • Rajouter 1 dimension à la déclaration des variables vbeta4 er rsol dans la subroutine ‘diffuco_main’
    • Rajouter la dimension en début de subroutine ‘diffuco_bare’ également + diffuco_comb
    • Modifier le calcul de vbeta4 dans la subroutine ‘diffuco_bare’ … en rajoutant la 2ème dimension à vbeta4 et rsol. Plus, dans la ligne de calcul, au lieu de veget(ji,1), on trouvera ((maxveget(ji,N)-veget(ji,N)) pour tout N >1 et maxvegetfrac(ji,1) pour le désert.
    • Dans la subroutine ‘diffuco_comb’ : introduire un ‘vbeta4sum’ et calculer vbeta en utilisant vbeta4sum au lieu de vbeta4 + modifier calcul de vbeta4 en fin de routine
  • Enerbil.f90
    • Rajouter la dimension ‘nvm’ dans les déclarations des variables vevapnu et vbeta4
    • Modifier le calcul de vevapnu (enerbil_evapveg) et ne pas oublier vbeta4
  • Hydrolc.f90
    • Rajouter 1 dimension aux déclarations des variables vevapnu, rsol et hdry
    • Modifier les ‘ALLOCATE’ en conséquence
    • Corriger l’utilisation de vevapnu dans les subroutines : hydrolc_snow, hydrolc_soil (donc corriger la variable zeflux), hydrolc_waterbal
    • Modifier les calculs de hdry (en fonction de dss( :,nv)) et rsol. Question : que fait-on pour le a_subgrd ? A priori il faut aussi le rendre dépendant du nombre de PFTs
  • Hydrol.f90 (MAIS JE NE CONNAIS PAS CETTE ROUTINE)

Vérifications

La vérification par rapport aux versions précédentes est impossible puisque nous ne devons pas obtenir les mêmes valeurs qu’avant, même sur les sites fluxnet ! Il faut cependant vérifier la fermeture du bilan d’eau. Sur les sites fluxnet il sera intéressant de voir si notre évapotranspiration est améliorée.