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