Skip to content

Add switch to set region-specific CDR bounds - #2444

Open
tabeado wants to merge 3 commits into
remindmodel:developfrom
tabeado:fixes
Open

Add switch to set region-specific CDR bounds#2444
tabeado wants to merge 3 commits into
remindmodel:developfrom
tabeado:fixes

Conversation

@tabeado

@tabeado tabeado commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Purpose of this PR

This PR adds the possibility to set region- and time-specific bounds for novel CDR (i.e. excluding land-use change emissions). This is particularly important for NPi runs, setting limitations on novel CDR for EUR based on the EU-ETS revision proposal.

  • add the variable vm_emiCdrNovel, calculated in core/equations.
  • new switch cm_CDRregiLimit: limit the amount of novel CDR until a certain time step. It is read in regipol/regiCarbonPrice/declarations as the new p47_CDRregiLimit(ttot, all_regi) and applied to vm_emiCdrNovel in regipol/regiCarbonPrice/bounds
  • this replaces the switch cm_EURCDRmax which applied only to EUR and had no time variability

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

  • ☑️ GAMS Code
  • ◻️ R-scripts
  • ◻️ Documentation (GAMS incode documentation, comments, tutorials)
  • ◻️ Input data / CES parameters
  • ◻️ Tests, CI/CD (continuous integration/deployment)
  • ☑️ Configuration (switches in main.gms, default.cfg, and scenario_config*.csv files)
  • ◻️ Other (please give a description)

Impact

  • ◻️ Bug fix
  • ◻️ Refactoring
  • ☑️ New feature
  • ◻️ Change of parameter values or input data (including CES parameters)
  • ☑️ Minor change (default scenarios show only small differences)
  • ◻️ Fundamental change of results of default scenarios

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
.

  • I executed the automated model tests (make test) after my final commit and all tests pass (FAIL 0)
  • I adjusted the reporting in remind2 if and where it was needed
  • I adjusted the madrat packages (mrremind and other packages involved) for input data generation if and where it was needed
  • My code follows the coding etiquette
  • I explained my changes within the PR, particularly in hard-to-understand areas
  • I checked that the in-code documentation is up-to-date
  • I adjusted forbiddenColumnNames in readCheckScenarioConfig.R in case the PR leads to deprecated switches
  • I updated the CHANGELOG.md correctly (added, changed, fixed, removed, input data/calibration)

Further information (optional)

  • Runs with these changes are here: /p/tmp/tabeado/remind_fixes/remind
  • Comparison of results (what changes by this PR?):

@tabeado
tabeado requested a review from lecfab August 26, 2026 16:22
@tabeado
tabeado marked this pull request as ready for review August 27, 2026 08:29
@tabeado
tabeado requested review from VerenaHof and amerfort August 27, 2026 08:29
@tabeado

tabeado commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

Results with updated implementation, limit set until 2100, and bound set to 75 to reflect expected ETS-integration in EU-ETS and the UK:

image image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant