Skip to content
Open
Show file tree
Hide file tree
Changes from 5 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
8 changes: 5 additions & 3 deletions config/default.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -1178,11 +1178,13 @@ cfg$gms$s35_secdf_distribution <- 2 # def = 2

# Damages in natural forests
# * (0): No damage simulated
# * (1): Damage from shifting agriculture (constant)
# * (2): Damage from shifting agriculture is faded out by the year defined in 'cfg$gms$c35_forest_damage_end'
# * (1): Damage from shifting cultivation (constant)
# * (2): Damage from shifting cultivation is faded out by the year defined in 'cfg$gms$s35_forest_damage_end'
# * (3): Damage from every class in the `combined_loss` subset of `driver_source`, not faded.
# * That subset currently holds shifting cultivation alone, so (3) equals (1).
# * (4): Generic forest disturbance scenarios defined in `f35_forest_shock.csv`
cfg$gms$s35_forest_damage <- 2 # def = 2
# * If option (2) above: Year by which damage from shifting agriculture has petered out
# * If option (2) above: Year by which damage from shifting cultivation has petered out
cfg$gms$s35_forest_damage_end <- 2050 #def = 2050

# Harvesting switch for timber production
Expand Down
1 change: 0 additions & 1 deletion modules/35_natveg/input/files
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
* list of files that are required here
npi_ndc_ad_aolc_pol.cs3
f35_forest_disturbance_share.cs4
f35_forest_lost_share.cs3
f35_forest_shock.csv
pot_forest_area.cs2
Expand Down
11 changes: 2 additions & 9 deletions modules/35_natveg/pot_forest_may24/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ s35_timber_harvest_cost_other Cost for harvesting from other land (USD17M
s35_timber_harvest_cost_primforest Cost for harvesting from primary forest (USD17MER per ha) / 3690/
s35_natveg_harvest_shr Constrains the allowed wood harvest from natural vegetation (1=unconstrained) (1) /1/
s35_secdf_distribution Flag for secdf initialization (0=all secondary forest in highest age class 1=Equal distribution among all age classes 2=Poulter distribution from MODIS satellite data) (1) / 2 /
s35_forest_damage Damage simulation in forests (0=none 1=shifting agriculture 2= Damage from shifting agriculture is faded out by c35_forest_damage_end 4= f35_forest_shock scenario) / 2 /
s35_forest_damage Damage simulation in forests (0=none 1=shifting cultivation 2=shifting cultivation faded out by s35_forest_damage_end 3=all combined_loss classes 4= f35_forest_shock scenario) / 2 /
s35_forest_damage_end Year of forest damage end (1) / 2050 /
s35_npi_ndc_reversal Year in which NPI NDC reversal should take place (1) / Inf /
;

table f35_forest_lost_share(i,driver_source) Share of area damaged by forest fires (1)
table f35_forest_lost_share(i,driver_source) Share of forest area disturbed per year by driver (1)
$ondelim
$include "./modules/35_natveg/input/f35_forest_lost_share.cs3"
$offdelim
Expand All @@ -47,13 +47,6 @@ $include "./modules/35_natveg/input/f35_forest_shock.csv"
$offdelim
;

parameter f35_forest_disturbance_share(i) Share of area damaged by forest disturbances (1)

@mscrawford mscrawford Sep 15, 2026 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correction: this is f35_forest_disturbance_share (FRA-based disturbance shares, added in December 2020), which was loaded but never read. Michael Windisch's forest shock table (f35_forest_shock.csv, s35_forest_damage = 4) is not touched.

/
$ondelim
$include "./modules/35_natveg/input/f35_forest_disturbance_share.cs4"
$offdelim
/;

parameter f35_pot_forest_area(t_all,j) Potential forest area (mio. ha)
/
$ondelim
Expand Down
10 changes: 5 additions & 5 deletions modules/35_natveg/pot_forest_may24/presolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@
*** | Contact: magpie@pik-potsdam.de

* ----------------------------------------------------
* Shift ageclasses due to shifting agriculture fires
* Shift ageclasses due to forest disturbance
* ----------------------------------------------------

* first calculate damages
if(s35_forest_damage=1,
p35_disturbance_loss_secdf(t,j,ac_sub) = pc35_secdforest(j,ac_sub) * sum(cell(i,j),f35_forest_lost_share(i,"shifting_agriculture"))*m_timestep_length_forestry;
p35_disturbance_loss_primf(t,j) = pcm_land(j,"primforest") * sum(cell(i,j),f35_forest_lost_share(i,"shifting_agriculture"))*m_timestep_length_forestry;
p35_disturbance_loss_secdf(t,j,ac_sub) = pc35_secdforest(j,ac_sub) * sum(cell(i,j),f35_forest_lost_share(i,"shifting_cultivation"))*m_timestep_length_forestry;
p35_disturbance_loss_primf(t,j) = pcm_land(j,"primforest") * sum(cell(i,j),f35_forest_lost_share(i,"shifting_cultivation"))*m_timestep_length_forestry;
);

* shifting cultivation is faded out
if(s35_forest_damage=2,
p35_disturbance_loss_secdf(t,j,ac_sub) = pc35_secdforest(j,ac_sub) * sum(cell(i,j),f35_forest_lost_share(i,"shifting_agriculture"))*m_timestep_length_forestry*(1 - p35_damage_fader(t));
p35_disturbance_loss_primf(t,j) = pcm_land(j,"primforest") * sum(cell(i,j),f35_forest_lost_share(i,"shifting_agriculture"))*m_timestep_length_forestry*(1 - p35_damage_fader(t));
p35_disturbance_loss_secdf(t,j,ac_sub) = pc35_secdforest(j,ac_sub) * sum(cell(i,j),f35_forest_lost_share(i,"shifting_cultivation"))*m_timestep_length_forestry*(1 - p35_damage_fader(t));
p35_disturbance_loss_primf(t,j) = pcm_land(j,"primforest") * sum(cell(i,j),f35_forest_lost_share(i,"shifting_cultivation"))*m_timestep_length_forestry*(1 - p35_damage_fader(t));
);

if(s35_forest_damage=3,
Expand Down
15 changes: 9 additions & 6 deletions modules/35_natveg/pot_forest_may24/sets.gms
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,15 @@

sets

driver_source Source of deforestation drivers
/ overall, deforestation, shifting_agriculture,
forestry, wildfire, urbanization /

combined_loss(driver_source) Combined loss from fire plus agriculture
/ shifting_agriculture,wildfire /
* Disturbance classes in f35_forest_lost_share: those that leave the land as forest, are not
* decided endogenously, and are land use rather than natural disturbance (the flux is booked
* as land-use-change CO2). Selected in mrland::calcForestLossByDriver. overall is never read.
driver_source Source of forest disturbance
/ overall, shifting_cultivation /

* One element, so s35_forest_damage = 3 equals 1; kept so re-admitting a class is one line.
combined_loss(driver_source) Combined loss from disturbances not modelled endogenously
/ shifting_cultivation /

pol35 Land protection policy
/ none, npi, ndc /
Expand Down