Transcript
Page 1: Diffs with OCN 0.70 and 0.71 (from SZ in Dec 2012) benpoulter:SZ1 poulter$ diff lpj_gap.f90../SZ2/lpj_gap.f90 261c261 < WHERE ( PFTpresent(:,j).AND. (

Diffs with OCN 0.70 and 0.71 (from SZ in Dec 2012)benpoulter:SZ1 poulter$ diff lpj_gap.f90 ../SZ2/lpj_gap.f90 261c261< WHERE ( PFTpresent(:,j) .AND. ( npp_longterm(:,j) .LE. 10. ) )---> WHERE ( PFTpresent(:,j) .AND. ( npp_longterm(:,j) .LE. 2._r_std ) )

benpoulter:SZ1 poulter$ diff lpj_kill.f90 ../SZ2/lpj_kill.f90 95,96c95,96< IF ( natural(j) ) THEN< ---> IF ( natural(j).OR. .NOT.lpj_gap_const_mort ) THEN> 100c100< IF ( control%ok_dgvm ) THEN---> IF ( control%ok_dgvm .AND. natural(j)) THEN108a109> 121c122< npp_longterm(:,j)=500.---> npp_longterm(:,j)=10.

benpoulter:SZ1 poulter$ diff lpj_establish.f90 ../SZ2/lpj_establish.f90 154c154< REAL(r_std), DIMENSION(npts) :: bm_new---> REAL(r_std), DIMENSION(npts,nelements) :: bm_new533c533,534< ELSEIF ( natural(j) .AND. .NOT.tree(j)) THEN ---> !ELSEIF ( natural(j) .AND. .NOT.tree(j)) THEN > ELSEIF ( .NOT.tree(j)) THEN 558c559< IF ( natural(j) ) THEN---> IF ( natural(j).OR..NOT.lpj_gap_const_mort ) THEN765c766< bm_new(:)=zero---> bm_new(:,:)=zero770c771,772< bm_new(:) = d_ind(:,j) * bm_sapl(j,k,icarbon) / vn(:)---> biomass(:,j,k,icarbon) = biomass(:,j,k,icarbon) + & > d_ind(:,j) * bm_sapl(j,k,icarbon) / vn(:) 772,784c774< biomass(:,j,k,icarbon) = biomass(:,j,k,icarbon) + bm_new(:)< < co2_to_bm(:,j) = co2_to_bm(:,j) + bm_new(:) / dt< < ENDWHERE< < ! establishment into existing population, C flows< WHERE(d_ind(:,j).GT.min_stomate.AND.total_bm_c(:).GT.min_stomate)< < bm_new(:) = total_bm_sapl(:,icarbon) * biomass(:,j,k,icarbon) / total_bm_c(:)< < biomass(:,j,ilabile,icarbon) = biomass(:,j,ilabile,icarbon) + &< bm_new(:)---> co2_to_bm(:,j) = co2_to_bm(:,j) + ( d_ind(:,j) * bm_sapl(j,k,icarbon) / vn(:) ) / dt786,787d775< co2_to_bm(:,j) = co2_to_bm(:,j) + bm_new(:) / dt< 795,797c783,784< bm_new(:) = d_ind(:,j) * bm_sapl(j,k,initrogen) / vn(:)< < biomass(:,j,k,initrogen) = biomass(:,j,k,initrogen) + bm_new(:)---> biomass(:,j,k,initrogen) = biomass(:,j,k,initrogen) + & > d_ind(:,j) * bm_sapl(j,k,initrogen) / vn(:) 799c786< ntake(:) = ntake(:) + bm_new(:)---> ntake(:) = ntake(:) + d_ind(:,j) * bm_sapl(j,k,initrogen) / vn(:) 803,813d789< ! establishment into existing population, N flows< WHERE(d_ind(:,j).GT.min_stomate.AND.total_bm_c(:).GT.min_stomate.AND.cn_labile(:,j).GT.cn_leaf_min(j))< < bm_new(:) = total_bm_sapl(:,initrogen) * biomass(:,j,k,icarbon) / total_bm_c(:)< < biomass(:,j,ilabile,initrogen) = biomass(:,j,ilabile,initrogen) + &< bm_new(:)< < ntake(:) = ntake(:) + bm_new(:)< < ENDWHERE825c801< bm_new(:) = (biomass(:,j,k,icarbon)-biomass(:,j,k,initrogen)*cn_tissue) & ---> bm_new(:,initrogen) = (biomass(:,j,k,icarbon)-biomass(:,j,k,initrogen)*cn_tissue) & 827,828c803,804< biomass(:,j,k,initrogen) = biomass(:,j,k,initrogen) + bm_new(:) < ntake(:) = ntake(:) + bm_new(:)---> biomass(:,j,k,initrogen) = biomass(:,j,k,initrogen) + bm_new(:,initrogen) > ntake(:) = ntake(:) + bm_new(:,initrogen)833a810,838> ! establishment into existing population, C flows> WHERE(d_ind(:,j).GT.min_stomate.AND.total_bm_c(:).GT.min_stomate)> > biomass(:,j,ilabile,icarbon) = biomass(:,j,ilabile,icarbon) + &> total_bm_sapl(:,icarbon) > > !where possible, use fruit pool as source of carbon> bm_new(:,icarbon) = MAX(total_bm_sapl(:,icarbon) - biomass(:,j,ifruit,icarbon),0.0_r_std)> > biomass(:,j,ifruit,icarbon) = biomass(:,j,ifruit,icarbon) &> - ( total_bm_sapl(:,icarbon) - bm_new(:,icarbon) ) > co2_to_bm(:,j) = co2_to_bm(:,j) + bm_new(:,icarbon) / dt> > ENDWHERE> > ! establishment into existing population, N flows> WHERE(d_ind(:,j).GT.min_stomate.AND.total_bm_c(:).GT.min_stomate.AND.cn_labile(:,j).GT.cn_leaf_min(j))> > biomass(:,j,ilabile,initrogen) = biomass(:,j,ilabile,initrogen) + &> total_bm_sapl(:,initrogen) > > !where possible, use fruit pool as source of nitrogen > bm_new(:,initrogen) = MAX(total_bm_sapl(:,initrogen) - biomass(:,j,ifruit,initrogen),0.0_r_std)> > biomass(:,j,ifruit,initrogen) = biomass(:,j,ifruit,initrogen) &> - ( total_bm_sapl(:,initrogen) - bm_new(:,initrogen) ) > ntake(:) = ntake(:) + bm_new(:,initrogen) > > ENDWHERE905d909<

benpoulter:SZ1 poulter$ diff stomate_lcchange.f90 ../SZ2/stomate_lcchange.f90 239,242c239,242< when_growthinit(:,j) = large_value< leaf_frac(:,j,1) = 1.0< npp_longterm(:,j) = 300.< !lm_lastyearmax(:,j) = bm_sapl(j,ileaf,icarbon) * ind(:,j) ---> when_growthinit(i,j) = large_value> leaf_frac(i,j,1) = 1.0> npp_longterm(i,j) = 300.> !lm_lastyearmax(i,j) = bm_sapl(j,ileaf,icarbon) * ind(i,j)

benpoulter:SZ1 poulter$ diff stomate_npp.f90 ../SZ2/stomate_npp.f90 1135a1136> transloc = 0.0_r_std1143a1145> transloc = 0.0_r_std1291,1310d1292< !!$ ! to have BNF calculated dynamically, uncomment the following lines and comment the above< !!$ ! requires also a change in stomate_soilcarbon!< !!$ IF(biomass(i,j,icarbres,icarbon)+biomass(i,j,ilabile,icarbon).GT.0.5*(labile_pool+reserve_pool)& < !!$ .AND.ABS(t2m(i)-ZeroCelsius-25.).LE.55.0)THEN< !!$ ! temperature function of Houlton et al. 2008 Nature< !!$ tf(i)=1.25*exp(-3.62+0.27*(t2m(i)-ZeroCelsius)*(1.-(t2m(i)-ZeroCelsius)/50.3))< !!$< !!$ !max of 60 kgN/ha/yr tunes to 30< !!$ ndeficit_daily(i,j) = MIN(biomass(i,j,ilabile,icarbon)*0.05, & < !!$ 0.0164/2. * tf(i) * 6.8 * dt * MIN(MAX(nstress2_daily(i,j)-0.5,zero),1.)) < !!$ biomass(i,j,ilabile,icarbon) = biomass(i,j,ilabile,icarbon) - & < !!$ ndeficit_daily(i,j)< !!$ resp_maint(i,j) = resp_maint(i,j) + & < !!$ ndeficit_daily(i,j)< !!$ ! cost of carbon fixation from Houlton et al., 2008, Nature< !!$ biomass(i,j,ilabile,initrogen)=biomass(i,j,ilabile,initrogen) + & < !!$ ndeficit_daily(i,j)/6.8 < !!$ bnf(i,j)=bnf(i,j)+ndeficit_daily(i,j)/6.8< !!$ n_uptake(i,j,iammonium)=n_uptake(i,j,iammonium)+ndeficit_daily(i,j)/6.8< !!$ ENDIF

benpoulter:SZ1 poulter$ diff stomate_litter.f90 ../SZ2/stomate_litter.f90 1c1< ! Update litter and lignine content after litter fall.---> ! Update litter and lignine content after litter fall.186c186< !$$ garder ce param?tre ? TRUE dans le merge (ou faire un GETIN)---> !$$ garder ce paramètre à TRUE dans le merge (ou faire un GETIN)353a354,359> ! woody litter> frac_soil(iwoody,isurface,iabove) = .55> frac_soil(iwoody,iactive,ibelow) = .45> frac_soil(iwoody,islow,iabove) = .3> frac_soil(iwoody,islow,ibelow) = .3> 984,992d989< !SZ changed to account for full century: belowground structural C goes to active< !aboveground structural C goes to surface microbes< !< IF ( control%ok_ncycle_active.AND.l.EQ.iabove)THEN< itarget=isurface< ELSE< itarget=iactive< ENDIF< 1009c1006< divisor(:)= frac_soil(istructural,itarget,l) * &---> divisor(:)= frac_soil(iwoody,itarget,l) * &1011c1008< frac_soil(istructural,islow,l) * lignin_wood(:,m,l) * & ---> frac_soil(iwoody,islow,l) * lignin_wood(:,m,l) * & 1031c1028< frac_soil(istructural,itarget,l) * qd(:,icarbon) * ( 1. - lignin_wood(:,m,l) ) / dt---> frac_soil(iwoody,itarget,l) * qd(:,icarbon) * ( 1. - lignin_wood(:,m,l) ) / dt1034c1031< ( 1. - frac_soil(istructural,itarget,l) ) * qd(:,icarbon) * &---> ( 1. - frac_soil(iwoody,itarget,l) ) * qd(:,icarbon) * &1036d1032< 1039,1041c1035,1037< frac_soil(istructural,itarget,l) * qd(:,icarbon) * ( 1. - lignin_wood(:,m,l)) * & < NC_soil(:,m,itarget) / dt< ! frac_soil(istructural,itarget,l) * qd(:,initrogen) * ( 1. - lignin_wood(:,m,l)) / dt---> frac_soil(iwoody,itarget,l) * qd(:,icarbon) * ( 1. - lignin_wood(:,m,l)) * & > NC_soil(:,m,itarget) / dt> ! frac_soil(istructural,itarget,l) * qd(:,initrogen) * ( 1. - lignin_wood(:,m,l)) / dt1050c1046< frac_soil(istructural,islow,l) * qd(:,icarbon) * lignin_wood(:,m,l) / dt---> frac_soil(iwoody,islow,l) * qd(:,icarbon) * lignin_wood(:,m,l) / dt1053,1054c1049< ( 1. - frac_soil(istructural,islow,l) ) * qd(:,icarbon) * lignin_wood(:,m,l) / dt< ---> ( 1. - frac_soil(iwoody,islow,l) ) * qd(:,icarbon) * lignin_wood(:,m,l) / dt1057c1052< frac_soil(istructural,islow,l) * qd(:,icarbon) * lignin_wood(:,m,l) * NC_SOIL(:,m,islow)/ dt---> frac_soil(iwoody,islow,l) * qd(:,icarbon) * lignin_wood(:,m,l) * NC_SOIL(:,m,islow)/ dt1068,1070c1063,1065< qd(:,initrogen) - ( qd(:,icarbon) * & < frac_soil(istructural,itarget,l) * ( 1. - lignin_wood(:,m,l)) * NC_soil(:,m,itarget) + &< frac_soil(istructural,islow,l) * lignin_wood(:,m,l) * qd(:,icarbon) * NC_SOIL(:,m,islow))---> qd(:,initrogen) - ( qd(:,icarbon) * & > frac_soil(iwoody,itarget,l) * ( 1. - lignin_wood(:,m,l)) * NC_soil(:,m,itarget) + &> frac_soil(iwoody,islow,l) * lignin_wood(:,m,l) * qd(:,icarbon) * NC_SOIL(:,m,islow))

benpoulter:SZ1 poulter$ diff stomate.f90 ../SZ2/stomate.f90 1136c1136< ier = NF90_CREATE (TRIM(Cforcing_name),NF90_WRITE,Cforcing_id)---> ier = NF90_CREATE (TRIM(Cforcing_name),NF90_NOCLOBBER,Cforcing_id)

benpoulter:SZ1 poulter$ diff stomate_prescribe.f90 ../SZ2/stomate_prescribe.f90 90c90< IF ( ( .NOT. control%ok_dgvm.AND.lpj_gap_const_mort ) .OR. ( .NOT. natural(j) ) ) THEN---> IF ( ( .NOT. control%ok_dgvm.OR. .NOT. natural(j) ) .AND. lpj_gap_const_mort ) THEN239d238<

Top Related