Skip to content

Commit

Permalink
implemented new regional switch in 60_bionergy and updated existing r…
Browse files Browse the repository at this point in the history
…egional switches
  • Loading branch information
FelicitasBeier committed Mar 27, 2020
1 parent db36d32 commit 140bf0e
Show file tree
Hide file tree
Showing 11 changed files with 153 additions and 105 deletions.
93 changes: 57 additions & 36 deletions config/default.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ cfg$gms$costs <- "default" # def = default
# * (reg_feb18): regional interest rates, dependent on development state
cfg$gms$interest_rate <- "reg_feb18" # def = reg_feb18

# * interest rate scenario: low, medium, high or mixed
# * interest rate scenario: coupling, low, medium, high or mixed
# * This only has effects on glo_jan16 realization, but for the coupling in both realizations
cfg$gms$c12_interest_rate <- "medium" # def = "medium"

Expand All @@ -165,7 +165,7 @@ cfg$gms$gdp_countries12 <- all_iso_countries # def = all_iso_countries

# * Alternative interest rate that applies to the non-selected (!) countries
# * Note: Does not take effect when c12_interest_rate="coupling"
cfg$gms$s12_alt_interest <- 0.02 # def = 0.02
cfg$gms$s12_interest_noselect <- 0.02 # def = 0.02


# ***--------------------- 13_tc -----------------------------------------
Expand Down Expand Up @@ -213,7 +213,8 @@ cfg$gms$s15_convergence <- 0.005 # def = 0.005
# * options: 0 (exogenous food demand) and 1 (endogenous food demand)
cfg$gms$s15_elastic_demand <- 1 # def =1

# * food scenario
# * food scenario for selected (and respectively not selected) countries
# * in scen_countries15
# * options: SSP: "SSP1", "SSP2", "SSP3", "SSP4", "SSP5"
# * SRES: "A1", "A2", "B1", "B2"
# * OTHER: "PB" (planetary boundaries)
Expand Down Expand Up @@ -282,10 +283,9 @@ cfg$gms$c15_EAT_scen <- "FLX" # def = FLX

# * Switch and specification of countries for which exogenous food scenarios
# * (calorie, diet, food waste scenarios) shall be applied
# * options: list of iso-codes of countries where exogenous scenario should be
# * Options: list of iso-codes of countries where exogenous scenario should be
# * in effect
# * note: must be written in the format: "IND, BRA, DEU"
# *
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
cfg$gms$scen_countries15 <- all_iso_countries

Expand Down Expand Up @@ -476,6 +476,13 @@ cfg$gms$s42_irrigation_efficiency <- 0.66 # def=0.66
# * (mixed): EFP policy only in hic regions
cfg$gms$c42_env_flow_policy <- "off" # def = "off"

# * Switch and specification of countries for which environmental flow policy
# * shall apply.
# * Options: list of iso-codes of countries where EFP should be in effect.
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
cfg$gms$EFP_countries <- all_iso_countries # def = all_iso_countries

# * Environmental flow protection scenario
# * (0): do not consider environmental flows.
# * s42_env_flow_base_fraction and
Expand All @@ -500,15 +507,6 @@ cfg$gms$s42_env_flow_fraction <- 0.2 # def = 0.2
# * missing protection policy
cfg$gms$s42_env_flow_base_fraction <- 0.05 # def = 0.05

# * Switch and specification of countries for which environmental flow policy
# * shall apply.
# * Options: list of iso-codes of countries where EFP should be in effect.
# * Note: must be written in the format: "IND, BRA, DEU"
# *
# * Default: all iso countries
cfg$gms$EFP_countries <- all_iso_countries # def = all_iso_countries


# ***--------------------- 43_water_availability --------------------------
# * (total_water_aug13): surface and ground water resources available
cfg$gms$water_availability <- "total_water_aug13" # def = total_water_aug13
Expand All @@ -527,24 +525,26 @@ cfg$gms$climate <- "static" # def = static
# * (exoeff_aug16): exogenous nr efficiency
cfg$gms$nr_soil_budget <- "exoeff_aug16" # def = exoeff_aug16

# * scenario for nr efficiency on croplands or pastures
# * options: constant,
# * Scenario for nr efficiency on croplands or pastures for selected (and
# * respectively non-selected) countries in cropneff_countries and pastneff_countries
# * Options: constant,
# * neff55_55_starty1990,neff60_60_starty1990,neff65_70_starty1990,
# * neff65_70_starty2010,neff60_60_starty2010,neff55_60_starty2010,
# * neff70_75_starty2010,neff75_80_starty2010,neff80_85_starty2010
# * neff85_85_starty2010
cfg$gms$c50_scen_neff <- "neff60_60_starty2010" # def = neff60_60_starty2010
cfg$gms$c50_scen_neff_pasture <- "constant" # def = constant

# * Switch and specification of countries for which above defined (c50_scen_neff,
# * c50_scen_neff_pasture) apply, respectively.
# * For all other countries, a "neff60_60_starty2010" (c50_scen_neff) / "constant"
# * (c50_scen_neff_pasture) are assumed (which are also above's default).
# * Options: list of iso-codes of countries where interest rate policy should
cfg$gms$c50_scen_neff_select <- "neff60_60_starty2010" # def = neff60_60_starty2010
cfg$gms$c50_scen_neff_noselect <- "neff60_60_starty2010" # def = neff60_60_starty2010
cfg$gms$c50_scen_neff_pasture_select <- "constant" # def = constant
cfg$gms$c50_scen_neff_pasture_noselect <- "constant" # def = constant

# * Switch and specification of countries for which above defined (c50_scen_neff_select,
# * c50_scen_neff_pasture_select) apply, respectively.
# * For all other countries c50_scen_neff_noselect / c50_scen_neff_pasture_noselect
# * apply.
# * Options: list of iso-codes of countries where selected neff scenario should
# * be in effect.
# * Note: must be written in the format: "IND, BRA, DEU"
# *
# * Default: above defined neff applies to all iso countries
# * Default: above defined neff scenario applies to all iso countries
cfg$gms$cropneff_countries <- all_iso_countries
cfg$gms$pastneff_countries <- all_iso_countries

Expand Down Expand Up @@ -591,13 +591,6 @@ cfg$gms$c55_scen_conf <- "ssp2" # def = ssp2
# * (price_jan20): applies pollutant prices to different emission types and calculates the reward for CDR from afforestation
cfg$gms$ghg_policy <- "price_jan20" # def = price_jan20

# * Switch and specification of regional ghg policy
# * options: list of iso-codes of countries where ghg policy should be applied
# * note: must be written in the format: "IND, BRA, DEU"
# *
# * Default: all iso countries
cfg$gms$policy_countries56 <- all_iso_countries

# * Switch for scaling GHG price with development state (1=on 0=off)
cfg$gms$s56_ghgprice_devstate_scaling <- 0 # def = 0

Expand Down Expand Up @@ -638,7 +631,22 @@ cfg$gms$s56_cprice_red_factor <- 1 # def = 1
# * SSPDB-SSP5-45-REMIND-MAGPIE,SSPDB-SSP5-60-REMIND-MAGPIE,
# * SSPDB-SSP5-Ref-REMIND-MAGPIE,
# * coupling
cfg$gms$c56_pollutant_prices <- "R2M41-SSP2-NPi" # def = "R2M41-SSP2-NPi"
# * Note: c56_pollutant_prices_select applies to countries selected in policy_countries56
# * c56_pollutant_prices_noselect applies to all other countries. In default, all countries
# * are selected and only c56_pollutant_prices_select has to be set.
# * Available scenarios for c56_pollutant_prices_noselect are identical to c56_pollutant_prices_select
# * (see above) except for emulator and coupling (which can only be chosen for c56_pollutant_prices_select)
cfg$gms$c56_pollutant_prices_select <- "R2M41-SSP2-NPi" # def = R2M41-SSP2-NPi
cfg$gms$c56_pollutant_prices_noselect <- "R2M41-SSP2-NPi" # def = R2M41-SSP2-NPi

# * Switch and specification of countries for which pollutant pricing in
# * c56_pollutant_prices_select applies.
# * Options: list of iso-codes of countries where ghg policy should be applied
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
# * Note: Only for exogenous scenarios. Does not take any effect when "coupling" /
# * "emulator" is selected above.
cfg$gms$policy_countries56 <- all_iso_countries

# * Switch for C price driven afforestation (1=on 0=off)
cfg$gms$s56_c_price_induced_aff <- 1
Expand Down Expand Up @@ -744,7 +752,20 @@ cfg$gms$c60_1stgen_biodem <- "const2020" # def = const2020
# * SSPDB-SSP5-45-REMIND-MAGPIE,SSPDB-SSP5-60-REMIND-MAGPIE,
# * SSPDB-SSP5-Ref-REMIND-MAGPIE,
# * coupling
cfg$gms$c60_2ndgen_biodem <- "R2M41-SSP2-NPi" # def = R2M41-SSP2-NPi
# * Note: c60_2ndgen_biodem_select applies to countries selected in scen_countries60
# * c60_2ndgen_biodem_noselect applies to all other countries. In default, all countries
# * are selected and only c60_2ndgen_biodem_select has to be set.
cfg$gms$c60_2ndgen_biodem_select <- "R2M41-SSP2-NPi" # def = R2M41-SSP2-NPi
cfg$gms$c60_2ndgen_biodem_noselect <- "R2M41-SSP2-NPi" # def = R2M41-SSP2-NPi

# * Switch and specification of countries for which 2nd gen bioenergy demand
# * scenario applies.
# * Options: list of iso-codes of countries where scenario should be applied
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
# * Note: Only for exogenous scenarios. Does not take any effect when "coupling" /
# * "emulator" selected.
cfg$gms$scen_countries60 <- all_iso_countries

# * residue demand for 2nd generation bioenergy scenarios
# * options: ssp1, ssp2, ssp3, ssp4, ssp5, off
Expand Down
28 changes: 14 additions & 14 deletions main.gms
Original file line number Diff line number Diff line change
Expand Up @@ -148,23 +148,23 @@ $title magpie
*
* Used data set: isimip_rcp-IPSL_CM5A_LR-rcp2p6-co2_rev42_c200_690d3718e151be1b450b394c1064b1c5.tgz
* md5sum: 94c214b0a7b46f403dd0aab57b7e476c
* Repository: /p/projects/landuse/data/input/archive
* Repository: http://rse.pik-potsdam.de/data/magpie/intern
*
* Used data set: rev4.37_690d3718e151be1b450b394c1064b1c5_magpie.tgz
* md5sum: 3e22e59029e3cd043e247b435cc773ce
* Repository: /p/projects/rd3mod/inputdata/output
* Used data set: rev4.42_690d3718e151be1b450b394c1064b1c5_magpie.tgz
* md5sum: 531f893581b6e3ea3ca871d76e0dd8a3
* Repository: http://rse.pik-potsdam.de/data/magpie/intern
*
* Used data set: rev4.37_690d3718e151be1b450b394c1064b1c5_validation.tgz
* md5sum: 7573940b148f440a5f2d2ceedf400afc
* Repository: /p/projects/rd3mod/inputdata/output
* Used data set: rev4.42_690d3718e151be1b450b394c1064b1c5_validation.tgz
* md5sum: ad8da81da4ddbb3cf4b341b40ceec3fb
* Repository: http://rse.pik-potsdam.de/data/magpie/intern
*
* Used data set: calibration_H12_c200_12Sep18.tgz
* md5sum: 0a7d88e902918eb6a5263faaf066cc5d
* Repository: /p/projects/landuse/data/input/calibration
* Used data set: calibration_H12_c200_26Feb20.tgz
* md5sum: 0fc75955deb5916d4ac078e8d817feda
* Repository: http://rse.pik-potsdam.de/data/magpie/intern
*
* Used data set: additional_data_rev3.77.tgz
* md5sum: 28184d92028972c171145399ab21fdca
* Repository: /p/projects/landuse/data/input/archive
* Repository: http://rse.pik-potsdam.de/data/magpie/intern
*
* Low resolution: c200
* High resolution: 0.5
Expand All @@ -177,7 +177,7 @@ $title magpie
*
* Regionscode: 690d3718e151be1b450b394c1064b1c5
*
* Regions data revision: 4.37
* Regions data revision: 4.42
*
* lpj2magpie settings:
* * LPJmL data folder: /p/projects/landuse/data/input/lpj_input/isimip_rcp/IPSL_CM5A_LR/rcp2p6/co2
Expand All @@ -197,7 +197,7 @@ $title magpie
*
*
*
* Last modification (input data): Mon Feb 17 14:01:16 2020
* Last modification (input data): Wed Mar 04 13:53:55 2020
*
*###################### R SECTION END (VERSION INFO) ###########################

Expand All @@ -222,7 +222,7 @@ $offlisting
* Key parameters during model runs

$setglobal c_timesteps coup2100
$setglobal c_title SSP2_rev42_rev4p37
$setglobal c_title default

scalars
s_use_gdx use of gdx files / 2 /
Expand Down
2 changes: 1 addition & 1 deletion modules/12_interest_rate/reg_feb18/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ $offdelim
;

scalars
s12_alt_interest Interest rate scenario chosen for regional interest rate scenario switch (1) / 0.02 /
s12_interest_noselect Interest rate scenario chosen for regional interest rate scenario switch (1) / 0.02 /
;

$if "%c12_interest_rate%" == "coupling" parameter f12_interest_coupling(t_all) Interest rate (% per yr)
Expand Down
15 changes: 8 additions & 7 deletions modules/12_interest_rate/reg_feb18/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,14 @@ s12_max_dev = smax(i,im_development_state("y1995",i));
s12_slope_a = (f12_interest_bound("y1995","high")-f12_interest_bound("y1995","low"))/(s12_min_dev-s12_max_dev);
s12_intercept_b = f12_interest_bound("y1995","high")-s12_slope_a*s12_min_dev;

* For the countries selected in gdp_countries12 the interest rate is dependent on
* their development state. (By default, all iso countries are selected.)
* For all other countries the scalar s12_alt_interest applies.
p12_interest(t,i) = (s12_slope_a *im_development_state(t,i) + s12_intercept_b) * p12_reg_shr(t,i)
+ s12_alt_interest * p12_interest_reg_policy(t) * (1-p12_reg_shr(t,i));

*' @stop

$ifthen "%c12_interest_rate%" == "coupling" p12_interest(t,i) = f12_interest_coupling(t);
$ifthen "%c12_interest_rate%" == "coupling"
p12_interest(t,i) = f12_interest_coupling(t);
$else
* For the countries selected in gdp_countries12 the interest rate is dependent on
* their development state. (By default, all iso countries are selected.)
* For all other countries the scalar s12_interest_noselect applies.
p12_interest(t,i) = (s12_slope_a * im_development_state(t,i) + s12_intercept_b) * p12_reg_shr(t,i)
+ s12_interest_noselect * p12_interest_reg_policy(t) * (1-p12_reg_shr(t,i));
$endif
6 changes: 4 additions & 2 deletions modules/50_nr_soil_budget/exoeff_aug16/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@
*** | MAgPIE License Exception, version 1.0 (see LICENSE file).
*** | Contact: magpie@pik-potsdam.de

$setglobal c50_scen_neff neff60_60_starty2010
$setglobal c50_scen_neff_select neff60_60_starty2010
$setglobal c50_scen_neff_noselect neff60_60_starty2010
* options: constant,
* neff55_55_starty1990,neff60_60_starty1990,neff65_70_starty1990,
* neff65_70_starty2010,neff60_60_starty2010,neff55_60_starty2010,
* neff70_75_starty2010,neff75_80_starty2010,neff80_85_starty2010
* neff75_85_starty2010,neff85_85_starty2010

$setglobal c50_scen_neff_pasture constant
$setglobal c50_scen_neff_pasture_select constant
$setglobal c50_scen_neff_pasture_noselect constant
* options: constant,
* neff55_55_starty1990,neff60_60_starty1990,neff65_70_starty1990,
* neff65_70_starty2010,neff60_60_starty2010,neff55_60_starty2010,
Expand Down
8 changes: 4 additions & 4 deletions modules/50_nr_soil_budget/exoeff_aug16/presolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ p50_cropneff_region_shr(t_all,i) = sum(i_to_iso(i,iso), p50_country_dummy_cropne
p50_pastneff_region_shr(t_all,i) = sum(i_to_iso(i,iso), p50_country_dummy_pastneff(iso) * im_pop_iso(t_all,iso)) / sum(i_to_iso(i,iso), im_pop_iso(t_all,iso));

* Nitrogen use efficiency
v50_nr_eff.fx(i) = f50_snupe(t,i,"%c50_scen_neff%") * p50_cropneff_region_shr(t,i)
+ f50_snupe(t,i,"neff60_60_starty2010") * (1-p50_cropneff_region_shr(t,i));
v50_nr_eff_pasture.fx(i) = f50_nue_pasture(t,i,"%c50_scen_neff_pasture%") * p50_pastneff_region_shr(t,i)
+ f50_nue_pasture(t,i,"constant") * (1-p50_pastneff_region_shr(t,i));
v50_nr_eff.fx(i) = f50_snupe(t,i,"%c50_scen_neff_select%") * p50_cropneff_region_shr(t,i)
+ f50_snupe(t,i,"%c50_scen_neff_noselect%") * (1-p50_cropneff_region_shr(t,i));
v50_nr_eff_pasture.fx(i) = f50_nue_pasture(t,i,"%c50_scen_neff_pasture_select%") * p50_pastneff_region_shr(t,i)
+ f50_nue_pasture(t,i,"%c50_scen_neff_pasture_noselect%") * (1-p50_pastneff_region_shr(t,i));
i50_atmospheric_deposition_rates(t,j,land)=f50_atmospheric_deposition_rates(t,j,land,"%c50_dep_scen%");
25 changes: 13 additions & 12 deletions modules/56_ghg_policy/price_jan20/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* Set-switch for countries affected by regional ghg policy
* Default: all iso countries selected
sets
policy_countries56 (iso) countries to be affected by ghg policy / ABW,AFG,AGO,AIA,ALA,ALB,AND,ARE,ARG,ARM,
policy_countries56(iso) countries to be affected by ghg policy / ABW,AFG,AGO,AIA,ALA,ALB,AND,ARE,ARG,ARM,
ASM,ATA,ATF,ATG,AUS,AUT,AZE,BDI,BEL,BEN,
BES,BFA,BGD,BGR,BHR,BHS,BIH,BLM,BLR,BLZ,
BMU,BOL,BRA,BRB,BRN,BTN,BVT,BWA,CAF,CAN,
Expand Down Expand Up @@ -50,7 +50,8 @@ scalars
s56_offset helper for C price interpolation (1) / 0 /
;

$setglobal c56_pollutant_prices emulator
$setglobal c56_pollutant_prices_select R2M41-SSP2-NPi
$setglobal c56_pollutant_prices_noselect R2M41-SSP2-NPi
$setglobal c56_emis_policy redd+_nosoil

table f56_pollutant_prices(t_all,i,pollutants,ghgscen56) GHG certificate prices for N2O-N CH4 CO2-C (USD05MER per t)
Expand All @@ -59,17 +60,17 @@ $include "./modules/56_ghg_policy/input/f56_pollutant_prices.cs3"
$offdelim
;

$if "%c56_pollutant_prices%" == "coupling" table f56_pollutant_prices_coupling(t_all,i,pollutants) Regional ghg certificate prices for N2O-N CH4 CO2-C (USD05MER per t)
$if "%c56_pollutant_prices%" == "coupling" $ondelim
$if "%c56_pollutant_prices%" == "coupling" $include "./modules/56_ghg_policy/input/f56_pollutant_prices_coupling.cs3"
$if "%c56_pollutant_prices%" == "coupling" $offdelim
$if "%c56_pollutant_prices%" == "coupling" ;
$if "%c56_pollutant_prices_select%" == "coupling" table f56_pollutant_prices_coupling(t_all,i,pollutants) Regional ghg certificate prices for N2O-N CH4 CO2-C (USD05MER per t)
$if "%c56_pollutant_prices_select%" == "coupling" $ondelim
$if "%c56_pollutant_prices_select%" == "coupling" $include "./modules/56_ghg_policy/input/f56_pollutant_prices_coupling.cs3"
$if "%c56_pollutant_prices_select%" == "coupling" $offdelim
$if "%c56_pollutant_prices_select%" == "coupling" ;

$if "%c56_pollutant_prices%" == "emulator" table f56_pollutant_prices_emulator(t_all,i,pollutants) Global ghg certificate prices for N2O-N CH4 CO2-C (USD05MER per t)
$if "%c56_pollutant_prices%" == "emulator" $ondelim
$if "%c56_pollutant_prices%" == "emulator" $include "./modules/56_ghg_policy/input/f56_pollutant_prices_emulator.cs3"
$if "%c56_pollutant_prices%" == "emulator" $offdelim
$if "%c56_pollutant_prices%" == "emulator" ;
$if "%c56_pollutant_prices_select%" == "emulator" table f56_pollutant_prices_emulator(t_all,i,pollutants) Global ghg certificate prices for N2O-N CH4 CO2-C (USD05MER per t)
$if "%c56_pollutant_prices_select%" == "emulator" $ondelim
$if "%c56_pollutant_prices_select%" == "emulator" $include "./modules/56_ghg_policy/input/f56_pollutant_prices_emulator.cs3"
$if "%c56_pollutant_prices_select%" == "emulator" $offdelim
$if "%c56_pollutant_prices_select%" == "emulator" ;

*' `f56_emis_policy` contains scenarios determining for each gas and source whether it is priced or not.

Expand Down
23 changes: 12 additions & 11 deletions modules/56_ghg_policy/price_jan20/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,6 @@
*** | MAgPIE License Exception, version 1.0 (see LICENSE file).
*** | Contact: magpie@pik-potsdam.de


****select ghg prices
$ifthen "%c56_pollutant_prices%" == "coupling" im_pollutant_prices(t_all,i,pollutants) = f56_pollutant_prices_coupling(t_all,i,pollutants);
$elseif "%c56_pollutant_prices%" == "emulator" im_pollutant_prices(t_all,i,pollutants) = f56_pollutant_prices_emulator(t_all,i,pollutants);
$else im_pollutant_prices(t_all,i,pollutants) = f56_pollutant_prices(t_all,i,pollutants,"%c56_pollutant_prices%");
$endif

****** Region price share for ghg policy of selective countries:
* Country switch to determine countries for which ghg policy shall be applied.
* In the default case, the ghg policy affects all countries when activated.
Expand All @@ -22,10 +15,18 @@ p56_country_dummy(policy_countries56) = 1;
* Countries are weighted by their population size.
p56_region_price_shr(t_all,i) = sum(i_to_iso(i,iso), p56_country_dummy(iso) * im_pop_iso(t_all,iso)) / sum(i_to_iso(i,iso), im_pop_iso(t_all,iso));

***save im_pollutant_prices to parameter (including the region price share of
* the countries' ghg poliy. Note: p56_region_price_shr(t_all,i) is 1 in the
* default case)
p56_pollutant_prices_input(t_all,i,pollutants) = im_pollutant_prices(t_all,i,pollutants) * p56_region_price_shr(t_all,i);
****select ghg prices
$ifthen "%c56_pollutant_prices_select%" == "coupling"
im_pollutant_prices(t_all,i,pollutants) = f56_pollutant_prices_coupling(t_all,i,pollutants);
$elseif "%c56_pollutant_prices_select%" == "emulator"
im_pollutant_prices(t_all,i,pollutants) = f56_pollutant_prices_emulator(t_all,i,pollutants);
$else
im_pollutant_prices(t_all,i,pollutants) = f56_pollutant_prices(t_all,i,pollutants,"%c56_pollutant_prices_select%") * p56_region_price_shr(t_all,i)
+ f56_pollutant_prices(t_all,i,pollutants,"%c56_pollutant_prices_noselect%") * (1-p56_region_price_shr(t_all,i));
$endif

***save im_pollutant_prices to parameter
p56_pollutant_prices_input(t_all,i,pollutants) = im_pollutant_prices(t_all,i,pollutants);



Expand Down
Loading

0 comments on commit 140bf0e

Please sign in to comment.