Skip to content

Potentially incorrect allocation to fine roots in PRTAllometricCarbonMod.F90? #784

@mpaiao

Description

@mpaiao

I was looking at this code and it seems to me that allocation to fine roots would be underestimated:

if( (carbon_balance > nearzero ) .and. (total_c_demand>nearzero)) then
leaf_c_flux = min(leaf_c_demand, &
carbon_balance*(leaf_c_demand/total_c_demand))
carbon_balance = carbon_balance - leaf_c_flux
leaf_c(iexp_leaf) = leaf_c(iexp_leaf) + leaf_c_flux
fnrt_c_flux = min(fnrt_c_demand, &
carbon_balance*(fnrt_c_demand/total_c_demand))
carbon_balance = carbon_balance - fnrt_c_flux
fnrt_c = fnrt_c + fnrt_c_flux
end if

Carbon balance is subtracted after finding leaf_c_flux, and then scaled by fnrt_c_demand/total_c_demand, so the relative demand of fine root demand is applied in a lower carbon balance value. Shouldn't the code be something like the one below?

       leaf_c_flux    = min(leaf_c_demand, &
                        carbon_balance*(leaf_c_demand/total_c_demand))
       fnrt_c_flux    = min(fnrt_c_demand, &
                            carbon_balance*(fnrt_c_demand/total_c_demand))
       leaf_c(iexp_leaf) = leaf_c(iexp_leaf) + leaf_c_flux
       fnrt_c         = fnrt_c + fnrt_c_flux
       carbon_balance = carbon_balance - leaf_c_flux - fnrt_c_flux

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions