Skip to content

Commit

Permalink
Merge pull request magpiemodel#645 from flohump/f_woodtrade
Browse files Browse the repository at this point in the history
Bugfix Trade Timber Products
  • Loading branch information
flohump authored Mar 21, 2024
2 parents b8af6d8 + 483dbfd commit 96ad158
Show file tree
Hide file tree
Showing 22 changed files with 252 additions and 227 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
### changed
- **config** updated FSEC scenario config for revision and included new calibration file (after cost fix in preprocessing)
- **70_livestock** if `c70_fac_req_regr` is set to `reg`: use of USDA/FAO values for historic factor requirements for livestock instead of using regression values and change of calibration year from 2005 to 2010 for regional factor requirements regression
- **21_trade** Revision of trade module. Replaced `cfg$gms$s21_trade_bal_damper` in favour of `cfg$gms$k_import21`, which allows for additional imports to maintain feasibility
- **58_peatland** Threshold in equations changed from 1e-10 to 1e-8 to avoid rare divisions by zero

### added
- **scripts** added a new validation_cell.R output script that generates a pdf with the comparison of magpie land use and crop type outputs with LUH and MAPSPAM historical data at cellular resolution.
Expand Down
10 changes: 8 additions & 2 deletions config/default.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -561,15 +561,21 @@ cfg$gms$c20_scp_type <- "sugar" # def = sugar
# * (free_apr16): free trade without restrictions
# * (off): no trade at all
# * (exo): exogenously prescribed trade
# * (selfsuff_reduced): self-sufficiency based trade with trade costs related
# * to exports
# * (selfsuff_reduced): self-sufficiency based trade with trade costs related to exports
# * (selfsuff_reduced_bilateral22): same as `selfsuff_reduced` but with bilateral trade flows
cfg$gms$trade <- "selfsuff_reduced" # def = selfsuff_reduced

# * option for `exo` realization only:
# * fix `v21_manna_from_heaven` to zero (0) or not (1)
# Note: Without fixing to zero, v21_manna_from_heaven might be used unnecessarily in runs started with highres.R
cfg$gms$s21_manna_from_heaven <- 0

# * options for `selfsuff_reduced` and `selfsuff_reduced_bilateral22` realizations:
# * Commodities that can have additional imports to maintain feasibility
cfg$gms$k_import21 <- "wood, woodfuel"
# * Cost for additional imports to maintain feasibility in USD05MER per tDM
cfg$gms$s21_cost_import <- 10000 # def = 10000

# * trade balance reduction scenario
# * (l909090r808080): 10 percent trade liberalisation for secondary and
# * livestock products in 2030,2050,2100 and 20 percent for
Expand Down
2 changes: 1 addition & 1 deletion modules/15_food/anthro_iso_jun22/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ scalar s15_exo_scp Exogenous microbial protein target on (1) / 1 /;
* The EAT-Lancet diet only allows for added sugars, but does not include processed food or
* alcohol. Via 's15_alc_scen' a maximum target for alcohol consumption can be defined.
scalar s15_exo_alcohol Exogenous alcohol target on (1) / 1 /;
scalar s15_alc_scen Scenario target for the inclusion of alcohol in the EAT-Lancet diet (1) / 0.014 /;
scalar s15_alc_scen Scenario target for the inclusion of alcohol in the EAT-Lancet diet (1) / 0 /;

scalar s15_rum_share_fadeout_india_strong switch for stronger ruminant fadeout in India (binary) / 1 /;

Expand Down
2 changes: 1 addition & 1 deletion modules/15_food/anthropometrics_jan18/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ scalar s15_waste_scen Scenario target for the ratio between food demand and inta

scalar s15_exo_diet Switch for transition towards exogenous diet scenario (1) / 0 /;

scalar s15_alc_scen Scenario target for the inclusion of alcohol in the EAT-Lancet diet (1) / 0.014 /;
scalar s15_alc_scen Scenario target for the inclusion of alcohol in the EAT-Lancet diet (1) / 0 /;

scalar s15_rum_share_fadeout_india_strong switch for stronger ruminant fadeout in India (binary) / 1 /;

Expand Down
26 changes: 14 additions & 12 deletions modules/21_trade/selfsuff_reduced/declarations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ positive variables
v21_excess_prod(h,k_trade) Superregional excess production (mio. tDM per yr)
vm_cost_trade(i) Regional trade costs (mio. USD05MER per yr)
v21_cost_trade_reg(h,k_trade) Superregional trade costs for each tradable commodity (mio. USD05MER per yr)
v21_import_for_feasibility(h,k_trade) Additional imports to maintain feasibility (mio. tDM per yr)
;

equations
Expand All @@ -32,17 +33,18 @@ equations

*#################### R SECTION START (OUTPUT DECLARATIONS) ####################
parameters
ov21_excess_dem(t,k_trade,type) Global excess demand (mio. tDM per yr)
ov21_excess_prod(t,h,k_trade,type) Superregional excess production (mio. tDM per yr)
ov_cost_trade(t,i,type) Regional trade costs (mio. USD05MER per yr)
ov21_cost_trade_reg(t,h,k_trade,type) Superregional trade costs for each tradable commodity (mio. USD05MER per yr)
oq21_trade_glo(t,k_trade,type) Global production constraint (mio. tDM per yr)
oq21_notrade(t,h,k_notrade,type) Superregional production constraint of non-tradable commodities (mio. tDM per yr)
oq21_trade_reg(t,h,k_trade,type) Superregional trade balances i.e. minimum self-sufficiency ratio (1)
oq21_trade_reg_up(t,h,k_trade,type) Superregional trade balances i.e. maximum self-sufficiency ratio (1)
oq21_excess_dem(t,k_trade,type) Global excess demand (mio. tDM per yr)
oq21_excess_supply(t,h,k_trade,type) Superregional excess production (mio. tDM per yr)
oq21_cost_trade(t,h,type) Superregional trade costs (mio. USD05MER per yr)
oq21_cost_trade_reg(t,h,k_trade,type) Superregional trade costs for each tradable commodity (mio. USD05MER per yr)
ov21_excess_dem(t,k_trade,type) Global excess demand (mio. tDM per yr)
ov21_excess_prod(t,h,k_trade,type) Superregional excess production (mio. tDM per yr)
ov_cost_trade(t,i,type) Regional trade costs (mio. USD05MER per yr)
ov21_cost_trade_reg(t,h,k_trade,type) Superregional trade costs for each tradable commodity (mio. USD05MER per yr)
ov21_import_for_feasibility(t,h,k_trade,type) Additional imports to maintain feasibility (mio. tDM per yr)
oq21_trade_glo(t,k_trade,type) Global production constraint (mio. tDM per yr)
oq21_notrade(t,h,k_notrade,type) Superregional production constraint of non-tradable commodities (mio. tDM per yr)
oq21_trade_reg(t,h,k_trade,type) Superregional trade balances i.e. minimum self-sufficiency ratio (1)
oq21_trade_reg_up(t,h,k_trade,type) Superregional trade balances i.e. maximum self-sufficiency ratio (1)
oq21_excess_dem(t,k_trade,type) Global excess demand (mio. tDM per yr)
oq21_excess_supply(t,h,k_trade,type) Superregional excess production (mio. tDM per yr)
oq21_cost_trade(t,h,type) Superregional trade costs (mio. USD05MER per yr)
oq21_cost_trade_reg(t,h,k_trade,type) Superregional trade costs for each tradable commodity (mio. USD05MER per yr)
;
*##################### R SECTION END (OUTPUT DECLARATIONS) #####################
13 changes: 7 additions & 6 deletions modules/21_trade/selfsuff_reduced/equations.gms
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@

q21_trade_reg(h2,k_trade)..
sum(supreg(h2,i2),vm_prod_reg(i2,k_trade)) =g=
(sum(supreg(h2,i2),vm_supply(i2,k_trade)) + v21_excess_prod(h2,k_trade))
*sum(ct,i21_trade_bal_reduction(ct,k_trade))
((sum(supreg(h2,i2),vm_supply(i2,k_trade)) + v21_excess_prod(h2,k_trade))
*sum(ct,i21_trade_bal_reduction(ct,k_trade)))
$(sum(ct,f21_self_suff(ct,h2,k_trade) >= 1))
+ sum(supreg(h2,i2),vm_supply(i2,k_trade))*sum(ct,f21_self_suff(ct,h2,k_trade))
*sum(ct,i21_trade_bal_reduction(ct,k_trade))
+ (sum(supreg(h2,i2),vm_supply(i2,k_trade))*sum(ct,f21_self_suff(ct,h2,k_trade))
*sum(ct,i21_trade_bal_reduction(ct,k_trade)) - v21_import_for_feasibility(h2,k_trade))
$(sum(ct,f21_self_suff(ct,h2,k_trade) < 1));

*' Upper bound for production.
Expand All @@ -51,7 +51,7 @@
v21_excess_dem(k_trade) =g=
sum(h2, sum(supreg(h2,i2),vm_supply(i2,k_trade))*(1 - sum(ct,f21_self_suff(ct,h2,k_trade)))
$(sum(ct,f21_self_suff(ct,h2,k_trade)) < 1))
+ sum(ct,f21_trade_balanceflow(ct,k_trade));
+ sum(ct,f21_trade_balanceflow(ct,k_trade)) + sum(h2, v21_import_for_feasibility(h2,k_trade));

*' Distributing the global excess demand to exporting regions is based on regional export shares [@schmitz_trading_2012].
*' Export shares are derived from FAO data (see @schmitz_trading_2012 for details). They are 0 for importing regions.
Expand All @@ -64,7 +64,8 @@
q21_cost_trade_reg(h2,k_trade)..
v21_cost_trade_reg(h2,k_trade) =g=
(i21_trade_margin(h2,k_trade) + i21_trade_tariff(h2,k_trade))
*sum(supreg(h2,i2), vm_prod_reg(i2,k_trade)-vm_supply(i2,k_trade));
*sum(supreg(h2,i2), vm_prod_reg(i2,k_trade)-vm_supply(i2,k_trade))
+ v21_import_for_feasibility(h2,k_trade) * s21_cost_import;

* Regional trade costs are the costs for each region aggregated over all the tradable commodities.
q21_cost_trade(h2)..
Expand Down
7 changes: 6 additions & 1 deletion modules/21_trade/selfsuff_reduced/input.gms
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,14 @@
$setglobal c21_trade_liberalization l909090r808080
* options are "regionalized" and "globalized" and "fragmented"

sets
k_import21(k_trade) Commodities that can have additional imports to maintain feasibility
/ wood, woodfuel /
;

scalars
s21_trade_tariff Trade tariff switch (1=on 0=off) (1) / 1 /
s21_trade_bal_damper Fraction to ease self sufficiency pool trade for roundwood / 0.65 /
s21_cost_import Cost for additional imports to maintain feasibility (USD05MER per tDM) / 10000 /
;

table f21_trade_bal_reduction(t_all,trade_groups21,trade_regime21) Share of inelastic trade pool (1)
Expand Down
100 changes: 52 additions & 48 deletions modules/21_trade/selfsuff_reduced/postsolve.gms
Original file line number Diff line number Diff line change
Expand Up @@ -6,52 +6,56 @@
*** | Contact: [email protected]

*#################### R SECTION START (OUTPUT DEFINITIONS) #####################
ov21_excess_dem(t,k_trade,"marginal") = v21_excess_dem.m(k_trade);
ov21_excess_prod(t,h,k_trade,"marginal") = v21_excess_prod.m(h,k_trade);
ov_cost_trade(t,i,"marginal") = vm_cost_trade.m(i);
ov21_cost_trade_reg(t,h,k_trade,"marginal") = v21_cost_trade_reg.m(h,k_trade);
oq21_trade_glo(t,k_trade,"marginal") = q21_trade_glo.m(k_trade);
oq21_notrade(t,h,k_notrade,"marginal") = q21_notrade.m(h,k_notrade);
oq21_trade_reg(t,h,k_trade,"marginal") = q21_trade_reg.m(h,k_trade);
oq21_trade_reg_up(t,h,k_trade,"marginal") = q21_trade_reg_up.m(h,k_trade);
oq21_excess_dem(t,k_trade,"marginal") = q21_excess_dem.m(k_trade);
oq21_excess_supply(t,h,k_trade,"marginal") = q21_excess_supply.m(h,k_trade);
oq21_cost_trade(t,h,"marginal") = q21_cost_trade.m(h);
oq21_cost_trade_reg(t,h,k_trade,"marginal") = q21_cost_trade_reg.m(h,k_trade);
ov21_excess_dem(t,k_trade,"level") = v21_excess_dem.l(k_trade);
ov21_excess_prod(t,h,k_trade,"level") = v21_excess_prod.l(h,k_trade);
ov_cost_trade(t,i,"level") = vm_cost_trade.l(i);
ov21_cost_trade_reg(t,h,k_trade,"level") = v21_cost_trade_reg.l(h,k_trade);
oq21_trade_glo(t,k_trade,"level") = q21_trade_glo.l(k_trade);
oq21_notrade(t,h,k_notrade,"level") = q21_notrade.l(h,k_notrade);
oq21_trade_reg(t,h,k_trade,"level") = q21_trade_reg.l(h,k_trade);
oq21_trade_reg_up(t,h,k_trade,"level") = q21_trade_reg_up.l(h,k_trade);
oq21_excess_dem(t,k_trade,"level") = q21_excess_dem.l(k_trade);
oq21_excess_supply(t,h,k_trade,"level") = q21_excess_supply.l(h,k_trade);
oq21_cost_trade(t,h,"level") = q21_cost_trade.l(h);
oq21_cost_trade_reg(t,h,k_trade,"level") = q21_cost_trade_reg.l(h,k_trade);
ov21_excess_dem(t,k_trade,"upper") = v21_excess_dem.up(k_trade);
ov21_excess_prod(t,h,k_trade,"upper") = v21_excess_prod.up(h,k_trade);
ov_cost_trade(t,i,"upper") = vm_cost_trade.up(i);
ov21_cost_trade_reg(t,h,k_trade,"upper") = v21_cost_trade_reg.up(h,k_trade);
oq21_trade_glo(t,k_trade,"upper") = q21_trade_glo.up(k_trade);
oq21_notrade(t,h,k_notrade,"upper") = q21_notrade.up(h,k_notrade);
oq21_trade_reg(t,h,k_trade,"upper") = q21_trade_reg.up(h,k_trade);
oq21_trade_reg_up(t,h,k_trade,"upper") = q21_trade_reg_up.up(h,k_trade);
oq21_excess_dem(t,k_trade,"upper") = q21_excess_dem.up(k_trade);
oq21_excess_supply(t,h,k_trade,"upper") = q21_excess_supply.up(h,k_trade);
oq21_cost_trade(t,h,"upper") = q21_cost_trade.up(h);
oq21_cost_trade_reg(t,h,k_trade,"upper") = q21_cost_trade_reg.up(h,k_trade);
ov21_excess_dem(t,k_trade,"lower") = v21_excess_dem.lo(k_trade);
ov21_excess_prod(t,h,k_trade,"lower") = v21_excess_prod.lo(h,k_trade);
ov_cost_trade(t,i,"lower") = vm_cost_trade.lo(i);
ov21_cost_trade_reg(t,h,k_trade,"lower") = v21_cost_trade_reg.lo(h,k_trade);
oq21_trade_glo(t,k_trade,"lower") = q21_trade_glo.lo(k_trade);
oq21_notrade(t,h,k_notrade,"lower") = q21_notrade.lo(h,k_notrade);
oq21_trade_reg(t,h,k_trade,"lower") = q21_trade_reg.lo(h,k_trade);
oq21_trade_reg_up(t,h,k_trade,"lower") = q21_trade_reg_up.lo(h,k_trade);
oq21_excess_dem(t,k_trade,"lower") = q21_excess_dem.lo(k_trade);
oq21_excess_supply(t,h,k_trade,"lower") = q21_excess_supply.lo(h,k_trade);
oq21_cost_trade(t,h,"lower") = q21_cost_trade.lo(h);
oq21_cost_trade_reg(t,h,k_trade,"lower") = q21_cost_trade_reg.lo(h,k_trade);
ov21_excess_dem(t,k_trade,"marginal") = v21_excess_dem.m(k_trade);
ov21_excess_prod(t,h,k_trade,"marginal") = v21_excess_prod.m(h,k_trade);
ov_cost_trade(t,i,"marginal") = vm_cost_trade.m(i);
ov21_cost_trade_reg(t,h,k_trade,"marginal") = v21_cost_trade_reg.m(h,k_trade);
ov21_import_for_feasibility(t,h,k_trade,"marginal") = v21_import_for_feasibility.m(h,k_trade);
oq21_trade_glo(t,k_trade,"marginal") = q21_trade_glo.m(k_trade);
oq21_notrade(t,h,k_notrade,"marginal") = q21_notrade.m(h,k_notrade);
oq21_trade_reg(t,h,k_trade,"marginal") = q21_trade_reg.m(h,k_trade);
oq21_trade_reg_up(t,h,k_trade,"marginal") = q21_trade_reg_up.m(h,k_trade);
oq21_excess_dem(t,k_trade,"marginal") = q21_excess_dem.m(k_trade);
oq21_excess_supply(t,h,k_trade,"marginal") = q21_excess_supply.m(h,k_trade);
oq21_cost_trade(t,h,"marginal") = q21_cost_trade.m(h);
oq21_cost_trade_reg(t,h,k_trade,"marginal") = q21_cost_trade_reg.m(h,k_trade);
ov21_excess_dem(t,k_trade,"level") = v21_excess_dem.l(k_trade);
ov21_excess_prod(t,h,k_trade,"level") = v21_excess_prod.l(h,k_trade);
ov_cost_trade(t,i,"level") = vm_cost_trade.l(i);
ov21_cost_trade_reg(t,h,k_trade,"level") = v21_cost_trade_reg.l(h,k_trade);
ov21_import_for_feasibility(t,h,k_trade,"level") = v21_import_for_feasibility.l(h,k_trade);
oq21_trade_glo(t,k_trade,"level") = q21_trade_glo.l(k_trade);
oq21_notrade(t,h,k_notrade,"level") = q21_notrade.l(h,k_notrade);
oq21_trade_reg(t,h,k_trade,"level") = q21_trade_reg.l(h,k_trade);
oq21_trade_reg_up(t,h,k_trade,"level") = q21_trade_reg_up.l(h,k_trade);
oq21_excess_dem(t,k_trade,"level") = q21_excess_dem.l(k_trade);
oq21_excess_supply(t,h,k_trade,"level") = q21_excess_supply.l(h,k_trade);
oq21_cost_trade(t,h,"level") = q21_cost_trade.l(h);
oq21_cost_trade_reg(t,h,k_trade,"level") = q21_cost_trade_reg.l(h,k_trade);
ov21_excess_dem(t,k_trade,"upper") = v21_excess_dem.up(k_trade);
ov21_excess_prod(t,h,k_trade,"upper") = v21_excess_prod.up(h,k_trade);
ov_cost_trade(t,i,"upper") = vm_cost_trade.up(i);
ov21_cost_trade_reg(t,h,k_trade,"upper") = v21_cost_trade_reg.up(h,k_trade);
ov21_import_for_feasibility(t,h,k_trade,"upper") = v21_import_for_feasibility.up(h,k_trade);
oq21_trade_glo(t,k_trade,"upper") = q21_trade_glo.up(k_trade);
oq21_notrade(t,h,k_notrade,"upper") = q21_notrade.up(h,k_notrade);
oq21_trade_reg(t,h,k_trade,"upper") = q21_trade_reg.up(h,k_trade);
oq21_trade_reg_up(t,h,k_trade,"upper") = q21_trade_reg_up.up(h,k_trade);
oq21_excess_dem(t,k_trade,"upper") = q21_excess_dem.up(k_trade);
oq21_excess_supply(t,h,k_trade,"upper") = q21_excess_supply.up(h,k_trade);
oq21_cost_trade(t,h,"upper") = q21_cost_trade.up(h);
oq21_cost_trade_reg(t,h,k_trade,"upper") = q21_cost_trade_reg.up(h,k_trade);
ov21_excess_dem(t,k_trade,"lower") = v21_excess_dem.lo(k_trade);
ov21_excess_prod(t,h,k_trade,"lower") = v21_excess_prod.lo(h,k_trade);
ov_cost_trade(t,i,"lower") = vm_cost_trade.lo(i);
ov21_cost_trade_reg(t,h,k_trade,"lower") = v21_cost_trade_reg.lo(h,k_trade);
ov21_import_for_feasibility(t,h,k_trade,"lower") = v21_import_for_feasibility.lo(h,k_trade);
oq21_trade_glo(t,k_trade,"lower") = q21_trade_glo.lo(k_trade);
oq21_notrade(t,h,k_notrade,"lower") = q21_notrade.lo(h,k_notrade);
oq21_trade_reg(t,h,k_trade,"lower") = q21_trade_reg.lo(h,k_trade);
oq21_trade_reg_up(t,h,k_trade,"lower") = q21_trade_reg_up.lo(h,k_trade);
oq21_excess_dem(t,k_trade,"lower") = q21_excess_dem.lo(k_trade);
oq21_excess_supply(t,h,k_trade,"lower") = q21_excess_supply.lo(h,k_trade);
oq21_cost_trade(t,h,"lower") = q21_cost_trade.lo(h);
oq21_cost_trade_reg(t,h,k_trade,"lower") = q21_cost_trade_reg.lo(h,k_trade);
*##################### R SECTION END (OUTPUT DEFINITIONS) ######################
9 changes: 4 additions & 5 deletions modules/21_trade/selfsuff_reduced/preloop.gms
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,6 @@
i21_trade_bal_reduction(t_all,k_trade)=f21_trade_bal_reduction(t_all,"easytrade","%c21_trade_liberalization%");
i21_trade_bal_reduction(t_all,k_hardtrade21)=f21_trade_bal_reduction(t_all,"hardtrade","%c21_trade_liberalization%");

loop(t_all$(m_year(t_all)>=2015),
i21_trade_bal_reduction(t_all,"wood") = i21_trade_bal_reduction(t_all,"wood") * s21_trade_bal_damper;
);
i21_trade_bal_reduction(t_all,"woodfuel") = i21_trade_bal_reduction(t_all,"wood");

i21_trade_margin(h,k_trade) = f21_trade_margin(h,k_trade);

if ((s21_trade_tariff=1),
Expand All @@ -25,3 +20,7 @@ pm_selfsuff_ext(t_ext,h,kforestry) = f21_self_suff("y2150",h,kforestry);
pm_selfsuff_ext(t_all,h,kforestry) = f21_self_suff(t_all,h,kforestry);
*Implausible jumps in selfsuff for wood in some regions.
pm_selfsuff_ext(tstart21,h,kforestry) = f21_self_suff("y2010",h,kforestry);

v21_import_for_feasibility.fx(h,k_trade) = 0;
v21_import_for_feasibility.lo(h,k_import21) = 0;
v21_import_for_feasibility.up(h,k_import21) = Inf;
2 changes: 1 addition & 1 deletion modules/21_trade/selfsuff_reduced/realization.gms
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
*' historical region specific trade patterns, and a comparative advantage pool
*' based on most cost-efficient production.

*' In the self-sufficiency pool, regional self-sufficiency ratios `f21_self_suff_seedred_1995(i,k)` defines
*' In the self-sufficiency pool, regional self-sufficiency ratios `f21_self_suff` defines
*' how much of the demand of each region `i` for each traded goods `k_trade` has to be met by domestic production.
*' Self sufficiency ratios smaller than one indicate that the region imports from the world market,
*' while self-sufficiencies greater than one indicate that the region produces for export. Trade costs,
Expand Down
4 changes: 2 additions & 2 deletions modules/21_trade/selfsuff_reduced/scaling.gms
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
*** | MAgPIE License Exception, version 1.0 (see LICENSE file).
*** | Contact: [email protected]

vm_cost_trade.scale(i) = 10e4;
v21_cost_trade_reg.scale(h,k_trade) = 10e2;
vm_cost_trade.scale(i) = 10e5;
v21_cost_trade_reg.scale(h,k_trade) = 10e3;
Loading

0 comments on commit 96ad158

Please sign in to comment.