This was noticed in the v2 offline feature simulations. It seems to be related to the bolded section in the code below from components/elm/src/biogeochem/ComputeSeedMod.F90 dealing with allocating seed C, N and P to display, storage and xfer components of the leaf.
pleaf, pstorage, and pxfer are computed for C,N and P separately. If tot_leaf is very small these proportions may be different for C,N,P, causing C:N and C:P ratios to diverge from the expected fixed values in the parameter file. In rare cases, this leads to negative N or P and eventual balance errors. Removing the bolded code and always allocating 100% to either leaf or storage seems to fix this issue.
if (tot_leaf == 0._r8 .or. ignore_current_state) then
if (veg_vp%evergreen(pft_type) == 1._r8) then
pleaf = 1._r8
else
pstorage = 1._r8
end if
else
pleaf = leaf /tot_leaf
pstorage = leaf_storage/tot_leaf
pxfer = leaf_xfer /tot_leaf
end if
This was noticed in the v2 offline feature simulations. It seems to be related to the bolded section in the code below from components/elm/src/biogeochem/ComputeSeedMod.F90 dealing with allocating seed C, N and P to display, storage and xfer components of the leaf. pleaf, pstorage, and pxfer are computed for C,N and P separately. If tot_leaf is very small these proportions may be different for C,N,P, causing C:N and C:P ratios to diverge from the expected fixed values in the parameter file. In rare cases, this leads to negative N or P and eventual balance errors. Removing the bolded code and always allocating 100% to either leaf or storage seems to fix this issue.