- Timestamp:
- 2011-07-21T14:50:33+02:00 (13 years ago)
- Location:
- branches/ORCHIDEE_EXT/ORCHIDEE
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ORCHIDEE_EXT/ORCHIDEE/src_sechiba/intersurf.f90
r326 r335 5433 5433 & TRIM("kg C m-2"), iim,jjm, hist_hori_id, & 5434 5434 & 1,1,1, -99,32, ave(1), dt, hist_dt) 5435 ! Carbon Mass Variation 5436 CALL histdef (hist_id_stom_IPCC, & 5437 & TRIM("cMassVariation"), & 5438 & TRIM("Terrestrial Carbon Mass Variation"), & 5439 & TRIM("kg C m-2 s-1"), iim,jjm, hist_hori_id, & 5440 & 1,1,1, -99,32, ave(1), dt, hist_dt) 5435 5441 ! Leaf Area Fraction 5436 5442 CALL histdef (hist_id_stom_IPCC, & -
branches/ORCHIDEE_EXT/ORCHIDEE/src_stomate/stomate.f90
r311 r335 245 245 ! This variable must be .TRUE. once a year 246 246 LOGICAL, SAVE :: EndOfYear=.FALSE. 247 !!$ ! Land cover change flag248 !!$ LOGICAL,SAVE :: lcchange=.FALSE.249 247 ! Do update of monthly variables ? 250 248 ! This variable must be .TRUE. once a month 251 249 LOGICAL, SAVE :: EndOfMonth=.FALSE. 252 PUBLIC dt_days, day_counter, date, do_slow, EndOfYear !, lcchange250 PUBLIC dt_days, day_counter, date, do_slow, EndOfYear 253 251 254 252 … … 313 311 ! harvest above ground biomass for agriculture 314 312 REAL(r_std),ALLOCATABLE,SAVE,DIMENSION(:) :: harvest_above 313 314 ! Carbon Mass total 315 REAL(r_std),ALLOCATABLE,SAVE,DIMENSION(:) :: carb_mass_total 315 316 316 317 CONTAINS … … 627 628 & carbon, black_carbon, lignin_struc,turnover_time,& 628 629 & prod10,prod100,flux10, flux100, & 629 & convflux, cflux_prod10, cflux_prod100, bm_to_litter )630 & convflux, cflux_prod10, cflux_prod100, bm_to_litter, carb_mass_total) 630 631 631 632 ! 1.4 read the boundary conditions … … 1006 1007 & carbon, black_carbon, lignin_struc,turnover_time,& 1007 1008 & prod10,prod100,flux10, flux100, & 1008 & convflux, cflux_prod10, cflux_prod100, bm_to_litter )1009 & convflux, cflux_prod10, cflux_prod100, bm_to_litter, carb_mass_total) 1009 1010 1010 1011 IF (ldforcing_write .AND. TRIM(forcing_name) /= 'NONE' ) THEN … … 1334 1335 & t_photo_min, t_photo_opt, t_photo_max,bm_to_litter,& 1335 1336 & prod10, prod100, flux10, flux100, veget_cov_max_new,& 1336 & convflux, cflux_prod10, cflux_prod100, harvest_above, lcchange,&1337 & convflux, cflux_prod10, cflux_prod100, harvest_above, carb_mass_total, lcchange,& 1337 1338 & fpc_max) 1338 1339 … … 1990 1991 l_error = l_error .OR. (ier.NE.0) 1991 1992 ALLOCATE (harvest_above(kjpindex), stat=ier) 1993 l_error = l_error .OR. (ier.NE.0) 1994 ALLOCATE (carb_mass_total(kjpindex), stat=ier) 1992 1995 l_error = l_error .OR. (ier.NE.0) 1993 1996 ALLOCATE (soilcarbon_input_daily(kjpindex,ncarb,nvm), stat=ier) … … 2480 2483 ALLOCATE(lai_fm_g(nbp_glo,nvm,nsfm),stat=ier) 2481 2484 l_error = l_error .OR. (ier /= 0) 2485 ELSE 2486 ALLOCATE(clay_fm_g(0,nsfm),stat=ier) 2487 ALLOCATE(humrel_daily_fm_g(0,nvm,nsfm),stat=ier) 2488 ALLOCATE(litterhum_daily_fm_g(0,nsfm),stat=ier) 2489 ALLOCATE(t2m_daily_fm_g(0,nsfm),stat=ier) 2490 ALLOCATE(t2m_min_daily_fm_g(0,nsfm),stat=ier) 2491 ALLOCATE(tsurf_daily_fm_g(0,nsfm),stat=ier) 2492 ALLOCATE(tsoil_daily_fm_g(0,nbdl,nsfm),stat=ier) 2493 ALLOCATE(soilhum_daily_fm_g(0,nbdl,nsfm),stat=ier) 2494 ALLOCATE(precip_fm_g(0,nsfm),stat=ier) 2495 ALLOCATE(gpp_daily_fm_g(0,nvm,nsfm),stat=ier) 2496 ALLOCATE(resp_maint_part_fm_g(0,nvm,nparts,nsfm),stat=ier) 2497 ALLOCATE(veget_fm_g(0,nvm,nsfm),stat=ier) 2498 ALLOCATE(veget_max_fm_g(0,nvm,nsfm),stat=ier) 2499 ALLOCATE(lai_fm_g(0,nvm,nsfm),stat=ier) 2482 2500 ENDIF 2483 2501 ! -
branches/ORCHIDEE_EXT/ORCHIDEE/src_stomate/stomate_io.f90
r257 r335 55 55 & carbon, black_carbon, lignin_struc,turnover_time, & 56 56 & prod10,prod100,flux10, flux100, & 57 & convflux, cflux_prod10, cflux_prod100, bm_to_litter )57 & convflux, cflux_prod10, cflux_prod100, bm_to_litter, carb_mass_total) 58 58 !--------------------------------------------------------------------- 59 59 !- read start file … … 275 275 REAL(r_std), DIMENSION(npts), INTENT(out) :: cflux_prod100 276 276 REAL(r_std),DIMENSION(npts,nvm,nparts),INTENT(out) :: bm_to_litter 277 REAL(r_std),DIMENSION(npts),INTENT(out) :: carb_mass_total 277 278 !--------------------------------------------------------------------- 278 279 IF (bavard >= 3) WRITE(numout,*) 'Entering readstart' … … 940 941 ENDDO 941 942 943 carb_mass_total(:) = val_exp 944 var_name = 'carb_mass_total' 945 CALL restget_p (rest_id_stomate, var_name, nbp_glo, 1 , 1, itime, & 946 & .TRUE., carb_mass_total, 'gather', nbp_glo, index_g) 947 IF (ALL(carb_mass_total(:) == val_exp)) carb_mass_total(:) = zero 942 948 !- 943 949 … … 971 977 & carbon, black_carbon, lignin_struc, turnover_time, & 972 978 & prod10,prod100 ,flux10, flux100, & 973 & convflux, cflux_prod10, cflux_prod100, bm_to_litter )979 & convflux, cflux_prod10, cflux_prod100, bm_to_litter, carb_mass_total) 974 980 975 981 !--------------------------------------------------------------------- … … 1179 1185 REAL(r_std), DIMENSION(npts), INTENT(in) :: cflux_prod100 1180 1186 REAL(r_std),DIMENSION(npts,nvm,nparts),INTENT(in) :: bm_to_litter 1187 REAL(r_std),DIMENSION(npts),INTENT(in) :: carb_mass_total 1181 1188 !--------------------------------------------------------------------- 1182 1189 IF (bavard >= 3) WRITE(numout,*) 'Entering writerestart' … … 1643 1650 & bm_to_litter(:,:,k), 'scatter', nbp_glo, index_g) 1644 1651 ENDDO 1652 var_name = 'carb_mass_total' 1653 CALL restput_p (rest_id_stomate, var_name, nbp_glo, 1, 1, itime, & 1654 & carb_mass_total, 'scatter', nbp_glo, index_g) 1645 1655 !- 1646 1656 IF (bavard >= 4) WRITE(numout,*) 'Leaving writerestart' … … 1733 1743 LOGICAL :: do_again 1734 1744 !--------------------------------------------------------------------- 1735 ! 1745 !- 1736 1746 ! 1 If this is the first call, calculate the reference temperature 1737 1747 ! and keep it in memory -
branches/ORCHIDEE_EXT/ORCHIDEE/src_stomate/stomate_lpj.f90
r304 r335 93 93 t_photo_min, t_photo_opt, t_photo_max,bm_to_litter, & 94 94 prod10,prod100,flux10, flux100, veget_max_new, & 95 convflux,cflux_prod10,cflux_prod100, harvest_above, lcchange, &95 convflux,cflux_prod10,cflux_prod100, harvest_above, carb_mass_total, lcchange, & 96 96 fpc_max) 97 97 … … 296 296 ! harvest above ground biomass for agriculture 297 297 REAL(r_std), DIMENSION(npts), INTENT(inout) :: harvest_above 298 ! Carbon Mass total 299 REAL(r_std), DIMENSION(npts), INTENT(inout) :: carb_mass_total 298 300 299 301 ! land cover change flag … … 322 324 ! total soil carbon (gC/(m**2)) 323 325 REAL(r_std), DIMENSION(npts,nvm) :: tot_soil_carb 326 ! Carbon Mass variation 327 REAL(r_std), DIMENSION(npts) :: carb_mass_variation 324 328 ! crown area of individuals (m**2) 325 329 REAL(r_std), DIMENSION(npts,nvm) :: cn_ind … … 752 756 & bm_to_litter(:,:,iheartabove) + bm_to_litter(:,:,iroot) + & 753 757 & bm_to_litter(:,:,ifruit) + bm_to_litter(:,:,icarbres) 758 759 carb_mass_variation(:)=-carb_mass_total(:) 760 carb_mass_total(:)=SUM((tot_live_biomass+tot_litter_carb+tot_soil_carb)*veget_max,dim=2) + & 761 & (prod10_total + prod100_total) 762 carb_mass_variation(:)=carb_mass_total(:)+carb_mass_variation(:) 754 763 755 764 ! … … 917 926 CALL histwrite (hist_id_stomate_IPCC, "cProduct", itime, & 918 927 vartmp, npts, hori_index) 928 vartmp(:)=carb_mass_variation/1e3/one_day*contfrac 929 CALL histwrite (hist_id_stomate_IPCC, "cMassVariation", itime, & 930 vartmp, npts, hori_index) 919 931 vartmp(:)=SUM(lai*veget_max,dim=2)*contfrac 920 932 CALL histwrite (hist_id_stomate_IPCC, "lai", itime, &
Note: See TracChangeset
for help on using the changeset viewer.