diff --git a/.gitignore b/.gitignore index b16ce0fc21a88201767c8a17f66abb58553254d2..1250cd2fdde76e9fbd3599364c8e074ef8951873 100644 --- a/.gitignore +++ b/.gitignore @@ -13,7 +13,6 @@ core/input/f_cf.cs3r core/input/f_dataRegiSolar.cs3r core/input/f_emiFgas.cs4r core/input/f_gdp.cs3r -core/input/f_IO_trade.cs4r core/input/f_lab.cs3r core/input/f_macBaseMagpie.cs4r core/input/f_maxProdGradeRegiHydro.cs3r @@ -42,7 +41,6 @@ core/input/p_share_ind_fesos.cs4r core/input/p_share_ind_fesos_bio.cs4r core/input/pm_boundCapCCS.cs4r core/input/pm_boundCapEV.cs4r -core/input/pm_costsTradePeFinancial.cs3r core/input/pm_shPPPMER.cs4r core/input/p_inco0.cs4r core/input/p_boundCapCCSindicator.cs4r @@ -81,6 +79,9 @@ modules/23_capitalMarket/imperfect/input/pm_ies.cs4r modules/23_capitalMarket/imperfect/input/pm_nfa_start.cs4r modules/23_capitalMarket/imperfect/input/pm_risk_premium.cs4r modules/23_capitalMarket/perfect/input/pm_nfa_start.cs4r +modules/24_trade/standard/input/f24_IO_trade.cs4r +modules/24_trade/standard/input/pm_costsPEtradeMp.cs4r +modules/24_trade/standard/input/pm_costsTradePeFinancial.cs3r modules/26_agCosts/costs/input/p26_totLUcostLookup.cs4r modules/26_agCosts/costs/input/p26_macCostLuLookup.cs4r modules/26_agCosts/costs/input/ diff --git a/config/default.cfg b/config/default.cfg index 526555f1d94786ab3960c1bd794844dce08d6d16..758a9eaa1c0fb7539c5ddbe3a59ecc7719dd394d 100755 --- a/config/default.cfg +++ b/config/default.cfg @@ -101,6 +101,9 @@ cfg$gms$subsidizeLearning <- "off" # def = off # * (perfect): Perfect capital market (results in large short-term capital flows from North to South) cfg$gms$capitalMarket <- "perfect" # def = perfect +# ***---------------------- 24_trade --------------------------------------- +# * (standard): +cfg$gms$trade <- "standard" # def = standard # ***---------------------- 26_agCosts ---------------------------------------- # * (off): agricultural costs zero, no trade taken into account @@ -275,7 +278,7 @@ cfg$gms$c_solscen <- 1 # def <- 1 cfg$gms$cm_bioenergy_tax <- 1.5 # def <- 1.5 cfg$gms$cm_bioenergymaxscen <- 0 # def <- 0 -cfg$gms$c_tradecost_bio <- 2 # def <- 2 +cfg$gms$cm_tradecost_bio <- 2 # def <- 2 cfg$gms$cm_LU_emi_scen <- "SSP2" # def <- "SSP2" cfg$gms$c_1stgen_phaseout <- 0 # def <- 0 cfg$gms$cm_cprice_red_factor <- 0.5 # def = 0.5 @@ -338,7 +341,7 @@ cfg$gms$cm_esubGrowth <- "low" #def <- "low" cfg$gms$cm_cooling_shares <- "static" # def <- "static", or "dynamic" cfg$gms$cm_techcosts <- "REG" # def <- "REG", or "GLO" -cfg$gms$c_trdcst <- 1.5 # def <- 1.5 +cfg$gms$cm_trdcst <- 1.5 # def <- 1.5 cfg$gms$cm_trdadj <- 2.0 # def <- 2.0 cfg$gms$c_refcapbnd <- 0 # def <- 0 cfg$gms$cm_frac_CCS <- 10 # def <- 10 @@ -538,7 +541,7 @@ cfg$RunsUsingTHISgdxAsBAU <- NA # (2): 200 EJ global bioenergy potential (bound in boundsextra.inc) # (3): 300 EJ global bioenergy potential (bound in boundsextra.inc) # (4): 152 EJ global bioenergy potential, i.e. 100 EJ 2nd generation (bound in boundsextra.inc) -# c_tradecost_bio "choose financal tradecosts for biomass (purpose grown pebiolc)" +# cm_tradecost_bio "choose financal tradecosts for biomass (purpose grown pebiolc)" # (1): low tradecosts (for other SSP scenarios than SSP2) # (2): high tradecosts (default and SSP2) # cm_LU_emi_scen "choose emission baseline for CO2, CH4, and N2O land use emissions from MAgPIE" diff --git a/config/old_scenario_config/scenario_config_EMF33.csv b/config/old_scenario_config/scenario_config_EMF33.csv index 8dd2f9d96d6a5ea2e93f770dbc5ffb159c4737bd..83f74a86d9731423832973e3da7eed90a379456c 100644 --- a/config/old_scenario_config/scenario_config_EMF33.csv +++ b/config/old_scenario_config/scenario_config_EMF33.csv @@ -1,4 +1,4 @@ -title;start;cm_iteration_max;c_solver_try_max;cm_bioenergy_tax;cm_SlowConvergence;optimization;cm_postproc;climate;cm_emiscen;cm_iterative_target_adj;cm_gdximport_target;c_budgetCO2FFI;carbonprice;cm_co2_tax_2020;cm_co2_tax_growth;cm_rcp_scen;cm_POPscen;cm_GDPscen;cm_oil_scen;cm_gas_scen;cm_coal_scen;c_feintensscen;c_techAssumptScen;cm_nucscen;c_abtrdy;c_abtcst;cm_ccsscen;c_bioliqscen;c_bioh2scen;c_ccscapratescen;c_biocostscen;c_1stgen_phaseout;cm_bioenergymaxscen;cm_fetaxscen;cm_so2tax_scen;cm_multigasscen;c_EARLYRETIRE;cm_OILRETIRE;cm_LU_emi_scen;c_tradecost_bio;c_SSP_forcing_adjust;cm_APscen;cm_startyear;path_gdx;path_gdx_bau;path_gdx_ref;path_gdx_opt;path_mif_bau +title;start;cm_iteration_max;c_solver_try_max;cm_bioenergy_tax;cm_SlowConvergence;optimization;cm_postproc;climate;cm_emiscen;cm_iterative_target_adj;cm_gdximport_target;c_budgetCO2FFI;carbonprice;cm_co2_tax_2020;cm_co2_tax_growth;cm_rcp_scen;cm_POPscen;cm_GDPscen;cm_oil_scen;cm_gas_scen;cm_coal_scen;c_feintensscen;c_techAssumptScen;cm_nucscen;c_abtrdy;c_abtcst;cm_ccsscen;c_bioliqscen;c_bioh2scen;c_ccscapratescen;c_biocostscen;c_1stgen_phaseout;cm_bioenergymaxscen;cm_fetaxscen;cm_so2tax_scen;cm_multigasscen;c_EARLYRETIRE;cm_OILRETIRE;cm_LU_emi_scen;cm_tradecost_bio;c_SSP_forcing_adjust;cm_APscen;cm_startyear;path_gdx;path_gdx_bau;path_gdx_ref;path_gdx_opt;path_mif_bau SSP2-R1-BASE-0-full;1;6;3;1.5;on;negishi;0;magicc;1;0;0;0;none;-1;1;rcp26;pop_SSP2;gdp_SSP2;2;2;2;0;1;2;2015;1;1;1;1;1;2;0;0;3;2;2;on;on;SSP2;2;forcing_SSP2;SSP2;2005;;;;; SSP2-R1-BASE-0-full-nash;1;6;3;1.5;on;nash;0;magicc;1;0;0;0;none;-1;1;rcp26;pop_SSP2;gdp_SSP2;2;2;2;0;1;2;2015;1;1;1;1;1;2;0;0;3;2;2;on;on;SSP2;2;forcing_SSP2;SSP2;2005;;;;; SSP2-R1-P-lo-full;1;6;3;1.5;on;negishi;0;magicc;9;0;0;0;exponential;20;1.03;rcp37;pop_SSP2;gdp_SSP2;2;2;2;0;1;2;2015;1;1;1;1;1;2;0;0;3;2;2;on;on;SSP2;2;forcing_SSP2;SSP2;2020;;;;; diff --git a/config/old_scenario_config/scenario_config_H12.csv b/config/old_scenario_config/scenario_config_H12.csv index 58cef4f98f0a471c7a808e779d66761a88aa37f7..4627f7d3bbfb0a4cb083ceb638731ebf4c50ce3c 100644 --- a/config/old_scenario_config/scenario_config_H12.csv +++ b/config/old_scenario_config/scenario_config_H12.csv @@ -1,15 +1,15 @@ title;start;cm_iteration_max;regionmapping;cm_techcosts;cm_rcp_scen;cm_iterative_target_adj;c_budgetCO2;carbonprice;cm_co2_tax_2020;climate;optimization;capitalMarket;buildings;cm_co2_tax_growth;cm_emiscen;techpol;cm_multigasscen;cm_startyear;path_gdx;path_gdx_ref;path_gdx_bau -Base_Negishi;1;15;./config/regionmappingH12.csv;REG;none;0;0;none;-1;off;negishi;perfect;simple;1.05;1;none;2;2005;/p/projects/remind/runs/r8134/output/Base_Negishi_2018-09-23_09.10.05/fulldata.gdx;; -NDC_Negishi;1;20;./config/regionmappingH12.csv;REG;rcp45;3;0;NDC2018;1;off;negishi;perfect;simple;1.05;9;NDC2018;3;2015;/p/projects/remind/runs/r8134/output/NDC_Negishi_2018-09-23_21.29.47/fulldata.gdx;Base_Negishi;Base_Negishi -Budg600_Negishi;1;20;./config/regionmappingH12.csv;REG;rcp20;5;600;expoLinear;30;off;negishi;perfect;simple;1.05;9;NDC2018;2;2025;/p/projects/remind/runs/r8264/output/Budg600_Negishi_2019-01-07_23.04.43/fulldata.gdx;NDC_Negishi;Base_Negishi -Budg950_Negishi;1;20;./config/regionmappingH12.csv;REG;rcp26;5;950;expoLinear;30;off;negishi;perfect;simple;1.05;9;NDC2018;2;2025;/p/projects/remind/runs/r8264/output/Budg950_Negishi_2019-01-07_23.08.02/fulldata.gdx;NDC_Negishi;Base_Negishi -Budg1300_Negishi;1;20;./config/regionmappingH12.csv;REG;rcp26;5;1300;expoLinear;30;off;negishi;perfect;simple;1.05;9;NDC2018;2;2025;/p/projects/remind/runs/r8264/output/Budg1300_Negishi_2019-01-07_23.11.05/fulldata.gdx;NDC_Negishi;Base_Negishi -Base;1;1;./config/regionmappingH12.csv;REG;none;0;0;none;-1;off;nash;perfect;simple;1.05;1;none;2;2005;./config/input.gdx;; -NDC;1;1;./config/regionmappingH12.csv;REG;rcp45;3;0;NDC2018;1;off;nash;perfect;simple;1.05;9;NDC2018;3;2015;./config/input.gdx;Base;Base -NPi;1;1;./config/regionmappingH12.csv;REG;rcp45;3;0;NPi2018;1;off;nash;perfect;simple;1.05;9;NPi2018;3;2025;./config/input.gdx;NDC;Base -Budg600;1;1;./config/regionmappingH12.csv;REG;rcp20;5;600;expoLinear;30;off;nash;perfect;simple;1.05;9;NDC2018;2;2025;./config/input.gdx;NDC;Base -Budg950;1;1;./config/regionmappingH12.csv;REG;rcp26;5;950;expoLinear;30;off;nash;perfect;simple;1.05;9;NDC2018;2;2025;./config/input.gdx;NDC;Base -Budg1300;1;1;./config/regionmappingH12.csv;REG;rcp26;5;1300;expoLinear;30;off;nash;perfect;simple;1.05;9;NDC2018;2;2025;./config/input.gdx;NDC;Base +Base_Negishi;0;15;./config/regionmappingH12.csv;REG;none;0;0;none;-1;off;negishi;perfect;simple;1.05;1;none;2;2005;/p/projects/remind/runs/r8134/output/Base_Negishi_2018-09-23_09.10.05/fulldata.gdx;; +NDC_Negishi;0;20;./config/regionmappingH12.csv;REG;rcp45;3;0;NDC2018;1;off;negishi;perfect;simple;1.05;9;NDC2018;3;2015;/p/projects/remind/runs/r8134/output/NDC_Negishi_2018-09-23_21.29.47/fulldata.gdx;Base_Negishi;Base_Negishi +Budg600_Negishi;0;20;./config/regionmappingH12.csv;REG;rcp20;5;600;expoLinear;30;off;negishi;perfect;simple;1.05;9;NDC2018;2;2025;/p/projects/remind/runs/r8264/output/Budg600_Negishi_2019-01-07_23.04.43/fulldata.gdx;NDC_Negishi;Base_Negishi +Budg950_Negishi;0;20;./config/regionmappingH12.csv;REG;rcp26;5;950;expoLinear;30;off;negishi;perfect;simple;1.05;9;NDC2018;2;2025;/p/projects/remind/runs/r8264/output/Budg950_Negishi_2019-01-07_23.08.02/fulldata.gdx;NDC_Negishi;Base_Negishi +Budg1300_Negishi;0;20;./config/regionmappingH12.csv;REG;rcp26;5;1300;expoLinear;30;off;negishi;perfect;simple;1.05;9;NDC2018;2;2025;/p/projects/remind/runs/r8264/output/Budg1300_Negishi_2019-01-07_23.11.05/fulldata.gdx;NDC_Negishi;Base_Negishi +tm_Base;1;1;./config/regionmappingH12.csv;REG;none;0;0;none;-1;off;nash;perfect;simple;1.05;1;none;2;2005;./config/input.gdx;; +tm_NDC;1;1;./config/regionmappingH12.csv;REG;rcp45;3;0;NDC2018;1;off;nash;perfect;simple;1.05;9;NDC2018;3;2015;./config/input.gdx;tm_Base;tm_Base +tm_Npi;1;1;./config/regionmappingH12.csv;REG;rcp45;3;0;NPi2018;1;off;nash;perfect;simple;1.05;9;NPi2018;3;2025;./config/input.gdx;tm_NDC;tm_Base +tm_Budg600;0;1;./config/regionmappingH12.csv;REG;rcp20;5;600;expoLinear;30;off;nash;perfect;simple;1.05;9;NDC2018;2;2025;./config/input.gdx;tm_NDC;tm_Base +tm_Budg950;1;1;./config/regionmappingH12.csv;REG;rcp26;5;950;expoLinear;30;off;nash;perfect;simple;1.05;9;NDC2018;2;2025;./config/input.gdx;tm_NDC;tm_Base +tm_Budg1300;0;1;./config/regionmappingH12.csv;REG;rcp26;5;1300;expoLinear;30;off;nash;perfect;simple;1.05;9;NDC2018;2;2025;./config/input.gdx;tm_NDC;tm_Base Base_imp;0;1;./config/regionmappingH12.csv;REG;none;0;0;none;-1;off;nash;imperfect;simple;1.05;1;none;2;2005;./config/input.gdx;; NDC_imp;0;1;./config/regionmappingH12.csv;REG;rcp45;3;0;NDC2018;1;off;nash;imperfect;simple;1.05;9;NDC2018;3;2015;./config/input.gdx;Base_imp;Base_imp Budg600_imp;0;1;./config/regionmappingH12.csv;REG;rcp20;5;600;expoLinear;30;off;nash;imperfect;simple;1.05;9;NDC2018;2;2025;./config/input.gdx;NDC_imp;Base_imp diff --git a/config/old_scenario_config/scenario_config_SSP.csv b/config/old_scenario_config/scenario_config_SSP.csv index d9fcc67588f755dc0b69a365de24843c2c7b5c9a..4e8a2169774250815e3f5a4a5431ea0c7dafc2d2 100644 --- a/config/old_scenario_config/scenario_config_SSP.csv +++ b/config/old_scenario_config/scenario_config_SSP.csv @@ -1,4 +1,4 @@ -title;start;cm_iteration_max;c_solver_try_max;cm_bioenergy_tax;cm_SlowConvergence;climate;cm_iterative_target_adj;cm_gdximport_target;optimization;cm_postproc;cm_emiscen;carbonprice;cm_co2_tax_2020;cm_rcp_scen;cm_POPscen;cm_GDPscen;cm_oil_scen;cm_gas_scen;cm_coal_scen;c_feintensscen;c_techAssumptScen;cm_nucscen;c_ccscapratescen;c_biocostscen;c_1stgen_phaseout;cm_bioenergymaxscen;cm_fetaxscen;cm_so2tax_scen;cm_multigasscen;c_EARLYRETIRE;cm_OILRETIRE;cm_LU_emi_scen;c_tradecost_bio;c_SSP_forcing_adjust;cm_APscen;cm_startyear;cm_stagestart;cm_stageend;c_refcapbnd;c_tau_so2_xmpt;path_gdx;path_gdx_bau;path_gdx_ref;path_gdx_opt;path_mif_bau;path_gdx_SSP2ref +title;start;cm_iteration_max;c_solver_try_max;cm_bioenergy_tax;cm_SlowConvergence;climate;cm_iterative_target_adj;cm_gdximport_target;optimization;cm_postproc;cm_emiscen;carbonprice;cm_co2_tax_2020;cm_rcp_scen;cm_POPscen;cm_GDPscen;cm_oil_scen;cm_gas_scen;cm_coal_scen;c_feintensscen;c_techAssumptScen;cm_nucscen;c_ccscapratescen;c_biocostscen;c_1stgen_phaseout;cm_bioenergymaxscen;cm_fetaxscen;cm_so2tax_scen;cm_multigasscen;c_EARLYRETIRE;cm_OILRETIRE;cm_LU_emi_scen;cm_tradecost_bio;c_SSP_forcing_adjust;cm_APscen;cm_startyear;cm_stagestart;cm_stageend;c_refcapbnd;c_tau_so2_xmpt;path_gdx;path_gdx_bau;path_gdx_ref;path_gdx_opt;path_mif_bau;path_gdx_SSP2ref SSP1-Ref-SPA0;1;8;3;1.75;on;off;0;0;negishi;0;1;none;-1;none;pop_SSP1;gdp_SSP1;1;1;1;1;2;2;1;1;1;0;2;4;2;on;off;SSP1;1;forcing_SSP1;SSP1;2005;2020;2040;0;0;/p/projects/ssp/submission_v15_v16/remind16_v15_r6192/output/rem6192_SSP1-Ref-SPA0-rem-5/fulldata.gdx;;;;; SSP1-20-SPA0;1;8;3;1.75;on;magicc;2;1;negishi;0;6;none;-1;rcp20;pop_SSP1;gdp_SSP1;1;1;1;1;2;2;1;1;1;0;2;4;2;on;on;SSP1;1;forcing_SSP1;SSP1;2015;2020;2040;0;0;/p/projects/ssp/submission_v15_v16/remind16_v15_r6192/output/rem6192_SSP1-20-SPA0-rem-5/fulldata.gdx;/p/projects/ssp/submission_v15_v16/remind16_v15_r6192/output/rem6192_SSP1-Ref-SPA0-rem-5/fulldata.gdx;;;; SSP1-26-SPA0;1;8;3;1.75;on;magicc;2;1;negishi;0;6;none;-1;rcp26;pop_SSP1;gdp_SSP1;1;1;1;1;2;2;1;1;1;0;2;4;2;on;on;SSP1;1;forcing_SSP1;SSP1;2015;2020;2040;0;0;/p/projects/ssp/submission_v15_v16/remind16_v15_r6192/output/rem6192_SSP1-26-SPA0-rem-5/fulldata.gdx;/p/projects/ssp/submission_v15_v16/remind16_v15_r6192/output/rem6192_SSP1-Ref-SPA0-rem-5/fulldata.gdx;;;; diff --git a/config/old_scenario_config/scenario_config_SSP_H12.csv b/config/old_scenario_config/scenario_config_SSP_H12.csv index 5f6da1855b7588e843b3f341c6edb55b59a0d6bf..93ba1fd31bd28503b0b88b9051a80514adf667a2 100644 --- a/config/old_scenario_config/scenario_config_SSP_H12.csv +++ b/config/old_scenario_config/scenario_config_SSP_H12.csv @@ -1,4 +1,4 @@ -title;start;regionmapping;CES_parameters;cm_bioenergy_tax;cm_rcp_scen;cm_iterative_target_adj;c_budgetCO2;carbonprice;cm_co2_tax_2020;cm_emiscen;cm_earlyreti_rate;cm_fetaxscen;cm_co2_tax_growth;cm_bioenergymaxscen;c_ccsinjecratescen;techpol;cm_POPscen;cm_GDPscen;cm_oil_scen;cm_gas_scen;cm_coal_scen;c_techAssumptScen;cm_nucscen;cm_multigasscen;cm_OILRETIRE;cm_LU_emi_scen;c_tradecost_bio;c_SSP_forcing_adjust;cm_APscen;cm_startyear;path_gdx;path_gdx_ref;path_gdx_bau +title;start;regionmapping;CES_parameters;cm_bioenergy_tax;cm_rcp_scen;cm_iterative_target_adj;c_budgetCO2;carbonprice;cm_co2_tax_2020;cm_emiscen;cm_earlyreti_rate;cm_fetaxscen;cm_co2_tax_growth;cm_bioenergymaxscen;c_ccsinjecratescen;techpol;cm_POPscen;cm_GDPscen;cm_oil_scen;cm_gas_scen;cm_coal_scen;c_techAssumptScen;cm_nucscen;cm_multigasscen;cm_OILRETIRE;cm_LU_emi_scen;cm_tradecost_bio;c_SSP_forcing_adjust;cm_APscen;cm_startyear;path_gdx;path_gdx_ref;path_gdx_bau SSP1-Base;1;./config/regionmappingH12.csv;load;1.75;none;0;0;none;-1;1;0.09;3;1.05;0;1;none;pop_SSP1;gdp_SSP1;lowOil;lowGas;lowCoal;2;2;2;off;SSP1;1;forcing_SSP1;SSP2;2005;./config/input.gdx;; SSP1-NDC;1;./config/regionmappingH12.csv;load;1.75;rcp45;3;0;NDC2018;1;9;0.09;3;1.05;0;1;NDC2018;pop_SSP1;gdp_SSP1;lowOil;lowGas;lowCoal;2;2;3;off;SSP1;1;forcing_SSP1;SSP2;2015;./config/input.gdx;SSP1-Base;SSP1-Base SSP1-NPi;0;./config/regionmappingH12.csv;load;1.75;rcp45;3;0;NPi2018;1;9;0.09;3;1.05;0;1;NPi2018;pop_SSP1;gdp_SSP1;lowOil;lowGas;lowCoal;2;2;3;off;SSP1;1;forcing_SSP1;SSP2;2025;./config/input.gdx;SSP1-NDC;SSP1-Base diff --git a/config/old_scenario_config/scenario_config_Validation2018.csv b/config/old_scenario_config/scenario_config_Validation2018.csv index 20dedffab9ce62ee65040c7d466090f789539cea..2052302f98fea9008e22fa9a07918bef4630ca1f 100644 --- a/config/old_scenario_config/scenario_config_Validation2018.csv +++ b/config/old_scenario_config/scenario_config_Validation2018.csv @@ -1,4 +1,4 @@ -title;start;cm_iteration_max;cm_bioenergy_tax;climate;c_budgetCO2;cm_iterative_target_adj;optimization;transport;buildings;industry;stationary;cm_emiscen;carbonprice;cm_co2_tax_2020;cm_rcp_scen;techpol;cm_multigasscen;cm_POPscen;cm_GDPscen;cm_oil_scen;cm_gas_scen;cm_coal_scen;c_feintensscen;c_techAssumptScen;cm_nucscen;c_ccscapratescen;c_1stgen_phaseout;cm_fetaxscen;cm_so2tax_scen;cm_OILRETIRE;cm_LU_emi_scen;c_tradecost_bio;c_SSP_forcing_adjust;cm_APscen;c_refcapbnd;c_tau_so2_xmpt;cm_startyear;path_gdx;path_gdx_ref;path_gdx_bau;path_gdx_opt +title;start;cm_iteration_max;cm_bioenergy_tax;climate;c_budgetCO2;cm_iterative_target_adj;optimization;transport;buildings;industry;stationary;cm_emiscen;carbonprice;cm_co2_tax_2020;cm_rcp_scen;techpol;cm_multigasscen;cm_POPscen;cm_GDPscen;cm_oil_scen;cm_gas_scen;cm_coal_scen;c_feintensscen;c_techAssumptScen;cm_nucscen;c_ccscapratescen;c_1stgen_phaseout;cm_fetaxscen;cm_so2tax_scen;cm_OILRETIRE;cm_LU_emi_scen;cm_tradecost_bio;c_SSP_forcing_adjust;cm_APscen;c_refcapbnd;c_tau_so2_xmpt;cm_startyear;path_gdx;path_gdx_ref;path_gdx_bau;path_gdx_opt SSP1-Base;0;8;1.75;off;0;0;nash;complex;simple;fixed_shares;off;1;none;-1;none;none;2;pop_SSP1;gdp_SSP1;lowOil;lowGas;lowCoal;1;2;2;1;1;2;4;off;SSP1;1;forcing_SSP1;SSP1;0;0;2005;/p/projects/remind/runs/r7745/output/BAU_Nash_2018-01-18_14.42.32/fulldata.gdx;;; SSP1-Ref;0;8;1.75;off;0;3;nash;complex;simple;fixed_shares;off;9;RefPolicies;1;rcp60;RefPolicies;3;pop_SSP1;gdp_SSP1;lowOil;lowGas;lowCoal;1;2;2;1;1;2;4;off;SSP1;1;forcing_SSP1;SSP1;0;0;2025;/p/projects/remind/runs/r7745/output/BAU_Nash_2018-01-18_14.42.32/fulldata.gdx;SSP1-INDC;BAU; SSP1-INDC;0;8;1.75;off;0;3;nash;complex;simple;fixed_shares;off;9;NDC;1;rcp45;NDC;3;pop_SSP1;gdp_SSP1;lowOil;lowGas;lowCoal;1;2;2;1;1;2;4;off;SSP1;1;forcing_SSP1;SSP1;0;0;2015;/p/projects/remind/runs/r7745/output/BAU_Nash_2018-01-18_14.42.32/fulldata.gdx;SSP1-Base;REF; diff --git a/config/old_scenario_config/scenario_config_calibrateSSPs.csv b/config/old_scenario_config/scenario_config_calibrateSSPs.csv index 5343f274dc22da7b8fd7f5ab20cf89bfcda705d5..4497b436a7bfbe0588afcef1a2a92714bf8c6756 100644 --- a/config/old_scenario_config/scenario_config_calibrateSSPs.csv +++ b/config/old_scenario_config/scenario_config_calibrateSSPs.csv @@ -1,4 +1,4 @@ -title;start;CES_parameters;regionmapping;capitalMarket;c_CES_calibration_new_structure;c_CES_calibration_iterations;cm_iteration_max;c_solver_try_max;cm_bioenergy_tax;climate;c_budgetCO2;cm_iterative_target_adj;optimization;transport;buildings;industry;stationary;cm_emiscen;carbonprice;cm_co2_tax_2020;cm_rcp_scen;techpol;cm_multigasscen;cm_POPscen;cm_GDPscen;cm_oil_scen;cm_gas_scen;cm_coal_scen;c_techAssumptScen;cm_nucscen;c_ccscapratescen;c_biocostscen;c_1stgen_phaseout;cm_fetaxscen;cm_so2tax_scen;cm_OILRETIRE;cm_LU_emi_scen;c_tradecost_bio;c_SSP_forcing_adjust;c_refcapbnd;c_tau_so2_xmpt;cm_startyear;path_gdx;path_gdx_ref;path_gdx_bau;path_gdx_opt +title;start;CES_parameters;regionmapping;capitalMarket;c_CES_calibration_new_structure;c_CES_calibration_iterations;cm_iteration_max;c_solver_try_max;cm_bioenergy_tax;climate;c_budgetCO2;cm_iterative_target_adj;optimization;transport;buildings;industry;stationary;cm_emiscen;carbonprice;cm_co2_tax_2020;cm_rcp_scen;techpol;cm_multigasscen;cm_POPscen;cm_GDPscen;cm_oil_scen;cm_gas_scen;cm_coal_scen;c_techAssumptScen;cm_nucscen;c_ccscapratescen;c_biocostscen;c_1stgen_phaseout;cm_fetaxscen;cm_so2tax_scen;cm_OILRETIRE;cm_LU_emi_scen;cm_tradecost_bio;c_SSP_forcing_adjust;c_refcapbnd;c_tau_so2_xmpt;cm_startyear;path_gdx;path_gdx_ref;path_gdx_bau;path_gdx_opt calibrate_SSP1_bit;0;calibrate;config/regionmappingH12.csv;perfect;0;10;8;3;1.75;off;0;0;nash;complex;simple;fixed_shares;off;1;none;-1;none;none;2;pop_SSP1;gdp_SSP1;lowOil;lowGas;lowCoal;2;2;1;1;1;2;4;off;SSP1;1;forcing_SSP1;0;0;2005;/p/tmp/levesque/Remind/r_6651_SSP/output/calibrate_SSP1_postIIASA_2016-09-01_16.46.27/fulldata.gdx;;; calibrate_SSP2_bit;1;calibrate;config/regionmappingREMIND.csv;perfect;0;10;8;3;1;off;0;0;nash;complex;simple;fixed_shares;off;1;none;-1;none;none;2;pop_SSP2;gdp_SSP2;medOil;medGas;medCoal;1;2;1;2;0;3;1;off;SSP2;2;forcing_SSP2;0;0;2005;config/input_H12.gdx;;; calibrate_SSP2_bit_H12;0;calibrate;config/regionmappingH12.csv;perfect;0;10;8;3;1;off;0;0;nash;complex;simple;fixed_shares;off;1;none;-1;none;none;2;pop_SSP2;gdp_SSP2;medOil;medGas;medCoal;1;2;1;2;0;3;1;off;SSP2;2;forcing_SSP2;0;0;2005;config/input_H12.gdx;;; diff --git a/config/old_scenario_config/scenario_config_calibrateSSPs_H12.csv b/config/old_scenario_config/scenario_config_calibrateSSPs_H12.csv index ad52fcd9d267a5b915c4ae02f04699edd5ea5ce8..85de3744ad43269ad43400b0d016ec9588ec5a6f 100644 --- a/config/old_scenario_config/scenario_config_calibrateSSPs_H12.csv +++ b/config/old_scenario_config/scenario_config_calibrateSSPs_H12.csv @@ -1,4 +1,4 @@ -title;start;CES_parameters;regionmapping;capitalMarket;c_CES_calibration_new_structure;c_CES_calibration_iterations;cm_iteration_max;c_solver_try_max;cm_bioenergy_tax;climate;c_budgetCO2;cm_iterative_target_adj;optimization;transport;buildings;industry;stationary;cm_emiscen;carbonprice;cm_co2_tax_2020;cm_rcp_scen;techpol;cm_multigasscen;cm_POPscen;cm_GDPscen;cm_oil_scen;cm_gas_scen;cm_coal_scen;c_techAssumptScen;cm_nucscen;c_ccscapratescen;c_1stgen_phaseout;cm_fetaxscen;cm_so2tax_scen;cm_OILRETIRE;cm_LU_emi_scen;c_tradecost_bio;c_SSP_forcing_adjust;c_refcapbnd;c_tau_so2_xmpt;cm_startyear;path_gdx;path_gdx_ref;path_gdx_bau;path_gdx_opt +title;start;CES_parameters;regionmapping;capitalMarket;c_CES_calibration_new_structure;c_CES_calibration_iterations;cm_iteration_max;c_solver_try_max;cm_bioenergy_tax;climate;c_budgetCO2;cm_iterative_target_adj;optimization;transport;buildings;industry;stationary;cm_emiscen;carbonprice;cm_co2_tax_2020;cm_rcp_scen;techpol;cm_multigasscen;cm_POPscen;cm_GDPscen;cm_oil_scen;cm_gas_scen;cm_coal_scen;c_techAssumptScen;cm_nucscen;c_ccscapratescen;c_1stgen_phaseout;cm_fetaxscen;cm_so2tax_scen;cm_OILRETIRE;cm_LU_emi_scen;cm_tradecost_bio;c_SSP_forcing_adjust;c_refcapbnd;c_tau_so2_xmpt;cm_startyear;path_gdx;path_gdx_ref;path_gdx_bau;path_gdx_opt calibrate_SSP1_bit;1;calibrate;config/regionmappingH12.csv;perfect;0;10;8;3;1.75;off;0;0;nash;complex;simple;fixed_shares;off;1;none;-1;none;none;2;pop_SSP1;gdp_SSP1;lowOil;lowGas;lowCoal;2;2;1;1;2;4;off;SSP1;1;forcing_SSP1;0;0;2005;/home/levesque/gdx/r8018_H12_SSP1.gdx;;; calibrate_SSP2_bit;1;calibrate;config/regionmappingH12.csv;perfect;0;10;8;3;1;off;0;0;nash;complex;simple;fixed_shares;off;1;none;-1;none;none;2;pop_SSP2;gdp_SSP2;medOil;medGas;medCoal;2;2;1;0;3;1;off;SSP2;2;forcing_SSP2;0;0;2005;/home/levesque/gdx/r8018_H12_SSP2.gdx;;; calibrate_SSP5_bit;1;calibrate;config/regionmappingH12.csv;perfect;0;10;8;3;1.75;off;0;0;nash;complex;simple;fixed_shares;off;1;none;-1;none;none;2;pop_SSP5;gdp_SSP5;highOil;highGas;highCoal;3;6;2;1;1;4;off;SSP5;1;forcing_SSP5;1;0.5;2005;/home/levesque/gdx/r8018_H12_SSP5.gdx;;; diff --git a/config/oneRegi.cfg b/config/oneRegi.cfg index 8f2da60f3ffdde486634e26f080fac63fe985b53..eda20deb98c2831e72e864fa550b8d27888a28a3 100644 --- a/config/oneRegi.cfg +++ b/config/oneRegi.cfg @@ -268,7 +268,7 @@ cfg$gms$c_solscen <- 1 # def <- 1 cfg$gms$cm_bioenergy_tax <- 1.5 # def <- 1.5 cfg$gms$cm_bioenergymaxscen <- 0 # def <- 0 -cfg$gms$c_tradecost_bio <- 2 # def <- 2 +cfg$gms$cm_tradecost_bio <- 2 # def <- 2 cfg$gms$cm_LU_emi_scen <- "SSP2" # def <- "SSP2" cfg$gms$c_1stgen_phaseout <- 0 # def <- 0 @@ -330,7 +330,7 @@ cfg$gms$cm_esubGrowth <- "low" #def <- "low" cfg$gms$cm_cooling_shares <- "static" # def <- "static", or "dynamic" cfg$gms$cm_techcosts <- "REG" # def <- "REG", or "GLO" -cfg$gms$c_trdcst <- 1.5 # def <- 1.5 +cfg$gms$cm_trdcst <- 1.5 # def <- 1.5 cfg$gms$cm_trdadj <- 2.0 # def <- 2.0 cfg$gms$c_refcapbnd <- 0 # def <- 0 cfg$gms$cm_frac_CCS <- 10 # def <- 10 @@ -524,7 +524,7 @@ cfg$RunsUsingTHISgdxAsBAU <- NA # (2): 200 EJ global bioenergy potential (bound in boundsextra.inc) # (3): 300 EJ global bioenergy potential (bound in boundsextra.inc) # (4): 152 EJ global bioenergy potential, i.e. 100 EJ 2nd generation (bound in boundsextra.inc) -# c_tradecost_bio "choose financal tradecosts for biomass (purpose grown pebiolc)" +# cm_tradecost_bio "choose financal tradecosts for biomass (purpose grown pebiolc)" # (1): low tradecosts (for other SSP scenarios than SSP2) # (2): high tradecosts (default and SSP2) # cm_LU_emi_scen "choose emission baseline for CO2, CH4, and N2O land use emissions from MAgPIE" diff --git a/config/scenario_config_SSPSDP.csv b/config/scenario_config_SSPSDP.csv index 54dedb928c35bb2f4a4ffab495f042730fdf0e6d..52b781725e20807d9c994072cf16a934a701861b 100644 --- a/config/scenario_config_SSPSDP.csv +++ b/config/scenario_config_SSPSDP.csv @@ -1,4 +1,4 @@ -title;start;regionmapping;CES_parameters;cm_bioenergy_tax;cm_rcp_scen;cm_iterative_target_adj;cm_nash_autoconverge;cm_iteration_max;c_budgetCO2;carbonprice;cm_co2_tax_2020;cm_peakBudgYr;cm_taxCO2inc_after_peakBudgYr;cm_CO2priceRegConvEndYr;cm_emiscen;cm_earlyreti_rate;cm_fetaxscen;cm_co2_tax_growth;cm_bioenergymaxscen;c_ccsinjecratescen;c_ccscapratescen;techpol;cm_POPscen;cm_GDPscen;cm_oil_scen;cm_gas_scen;cm_coal_scen;c_techAssumptScen;cm_nucscen;cm_so2tax_scen;cm_multigasscen;cm_OILRETIRE;cm_LU_emi_scen;c_tradecost_bio;c_1stgen_phaseout;c_SSP_forcing_adjust;cm_APscen;cm_startyear;path_gdx;path_gdx_ref;path_gdx_bau +title;start;regionmapping;CES_parameters;cm_bioenergy_tax;cm_rcp_scen;cm_iterative_target_adj;cm_nash_autoconverge;cm_iteration_max;c_budgetCO2;carbonprice;cm_co2_tax_2020;cm_peakBudgYr;cm_taxCO2inc_after_peakBudgYr;cm_CO2priceRegConvEndYr;cm_emiscen;cm_earlyreti_rate;cm_fetaxscen;cm_co2_tax_growth;cm_bioenergymaxscen;c_ccsinjecratescen;c_ccscapratescen;techpol;cm_POPscen;cm_GDPscen;cm_oil_scen;cm_gas_scen;cm_coal_scen;c_techAssumptScen;cm_nucscen;cm_so2tax_scen;cm_multigasscen;cm_OILRETIRE;cm_LU_emi_scen;cm_tradecost_bio;c_1stgen_phaseout;c_SSP_forcing_adjust;cm_APscen;cm_startyear;path_gdx;path_gdx_ref;path_gdx_bau SSP1-calibrate;0;./config/regionmappingH12.csv;calibrate;1.75;none;0;1;1;0;none;-1;2100;3;2050;1;0.09;2;1.025;0;2;1;none;pop_SSP1;gdp_SSP1;lowOil;lowGas;lowCoal;2;2;4;2;off;SSP1;1;1;forcing_SSP1;SSP1;2005;./config/input.gdx;; SSP1-Base;1;./config/regionmappingH12.csv;load;1.75;none;0;1;1;0;none;-1;2100;3;2050;1;0.09;2;1.025;0;2;1;none;pop_SSP1;gdp_SSP1;lowOil;lowGas;lowCoal;2;2;4;2;off;SSP1;1;1;forcing_SSP1;SSP1;2005;./config/input.gdx;; SSP1-NDC;1;./config/regionmappingH12.csv;load;1.75;rcp45;3;1;1;0;NDC2018;1;2100;3;2050;9;0.09;2;1.025;0;2;1;NDC2018;pop_SSP1;gdp_SSP1;lowOil;lowGas;lowCoal;2;2;4;3;off;SSP1;1;1;forcing_SSP1;SSP1;2015;./config/input.gdx;SSP2-NDC;SSP1-Base diff --git a/core/bounds.gms b/core/bounds.gms index fd3bf7f54d9a43257dc4c1a3f6c47d0f4a863c14..caa86b3a1a6d8fa339f2291ccbf95905fcfcefe6 100755 --- a/core/bounds.gms +++ b/core/bounds.gms @@ -255,18 +255,6 @@ if (cm_emiscen ne 1, ); -*** ----------------------------------------------------------- -*** no permit trade allowed in BAU and tax scenarios: -*** ----------------------------------------------------------- -if (cm_emiscen = 1 or cm_emiscen = 9, - vm_Xport.fx(t,regi,"perm") = 0; - vm_Mport.fx(t,regi,"perm") = 0; -else - vm_Xport.fx("2005",regi,"perm") = 0; - vm_Mport.fx("2005",regi,"perm") = 0; - vm_Xport.fx("2010",regi,"perm") = 0; - vm_Mport.fx("2010",regi,"perm") = 0; -); *** ----------------------------------------------------------- *mh bounds that narrow the solution space to help the conopt solver: @@ -388,82 +376,8 @@ if ( c_ccsinjecratescen gt 0, *AJS*02122014 Exclude this bound in nash cases, as trying to limit global emissions there will lead to infeasibilities $ifi %optimization% == "negishi" if( (cm_startyear le 2010 AND cm_emiscen > 1), vm_emiAllGlob.fx('2010','co2') = 8.9 + 1.46; ); !! 8.9 is fossil emissions + cement, 1.4 land use -*** set Mport and Xport positive -vm_Mport.lo(ttot,regi,tradePe)$(ttot.val ge 2005) = 0; -vm_Xport.lo(ttot,regi,tradePe)$(ttot.val ge 2005) = 0; - -*NB*110625 fix 2005 trade values to historic values -*RR*Added correction factor to match fossil supply and internal region energy demand in the initial year if necessary -*SB*190514 Made the correction factor for insufficient imports conditional on the fossil module realization - -*** Mports fixing for fossils in the initial year -loop( regi, - loop (enty$peFos(enty), -*** if imports minus exports is higher than initial year demand there is a surplus of pe in the region. Correction -> set imports to 80% of the region pe demand plus Xports in the initial year - if ( (pm_EN_demand_from_initialcap2(regi,enty) < (1-pm_costsPEtradeMp(regi,enty))*pm_IO_trade("2005",regi,enty,"Mport") - pm_IO_trade("2005",regi,enty,"Xport")), !!region has more available pe through trade than it needs - p_Mport2005correct(regi,enty) = (pm_EN_demand_from_initialcap2(regi,enty) + pm_IO_trade("2005",regi,enty,"Xport")) - pm_IO_trade("2005",regi,enty,"Mport"); - ); -*** if internal region production (plus trade) is not enough to provide the energy demand. Correction -> set imports to the difference between region energy demand (pm_EN_demand_from_initialcap2) and the internal production (pm_ffPolyCumEx(regi,enty,"max")) plus the trade balance (Mports-Xports) -$iftheni.fossil_realization %cfg$gms$fossil% == "timeDepGrades" - if ( pm_prodIni(regi,enty) + (1-pm_costsPEtradeMp(regi,enty))*(pm_IO_trade("2005",regi,enty,"Mport")+ p_Mport2005correct(regi,enty)) - pm_IO_trade("2005",regi,enty,"Xport") < pm_EN_demand_from_initialcap2(regi,enty), !!region has a unbalance - p_Mport2005correct(regi,enty) = pm_EN_demand_from_initialcap2(regi,enty) - ((1-pm_costsPEtradeMp(regi,enty))*pm_IO_trade("2005",regi,enty,"Mport") - pm_IO_trade("2005",regi,enty,"Xport")) - pm_prodIni(regi,enty) ; !! SB: use pm_prodIni as an analog for pm_ffPolyCumEx(regi,enty,"max"), which does not exist in timeDepGrades - ); -$elseifi.fossil_realization %cfg$gms$fossil% == "grades2poly" - if ( (pm_ffPolyCumEx(regi,enty,"max") / (5*4)) + (1-pm_costsPEtradeMp(regi,enty))*(pm_IO_trade("2005",regi,enty,"Mport")+ p_Mport2005correct(regi,enty)) - pm_IO_trade("2005",regi,enty,"Xport") < pm_EN_demand_from_initialcap2(regi,enty), !!region has a unbalance - p_Mport2005correct(regi,enty) = pm_EN_demand_from_initialcap2(regi,enty) - ((1-pm_costsPEtradeMp(regi,enty))*pm_IO_trade("2005",regi,enty,"Mport") - pm_IO_trade("2005",regi,enty,"Xport")) - pm_ffPolyCumEx(regi,enty,"max") / (5*4) ; !!pm_ffPolyCumEx(regi,enty,"max") is a 5 years value, so we dived by 5 to get the annual value and additionally we assume that if all the extraction is made in the first years, this would take a t least 4 time steps to completely exhaust the resources - ); -$endif.fossil_realization - ); -); -vm_Mport.fx(t0(tall),regi,peFos(enty)) = pm_IO_trade(t0,regi,enty,"Mport") + p_Mport2005correct(regi,enty); - -*** Xports fixing for fossils in the initial year (with added exports to compensate for the Mports corrections above) -loop( regi, - loop (enty$peFos(enty), - if ( (p_Mport2005correct(regi,enty) = 0), - vm_Xport.fx(t0(tall),regi,peFos(enty)) = pm_IO_trade(t0,regi,enty,"Xport") + - ( pm_IO_trade(t0,regi,enty,"Xport") / sum((regi2)$(NOT (p_Mport2005correct(regi,enty))),pm_IO_trade(t0,regi2,enty,"Xport")) ) !! share of region Xports between regions with no balance problems - * sum((regi2),p_Mport2005correct(regi2,enty)) !! total unbalance problem - ; - else - vm_Xport.fx(t0(tall),regi,peFos(enty)) = pm_IO_trade(t0,regi,enty,"Xport") ; - ); - ); -); - -*** if region has no internal resources, demand must be entirely provided by trade (Switzerland problem). Correction -> set imports free, exports zero. Warning: if the region is big enough this could cause a trade unbalance. The first best solution would be to calculate the exact imports amount needed and add extra exports to other countries to compensate for this exact amount. -loop( regi, - loop (enty$peFos(enty), -$iftheni.timeDepGrades %cfg$gms$fossil% == "timeDepGrades" - if ( (pm_fuelex_cum("2005",regi,enty,1) = 0), - vm_Xport.fx(t0(tall),regi,peFos(enty)) = 0; - vm_Mport.up(t0(tall),regi,peFos(enty)) = 1e10; - vm_Mport.lo(t0(tall),regi,peFos(enty)) = 1e-6; - ); -$elseifi.timeDepGrades %cfg$gms$fossil% == "grades2poly" - if ( (pm_ffPolyCumEx(regi,enty,"max") = 0), - vm_Xport.fx(t0(tall),regi,peFos(enty)) = 0; - vm_Mport.up(t0(tall),regi,peFos(enty)) = 1e10; - vm_Mport.lo(t0(tall),regi,peFos(enty)) = 1e-6; - ); -$endif.timeDepGrades - ); -); -*** bounds on oil exports in 2010 and 2015 -vm_Xport.lo("2010",regi,"peoil") = 0.95 * pm_IO_trade("2010",regi,"peoil","Xport"); -vm_Xport.up("2010",regi,"peoil") = 1.05 * pm_IO_trade("2010",regi,"peoil","Xport"); -vm_Xport.lo("2015",regi,"peoil") = 0.95 * pm_IO_trade("2015",regi,"peoil","Xport"); -vm_Xport.up("2015",regi,"peoil") = 1.05 * pm_IO_trade("2015",regi,"peoil","Xport"); -*** upper bounds ( 1% yearly growth rate) on all big oil exporters (more than 15EJ in 2010) in 2020, 2025 and 2030 -loop(regi, - if( (pm_IO_trade("2010",regi,"peoil","Xport") ge (15*sm_EJ_2_TWa)), - vm_Xport.up("2020",regi,"peoil") = ((1 + 0.02) ** 10) * pm_IO_trade("2010",regi,"peoil","Xport"); - vm_Xport.up("2025",regi,"peoil") = ((1 + 0.02) ** 15) * pm_IO_trade("2010",regi,"peoil","Xport"); - vm_Xport.up("2030",regi,"peoil") = ((1 + 0.02) ** 20) * pm_IO_trade("2010",regi,"peoil","Xport"); - ); -); *** strong reliance on coal-to-liquids is not consistent with SSP1 storyline, therefore limit their use in the SSP 1 and SSP2 policy scenarios diff --git a/core/datainput.gms b/core/datainput.gms index 061cda89b312563f64921d65fd528874205cbfad..774ab42a94bb12d68dac0ee3747abb27a12ec83c 100644 --- a/core/datainput.gms +++ b/core/datainput.gms @@ -111,9 +111,6 @@ $offdelim p_developmentState(tall,all_regi) = f_developmentState(tall,all_regi,"%c_GDPpcScen%"); -*ML* Reintroduction of trade cost for composite good (based on export/import value difference for non-energy goods in GTAP6) -pm_tradecostgood(regi) = 0.03; - *** Load information from BAU run $ifthen.cm_compile_main %cm_compile_main% == "TRUE" pm_gdp_gdx(ttot,regi) = 0; @@ -134,7 +131,6 @@ pm_pricePerm(ttot) = 0; *** ESM *------------------------------------------------------------------------------------ *------------------------------------------------------------------------------------ -pm_Xport0("2005",regi,peFos) = 0; *** default conversion for energy services pm_fe2es(ttot,regi,teEs) = 1; @@ -331,50 +327,6 @@ loop(emi2te(enty,enty2,te,enty3)$teCCS(te), p_boundtmp(ttot,all_regi,te,rlf)$(ttot.val ge 2005) = 0; p_bound_cap(ttot,all_regi,te,rlf)$(ttot.val ge 2005) = 0; -*** load data on transportation costs -parameter pm_costsPEtradeMp(all_regi,all_enty) "PE tradecosts (energy losses on import)" -/ -$ondelim -$include "./core/input/pm_costsPEtradeMp.cs4r" -$offdelim -/ -; -table pm_costsTradePeFinancial(all_regi,char,all_enty) "Financial costs on import, export and use of primary energy" -$ondelim -$include "./core/input/pm_costsTradePeFinancial.cs3r" -$offdelim -; -pm_costsTradePeFinancial(regi,"XportElasticity", tradePe(enty)) = 100; -pm_costsTradePeFinancial(regi, "tradeFloor", tradePe(enty)) = 0.0125; - -*DK* Only for SSP cases other than SSP2: use default trade costs -if(c_tradecost_bio = 1, -pm_costsTradePeFinancial(regi,"Xport", "pebiolc") = pm_costsTradePeFinancial(regi,"Xport", "pebiolc")/2; -); - -pm_costsTradePeFinancial(regi,"Xport", "pegas") = c_trdcst * pm_costsTradePeFinancial(regi,"Xport", "pegas") ; -pm_costsTradePeFinancial(regi,"XportElasticity","pegas") = cm_trdadj *pm_costsTradePeFinancial(regi,"XportElasticity","pegas"); - -*NB* include data and parameters for upper bounds on fossil fuel transport -parameter f_IO_trade(tall,all_regi,all_enty,char) "Energy trade bounds based on IEA data" -/ -$ondelim -$include "./core/input/f_IO_trade.cs4r" -$offdelim -/ -; -pm_IO_trade(ttot,regi,enty,char) = f_IO_trade(ttot,regi,enty,char) * sm_EJ_2_TWa; - -*LB* use scaled data for export to guarantee net trade = 0 for each traded good -loop(tradePe, - loop(t, - if(sum(regi2, pm_IO_trade(t,regi2,tradePe,"Xport")) ne 0, - pm_IO_trade(t,regi,tradePe,"Xport") = pm_IO_trade(t,regi,tradePe,"Xport") * sum(regi2, pm_IO_trade(t,regi2,tradePe,"Mport")) / sum(regi2, pm_IO_trade(t,regi2,tradePe,"Xport")); - ); - ); -); -display pm_IO_trade; - ***nicolasb*DOT* FILE produced from D:\projekte\rose\resources\fossilGrades_nico.m; 2011,12,16;12:14:44 ***nicolasb*DOT* original data from literature (Brandt 2009, Charpentier 2009) ***nicolasb*DOT* data files are available at RD3 drive roseBob_finSSP.xls diff --git a/core/declarations.gms b/core/declarations.gms index 098070856faa8791f4798aea1e35a35051409ccf..319c5caa320aea9260b891e959addab1055c761e 100644 --- a/core/declarations.gms +++ b/core/declarations.gms @@ -35,7 +35,6 @@ p_taxCO2eq_iterationdiff_tmp(ttot,all_regi) "help parameter for iterati o_taxCO2eq_iterDiff_Itr(iteration,all_regi) "track p_taxCO2eq_iterationdiff over iterations" pm_emissionsForeign(tall,all_regi,all_enty) "total emissions of other regions (nash relevant)" pm_co2eqForeign(tall,all_regi) "emissions, which are part of the climate policy, of other regions (nash relevant)" -pm_Xport0(tall,all_regi,all_enty) "reference level value of export" pm_cesdata(tall,all_regi,all_in,cesParameter) "parameters of the CES function" pm_cesdata_putty(tall,all_regi,all_in,cesParameter) "quantities for the putty clay factors" pm_capital_lifetime_exp(all_regi,all_in) "number of years for which 25% of the CES capital stocks remains" @@ -45,7 +44,6 @@ pm_gdp(tall,all_regi) "GDP data [trn US$ 2005]" p_developmentState(tall,all_regi) "level of development based on GDP per capita" f_lab(tall,all_regi,all_POPscen) "labour data for all possible scenarios" pm_lab(tall,all_regi) "data for labour [bn people]" -pm_IO_trade(tall,all_regi,all_enty,char) "Energy trade bounds based on IEA data" pm_esCapCost(tall,all_regi,all_teEs) "Capital energy cost per unit of consumption for end-use capital (energy service layer)" @@ -201,9 +199,7 @@ o_negitr_disc_cons_drInt_reg(iteration,all_regi) "estimated discounted consu o_negitr_total_forc(iteration) "total forcing in 2100" ***---------------------------------------------------------------------------------------- -***------------------------------------------------trade module---------------------------- -pm_tradecostgood(all_regi) "tradecosts (final good)" - +***------------------------------------------------trade module---------------------------- pm_ttot_val(ttot) "value of ttot set element" p_tall_val(tall) "value of tall set element" pm_ts(tall) "(t_n+1 - t_n-1)/2 for a timestep t_n" @@ -219,8 +215,6 @@ p_share_seel_s(ttot,all_regi) "Share of electricity used p_discountedLifetime(all_te) "Sum over the discounted (@6%) depreciation factor (omega)" p_teAnnuity(all_te) "Annuity factor of a technology" -p_Mport2005correct(all_regi,all_enty) "correction factor to match fossil supply and internal region energy demand in the initial year" - p_histEmiMac(tall,all_regi,all_enty) "historical emissions per MAC; from Eurostat and CEDS, to correct CH4 and N2O reporting" p_histEmiSector(tall,all_regi,all_enty,emi_sectors,sector_types) "historical emissions per sector; from Eurostat and CEDS, to correct CH4 and N2O reporting" ; @@ -312,12 +306,6 @@ vm_prodSeOth(ttot,all_regi,all_enty,all_te) "other sety production from *** ES layer variables vm_demFeForEs(ttot,all_regi,all_enty,all_esty,all_teEs) "Final energy which will be used in the ES layer." v_prodEs(ttot,all_regi,all_enty,all_esty,all_teEs) "Energy services (unit determined by conversion factor pm_fe2es)." -***---------------------------------------------------------------------------------------- -***------------------------------------------------trade module---------------------------- -vm_Xport(tall,all_regi,all_enty) "export of traded commodity [TWa]" -vm_Mport(tall,all_regi,all_enty) "import of traded commodity [TWa]" -*** Adjustment costs for Nash trade algorithm. Only non-zero in the Nash_test realization of 80_optimization module. -vm_costAdjNash(ttot,all_regi) "adjustment costs for deviation from the trade structure of the last iteration" ; ***---------------------------------------------------------------------------------------- *** EQUATIONS diff --git a/core/input/files b/core/input/files index e365b4c8e2121f56372424519c5aa2aeee1cda8b..2b766a863595278b59fb3fa805174778c618e188 100644 --- a/core/input/files +++ b/core/input/files @@ -2,7 +2,6 @@ f_cf.cs3r f_dataRegiSolar.cs3r f_emiFgas.cs4r f_gdp.cs3r -f_IO_trade.cs4r f_lab.cs3r f_macBaseMagpie.cs4r f_maxProdGradeRegiHydro.cs3r @@ -14,7 +13,6 @@ p_abatparam_CO2.cs4r p_adj_deltacapoffset.cs4r p_boundEmi.cs4r pm_NuclearConstraint.cs4r -pm_costsPEtradeMp.cs4r pm_dataccs.cs3r p_earlyRetirementAdjFactor.cs3r p_emiFossilFuelExtr.cs4r @@ -31,7 +29,6 @@ p_share_ind_fesos.cs4r p_share_ind_fesos_bio.cs4r pm_boundCapCCS.cs4r pm_boundCapEV.cs4r -pm_costsTradePeFinancial.cs3r pm_shPPPMER.cs4r p_inco0.cs4r p_boundCapCCSindicator.cs4r diff --git a/core/postsolve.gms b/core/postsolve.gms index 18d7d5bf5bbdbe6a280aefa3630cdd764a22c580..030d56c9769b8099fb06d541a1465973228b4115 100644 --- a/core/postsolve.gms +++ b/core/postsolve.gms @@ -580,8 +580,6 @@ loop(ttot$(ttot.val ge 2005), * assume GDP is flat from 2150 on (only enters damage calculations in the far future) pm_GDPGross(tall,regi)$(tall.val ge 2150) = pm_GDPGross("2149",regi); -pm_Xport0(ttot,regi,tradePe) = vm_Xport.l(ttot,regi,tradePe); - ***------------ adjust adjustment costs for advanced vehicles according to CO2 price in the previous time step ---------------------- diff --git a/core/presolve.gms b/core/presolve.gms index 2900047a222d79b98367e880c0cf55ec009d1d76..9886986be32061f31a228ee5e9be76819950f6df 100644 --- a/core/presolve.gms +++ b/core/presolve.gms @@ -8,7 +8,6 @@ *JeS* calculate share of transport fuels in liquids pm_share_trans(ttot,regi)$(ttot.val ge 2005) = sum(se2fe(entySe,entyFe,te)$(seAgg2se("all_seliq",entySe) AND ( sameas(entyFe,"fepet") OR sameas(entyFe,"fedie"))), vm_prodFe.l(ttot,regi,entySe,entyFe,te)) / (sum(se2fe(entySe,entyFe,te)$seAgg2se("all_seliq",entySe), vm_prodFe.l(ttot,regi,entySe,entyFe,te)) + 0.0000001); -pm_Xport0(ttot,regi,tradePe) = vm_Xport.l(ttot,regi,tradePe); *AJS* we need those in nash pm_capCum0(ttot,regi,teLearn)$( (ttot.val ge 2005) and (pm_SolNonInfes(regi) eq 1)) = vm_capCum.l(ttot,regi,teLearn); pm_co2eq0(ttot,regi)$( (ttot.val ge 2005) and (pm_SolNonInfes(regi) eq 1)) = vm_co2eq.l(ttot,regi); diff --git a/core/sets.gms b/core/sets.gms index e77d0fe3ac1630b58ad5214c090b027edb0f5349..dedd238121fbcc484ea38dcf2ab25363d8a450ba 100755 --- a/core/sets.gms +++ b/core/sets.gms @@ -799,6 +799,7 @@ sets tax subsidizeLearning capitalMarket + trade agCosts CES_parameters biomass @@ -834,6 +835,7 @@ module2realisation(modules,*) "mapping of modules and active realisations" / tax . %tax% subsidizeLearning . %subsidizeLearning% capitalMarket . %capitalMarket% + trade . %trade% agCosts . %agCosts% CES_parameters . %CES_parameters% biomass . %biomass% @@ -1892,18 +1894,6 @@ Sets compl_coef "coefficients for the perfectly complementary factors" / - trade(all_enty) "all traded commodities" - // - tradeMacro(all_enty) "traded macro-economic commodities" - /good, perm/ - tradePe(all_enty) "traded primary energy commodities" - / - peoil, pecoal, pegas, peur, pebiolc - / - tradeSe(all_enty) "traded secondary energy commodities" - / - null - / ***------------------------------------------------------------------------------- *** SETS for fragmented policy regimes diff --git a/main.gms b/main.gms index 1bae17f6dc8de782b8c5a3ded496857a388cdc83..bc20146310238e9eaea27d6d9652de908e408bb3 100644 --- a/main.gms +++ b/main.gms @@ -148,6 +148,8 @@ $setGlobal tax on !! def = on $setGlobal subsidizeLearning off !! def = off ***--------------------- 23_capitalMarket ----------------------------- $setGlobal capitalMarket perfect !! def = perfect +***--------------------- 24_trade ----------------------------------------- +$setGlobal trade standard !! def = standard ***--------------------- 26_agCosts ------------------------------------------ $setGlobal agCosts costs !! def = costs ***--------------------- 29_CES_parameters -------------------------------- @@ -216,7 +218,7 @@ cm_CCS_steel "CCS for steel sub-sector" c_solscen "solar option choice" cm_bioenergy_tax "level of bioenergy tax in fraction of bioenergy price" cm_bioenergymaxscen "choose bound on global pebiolc production excluding residues" -c_tradecost_bio "choose financal tradecosts for biomass (purpose grown pebiolc)" +cm_tradecost_bio "choose financal tradecosts for biomass (purpose grown pebiolc)" c_1stgen_phaseout "choose if 1st generation biofuels should phase out after 2030 (vm_deltaCap=0)" cm_cprice_red_factor "reduction factor for price on co2luc when calculating the revenues. Replicates the reduction applied in MAgPIE" cm_startyear "first optimized modelling time step [year]" @@ -256,7 +258,7 @@ c_abtrdy "first year in which advanced bio-energy technology are re c_abtcst "scaling of the cost of advanced bio-energy technologies (no unit, 50% increase means 1.5)" c_budgetCO2 "carbon budget for all CO2 emissions (in GtCO2)" -c_trdcst "parameter to scale trade export cost for gas" +cm_trdcst "parameter to scale trade export cost for gas" cm_trdadj "parameter scale the adjustment cost parameter for increasing gas trade export" c_refcapbnd "switch for fixing refinery capacities to the SSP2 levels in 2010 (if equal zero then no fixing)" @@ -308,7 +310,7 @@ cm_CCS_steel = 1; !! def = 1 cm_bioenergy_tax = 1.5; !! def = 1.5 cm_bioenergymaxscen = 0; !! def = 0 -c_tradecost_bio = 2; !! def = 2 +cm_tradecost_bio = 2; !! def = 2 $setglobal cm_LU_emi_scen SSP2 !! def = SSP2 c_1stgen_phaseout = 0; !! def = 0 cm_cprice_red_factor = 0.5; !! def = 0.5 @@ -366,7 +368,7 @@ cm_taxCO2inc_after_peakBudgYr = 2; !! def = 2 cm_CO2priceRegConvEndYr = 2050; !! def = 2050 cm_trdadj = 2; !! def = 2.0 -c_trdcst = 1.5; !! def = 1.5 +cm_trdcst = 1.5; !! def = 1.5 c_refcapbnd = 0; !! def = 0 cm_frac_CCS = 10; !! def = 10 cm_frac_NetNegEmi = 0.5; !! def = 0.5 diff --git a/modules/24_trade/module.gms b/modules/24_trade/module.gms new file mode 100644 index 0000000000000000000000000000000000000000..65525cc2f90414d3e283743a011a8c163ecf54cf --- /dev/null +++ b/modules/24_trade/module.gms @@ -0,0 +1,14 @@ +*** | (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK) +*** | authors, and contributors see CITATION.cff file. This file is part +*** | of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of +*** | AGPL-3.0, you are granted additional permissions described in the +*** | REMIND License Exception, version 1.0 (see LICENSE file). +*** | Contact: remind@pik-potsdam.de +*** SOF ./modules/24_trade/module.gms +*' @title Trade module +*' +*' @description This file loads the trade module realization. +*###################### R SECTION START (MODULETYPES) ########################## +$Ifi "%trade%" == "standard" $include "./modules/24_trade/standard/realization.gms" +*###################### R SECTION END (MODULETYPES) ############################ +*** EOF ./modules/24_trade/module.gms diff --git a/modules/24_trade/standard/bounds.gms b/modules/24_trade/standard/bounds.gms new file mode 100644 index 0000000000000000000000000000000000000000..2f31953cac48ccd2a51712643253d33cd8048fa5 --- /dev/null +++ b/modules/24_trade/standard/bounds.gms @@ -0,0 +1,105 @@ +*** | (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK) +*** | authors, and contributors see CITATION.cff file. This file is part +*** | of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of +*** | AGPL-3.0, you are granted additional permissions described in the +*** | REMIND License Exception, version 1.0 (see LICENSE file). +*** | Contact: remind@pik-potsdam.de +*** SOF ./modules/24_trade/standard/bounds.gms + +*** set Mport and Xport positive +vm_Mport.lo(ttot,regi,tradePe)$(ttot.val ge 2005) = 0; +vm_Xport.lo(ttot,regi,tradePe)$(ttot.val ge 2005) = 0; + + + +*** ----------------------------------------------------------- +*** no permit trade allowed in BAU and tax scenarios: +*** ----------------------------------------------------------- +if (cm_emiscen = 1 or cm_emiscen = 9, + vm_Xport.fx(t,regi,"perm") = 0; + vm_Mport.fx(t,regi,"perm") = 0; +else + vm_Xport.fx("2005",regi,"perm") = 0; + vm_Mport.fx("2005",regi,"perm") = 0; + vm_Xport.fx("2010",regi,"perm") = 0; + vm_Mport.fx("2010",regi,"perm") = 0; +); + + + + +*NB*110625 fix 2005 trade values to historic values +*RR*Added correction factor to match fossil supply and internal region energy demand in the initial year if necessary +*SB*190514 Made the correction factor for insufficient imports conditional on the fossil module realization + +*** Mports fixing for fossils in the initial year +loop( regi, + loop (enty$peFos(enty), +*** if imports minus exports is higher than initial year demand there is a surplus of pe in the region. Correction -> set imports to 80% of the region pe demand plus Xports in the initial year + if ( (pm_EN_demand_from_initialcap2(regi,enty) < (1-pm_costsPEtradeMp(regi,enty))*pm_IO_trade("2005",regi,enty,"Mport") - pm_IO_trade("2005",regi,enty,"Xport")), !!region has more available pe through trade than it needs + p24_Mport2005correct(regi,enty) = (pm_EN_demand_from_initialcap2(regi,enty) + pm_IO_trade("2005",regi,enty,"Xport")) - pm_IO_trade("2005",regi,enty,"Mport"); + ); +*** if internal region production (plus trade) is not enough to provide the energy demand. Correction -> set imports to the difference between region energy demand (pm_EN_demand_from_initialcap2) and the internal production (pm_ffPolyCumEx(regi,enty,"max")) plus the trade balance (Mports-Xports) +$iftheni.fossil_realization %cfg$gms$fossil% == "timeDepGrades" + if ( pm_prodIni(regi,enty) + (1-pm_costsPEtradeMp(regi,enty))*(pm_IO_trade("2005",regi,enty,"Mport")+ p24_Mport2005correct(regi,enty)) - pm_IO_trade("2005",regi,enty,"Xport") < pm_EN_demand_from_initialcap2(regi,enty), !!region has a unbalance + p24_Mport2005correct(regi,enty) = pm_EN_demand_from_initialcap2(regi,enty) - ((1-pm_costsPEtradeMp(regi,enty))*pm_IO_trade("2005",regi,enty,"Mport") - pm_IO_trade("2005",regi,enty,"Xport")) - pm_prodIni(regi,enty) ; !! SB: use pm_prodIni as an analog for pm_ffPolyCumEx(regi,enty,"max"), which does not exist in timeDepGrades + ); +$elseifi.fossil_realization %cfg$gms$fossil% == "grades2poly" + if ( (pm_ffPolyCumEx(regi,enty,"max") / (5*4)) + (1-pm_costsPEtradeMp(regi,enty))*(pm_IO_trade("2005",regi,enty,"Mport")+ p24_Mport2005correct(regi,enty)) - pm_IO_trade("2005",regi,enty,"Xport") < pm_EN_demand_from_initialcap2(regi,enty), !!region has a unbalance + p24_Mport2005correct(regi,enty) = pm_EN_demand_from_initialcap2(regi,enty) - ((1-pm_costsPEtradeMp(regi,enty))*pm_IO_trade("2005",regi,enty,"Mport") - pm_IO_trade("2005",regi,enty,"Xport")) - pm_ffPolyCumEx(regi,enty,"max") / (5*4) ; !!pm_ffPolyCumEx(regi,enty,"max") is a 5 years value, so we dived by 5 to get the annual value and additionally we assume that if all the extraction is made in the first years, this would take a t least 4 time steps to completely exhaust the resources + ); +$endif.fossil_realization + ); +); +vm_Mport.fx(t0(tall),regi,peFos(enty)) = pm_IO_trade(t0,regi,enty,"Mport") + p24_Mport2005correct(regi,enty); + +*** Xports fixing for fossils in the initial year (with added exports to compensate for the Mports corrections above) +loop( regi, + loop (enty$peFos(enty), + if ( (p24_Mport2005correct(regi,enty) = 0), + vm_Xport.fx(t0(tall),regi,peFos(enty)) = pm_IO_trade(t0,regi,enty,"Xport") + + ( pm_IO_trade(t0,regi,enty,"Xport") / sum((regi2)$(NOT (p24_Mport2005correct(regi,enty))),pm_IO_trade(t0,regi2,enty,"Xport")) ) !! share of region Xports between regions with no balance problems + * sum((regi2),p24_Mport2005correct(regi2,enty)) !! total unbalance problem + ; + else + vm_Xport.fx(t0(tall),regi,peFos(enty)) = pm_IO_trade(t0,regi,enty,"Xport") ; + ); + ); +); + +*** if region has no internal resources, demand must be entirely provided by trade (Switzerland problem). Correction -> set imports free, exports zero. Warning: if the region is big enough this could cause a trade unbalance. The first best solution would be to calculate the exact imports amount needed and add extra exports to other countries to compensate for this exact amount. +loop( regi, + loop (enty$peFos(enty), +$iftheni.timeDepGrades %cfg$gms$fossil% == "timeDepGrades" + if ( (pm_fuelex_cum("2005",regi,enty,1) = 0), + vm_Xport.fx(t0(tall),regi,peFos(enty)) = 0; + vm_Mport.up(t0(tall),regi,peFos(enty)) = 1e10; + vm_Mport.lo(t0(tall),regi,peFos(enty)) = 1e-6; + ); +$elseifi.timeDepGrades %cfg$gms$fossil% == "grades2poly" + if ( (pm_ffPolyCumEx(regi,enty,"max") = 0), + vm_Xport.fx(t0(tall),regi,peFos(enty)) = 0; + vm_Mport.up(t0(tall),regi,peFos(enty)) = 1e10; + vm_Mport.lo(t0(tall),regi,peFos(enty)) = 1e-6; + ); +$endif.timeDepGrades + ); +); + +*** bounds on oil exports in 2010 and 2015 +vm_Xport.lo("2010",regi,"peoil") = 0.95 * pm_IO_trade("2010",regi,"peoil","Xport"); +vm_Xport.up("2010",regi,"peoil") = 1.05 * pm_IO_trade("2010",regi,"peoil","Xport"); +vm_Xport.lo("2015",regi,"peoil") = 0.95 * pm_IO_trade("2015",regi,"peoil","Xport"); +vm_Xport.up("2015",regi,"peoil") = 1.05 * pm_IO_trade("2015",regi,"peoil","Xport"); + +*** upper bounds ( 1% yearly growth rate) on all big oil exporters (more than 15EJ in 2010) in 2020, 2025 and 2030 +loop(regi, + if( (pm_IO_trade("2010",regi,"peoil","Xport") ge (15*sm_EJ_2_TWa)), + vm_Xport.up("2020",regi,"peoil") = ((1 + 0.02) ** 10) * pm_IO_trade("2010",regi,"peoil","Xport"); + vm_Xport.up("2025",regi,"peoil") = ((1 + 0.02) ** 15) * pm_IO_trade("2010",regi,"peoil","Xport"); + vm_Xport.up("2030",regi,"peoil") = ((1 + 0.02) ** 20) * pm_IO_trade("2010",regi,"peoil","Xport"); + ); +); + + +*** EOF ./modules/24_trade/standard/bounds.gms \ No newline at end of file diff --git a/modules/24_trade/standard/datainput.gms b/modules/24_trade/standard/datainput.gms new file mode 100644 index 0000000000000000000000000000000000000000..fb82f4af7e8cb3c39f7015ac6412a72466aa0c17 --- /dev/null +++ b/modules/24_trade/standard/datainput.gms @@ -0,0 +1,65 @@ +*** | (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK) +*** | authors, and contributors see CITATION.cff file. This file is part +*** | of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of +*** | AGPL-3.0, you are granted additional permissions described in the +*** | REMIND License Exception, version 1.0 (see LICENSE file). +*** | Contact: remind@pik-potsdam.de +*** SOF ./modules/24_trade/standard/datainput.gms + + +pm_Xport0("2005",regi,peFos) = 0; + +*ML* Reintroduction of trade cost for composite good (based on export/import value difference for non-energy goods in GTAP6) +pm_tradecostgood(regi) = 0.03; + + +*NB* include data and parameters for upper bounds on fossil fuel transport +parameter f24_IO_trade(tall,all_regi,all_enty,char) "Energy trade bounds based on IEA data" +/ +$ondelim +$include "./modules/24_trade/standard/input/f24_IO_trade.cs4r" +$offdelim +/ +; +pm_IO_trade(ttot,regi,enty,char) = f24_IO_trade(ttot,regi,enty,char) * sm_EJ_2_TWa; + +*LB* use scaled data for export to guarantee net trade = 0 for each traded good +loop(tradePe, + loop(t, + if(sum(regi2, pm_IO_trade(t,regi2,tradePe,"Xport")) ne 0, + pm_IO_trade(t,regi,tradePe,"Xport") = pm_IO_trade(t,regi,tradePe,"Xport") * sum(regi2, pm_IO_trade(t,regi2,tradePe,"Mport")) / sum(regi2, pm_IO_trade(t,regi2,tradePe,"Xport")); + ); + ); +); +display pm_IO_trade; + + + +*** load data on transportation costs of imports +parameter pm_costsPEtradeMp(all_regi,all_enty) "PE tradecosts (energy losses on import)" +/ +$ondelim +$include "./modules/24_trade/standard/input/pm_costsPEtradeMp.cs4r" +$offdelim +/ +; + + +table pm_costsTradePeFinancial(all_regi,char,all_enty) "PE tradecosts (financial costs on import, export and use)" +$ondelim +$include "./modules/24_trade/standard/input/pm_costsTradePeFinancial.cs3r" +$offdelim +; +pm_costsTradePeFinancial(regi,"XportElasticity", tradePe(enty)) = 100; +pm_costsTradePeFinancial(regi, "tradeFloor", tradePe(enty)) = 0.0125; + +*DK* Only for SSP cases other than SSP2: use default trade costs +if(cm_tradecost_bio = 1, +pm_costsTradePeFinancial(regi,"Xport", "pebiolc") = pm_costsTradePeFinancial(regi,"Xport", "pebiolc")/2; +); + +pm_costsTradePeFinancial(regi,"Xport", "pegas") = cm_trdcst * pm_costsTradePeFinancial(regi,"Xport", "pegas") ; +pm_costsTradePeFinancial(regi,"XportElasticity","pegas") = cm_trdadj *pm_costsTradePeFinancial(regi,"XportElasticity","pegas"); + + +*** EOF ./modules/24_trade/standard/datainput.gms \ No newline at end of file diff --git a/modules/24_trade/standard/declarations.gms b/modules/24_trade/standard/declarations.gms new file mode 100644 index 0000000000000000000000000000000000000000..5be62a91c5c302d9f6519912c2c88de7cf9e14e4 --- /dev/null +++ b/modules/24_trade/standard/declarations.gms @@ -0,0 +1,24 @@ +*** | (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK) +*** | authors, and contributors see CITATION.cff file. This file is part +*** | of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of +*** | AGPL-3.0, you are granted additional permissions described in the +*** | REMIND License Exception, version 1.0 (see LICENSE file). +*** | Contact: remind@pik-potsdam.de +*** SOF ./modules/24_trade/standard/declarations.gms +***------------------------------------------------------------------------------- +*** PARAMETERS +***------------------------------------------------------------------------------- +parameters +pm_tradecostgood(all_regi) "Trade costs (final good)." +pm_Xport0(tall,all_regi,all_enty) "Reference level value of export." +pm_IO_trade(tall,all_regi,all_enty,char) "Energy trade bounds based on IEA data." +p24_Mport2005correct(all_regi,all_enty) "Correction factor to match fossil supply and internal region energy demand in the initial year" +; +***------------------------------------------------------------------------------- +*** VARIABLES +***------------------------------------------------------------------------------- +positive VARIABLES +vm_Xport(tall,all_regi,all_enty) "Export of traded commodity." +vm_Mport(tall,all_regi,all_enty) "Import of traded commodity." +; +*** EOF ./modules/24_trade/standard/declarations.gms \ No newline at end of file diff --git a/modules/24_trade/standard/postsolve.gms b/modules/24_trade/standard/postsolve.gms new file mode 100644 index 0000000000000000000000000000000000000000..633e1ab68cec709a82b02b36e3d621fc1326d07e --- /dev/null +++ b/modules/24_trade/standard/postsolve.gms @@ -0,0 +1,11 @@ +*** | (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK) +*** | authors, and contributors see CITATION.cff file. This file is part +*** | of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of +*** | AGPL-3.0, you are granted additional permissions described in the +*** | REMIND License Exception, version 1.0 (see LICENSE file). +*** | Contact: remind@pik-potsdam.de +*** SOF ./modules/24_trade/standard/postsolve.gms + +pm_Xport0(ttot,regi,tradePe) = vm_Xport.l(ttot,regi,tradePe); + +*** EOF ./modules/24_trade/standard/postsolve.gms \ No newline at end of file diff --git a/modules/24_trade/standard/presolve.gms b/modules/24_trade/standard/presolve.gms new file mode 100644 index 0000000000000000000000000000000000000000..14642b68d6f11a250c9dbe0a1cc851c491693d5a --- /dev/null +++ b/modules/24_trade/standard/presolve.gms @@ -0,0 +1,11 @@ +*** | (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK) +*** | authors, and contributors see CITATION.cff file. This file is part +*** | of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of +*** | AGPL-3.0, you are granted additional permissions described in the +*** | REMIND License Exception, version 1.0 (see LICENSE file). +*** | Contact: remind@pik-potsdam.de +*** SOF ./modules/24_trade/standard/presolve.gms + +pm_Xport0(ttot,regi,tradePe) = vm_Xport.l(ttot,regi,tradePe); + +*** EOF ./modules/24_trade/standard/presolve.gms \ No newline at end of file diff --git a/modules/24_trade/standard/realization.gms b/modules/24_trade/standard/realization.gms new file mode 100644 index 0000000000000000000000000000000000000000..9b7a712f6fd5c024e7f102661706b5785e4a6209 --- /dev/null +++ b/modules/24_trade/standard/realization.gms @@ -0,0 +1,17 @@ +*** | (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK) +*** | authors, and contributors see CITATION.cff file. This file is part +*** | of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of +*** | AGPL-3.0, you are granted additional permissions described in the +*** | REMIND License Exception, version 1.0 (see LICENSE file). +*** | Contact: remind@pik-potsdam.de +*** SOF ./modules/24_trade/realization.gms + +*####################### R SECTION START (PHASES) ############################## +$Ifi "%phase%" == "sets" $include "./modules/24_trade/standard/sets.gms" +$Ifi "%phase%" == "declarations" $include "./modules/24_trade/standard/declarations.gms" +$Ifi "%phase%" == "datainput" $include "./modules/24_trade/standard/datainput.gms" +$Ifi "%phase%" == "bounds" $include "./modules/24_trade/standard/bounds.gms" +$Ifi "%phase%" == "presolve" $include "./modules/24_trade/standard/presolve.gms" +$Ifi "%phase%" == "postsolve" $include "./modules/24_trade/standard/postsolve.gms" +*######################## R SECTION END (PHASES) ############################### +*** EOF ./modules/24_trade/realization.gms diff --git a/modules/24_trade/standard/sets.gms b/modules/24_trade/standard/sets.gms new file mode 100644 index 0000000000000000000000000000000000000000..e89929f255e3e789188ff5ff49d2190a3f3202a3 --- /dev/null +++ b/modules/24_trade/standard/sets.gms @@ -0,0 +1,35 @@ +*** | (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK) +*** | authors, and contributors see CITATION.cff file. This file is part +*** | of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of +*** | AGPL-3.0, you are granted additional permissions described in the +*** | REMIND License Exception, version 1.0 (see LICENSE file). +*** | Contact: remind@pik-potsdam.de +*** SOF ./modules/24_trade/standard/sets.gms + +sets +trade(all_enty) "All traded commodities" +/ +/ + +tradeMacro(all_enty) "Traded macro-economic commodities" +/ + good, + perm +/ + +tradePe(all_enty) "Traded primary energy commodities" +/ + peoil, + pecoal, + pegas, + peur, + pebiolc +/ + +tradeSe(all_enty) "Traded secondary energy commodities" +/ + null +/ +; + +*** EOF ./modules/24_trade/standard/sets.gms \ No newline at end of file diff --git a/modules/80_optimization/nash/declarations.gms b/modules/80_optimization/nash/declarations.gms index c8cf637184c995e48ea7ff41b26f25c779e26499..72ca65af7c8a74c51803b7b9e48c683108417f10 100644 --- a/modules/80_optimization/nash/declarations.gms +++ b/modules/80_optimization/nash/declarations.gms @@ -79,6 +79,10 @@ p80_SolNonOpt(all_regi) "solve status" pm_fuExtrForeign(ttot,all_regi,all_enty,rlf) "foreign fuel extraction" ; +positive variable +*AJS* Adjustment costs for Nash trade algorithm. Only non-zero in the Nash_test realization of 80_optimization module. +vm_costAdjNash(ttot,all_regi) "Adjustment costs for deviation from the trade structure of the last iteration." +; equations q80_budg_intertemp(all_regi) "interemporal trade balance (Nash mode only)" diff --git a/modules/80_optimization/negishi/declarations.gms b/modules/80_optimization/negishi/declarations.gms index 1fe0b0dfd7539eaf4cce03df7712221c21d26332..34270569be7f74e8000323e607bceeddda3a558d 100644 --- a/modules/80_optimization/negishi/declarations.gms +++ b/modules/80_optimization/negishi/declarations.gms @@ -23,6 +23,11 @@ pm_cumEff(tall,all_regi,all_in) "parameter for spillover externality (a pm_fuExtrForeign(ttot,all_regi,all_enty,rlf) "foreign fuel extraction" ; +positive variable +*AJS* Adjustment costs for Nash trade algorithm. Only non-zero in the Nash_test realization of 80_optimization module. +vm_costAdjNash(ttot,all_regi) "Adjustment costs for deviation from the trade structure of the last iteration." +; + equations q80_balTrade(ttot,all_enty) "trade balance equation" q80_budget_helper(ttot,all_regi) "Helper declaration for import from gdx" diff --git a/modules/80_optimization/testOneRegi/declarations.gms b/modules/80_optimization/testOneRegi/declarations.gms index 926068c18fa41e1875fd7c07caf22c0221e841a1..a50a35efdf79e00813509ed11bb10f5e06aa7430 100644 --- a/modules/80_optimization/testOneRegi/declarations.gms +++ b/modules/80_optimization/testOneRegi/declarations.gms @@ -16,6 +16,11 @@ pm_cumEff(tall,all_regi,all_in) "parameter for spillover ext pm_fuExtrForeign(ttot,all_regi,all_enty,rlf) "foreign fuel extraction" ; +positive variable +*AJS* Adjustment costs for Nash trade algorithm. Only non-zero in the Nash_test realization of 80_optimization module. +vm_costAdjNash(ttot,all_regi) "Adjustment costs for deviation from the trade structure of the last iteration." +; + equations q80_budg_intertemp(all_regi) "interemporal trade balance (Nash mode only)" q80_costAdjNash(ttot,all_regi) "plays a dummy role for now, allowing fixing to Nash GDX files" diff --git a/modules/include.gms b/modules/include.gms index d5317f089287de9cf5f258ce8ac9ce1d835cb1fe..36718534b4d0953b69654a6f5d783bab3459c3c9 100644 --- a/modules/include.gms +++ b/modules/include.gms @@ -20,6 +20,7 @@ $include "./modules/20_growth/module.gms" $include "./modules/21_tax/module.gms" $include "./modules/22_subsidizeLearning/module.gms" $include "./modules/23_capitalMarket/module.gms" +$include "./modules/24_trade/module.gms" $include "./modules/26_agCosts/module.gms" $include "./modules/29_CES_parameters/module.gms" $include "./modules/30_biomass/module.gms" diff --git a/standalone/MOFEX/MOFEX.gms b/standalone/MOFEX/MOFEX.gms index 0422399b3d6c91fb9a22bc2ac8c0fe061921ae9c..085e2dae678de1597e0ca472278e2f69ef012721 100644 --- a/standalone/MOFEX/MOFEX.gms +++ b/standalone/MOFEX/MOFEX.gms @@ -131,7 +131,7 @@ cm_CCS_steel "CCS for steel sub-sector" c_solscen "solar option choice" cm_bioenergy_tax "level of bioenergy tax in fraction of bioenergy price" cm_bioenergymaxscen "bound on global pebiolc production excluding residues" -c_tradecost_bio "choose financal tradecosts for biomass (purpose grown pebiolc)" +cm_tradecost_bio "choose financal tradecosts for biomass (purpose grown pebiolc)" c_1stgen_phaseout "choose if 1st generation biofuels should phase out after 2030 (vm_deltaCap=0)" cm_startyear "first optimized modelling time step" c_start_budget "start of GHG budget limit" @@ -170,7 +170,7 @@ c_abtrdy "first year in which advanced bio-energy technology are re c_abtcst "scaling of the cost of advanced bio-energy technologies (no unit, 50% increase means 1.5)" c_budgetCO2 "carbon budget for all CO2 emissions (in GtCO2)" -c_trdcst "parameter to scale trade export cost for gas" +cm_trdcst "parameter to scale trade export cost for gas" cm_trdadj "parameter scale the adjustment cost parameter for increasing gas trade export" c_refcapbnd "switch for fixing refinery capacities to the SSP2 levels in 2010 (if equal zero then no fixing)" @@ -217,7 +217,7 @@ cm_CCS_steel = 1; !! def = 1 cm_bioenergy_tax = 1.5; !! def = 1.5 cm_bioenergymaxscen = 0; !! def = 0 -c_tradecost_bio = 2; !! def = 2 +cm_tradecost_bio = 2; !! def = 2 $setglobal cm_LU_emi_scen SSP2 !! def = SSP2 c_1stgen_phaseout = 0; !! def = 0 @@ -271,7 +271,7 @@ c_budgetCO2 = 0; !! def = 1300 $setGlobal cm_regiCO2target off !! def = off cm_trdadj = 2; !! def = 2.0 -c_trdcst = 1.5; !! def = 1.5 +cm_trdcst = 1.5; !! def = 1.5 c_refcapbnd = 0; !! def = 0 cm_frac_CCS = 10; !! def = 10 cm_frac_NetNegEmi = 0.5; !! def = 0.5 diff --git a/standalone/template.gms b/standalone/template.gms index 598d8baf2ac589c84bf13ca48aad2ea4d7c09177..c507c11a06e8fae6677fda2487a09781a2b42318 100644 --- a/standalone/template.gms +++ b/standalone/template.gms @@ -139,7 +139,7 @@ cm_CCS_steel "CCS for steel sub-sector" c_solscen "solar option choice" cm_bioenergy_tax "level of bioenergy tax in fraction of bioenergy price" cm_bioenergymaxscen "bound on global pebiolc production excluding residues" -c_tradecost_bio "choose financal tradecosts for biomass (purpose grown pebiolc)" +cm_tradecost_bio "choose financal tradecosts for biomass (purpose grown pebiolc)" c_1stgen_phaseout "choose if 1st generation biofuels should phase out after 2030 (vm_deltaCap=0)" cm_startyear "first optimized modelling time step" c_start_budget "start of GHG budget limit" @@ -178,7 +178,7 @@ c_abtrdy "first year in which advanced bio-energy technology are re c_abtcst "scaling of the cost of advanced bio-energy technologies (no unit, 50% increase means 1.5)" c_budgetCO2 "carbon budget for all CO2 emissions (in GtCO2)" -c_trdcst "parameter to scale trade export cost for gas" +cm_trdcst "parameter to scale trade export cost for gas" cm_trdadj "parameter scale the adjustment cost parameter for increasing gas trade export" c_refcapbnd "switch for fixing refinery capacities to the SSP2 levels in 2010 (if equal zero then no fixing)" @@ -225,7 +225,7 @@ cm_CCS_steel = 1; !! def = 1 cm_bioenergy_tax = 1.5; !! def = 1.5 cm_bioenergymaxscen = 0; !! def = 0 -c_tradecost_bio = 2; !! def = 2 +cm_tradecost_bio = 2; !! def = 2 $setglobal cm_LU_emi_scen SSP2 !! def = SSP2 c_1stgen_phaseout = 0; !! def = 0 @@ -279,7 +279,7 @@ c_budgetCO2 = 1350; !! def = 1300 $setGlobal cm_regiCO2target off !! def = off cm_trdadj = 2; !! def = 2.0 -c_trdcst = 1.5; !! def = 1.5 +cm_trdcst = 1.5; !! def = 1.5 c_refcapbnd = 0; !! def = 0 cm_frac_CCS = 10; !! def = 10 cm_frac_NetNegEmi = 0.5; !! def = 0.5