Opened 12 years ago
Closed 6 years ago
#7 closed enhancement (fixed)
DGVM problems
Reported by: | dsolyga | Owned by: | nicolasviovy |
---|---|---|---|
Priority: | major | Milestone: | ORCHIDEE 2.0 |
Component: | Biogeochemical processes | Version: | orchidee_1_9_5_2 |
Keywords: | DGVM | Cc: |
Description
Here a list of the problems found recently :
lpj_establish :
- see ticket 6 http://forge.ipsl.jussieu.fr/orchidee/ticket/6
- The following test is always false (found by Nicolas Vuichard):
sm2(:) = biomass(:,j,isapabove) + biomass(:,j,isapbelow) WHERE ( ( d_ind(:,j) .GT. min_stomate ) .AND. & ( biomass(:,j,isapabove) + biomass(:,j,isapbelow) ) .GT. sm2(:) )
because we have
sm2(:) > sm2(:) !!!
lpj_light
- this module should be called also when ok_dgvm or (.NOT.lpj_gap_const_mort). We should add in stomate_lpj.f90 (found
by Sebastiaan Luyssaert and Nicolas Viovy):
IF ( control%ok_dgvm .OR. .NOT.(lpj_gap_const_mort)) THEN ! ! 11.1 do light competition ! CALL light (npts, dt_days, & veget_max, fpc_max, PFTpresent, cn_ind, lai, maxfpc_lastyear, & lm_lastyearmax, ind, biomass, veget_lastlight, bm_to_litter, mortality)
- fpc_max should be calculated when we have a static vegetation. For the moment, fpc_max = 0 in stomate_lpj so we have always light_death equals to 1! This problem is counter-balanced by the previous point.(found by Sebastiaan Luyssaert-Nicolas Viovy)
light_death(:,j) = MIN(un, un - fpc_max(:,j)/fpc_nat(:,j))
- mortality is not used in this routine. Is this important? (Didier Solyga)
- At the beginning of the module, the calculations of fpc_nat for trees and grasses are the same : (found by Nicolas Vuichard - Didier Solyga)
IF ( tree(j) ) THEN ! 2.1.1.1 trees: minimum cover due to stems, branches etc. ! DO i = 1, npts ! IF (lai(i,j) == val_exp) THEN ! fpc_nat(i,j) = cn_ind(i,j) * ind(i,j) ! ELSE ! fpc_nat(i,j) = cn_ind(i,j) * ind(i,j) * & ! MAX( ( 1._r_std - exp( -lai(i,j) * ext_coeff(j) ) ), min_cover ) ! ENDIF ! ENDDO !NV : modif from SZ version : fpc is based on veget_max, not veget. WHERE(fracnat(:).GE.min_stomate) ! WHERE(LAI(:,j) == val_exp) ! fpc_nat(:,j) = cn_ind(:,j) * ind(:,j) / fracnat(:) ! ELSEWHERE ! fpc_nat(:,j) = cn_ind(:,j) * ind(:,j) / fracnat(:) * & ! MAX( ( 1._r_std - exp( - lm_lastyearmax(:,j) * sla(j) * ext_coeff(j) ) ), min_cover ) ! ENDWHERE fpc_nat(:,j) = cn_ind(:,j) * ind(:,j) / fracnat(:) ENDWHERE ELSE !NV : modif from SZ version : fpc is based on veget_max, not veget. WHERE(fracnat(:).GE.min_stomate) ! WHERE(LAI(:,j) == val_exp) ! fpc_nat(:,j) = cn_ind(:,j) * ind(:,j) / fracnat(:) ! ELSEWHERE ! fpc_nat(:,j) = cn_ind(:,j) * ind(:,j) / fracnat(:) * & ! ( 1._r_std - exp( - lm_lastyearmax(:,j) * sla(j) * ext_coeff(j) ) ) ! ENDWHERE fpc_nat(:,j) = cn_ind(:,j) * ind(:,j) / fracnat(:) ENDWHERE !!$ ! 2.1.1.2 bare ground !!$ IF (j == ibare_sechiba) THEN !!$ fpc_nat(:,j) = cn_ind(:,j) * ind(:,j) !!$ !!$ ! 2.1.1.3 grasses !!$ ELSE !!$ DO i = 1, npts !!$ IF (lai(i,j) == val_exp) THEN !!$ fpc_nat(i,j) = cn_ind(i,j) * ind(i,j) !!$ ELSE !!$ fpc_nat(i,j) = cn_ind(i,j) * ind(i,j) * & !!$ ( 1._r_std - exp( -lai(i,j) * ext_coeff(j) ) ) !!$ ENDIF !!$ ENDDO !!$ ENDIF ENDIF ! tree/grass
stomate_lpj
- the argument EndOfMonth? is not used : it was added in the last tag (1.9.5.2). Important ? (Didier Solyga)
Change History (4)
comment:1 Changed 11 years ago by dsolyga
- Milestone changed from orchidee_1_9_6 to ORCHIDEE 2.0
comment:2 Changed 10 years ago by jgipsl
comment:3 Changed 10 years ago by peylin
To be treated with all DGVM ticket summer 2014
comment:4 Changed 6 years ago by nicolasviovy
- Resolution set to fixed
- Status changed from new to closed
Note: See
TracTickets for help on using
tickets.
lpj_established : commit done in rev [1890]