wiki:DevelopmentActivities/MergeHydro/Martial_notes_on_merge

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

--

Martial notes for the merge

  • messages de TdO dans le module d'hydro :
    • l1
      !tdo - enlever toute profondeur variable pour voir l'effet sur l'efficacite du code
      
    • l153
      !!! A CHANGER DANS TOUT HYDROL: tmc_litter_res et sat ne devraient pas dependre de ji - tdo
      
  • problèmes conversion (frac_bare/veget) versus (veget,veget_max) :
    • dans hydrol_init : on passait veget (ie l'ancien veget_max) et on a pas changer le code par rapport à l'ancienne version. On obtient peut-être des incohérences :
             IF ( MINVAL(resdist) .EQ.  MAXVAL(resdist) .AND. MINVAL(resdist) .EQ. val_exp) THEN
                resdist = veget
             ENDIF
             !
             !  Remember that it is only frac_nobio + SUM(veget(,:)) that is equal to 1. Thus we need vegtot
             !
             DO ji = 1, kjpindex
                vegtot(ji) = SUM(veget(ji,:))
             ENDDO
      
      Je laisse le veget de la version standard.
    • dans hydrol_vegetupd on utilise vraiment frac_bare :
          DO jv = 1, nvm
             DO ji =1, kjpindex
                tot_frac_bare(ji) = tot_frac_bare(ji) + veget_max(ji,jv) * frac_bare(ji,jv)
             ENDDO
          END DO
      
      On doit donc le recalculer à partir de la formule dans slowproc :
          frac_bare(:,:) = zero
          frac_bare(:,1) = un
          IF (extcoef .LT. 100) THEN
             DO jv=2,nvm
                frac_bare(:,jv) = EXP(-extcoef * lai(:,jv))
             ENDDO
          ENDIF
      
      et la définition actuelle du veget :
          ! Ajout Nouveau calcul (stomate-like) 
          DO ji = 1, kjpindex
             SUMveg = 0.0
             veget(ji,1) = veget_max(ji,1)
             DO jv = 2, nvm
                veget(ji,jv) = veget_max(ji,jv) * ( 1. - exp( - lai(ji,jv) * ext_coef(jv) ) )
                veget(ji,1) = veget(ji,1) + (veget_max(ji,jv) - veget(ji,jv))
             ENDDO
       [...]
      
      On obtient alors en combinant ces deux définitions :
          frac_bare(:,1) = un
          frac_bare(:,2:nvm) = undef_sechiba
          DO jv = 2, nvm
             DO ji = 1, kjpindex
                IF ( veget_max(ji,jv) .GT. min_sechiba ) &
                     frac_bare(ji,jv) = 1 - veget(ji,jv) / veget_max(ji,jv)
             ENDDO
          ENDDO
      
      L'utilisation du undef_sechiba me paraît cohérente lorsque l'on a pas de présence du PFT sur le pixel.
      On avait d'ailleurs une erreur avant avec le frac_bare car il était parfois définit (utilisé ?) lorsque veget_max(ji,jv) était nul.

Attachments (3)

Download all attachments as: .zip