| 671 | == 15. Mass conservation issue: stomate_turnover.f90 == |
| 672 | The calculation of the resorption from ileaf and iroot to ilabile uses the stocks of ileaf and iroot. Therefore the calculation have to be done before the stocks of ileaf and iroot are calculated. |
| 673 | |
| 674 | {{{ |
| 675 | ! Turnover at tree level (gC tree-1) |
| 676 | DO icirc = 1,ncirc |
| 677 | |
| 678 | WHERE ( senescence(:,ivm) ) |
| 679 | |
| 680 | !DSGdebug_16: has to be updated before circ_class_biomass is updated: |
| 681 | ! add the recycled nutrients to labile pool: |
| 682 | circ_class_biomass(:,ivm,icirc,ilabile,initrogen) = & |
| 683 | circ_class_biomass(:,ivm,icirc,ilabile,initrogen) & |
| 684 | + circ_class_biomass(:,ivm,icirc,ileaf,initrogen) * & ! add from leaves |
| 685 | !DSGdebug_12 (un - dt / leaffall(ivm) * recycle_leaf) & |
| 686 | dt / leaffall(ivm) * recycle_leaf(ivm) & |
| 687 | + circ_class_biomass(:,ivm,icirc,iroot,initrogen) * & ! add from roots |
| 688 | !DSGdebug_12 (un - dt / leaffall(ivm) * recycle_root) |
| 689 | dt / leaffall(ivm) * recycle_root(ivm) |
| 690 | |
| 691 | circ_class_biomass(:,ivm,icirc,ilabile,iphosphorus) = & |
| 692 | circ_class_biomass(:,ivm,icirc,ilabile,iphosphorus) & |
| 693 | + circ_class_biomass(:,ivm,icirc,ileaf,iphosphorus) * & ! add from leaves |
| 694 | !DSGdebug_12 (un - dt / leaffall(ivm) * p_recycle_leaf) & |
| 695 | ( dt / leaffall(ivm)) * p_recycle_leaf(ivm) & |
| 696 | + circ_class_biomass(:,ivm,icirc,iroot,iphosphorus) * & ! add from roots |
| 697 | !DSGdebug_12 (un - dt / leaffall(ivm) * p_recycle_root) |
| 698 | ( dt / leaffall(ivm)) * p_recycle_root(ivm) |
| 699 | |
| 700 | !DSGdebug_12 |
| 701 | |
| 702 | |
| 703 | |
| 704 | circ_class_biomass(:,ivm,icirc,ileaf,icarbon) = circ_class_biomass(:,ivm,icirc,ileaf,icarbon) * & |
| 705 | (un - dt / leaffall(ivm) ) |
| 706 | circ_class_biomass(:,ivm,icirc,iroot,icarbon) = circ_class_biomass(:,ivm,icirc,iroot,icarbon) * & |
| 707 | (un - dt / leaffall(ivm)) |
| 708 | |
| 709 | circ_class_biomass(:,ivm,icirc,ileaf,initrogen) = circ_class_biomass(:,ivm,icirc,ileaf,initrogen) * & |
| 710 | (un - dt / leaffall(ivm)) |
| 711 | circ_class_biomass(:,ivm,icirc,iroot,initrogen) = circ_class_biomass(:,ivm,icirc,iroot,initrogen) * & |
| 712 | (un - dt / leaffall(ivm)) |
| 713 | |
| 714 | circ_class_biomass(:,ivm,icirc,ileaf,iphosphorus) = circ_class_biomass(:,ivm,icirc,ileaf,iphosphorus) * & |
| 715 | (un - dt / leaffall(ivm)) |
| 716 | circ_class_biomass(:,ivm,icirc,iroot,iphosphorus) = circ_class_biomass(:,ivm,icirc,iroot,iphosphorus) * & |
| 717 | (un - dt / leaffall(ivm)) |
| 718 | !DSGdebug_16 ! add the recycled nutrients to labile pool: |
| 719 | !DSGdebug_16 circ_class_biomass(:,ivm,icirc,ilabile,initrogen) = & |
| 720 | !DSGdebug_16 circ_class_biomass(:,ivm,icirc,ilabile,initrogen) & |
| 721 | !DSGdebug_16 + circ_class_biomass(:,ivm,icirc,ileaf,initrogen) * & ! add from leaves |
| 722 | !DSGdebug_16 !DSGdebug_12 (un - dt / leaffall(ivm) * recycle_leaf) & |
| 723 | !DSGdebug_16 dt / leaffall(ivm) * recycle_leaf(ivm) & |
| 724 | !DSGdebug_16 + circ_class_biomass(:,ivm,icirc,iroot,initrogen) * & ! add from roots |
| 725 | !DSGdebug_16 !DSGdebug_12 (un - dt / leaffall(ivm) * recycle_root) |
| 726 | !DSGdebug_16 dt / leaffall(ivm) * recycle_root(ivm) |
| 727 | |
| 728 | !DSGdebug_16 circ_class_biomass(:,ivm,icirc,ilabile,iphosphorus) = & |
| 729 | !DSGdebug_16 circ_class_biomass(:,ivm,icirc,ilabile,iphosphorus) & |
| 730 | !DSGdebug_16 + circ_class_biomass(:,ivm,icirc,ileaf,iphosphorus) * & ! add from leaves |
| 731 | !DSGdebug_16 !DSGdebug_12 (un - dt / leaffall(ivm) * p_recycle_leaf) & |
| 732 | !DSGdebug_16 ( dt / leaffall(ivm)) * p_recycle_leaf(ivm) & |
| 733 | !DSGdebug_16 + circ_class_biomass(:,ivm,icirc,iroot,iphosphorus) * & ! add from roots |
| 734 | !DSGdebug_16 !DSGdebug_12 (un - dt / leaffall(ivm) * p_recycle_root) |
| 735 | !DSGdebug_16 ( dt / leaffall(ivm)) * p_recycle_root(ivm) |
| 736 | !DSGdebug_16 !DSGdebug_12 |
| 737 | }}} |