diff --git a/CHANGELOG.md b/CHANGELOG.md index febce8449..be634fec1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,19 +10,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - **21_trade** changed export share calculation to be done at region level in the model - **default.cfg** input data upgraded from rev4.117 to rev4.118, default for bioenergy demand and GHG prices changed from R32M46 to R34M410, `rcp4p5` used for SSP2-NPi2025 in line with MAGICC climate outcome and REMIND assumptions. - **default.cfg** changed running magpie by default with optfile for specified solver settings (Tol_Optimality) -- **script/start/test_runs.R** Test runs adjusted based on availability from coupled runs for R34M410. +- **script/start/test_runs.R** Test runs adjusted based on availability from coupled runs for R34M410. - **scenario_config.csv** SSP2 food system assumptions for ScenarioMIP VLLO to avoid sudden jump of calorie intake after 2025 - **scripts** request 24h for SLURM jobs (except for medium which still requests 7 days) - **scripts** disaggregation.R moved disaggregateLandConservation function to magpie4 ### added - **default.cfg** added option to set Tol_Optimality (GAMS solver setting) to a certain value (GAMS-default 1e-7, new MAgPIE-default 1e-8) -- **80_optimization** added writing of conopt opt files with using scalars from input +- **80_optimization** added writing of conopt opt files with using scalars from input ### removed - **80_optimization** removed older optfile, that should be tried if no optimal solution can be found ### fixed +- **32_forestry** fixed inconsistency in the application of `s32_max_aff_area` - **18_residues** fixed equation for cluster level production of crop residues in flexreg_apr16 realization - **44_biodiversity** expanded age-classes from 150 to 300 years in line with `ac` set. This bugfix is crucial for the BII indicator. diff --git a/config/projects/scenario_config_miti_consv.csv b/config/projects/scenario_config_miti_consv.csv index 091d32778..b4dcc4b4c 100644 --- a/config/projects/scenario_config_miti_consv.csv +++ b/config/projects/scenario_config_miti_consv.csv @@ -1,3 +1,6 @@ -;MitiConsv;MitiConsv-NoBuff -gms$s56_buffer_aff;0.2;0 -input['calibration'];calibration_rev17_MitiConsv_19Mar25.tgz;calibration_rev17_MitiConsv_19Mar25.tgz +;MitiConsv;AR0;AR200;AR350;AR500;30by30 +gms$c22_protect_scenario;;;;;;30by30 +gms$s32_max_aff_area;;;382;532;682; +gms$s56_c_price_induced_aff ;;0;1;1;1; +gms$s56_buffer_aff;0;;;;; +input['calibration'];calibration_rev18_MitiConsv_04Apr25.tgz;;;;; diff --git a/modules/32_forestry/dynamic_may24/declarations.gms b/modules/32_forestry/dynamic_may24/declarations.gms index e04fbb0a4..86b337e97 100644 --- a/modules/32_forestry/dynamic_may24/declarations.gms +++ b/modules/32_forestry/dynamic_may24/declarations.gms @@ -11,12 +11,11 @@ scalars ; parameters - i32_max_aff_area_glo(t) Maximum global endogenous afforestation area (mio. ha) - i32_max_aff_area_reg(t,i) Maximum regional endogenous afforestation area (mio. ha) p32_aff_pol(t,j) NDC forest stock (mio. ha) p32_aff_pol_timestep(t,j) NDC afforestation per time step (mio. ha) p32_aff_pot(t,j) Potential afforestation area (mio. ha) - p32_aff_togo(t,i) Remaining exogenous afforestation wrt to the maximum exogenous target over time (mio. ha) + p32_max_aff_area_glo(t) Remaining afforestation area wrt to the maximum exogenous target over time (mio. ha) + p32_max_aff_area_reg(t,i) Remaining regional afforestation area wrt to the maximum exogenous target over time (mio. ha) p32_carbon_density_ac(t,j,type32,ac,ag_pools) Carbon density for ac and ag_pools (tC per ha) p32_carbon_density_ac_forestry(t_all,j,ac) Above ground carbon density for age classes and carbon pools (tC per ha) p32_carbon_density_ac_marg(t_all,j,ac) Marginal above ground carbon density for age classes and carbon pools (tC per ha) diff --git a/modules/32_forestry/dynamic_may24/equations.gms b/modules/32_forestry/dynamic_may24/equations.gms index 785333b62..761d07ea6 100644 --- a/modules/32_forestry/dynamic_may24/equations.gms +++ b/modules/32_forestry/dynamic_may24/equations.gms @@ -13,10 +13,10 @@ *' The direct costs for timber plantations and re/afforestation `vm_cost_fore` include *' establishment cost for new forests, recurring maintenance and monitoring -*' costs for standing forests as well as harvesting costs for timber plantations. +*' costs for standing forests as well as harvesting costs for timber plantations. *' In addition, this type of forest management *' (including re/afforestation) may cause costs in other parts of the model such as costs -*' for technological change [13_tc] or land expansion [39_landconversion]. +*' for technological change [13_tc] or land expansion [39_landconversion]. q32_cost_total(i2) .. vm_cost_fore(i2) =e= v32_cost_recur(i2) @@ -82,7 +82,7 @@ sum(ac_est, v32_land(j2,"aff",ac_est)) =l= sum(ac, v32_land(j2,"aff",ac)) - sum( *' The annual upper limit for re-afforestation is based on an annual share (`s32_annual_aff_limit`) of the overall forest establishment potential (`pm_max_forest_est`). q32_co2p_aff_limit(j2) .. - vm_landexpansion_forestry(j2,"aff") / m_timestep_length =l= + vm_landexpansion_forestry(j2,"aff") / m_timestep_length =l= s32_annual_aff_limit * sum(ct, pm_max_forest_est(ct,j2)); *' The constraint `q32_max_aff` accounts for the allowed maximum global endogenous @@ -93,11 +93,11 @@ sum(ac_est, v32_land(j2,"aff",ac_est)) =l= sum(ac, v32_land(j2,"aff",ac)) - sum( q32_max_aff$(s32_max_aff_area_glo=1) .. sum((j2,ac), v32_land(j2,"aff",ac)) - =l= sum(ct, i32_max_aff_area_glo(ct)); + =l= sum(ct, p32_max_aff_area_glo(ct)); q32_max_aff_reg(i2)$(s32_max_aff_area_glo=0) .. sum((cell(i2,j2),ac), v32_land(j2,"aff",ac)) - =l= sum(ct, i32_max_aff_area_reg(ct,i2)); + =l= sum(ct, p32_max_aff_area_reg(ct,i2)); *----------------------------------------------- ************** Carbon stock ******************** @@ -177,18 +177,18 @@ q32_cost_recur(i2) .. v32_cost_recur(i2) =e= *------------------------------ *' New plantations are established in the optimization step based on a certain *' percentage (`p32_plant_contr`) of expected future demand (`p32_demand_forestry_future`). -*' As plantation establishment decisions should +*' As plantation establishment decisions should *' also know some indication of expected future yields, we calculate how much yield *' newly established plantation can realize based on rotation lengths. This is defined as *' the expected future yield (`p32_yield_forestry_future`) at harvest. -*' Future expected production is calculated for the establishment decision below and the costs above -*' based on newly established areas and expected future yields. +*' Future expected production is calculated for the establishment decision below and the costs above +*' based on newly established areas and expected future yields. q32_prod_forestry_future(i2) .. v32_prod_forestry_future(i2) =e= - sum(cell(i2,j2), (sum(ac_est, v32_land(j2,"plant",ac_est)) + v32_land_missing(j2)) * sum(ct, p32_yield_forestry_future(ct,j2))) / m_timestep_length_forestry + sum(cell(i2,j2), (sum(ac_est, v32_land(j2,"plant",ac_est)) + v32_land_missing(j2)) * sum(ct, p32_yield_forestry_future(ct,j2))) / m_timestep_length_forestry ; *' Future expected production has to be equal or larger than future demand multiplied with the plantation contribution factor. diff --git a/modules/32_forestry/dynamic_may24/input.gms b/modules/32_forestry/dynamic_may24/input.gms index ab2d9da56..35114805b 100644 --- a/modules/32_forestry/dynamic_may24/input.gms +++ b/modules/32_forestry/dynamic_may24/input.gms @@ -50,7 +50,7 @@ scalars s32_demand_establishment Boolean switch for establishment demand assumption 1=forward looking 0=static (1) / 1 / s32_npi_ndc_reversal Year in which NPI NDC reversal should take place (1) / Inf / s32_min_plant_shr Minimum share of plantations in planted forests (1) / 0.05 / - s32_annual_aff_limit Annual upper limit for re-afforestation as share of overall forest establishment potential (1) / 0.03 / + s32_annual_aff_limit Annual upper limit for re-afforestation as share of overall forest establishment potential (1) / 0.03 / ; parameter f32_aff_mask(j) afforestation mask (binary) diff --git a/modules/32_forestry/dynamic_may24/preloop.gms b/modules/32_forestry/dynamic_may24/preloop.gms index ce3f280a0..36f4a2043 100644 --- a/modules/32_forestry/dynamic_may24/preloop.gms +++ b/modules/32_forestry/dynamic_may24/preloop.gms @@ -174,32 +174,12 @@ loop(j, ); ); -** Initialize forestry land types +** Initialize forestry land types pc32_land(j,type32,ac) = p32_land_start_ac(j,type32,ac); -*** NPI/NDC policies BEGIN ** Afforestation policies NPI and NDCs p32_aff_pol(t,j) = round(f32_aff_pol(t,j,"%c32_aff_policy%"),6); -* Calculate the remaining exogenous afforestation with respect to the maximum exogenous target over time. -* `p32_aff_togo` is used to adjust `s32_max_aff_area` in the constraint `q32_max_aff`. -p32_aff_togo(t,i) = smax(t2, sum(cell(i,j), p32_aff_pol(t2,j))) - sum(cell(i,j), p32_aff_pol(t,j)); - -* Calculate the limit for endogenous afforestation -* The global (`s32_max_aff_area`) and regional limit (`f32_max_aff_area`) for total afforestation (sum of endogenous and exogenous) is reduced by exogenous NPI/NDC afforestation (`p32_aff_pol`). -if(s32_max_aff_area_glo = 1, - i32_max_aff_area_glo(t) = s32_max_aff_area - smax(t2, sum(j, p32_aff_pol(t2,j))); - i32_max_aff_area_glo(t)$(i32_max_aff_area_glo(t) < 1e-6) = 0; - i32_max_aff_area_glo(t)$(m_year(t) <= sm_fix_SSP2) = Inf; - i32_max_aff_area_reg(t,i) = 0; -elseif s32_max_aff_area_glo = 0, - i32_max_aff_area_reg(t,i) = f32_max_aff_area(i) - smax(t2, sum(cell(i,j), p32_aff_pol(t2,j))); - i32_max_aff_area_reg(t,i)$(i32_max_aff_area_reg(t,i) < 1e-6) = 0; - i32_max_aff_area_reg(t,i)$(m_year(t) <= sm_fix_SSP2) = Inf; - i32_max_aff_area_glo(t) = 0; -); - -*** NPI/NDC policies END *fix bph effect to zero for all age classes except the ac that is chosen for the bph effect to occur after planting (e.g. canopy closure) *fade-in from ac10 to ac30. First effect in ac10 (ord 3), last effect in ac30 (ord 7). @@ -234,14 +214,14 @@ p32_land(t,j,type32,ac) = 0; p32_disturbance_loss_ftype32(t,j,"aff",ac) = 0; * Initialize biodiversity value -vm_bv.l(j,"aff_co2p",potnatveg) = +vm_bv.l(j,"aff_co2p",potnatveg) = sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), pc32_land(j,"aff",ac)) * p32_bii_coeff("aff",bii_class_secd,potnatveg)) * fm_luh2_side_layers(j,potnatveg); -vm_bv.l(j,"aff_ndc",potnatveg) = +vm_bv.l(j,"aff_ndc",potnatveg) = sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), pc32_land(j,"ndc",ac)) * p32_bii_coeff("ndc",bii_class_secd,potnatveg)) * fm_luh2_side_layers(j,potnatveg); -vm_bv.l(j,"plant",potnatveg) = +vm_bv.l(j,"plant",potnatveg) = sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), pc32_land(j,"plant",ac)) * p32_bii_coeff("plant",bii_class_secd,potnatveg)) * fm_luh2_side_layers(j,potnatveg); diff --git a/modules/32_forestry/dynamic_may24/presolve.gms b/modules/32_forestry/dynamic_may24/presolve.gms index 6725b4fa0..7f3a67e01 100644 --- a/modules/32_forestry/dynamic_may24/presolve.gms +++ b/modules/32_forestry/dynamic_may24/presolve.gms @@ -15,16 +15,34 @@ v32_land_reduction.fx(j,type32,ac_est) = 0; p32_aff_pol_timestep(t,j)$(ord(t)>1) = p32_aff_pol(t,j) - p32_aff_pol(t-1,j); * Suitable area (`p32_aff_pot`) for NPI/NDC afforestation p32_aff_pot(t,j) = 0.95 * (sum((kcr,w),vm_area.l(j,kcr,w) - vm_area.lo(j,kcr,w)) - + (vm_fallow.l(j) - vm_fallow.lo(j)) - + (vm_land.l(j,"past") - vm_land.lo(j,"past")) + + (vm_fallow.l(j) - vm_fallow.lo(j)) + + (vm_land.l(j,"past") - vm_land.lo(j,"past")) - pm_land_conservation(t,j,"other","restore")); *** NDC/NPI re/afforesation is further constrained by the remaining forest establishment potential - p32_aff_pot(t,j)$(p32_aff_pot(t,j) > pm_max_forest_est(t,j) * s32_annual_aff_limit * m_timestep_length) = + p32_aff_pot(t,j)$(p32_aff_pot(t,j) > pm_max_forest_est(t,j) * s32_annual_aff_limit * m_timestep_length) = pm_max_forest_est(t,j) * s32_annual_aff_limit * m_timestep_length; * suitable area `p32_aff_pot` can be negative, if land restoration is switched on (level smaller than lower bound), therefore set negative values to 0 p32_aff_pot(t,j)$(p32_aff_pot(t,j) < 1e-6) = 0; * Limit prescribed NPI/NDC afforestation in `p32_aff_pol_timestep` if not enough suitable area (`p32_aff_pot`) for afforestation is available p32_aff_pol_timestep(t,j)$(p32_aff_pol_timestep(t,j) > p32_aff_pot(t,j)) = p32_aff_pot(t,j); + + +* Calculate the limit for endogenous afforestation +* The global (`s32_max_aff_area`) and regional limit (`f32_max_aff_area`) for total afforestation (sum of endogenous and exogenous) is reduced by exogenous NPI/NDC afforestation through (`p32_aff_pol_timestep(t,j)`). +if(s32_max_aff_area_glo = 1, + p32_max_aff_area_glo(t) = s32_max_aff_area + - sum((ac,j), pc32_land(j,"ndc",ac)) + - (smax(t2, sum(j, p32_aff_pol(t2,j))) - sum(j, p32_aff_pol(t-1,j))); + p32_max_aff_area_glo(t)$(p32_max_aff_area_glo(t) < 1e-06) = 0; + p32_max_aff_area_reg(t,i) = 0; +elseif s32_max_aff_area_glo = 0, + p32_max_aff_area_reg(t,i) = f32_max_aff_area(i) + - sum((ac,cell(i,j)), pc32_land(j,"ndc",ac)) + - (smax(t2, sum(cell(i,j), p32_aff_pol(t2,j))) - sum(cell(i,j), p32_aff_pol(t-1,j))); + p32_max_aff_area_reg(t,i)$(p32_max_aff_area_reg(t,i) < 1e-06) = 0; + p32_max_aff_area_glo(t) = 0; +); + ** END ndc ** *' @code @@ -192,15 +210,15 @@ pm_land_conservation(t,j,"secdforest","restore")$(pm_land_conservation(t,j,"secd pm_land_conservation(t,j,"secdforest","restore")$(pm_land_conservation(t,j,"secdforest","restore") <= sum(ac, p32_land(t,j,"ndc",ac) + p32_land(t,j,"aff",ac) + v32_land.lo(j,"plant",ac)) + p32_aff_pol_timestep(t,j)) = 0; * Update biodiversity value -vm_bv.l(j,"aff_co2p",potnatveg) = +vm_bv.l(j,"aff_co2p",potnatveg) = sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), pc32_land(j,"aff",ac)) * p32_bii_coeff("aff",bii_class_secd,potnatveg)) * fm_luh2_side_layers(j,potnatveg); -vm_bv.l(j,"aff_ndc",potnatveg) = +vm_bv.l(j,"aff_ndc",potnatveg) = sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), pc32_land(j,"ndc",ac)) * p32_bii_coeff("ndc",bii_class_secd,potnatveg)) * fm_luh2_side_layers(j,potnatveg); -vm_bv.l(j,"plant",potnatveg) = +vm_bv.l(j,"plant",potnatveg) = sum(bii_class_secd, sum(ac_to_bii_class_secd(ac,bii_class_secd), pc32_land(j,"plant",ac)) * p32_bii_coeff("plant",bii_class_secd,potnatveg)) * fm_luh2_side_layers(j,potnatveg); diff --git a/scripts/start/projects/paper_MitiConsv.R b/scripts/start/projects/paper_MitiConsv.R index 37415f2a9..ea93fce8b 100644 --- a/scripts/start/projects/paper_MitiConsv.R +++ b/scripts/start/projects/paper_MitiConsv.R @@ -9,7 +9,7 @@ # description: Land-based mitigation and habitat conservation # ------------------------------------------------------------- -rev <- "rev18" +rev <- "rev19" cres <- "c200" @@ -60,15 +60,17 @@ calib_tgz <- magpie4::submitCalibration(paste(rev, "MitiConsv", sep = "_")) prefix <- paste(rev, "MitiConsv", cres, sep = "_") + scenarios <- c( - "SSP2-REF", "SSP2-PB650-AR", "SSP2-PB650-AvC", - "SSP2-PB1000-AR", "SSP2-PB1000-AvC", - "SSP2-PB650-AR-BH", "SSP2-PB650-AvC-BH", - "SSP2-PB1000-AR-BH", "SSP2-PB1000-AvC-BH", - "SSP2-PB650-AR-KBA", "SSP2-PB650-AvC-KBA", - "SSP2-PB1000-AR-KBA", "SSP2-PB1000-AvC-KBA" + "SSP2-PB650-NPi", "SSP2-PB650-NDC", + "SSP2-PB650-NPi-30by30", "SSP2-PB650-NDC-30by30", + "SSP2-PB650-AR200", "SSP2-PB650-AR200-30by30", + "SSP2-PB650-AR350", "SSP2-PB650-AR350-30by30", + "SSP2-PB650-AR500", "SSP2-PB650-AR500-30by30", + "SSP2-REF" ) + for (scen in scenarios) { scen <- unlist(strsplit(scen, "-")) ssp <- scen[grepl("SSP", scen)] @@ -85,7 +87,7 @@ for (scen in scenarios) { # Climate change switched off for these runs cfg <- setScenario(cfg, c(ssp, "nocc_hist", "NPI", "ForestryExo")) - cfg <- setScenario(cfg, c("MitiConsv"), scenario_config = "config/projects/scenario_config_miti_consv.csv") + cfg <- setScenario(cfg, "MitiConsv", scenario_config = "config/projects/scenario_config_miti_consv.csv") # Calibration settings cfg$input["calibration"] <- calib_tgz @@ -97,40 +99,58 @@ for (scen in scenarios) { cfg$gms$land_snv <- "secdforest, other" # Set path to coupled output - pathToCoupledOutput <- "/p/projects/magpie/users/vjeetze/magpie/projects/MitiConsv/C_MitiConsv_Mar25/remind/output/C_rev8_MitiConsv_SSP2-NPi-rem-12/REMIND_generic_C_rev8_MitiConsv_SSP2-NPi-rem-12.mif" + pathToCoupledOutput <- "/p/projects/magpie/users/vjeetze/magpie/projects/MitiConsv/C_MitiConsv_May25/remind/output/C_rev9_MitiConsv_SSP2-NPi-rem-7/REMIND_generic_C_rev9_MitiConsv_SSP2-NPi-rem-7.mif" # No ghg price in NPI run cfg$gms$c56_mute_ghgprices_until <- "y2100" - if ("PB650" %in% scen) { + if (any(c("NPi", "NDC") %in% scen)) { cfg <- setScenario(cfg, "NDC") # Update path to coupled output - pathToCoupledOutput <- "/p/projects/magpie/users/vjeetze/magpie/projects/MitiConsv/C_MitiConsv_Mar25/remind/output/C_rev8_MitiConsv_SSP2-PkBudg650-rem-12/REMIND_generic_C_rev8_MitiConsv_SSP2-PkBudg650-rem-12.mif" + pathToCoupledOutput <- "/p/projects/magpie/users/vjeetze/magpie/projects/MitiConsv/C_MitiConsv_May25/remind/output/C_rev9_MitiConsv_SSP2-PB650-NDC-rem-7/REMIND_generic_C_rev9_MitiConsv_SSP2-PB650-NDC-rem-7.mif" + if ("30by30" %in% scen) { + pathToCoupledOutput <- "/p/projects/magpie/users/vjeetze/magpie/projects/MitiConsv/C_MitiConsv_May25/remind/output/C_rev9_MitiConsv_SSP2-PB650-NDC-30by30-rem-7/REMIND_generic_C_rev9_MitiConsv_SSP2-PB650-NDC-30by30-rem-7.mif" + } + if ("NPi" %in% scen) { + cfg <- setScenario(cfg, "NPI") + pathToCoupledOutput <- "/p/projects/magpie/users/vjeetze/magpie/projects/MitiConsv/C_MitiConsv_May25/remind/output/C_rev9_MitiConsv_SSP2-PB650-NPi-rem-7/REMIND_generic_C_rev9_MitiConsv_SSP2-PB650-NPi-rem-7.mif" + if ("30by30" %in% scen) { + pathToCoupledOutput <- "/p/projects/magpie/users/vjeetze/magpie/projects/MitiConsv/C_MitiConsv_May25/remind/output/C_rev9_MitiConsv_SSP2-PB650-NPi-30by30-rem-7/REMIND_generic_C_rev9_MitiConsv_SSP2-PB650-NPi-30by30-rem-7.mif" + } + } cfg$gms$c56_mute_ghgprices_until <- "y2030" + cfg <- setScenario(cfg, "AR0", scenario_config = "config/projects/scenario_config_miti_consv.csv") } - if ("PB1000" %in% scen) { - cfg <- setScenario(cfg, "NDC") - # Update path to coupled output - pathToCoupledOutput <- "/p/projects/magpie/users/vjeetze/magpie/projects/MitiConsv/C_MitiConsv_Mar25/remind/output/C_rev8_MitiConsv_SSP2-PkBudg1000-rem-12/REMIND_generic_C_rev8_MitiConsv_SSP2-PkBudg1000-rem-12.mif" + if ("AR200" %in% scen) { + pathToCoupledOutput <- "/p/projects/magpie/users/vjeetze/magpie/projects/MitiConsv/C_MitiConsv_May25/remind/output/C_rev9_MitiConsv_SSP2-PB650-AR200-rem-7/REMIND_generic_C_rev9_MitiConsv_SSP2-PB650-AR200-rem-7.mif" + if ("30by30" %in% scen) { + pathToCoupledOutput <- "/p/projects/magpie/users/vjeetze/magpie/projects/MitiConsv/C_MitiConsv_May25/remind/output/C_rev9_MitiConsv_SSP2-PB650-AR200-30by30-rem-7/REMIND_generic_C_rev9_MitiConsv_SSP2-PB650-AR200-30by30-rem-7.mif" + } cfg$gms$c56_mute_ghgprices_until <- "y2030" + cfg <- setScenario(cfg, "AR200", scenario_config = "config/projects/scenario_config_miti_consv.csv") } - if ("AR" %in% scen) { - cfg$gms$c56_emis_policy <- "redd+natveg_nosoil" - } - - if ("AvC" %in% scen) { - cfg$gms$c56_emis_policy <- "redd+natveg_nosoil" - cfg$gms$s56_c_price_induced_aff <- 0 + if ("AR350" %in% scen) { + pathToCoupledOutput <- "/p/projects/magpie/users/vjeetze/magpie/projects/MitiConsv/C_MitiConsv_May25/remind/output/C_rev9_MitiConsv_SSP2-PB650-AR350-rem-7/REMIND_generic_C_rev9_MitiConsv_SSP2-PB650-AR350-rem-7.mif" + if ("30by30" %in% scen) { + pathToCoupledOutput <- "/p/projects/magpie/users/vjeetze/magpie/projects/MitiConsv/C_MitiConsv_May25/remind/output/C_rev9_MitiConsv_SSP2-PB650-AR350-30by30-rem-7/REMIND_generic_C_rev9_MitiConsv_SSP2-PB650-AR350-30by30-rem-7.mif" + } + cfg$gms$c56_mute_ghgprices_until <- "y2030" + cfg <- setScenario(cfg, "AR350", scenario_config = "config/projects/scenario_config_miti_consv.csv") } - if ("KBA" %in% scen) { - cfg$gms$c22_protect_scenario <- "KBA" + if ("AR500" %in% scen) { + pathToCoupledOutput <- "/p/projects/magpie/users/vjeetze/magpie/projects/MitiConsv/C_MitiConsv_May25/remind/output/C_rev9_MitiConsv_SSP2-PB650-AR500-rem-7/REMIND_generic_C_rev9_MitiConsv_SSP2-PB650-AR500-rem-7.mif" + if ("30by30" %in% scen) { + pathToCoupledOutput <- "/p/projects/magpie/users/vjeetze/magpie/projects/MitiConsv/C_MitiConsv_May25/remind/output/C_rev9_MitiConsv_SSP2-PB650-AR500-30by30-rem-7/REMIND_generic_C_rev9_MitiConsv_SSP2-PB650-AR500-30by30-rem-7.mif" + } + cfg$gms$c56_mute_ghgprices_until <- "y2030" + cfg <- setScenario(cfg, "AR500", scenario_config = "config/projects/scenario_config_miti_consv.csv") } - if ("BH" %in% scen) { - cfg$gms$c22_protect_scenario <- "BH" + if ("30by30" %in% scen) { + cfg <- setScenario(cfg, "30by30", scenario_config = "config/projects/scenario_config_miti_consv.csv") } # Settings taken from coupled runs