@@ -274,13 +274,13 @@ subroutine CarbonStateUpdate1(bounds, &
274274 veg_cs% leafc_xfer(p) = veg_cs% leafc_xfer(p) - veg_cf% leafc_xfer_to_leafc(p)* dt
275275 veg_cs% frootc(p) = veg_cs% frootc(p) + veg_cf% frootc_xfer_to_frootc(p)* dt
276276 veg_cs% frootc_xfer(p) = veg_cs% frootc_xfer(p) - veg_cf% frootc_xfer_to_frootc(p)* dt
277- if (woody(ivt(p)) == 1._r8 ) then
277+ veg_cs% livecrootc(p) = veg_cs% livecrootc(p) + veg_cf% livecrootc_xfer_to_livecrootc(p)* dt
278+ veg_cs% livecrootc_xfer(p) = veg_cs% livecrootc_xfer(p) - veg_cf% livecrootc_xfer_to_livecrootc(p)* dt
279+ if (woody(ivt(p)) >= 1.0_r8 ) then
278280 veg_cs% livestemc(p) = veg_cs% livestemc(p) + veg_cf% livestemc_xfer_to_livestemc(p)* dt
279281 veg_cs% livestemc_xfer(p) = veg_cs% livestemc_xfer(p) - veg_cf% livestemc_xfer_to_livestemc(p)* dt
280282 veg_cs% deadstemc(p) = veg_cs% deadstemc(p) + veg_cf% deadstemc_xfer_to_deadstemc(p)* dt
281283 veg_cs% deadstemc_xfer(p) = veg_cs% deadstemc_xfer(p) - veg_cf% deadstemc_xfer_to_deadstemc(p)* dt
282- veg_cs% livecrootc(p) = veg_cs% livecrootc(p) + veg_cf% livecrootc_xfer_to_livecrootc(p)* dt
283- veg_cs% livecrootc_xfer(p) = veg_cs% livecrootc_xfer(p) - veg_cf% livecrootc_xfer_to_livecrootc(p)* dt
284284 veg_cs% deadcrootc(p) = veg_cs% deadcrootc(p) + veg_cf% deadcrootc_xfer_to_deadcrootc(p)* dt
285285 veg_cs% deadcrootc_xfer(p) = veg_cs% deadcrootc_xfer(p) - veg_cf% deadcrootc_xfer_to_deadcrootc(p)* dt
286286 end if
@@ -302,6 +302,8 @@ subroutine CarbonStateUpdate1(bounds, &
302302 veg_cs% deadstemc(p) = veg_cs% deadstemc(p) + veg_cf% livestemc_to_deadstemc(p)* dt
303303 veg_cs% livecrootc(p) = veg_cs% livecrootc(p) - veg_cf% livecrootc_to_deadcrootc(p)* dt
304304 veg_cs% deadcrootc(p) = veg_cs% deadcrootc(p) + veg_cf% livecrootc_to_deadcrootc(p)* dt
305+ else ! nonwoody rhizome turnover (B Sulman)
306+ veg_cs% livecrootc(p) = veg_cs% livecrootc(p) - veg_cf% livecrootc_to_litter(p)* dt
305307 end if
306308 if (ivt(p) >= npcropmin) then ! skip 2 generic crops
307309 veg_cs% livestemc(p) = veg_cs% livestemc(p) - veg_cf% livestemc_to_litter(p)* dt
@@ -315,9 +317,9 @@ subroutine CarbonStateUpdate1(bounds, &
315317 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_to_xsmrpool(p)* dt
316318 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% leaf_curmr(p)* dt
317319 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% froot_curmr(p)* dt
318- if (woody(ivt(p)) == 1._r8 ) then
319- veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% livestem_curmr(p)* dt
320320 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% livecroot_curmr(p)* dt
321+ if (woody(ivt(p)) >= 1.0_r8 ) then
322+ veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% livestem_curmr(p)* dt
321323 end if
322324 if (ivt(p) >= npcropmin) then ! skip 2 generic crops
323325 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% livestem_curmr(p)* dt
@@ -330,12 +332,12 @@ subroutine CarbonStateUpdate1(bounds, &
330332 veg_cs% xsmrpool(p) = veg_cs% xsmrpool(p) + veg_cf% cpool_to_xsmrpool(p)* dt
331333 veg_cs% xsmrpool(p) = veg_cs% xsmrpool(p) - veg_cf% leaf_xsmr(p)* dt
332334 veg_cs% xsmrpool(p) = veg_cs% xsmrpool(p) - veg_cf% froot_xsmr(p)* dt
335+ veg_cs% xsmrpool(p) = veg_cs% xsmrpool(p) - veg_cf% livecroot_xsmr(p)* dt
333336 if (nu_com .ne. ' RD' ) then
334337 veg_cs% xsmrpool(p) = veg_cs% xsmrpool(p) - veg_cf% xsmrpool_turnover(p)* dt
335338 end if
336339 if (woody(ivt(p)) == 1._r8 ) then
337340 veg_cs% xsmrpool(p) = veg_cs% xsmrpool(p) - veg_cf% livestem_xsmr(p)* dt
338- veg_cs% xsmrpool(p) = veg_cs% xsmrpool(p) - veg_cf% livecroot_xsmr(p)* dt
339341 end if
340342 if (ivt(p) >= npcropmin) then ! skip 2 generic crops
341343 veg_cs% xsmrpool(p) = veg_cs% xsmrpool(p) - veg_cf% livestem_xsmr(p)* dt
@@ -355,7 +357,11 @@ subroutine CarbonStateUpdate1(bounds, &
355357 veg_cs% frootc(p) = veg_cs% frootc(p) + veg_cf% cpool_to_frootc(p)* dt
356358 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_to_frootc_storage(p)* dt
357359 veg_cs% frootc_storage(p) = veg_cs% frootc_storage(p) + veg_cf% cpool_to_frootc_storage(p)* dt
358- if (woody(ivt(p)) == 1._r8 ) then
360+ veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_to_livecrootc(p)* dt
361+ veg_cs% livecrootc(p) = veg_cs% livecrootc(p) + veg_cf% cpool_to_livecrootc(p)* dt
362+ veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_to_livecrootc_storage(p)* dt
363+ veg_cs% livecrootc_storage(p) = veg_cs% livecrootc_storage(p) + veg_cf% cpool_to_livecrootc_storage(p)* dt
364+ if (woody(ivt(p)) >= 1.0_r8 ) then
359365 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_to_livestemc(p)* dt
360366 veg_cs% livestemc(p) = veg_cs% livestemc(p) + veg_cf% cpool_to_livestemc(p)* dt
361367 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_to_livestemc_storage(p)* dt
@@ -364,10 +370,6 @@ subroutine CarbonStateUpdate1(bounds, &
364370 veg_cs% deadstemc(p) = veg_cs% deadstemc(p) + veg_cf% cpool_to_deadstemc(p)* dt
365371 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_to_deadstemc_storage(p)* dt
366372 veg_cs% deadstemc_storage(p) = veg_cs% deadstemc_storage(p) + veg_cf% cpool_to_deadstemc_storage(p)* dt
367- veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_to_livecrootc(p)* dt
368- veg_cs% livecrootc(p) = veg_cs% livecrootc(p) + veg_cf% cpool_to_livecrootc(p)* dt
369- veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_to_livecrootc_storage(p)* dt
370- veg_cs% livecrootc_storage(p) = veg_cs% livecrootc_storage(p) + veg_cf% cpool_to_livecrootc_storage(p)* dt
371373 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_to_deadcrootc(p)* dt
372374 veg_cs% deadcrootc(p) = veg_cs% deadcrootc(p) + veg_cf% cpool_to_deadcrootc(p)* dt
373375 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_to_deadcrootc_storage(p)* dt
@@ -387,10 +389,10 @@ subroutine CarbonStateUpdate1(bounds, &
387389 ! growth respiration fluxes for current growth
388390 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_leaf_gr(p)* dt
389391 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_froot_gr(p)* dt
390- if (woody(ivt(p)) == 1._r8 ) then
392+ veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_livecroot_gr(p)* dt
393+ if (woody(ivt(p)) >= 1.0_r8 ) then
391394 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_livestem_gr(p)* dt
392395 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_deadstem_gr(p)* dt
393- veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_livecroot_gr(p)* dt
394396 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_deadcroot_gr(p)* dt
395397 end if
396398 if (ivt(p) >= npcropmin) then ! skip 2 generic crops
@@ -401,10 +403,10 @@ subroutine CarbonStateUpdate1(bounds, &
401403 ! growth respiration for transfer growth
402404 veg_cs% gresp_xfer(p) = veg_cs% gresp_xfer(p) - veg_cf% transfer_leaf_gr(p)* dt
403405 veg_cs% gresp_xfer(p) = veg_cs% gresp_xfer(p) - veg_cf% transfer_froot_gr(p)* dt
404- if (woody(ivt(p)) == 1._r8 ) then
406+ veg_cs% gresp_xfer(p) = veg_cs% gresp_xfer(p) - veg_cf% transfer_livecroot_gr(p)* dt
407+ if (woody(ivt(p)) >= 1.0_r8 ) then
405408 veg_cs% gresp_xfer(p) = veg_cs% gresp_xfer(p) - veg_cf% transfer_livestem_gr(p)* dt
406409 veg_cs% gresp_xfer(p) = veg_cs% gresp_xfer(p) - veg_cf% transfer_deadstem_gr(p)* dt
407- veg_cs% gresp_xfer(p) = veg_cs% gresp_xfer(p) - veg_cf% transfer_livecroot_gr(p)* dt
408410 veg_cs% gresp_xfer(p) = veg_cs% gresp_xfer(p) - veg_cf% transfer_deadcroot_gr(p)* dt
409411 end if
410412 if (ivt(p) >= npcropmin) then ! skip 2 generic crops
@@ -415,10 +417,10 @@ subroutine CarbonStateUpdate1(bounds, &
415417 ! growth respiration at time of storage
416418 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_leaf_storage_gr(p)* dt
417419 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_froot_storage_gr(p)* dt
418- if (woody(ivt(p)) == 1._r8 ) then
420+ veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_livecroot_storage_gr(p)* dt
421+ if (woody(ivt(p)) >= 1.0_r8 ) then
419422 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_livestem_storage_gr(p)* dt
420423 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_deadstem_storage_gr(p)* dt
421- veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_livecroot_storage_gr(p)* dt
422424 veg_cs% cpool(p) = veg_cs% cpool(p) - veg_cf% cpool_deadcroot_storage_gr(p)* dt
423425 end if
424426 if (ivt(p) >= npcropmin) then ! skip 2 generic crops
@@ -435,13 +437,13 @@ subroutine CarbonStateUpdate1(bounds, &
435437 veg_cs% leafc_xfer(p) = veg_cs% leafc_xfer(p) + veg_cf% leafc_storage_to_xfer(p)* dt
436438 veg_cs% frootc_storage(p) = veg_cs% frootc_storage(p) - veg_cf% frootc_storage_to_xfer(p)* dt
437439 veg_cs% frootc_xfer(p) = veg_cs% frootc_xfer(p) + veg_cf% frootc_storage_to_xfer(p)* dt
438- if (woody(ivt(p)) == 1._r8 ) then
440+ veg_cs% livecrootc_storage(p) = veg_cs% livecrootc_storage(p)- veg_cf% livecrootc_storage_to_xfer(p)* dt
441+ veg_cs% livecrootc_xfer(p) = veg_cs% livecrootc_xfer(p) + veg_cf% livecrootc_storage_to_xfer(p)* dt
442+ if (woody(ivt(p)) >= 1.0_r8 ) then
439443 veg_cs% livestemc_storage(p) = veg_cs% livestemc_storage(p) - veg_cf% livestemc_storage_to_xfer(p)* dt
440444 veg_cs% livestemc_xfer(p) = veg_cs% livestemc_xfer(p) + veg_cf% livestemc_storage_to_xfer(p)* dt
441445 veg_cs% deadstemc_storage(p) = veg_cs% deadstemc_storage(p) - veg_cf% deadstemc_storage_to_xfer(p)* dt
442446 veg_cs% deadstemc_xfer(p) = veg_cs% deadstemc_xfer(p) + veg_cf% deadstemc_storage_to_xfer(p)* dt
443- veg_cs% livecrootc_storage(p) = veg_cs% livecrootc_storage(p)- veg_cf% livecrootc_storage_to_xfer(p)* dt
444- veg_cs% livecrootc_xfer(p) = veg_cs% livecrootc_xfer(p) + veg_cf% livecrootc_storage_to_xfer(p)* dt
445447 veg_cs% deadcrootc_storage(p) = veg_cs% deadcrootc_storage(p)- veg_cf% deadcrootc_storage_to_xfer(p)* dt
446448 veg_cs% deadcrootc_xfer(p) = veg_cs% deadcrootc_xfer(p) + veg_cf% deadcrootc_storage_to_xfer(p)* dt
447449 veg_cs% gresp_storage(p) = veg_cs% gresp_storage(p) - veg_cf% gresp_storage_to_xfer(p)* dt
0 commit comments