Add alternative biomass allocation criterion to scenario with exogenous biomass limit - #2390
Merged
Merged
Conversation
merfort
marked this pull request as ready for review
July 3, 2026 12:41
robertpietzcker
approved these changes
Jul 3, 2026
robertpietzcker
left a comment
Contributor
There was a problem hiding this comment.
The results look good, and from a brief reading of the code it seems reasonable.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose of this PR
[This PR was created with help of AI and manually reviewed and tested afterwards]
Quick-fix for
cm_maxProdBiolc: instead of distributing the whole global lignocellulosic biomass potential to regions purely by equal marginal supply costs, a slice of up to 25 EJ/yr is now allocated by hardcoded shares of 2020 total agricultural crop production (from a recent coupled REMIND-MAgPIE NPi run). The remainder is still distributed via the marginal-cost inversion. The slice is scaled down proportionally when the total bound is smaller than 25 EJ/yr, and theimplementation works for both the H12 and EU21 region resolutions (values are hardcoded at the level of the 12 H12 region groups; EUR/NEU are split to their EU21 sub-regions by 2020 MAgPIE lignocellulosic biomass production from a look-up table, as this is already available in the read-in input data. Global totals are conserved.
This PR is the near-term quick-fix for this issue. There you also find plots showing how the new bound works. Medium-term we want to implement a cleaner solution.
Type of change
Indicate the items relevant for your PR by replacing ◻️ with ☑️.
Do not delete any lines. This makes it easier to understand which areas are affected by your changes and which are not.
Parts concerned
Impact
Checklist
Do not delete any line. Leave unfinished elements unchecked so others know how far along you are.
In the end all checkboxes must be ticked before you can merge.
make test) after my final commit and all tests pass (FAIL 0)remind2if and where it was neededforbiddenColumnNamesin readCheckScenarioConfig.R in case the PR leads to deprecated switchesCHANGELOG.mdcorrectly (added, changed, fixed, removed, input data/calibration)Further information (optional)
Runs with these changes are here:
/p/tmp/merfort/REMIND_bio_bound_by_production/remind/outputComparison of results (what changes by this PR?):
SSP2−NPi2025- original NPi runSSP2−NPi2025.1- NPi run with updated boundsSSP2−PkBudg750_100EJ_orig- original PkBudg750 runSSP2−PkBudg750_100EJ- PkBudg750 run with updated boundsThe full compare scenarios PDF can be found here:
compScen-NPi2025-PkBudg750_old-new-2026-07-03_14.29.31-H12.pdfFor more information check the development issue.