Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- **52_carbon/35_natveg/32_forestry** Retired workarounds that are no longer needed once the wood calibration is separated from the carbon growth curve: the k-bisection growth-curve calibration, the "natural-origin" secondary-forest carbon blend and harvest floor, and the young-secondary-forest wood-harvest loophole.

### fixed
- **10_land, 29_cropland, 35_natveg** `m_boundfix` fixes to `up` instead of `l`, removed two redundant calls (10_land, 29_cropland tree cover) (no change in results)
- **scripts/npi_ndc** NPI/NDC avoided deforestation and other land conversion bounds now follow the policy targets. Previously, targets were ignored and the bound was frozen at the last observed stock. The minimum stock is now the last observed stock minus the cumulative allowed loss, and the NDC trajectory continues from the NPI trajectory after 2025
- **scripts/calibration/landconversion_cost.R** `restart=TRUE` now reports cropland/pasture calibration-file state independently instead of assuming they match; best-iteration selection now indexes calibration factors by iteration name rather than array position, avoiding potential misalignment

Expand Down
2 changes: 0 additions & 2 deletions modules/10_land/landmatrix_dec18/presolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,3 @@ vm_lu_transitions.fx(j,land_from,"primforest") = 0;
vm_lu_transitions.up(j,"primforest","primforest") = Inf;

*' @stop

m_boundfix(vm_land,(j,land),up,1e-6);
3 changes: 1 addition & 2 deletions modules/29_cropland/detail_apr24/presolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ if (s29_treecover_keep = 1,
v29_treecover.lo(j,ac_est) = 0;
v29_treecover.up(j,ac_est) = Inf;
v29_treecover.fx(j,ac_sub) = pc29_treecover(j,ac_sub);
m_boundfix(v29_treecover,(j,ac_sub),l,1e-6);

* set treecover penalty
if (m_year(t) <= s29_treecover_scenario_start,
Expand Down Expand Up @@ -119,7 +118,7 @@ else
* Bounds for fallow land
vm_fallow.lo(j) = 0;
vm_fallow.up(j) = p29_avl_cropland(t,j);
m_boundfix(vm_fallow,(j),l,1e-6);
m_boundfix(vm_fallow,(j),up,1e-6);

* Update biodiversity value
vm_bv.l(j,"crop_fallow",potnatveg) =
Expand Down
4 changes: 2 additions & 2 deletions modules/35_natveg/pot_forest_may24/presolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ v35_secdforest.lo(j,ac_sub) = max((1-s35_natveg_harvest_shr) * pc35_secdforest(j
);
* upper bound
v35_secdforest.up(j,ac_sub) = pc35_secdforest(j,ac_sub);
m_boundfix(v35_secdforest,(j,ac_sub),l,1e-6);
m_boundfix(v35_secdforest,(j,ac_sub),up,1e-6);

* set restoration target
p35_land_restoration(j,"secdforest") = pm_land_conservation(t,j,"secdforest","restore");
Expand Down Expand Up @@ -197,7 +197,7 @@ vm_land_other.up(j,"othernat",ac_sub) = pc35_land_other(j,"othernat",ac_sub);
* No shr limit on other (only secdforest)
vm_land_other.up(j,"youngsecdf",ac_sub) = pc35_land_other(j,"youngsecdf",ac_sub);
vm_land_other.fx(j,"youngsecdf",ac_est) = 0;
m_boundfix(vm_land_other,(j,othertype35,ac_sub),l,1e-6);
m_boundfix(vm_land_other,(j,othertype35,ac_sub),up,1e-6);

pm_max_forest_est(t,j)$(pm_max_forest_est(t,j) < sum(ac, pc35_land_other(j,"youngsecdf",ac))) =
sum(ac, pc35_land_other(j,"youngsecdf",ac));
Expand Down
Loading