119 | | !DSGdebug_01a |
120 | | }}} |
121 | | |
| 124 | !DSGdebug_01a biomass(ipts,j,ilabile,icarbon) + b_inc_tot |
| 125 | }}} |
| 126 | [...] |
| 127 | {{{ |
| 128 | !! 5.3.7 Don't grow wood, use C to fill labile pool |
| 129 | ELSEIF ( (.NOT. grow_wood) .AND. (b_inc_tot .GT. min_stomate) ) THEN |
| 130 | |
| 131 | ! Calculate the C that needs to be distributed to the |
| 132 | ! labile pool. The fraction is proportional to the ratio |
| 133 | ! between the total allocatable biomass and the unallocated |
| 134 | ! biomass per tree (b_inc now contains the unallocated |
| 135 | ! biomass). At the end of the allocation scheme bm_alloc_tot |
| 136 | ! is substracted from the labile biomass pool to update the |
| 137 | ! biomass pool (biomass(:,:,ilabile) = biomass(:,:,ilabile) - |
| 138 | ! bm_alloc_tot(:,:)). At that point, the scheme puts the |
| 139 | ! unallocated b_inc into the labile pool. What we |
| 140 | ! want is that the unallocated fraction is removed from |
| 141 | ! ::bm_alloc_tot such that only the allocated C is removed |
| 142 | ! from the labile pool. b_inc_tot will be moved back into |
| 143 | ! the labile pool in 5.2.11 |
| 144 | bm_alloc_tot(ipts,j) = bm_alloc_tot(ipts,j) - b_inc_tot |
| 145 | |
| 146 | !DSGdebug_01a We didn't remove bm_alloc_tot yet from labile so no |
| 147 | !need to correct labile pool for changes in bm_alloc_tot (which is residual) |
| 148 | !DSGdebug_01a biomass(ipts,j,ilabile,icarbon) = biomass(ipts,j,ilabile,icarbon) + & |
| 149 | !DSGdebug_01a b_inc_tot |
| 150 | |
| 151 | }}} |
| 152 | [...] |
| 153 | {{{ |
| 154 | ELSE |
| 155 | |
| 156 | ! Not enough carbon to pay the deficit |
| 157 | ! There is likely a bigger problem somewhere in |
| 158 | ! this routine |
| 159 | WRITE(numout,*) 'WARNING 23: PFT, ipts: ',j,ipts |
| 160 | CALL ipslerr_p (3,'growth_fun_all',& |
| 161 | 'WARNING 23: numerical problem overspending ',& |
| 162 | 'when trying to account for unallocatable C ','') |
| 163 | |
| 164 | ENDIF |
| 165 | |
| 166 | ELSE |
| 167 | |
| 168 | !DSGdebug_01a We didn't remove bm_alloc_tot yet from labile so no |
| 169 | !need to correct labile pool for changes in bm_alloc_tot (which is residual) |
| 170 | !DSGdebug_01a ! Move the unallocated carbon back into the labile pool |
| 171 | !DSGdebug_01a biomass(ipts,j,ilabile,icarbon) = & |
| 172 | !DSGdebug_01a biomass(ipts,j,ilabile,icarbon) + residual(ipts,j) |
| 173 | |
| 174 | ENDIF |
| 175 | |
| 176 | }}} |