diff --git a/CITATION.cff b/CITATION.cff index d8fb64d17..e4bd4f569 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -271,8 +271,8 @@ abstract: REMIND (REgional Model of Investment and Development) is a numerical technology, policy and climate constraints. It also accounts for regional trade characteristics on goods, energy fuels, and emissions allowances. All greenhouse gas emissions due to human activities are represented in the model. -version: "3.3.2.dev864" -date-released: 2024-10-21 +version: "3.3.2.dev880" +date-released: 2024-11-06 repository-code: https://github.com/remindmodel/remind keywords: - energy diff --git a/config/default.cfg b/config/default.cfg index f5bf1274b..6fcabcca4 100644 --- a/config/default.cfg +++ b/config/default.cfg @@ -28,10 +28,10 @@ cfg$regionmapping <- "config/regionmappingH12.csv" cfg$extramappings_historic <- "" #### Current input data revision (.) #### -cfg$inputRevision <- "6.99" +cfg$inputRevision <- "7.11" #### Current CES parameter and GDX revision (commit hash) #### -cfg$CESandGDXversion <- "26e9d6764caa46c1e1cdedbaae68ddfe122afd29" +cfg$CESandGDXversion <- "84b10b9308f97fae38923762b840b8dffd456568" #### Force the model to download new input data #### cfg$force_download <- FALSE @@ -73,7 +73,7 @@ cfg$validationmodel_name <- "VALIDATIONREMIND" #### model version of the overall model (used for run statistics only). # automatically generated for development versions, updated by hand for releases -cfg$model_version <- "3.3.2.dev864" +cfg$model_version <- "3.3.2.dev880" #### settings #### cfg$gms <- list() diff --git a/core/declarations.gms b/core/declarations.gms index 0e9114780..db4e382f7 100644 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -590,6 +590,9 @@ $ifthen.minMaxSeFeSectorShareDev "%cm_seFeSectorShareDevMethod%" == "minMaxAvrgS q_minMaxPenSeFeSectorShareDev(ttot,all_regi,all_enty,all_enty,emi_sectors,all_emiMkt) "min-max penalty balance for secondary energy share deviation in sectors" $endif.minMaxSeFeSectorShareDev +$ifthen.limitSolidsFossilRegi not %cm_limitSolidsFossilRegi% == "off" + q_fossilSolidsLimitReg(ttot,all_regi,all_enty,all_enty,emi_sectors,all_emiMkt) "limit solids fossil to be lower or equal to previous year values in each (sector x emiMkt) combination" +$endif.limitSolidsFossilRegi ; ***---------------------------------------------------------------------------------------- *** SCALARS diff --git a/core/equations.gms b/core/equations.gms index 7988b30a4..b99cbe109 100644 --- a/core/equations.gms +++ b/core/equations.gms @@ -1223,4 +1223,14 @@ q_penSeFeSectorShareDevCost(t,regi).. ; $endif.penSeFeSectorShareDevCost +***--------------------------------------------------------------------------- +*' Limit solids fossil to be lower or equal to previous year values +***--------------------------------------------------------------------------- +$ifthen.limitSolidsFossilRegi not %cm_limitSolidsFossilRegi% == "off" +q_fossilSolidsLimitReg(ttot,regi,entySe,entyFe,sector,emiMkt)$(limitSolidsFossilRegi(regi) and (ttot.val ge max(2020, cm_startyear)) AND sefe(entySe,entyFe) AND sector2emiMkt(sector,emiMkt) AND (sameas(sector,"indst") OR sameas(sector,"build")) AND sameas(entySe,"sesofos")).. + vm_demFeSector_afterTax(ttot,regi,entySe,entyFe,sector,emiMkt) + =le= + vm_demFeSector_afterTax(ttot-1,regi,entySe,entyFe,sector,emiMkt); +$endif.limitSolidsFossilRegi + *** EOF ./core/equations.gms diff --git a/core/sets.gms b/core/sets.gms index 22f210087..54f85cfe2 100755 --- a/core/sets.gms +++ b/core/sets.gms @@ -922,6 +922,15 @@ set ; $endif.altFeEmiFac +$ifthen.limitSolidsFossilRegi not %cm_limitSolidsFossilRegi% == "off" + set limitSolidsFossilextRegi(ext_regi) "set to store ext_regi regions where fossil solids use in each (sector x emiMkt) is limited by the amount used in the previous year" / %cm_limitSolidsFossilRegi% / + limitSolidsFossilRegi(all_regi) "set to store regi regions where fossil solids use in each (sector x emiMkt) is limited by the amount used in the previous year" + ; + loop(ext_regi$limitSolidsFossilextRegi(ext_regi), + limitSolidsFossilRegi(all_regi)$(regi_group(ext_regi,all_regi)) = YES; + ); +$endif.limitSolidsFossilRegi + ***############################################################################### ***######################## R SECTION START (MODULES) ############################### *** THIS CODE IS CREATED AUTOMATICALLY, DO NOT MODIFY THESE LINES DIRECTLY diff --git a/main.gms b/main.gms index 302038e71..b1737f45b 100755 --- a/main.gms +++ b/main.gms @@ -1779,6 +1779,11 @@ $setglobal c_seFeSectorShareDevUnit share !! def = share !! regexp = share|ene *** *JH/LB* Activate MOFEX partial fossil fuel extraction cost minimization model *** * Warning: Use a well-converged run since the model uses vm_prodPe from the input GDX $setGlobal cm_MOFEX off !! def = off !! regexp = off|on +*** cm_limitSolidsFossilRegi off !! def=off +*** starting in max(2020, cm_startyear), fossil solids use in each (sector x emiMkt) has to decrease compared to the previous time step for each region included in the switch cm_limitSolidsFossilRegi +*** aceptable values: any of the ext_regi set elements +*** e.g. "EUR_regi, USA" "solids fossil in industry and buildings for regions within EUR_regi and USA have to be lower or equal to the previous time step from 2020 or cm_startyear onward." +$setGlobal cm_limitSolidsFossilRegi off *** cm_Full_Integration *** use "on" to treat wind and solar as fully dispatchable electricity production technologies $setGlobal cm_Full_Integration off !! def = off !! regexp = off|on diff --git a/modules/37_industry/subsectors/equations.gms b/modules/37_industry/subsectors/equations.gms index e6011ce34..44c861b56 100644 --- a/modules/37_industry/subsectors/equations.gms +++ b/modules/37_industry/subsectors/equations.gms @@ -217,9 +217,9 @@ q37_chemicals_feedstocks_limit(t,regi) .. * p37_chemicals_feedstock_share(t,regi) ; -*' Define the flow of non-energy feedstocks. It is used for emissions accounting and calculating plastics production -q37_demFeFeedstockChemIndst(t,regi,entyFe,emiMkt)$( - entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt) ) .. +*' Define the flow of non-energy feedstocks. It is used for emissions +*' accounting and calculating plastics production +q37_demFeFeedstockChemIndst(t,regi,entyFe,emiMkt) .. sum(se2fe(entySe,entyFe,te), vm_demFENonEnergySector(t,regi,entySe,entyFe,"indst",emiMkt) ) @@ -231,15 +231,13 @@ q37_demFeFeedstockChemIndst(t,regi,entyFe,emiMkt)$( + pm_cesdata(t,regi,in,"offset_quantity") ) * p37_chemicals_feedstock_share(t,regi) - ) + )$( entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt) ) ; *' Feedstocks flow has to be lower than total energy flow into the industry q37_feedstocksLimit(t,regi,entySe,entyFe,emiMkt)$( - sefe(entySe,entyFe) - AND sector2emiMkt("indst",emiMkt) - AND entyFe2Sector(entyFe,"indst") - AND entyFeCC37(entyFe) ) .. + sefe(entySe,entyFe) + AND entyFE2sector2emiMkt_NonEn(entyFe,"indst",emiMkt) ) .. vm_demFeSector_afterTax(t,regi,entySe,entyFe,"indst",emiMkt) =g= vm_demFENonEnergySector(t,regi,entySe,entyFe,"indst",emiMkt) diff --git a/scripts/output/export/xlsx_IIASA.R b/scripts/output/export/xlsx_IIASA.R index 265b9f610..4cf62670c 100644 --- a/scripts/output/export/xlsx_IIASA.R +++ b/scripts/output/export/xlsx_IIASA.R @@ -52,7 +52,7 @@ projects <- list( iiasatemplate = "https://files.ece.iiasa.ac.at/ssp-submission/ssp-submission-template.xlsx", renameScen = c("SMIPv03-M-SSP2-NPi-def" = "SSP2 - Medium Emissions", "SMIPv03-LOS-SSP2-EcBudg400-def" = "SSP2 - Low Overshoot", "SMIPv03-ML-SSP2-PkPrice200-fromL" = "SSP2 - Medium-Low Emissions","SMIPv03-L-SSP2-PkPrice265-inc6-def" = "SSP2 - Low Emissions", "SMIPv03-VL-SSP2_SDP_MC-PkPrice300-def" = "SSP2 - Very Low Emissions"), checkSummation = "NAVIGATE"), - SHAPE = list(mapping = c("NAVIGATE", "SHAPE")), + SHAPE = list(mapping = c("NAVIGATE", "NAVIGATE_coupled", "SHAPE")), TESTTHAT = list(mapping = "AR6") )