Newer
Older
*** | (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/30_biomass/magpie_40/datainput.gms
*** read in regional maxprod of pebioil and pebios (1st generation) biomass.
table p30_bio1stgen(tall,all_regi,all_enty) "regional maximal production potential for 1st generation crops only (pebioil, pebios)"
$ondelim
$include "./modules/30_biomass/magpie_40/input/p30_bio1stgen.cs3r"
$offdelim
;
*** read in regional maxprod of pebiolc residues
table p30_biolcResidues(tall,all_regi,all_LU_emi_scen) "regional potential for pebiolc residues"
$ondelim
$include "./modules/30_biomass/magpie_40/input/p30_biolcResidues.cs3r"
$offdelim
;
*** costs: use global costs for all regions ($/GJ -> T$/TWa)
*** define costs for pebiolc residues (2nd grade)
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
*** and for pebios, pebioil (defined only for 5th grade)
p30_datapebio(regi,"pebios","5","cost",ttot)$(ttot.val ge 2005) = 12.4 * s30_D2TD / sm_GJ_2_TWa;
p30_datapebio(regi,"pebioil","5","cost",ttot)$(ttot.val ge 2005) = 15.8 * s30_D2TD / sm_GJ_2_TWa;
p30_datapebio(regi,"pebiolc","2","cost",ttot)$(ttot.val ge 2005) = 1 * s30_D2TD / sm_GJ_2_TWa;
*** maxprod pebiolc: choose SSP and convert from PJ/yr to TWa/yr
p30_datapebio(regi,"pebiolc",rlf,"maxprod",ttot)$(ttot.val ge 2005) = p30_biolcResidues(ttot,regi,"%cm_LU_emi_scen%") * sm_EJ_2_TWa / 1000;
*** maxprod 1st gen: use regional maxprod data from MAgPIE for 1st generation energy carriers (pebios, pebioil)
p30_datapebio(regi,"pebios","5","maxprod",ttot)$(ttot.val ge 2005) = p30_bio1stgen(ttot,regi,"pebios") * sm_EJ_2_TWa / 1000;
p30_datapebio(regi,"pebioil","5","maxprod",ttot)$(ttot.val ge 2005) = p30_bio1stgen(ttot,regi,"pebioil") * sm_EJ_2_TWa / 1000;
display p30_datapebio;
*DK* Read prices and costs for 2nd gen. purpose grown bioenergy from MAgPIE (calculated with demnad from previous Remind run)
p30_pebiolc_pricemag(ttot,regi) = 0;
$if %cm_MAgPIE_coupling% == "on" table p30_pebiolc_pricemag_coupling(tall,all_regi) "prices and costs for 2nd gen. purpose grown bioenergy from MAgPIE"
$if %cm_MAgPIE_coupling% == "on" $ondelim
$if %cm_MAgPIE_coupling% == "on" $include "./modules/30_biomass/magpie_40/input/p30_pebiolc_pricemag_coupling.csv";
$if %cm_MAgPIE_coupling% == "on" $offdelim
$if %cm_MAgPIE_coupling% == "on" ;
$if %cm_MAgPIE_coupling% == "on" p30_pebiolc_pricemag(ttot,regi) = p30_pebiolc_pricemag_coupling(ttot,regi);
*** Read production of ligno-cellulosic purpose grown bioenergy from look-up table (used to calculate bioenergy costs in standalone runs and substract them from budget equation)
parameter p30_biolcProductionLookup(tall,all_regi,all_LU_emi_scen,all_rcp_scen) "regional production of pebiolc purpose grown"
/
$ondelim
$include "./modules/30_biomass/magpie_40/input/p30_biolcProductionLookup.cs4r"
$offdelim
/
;
*** select pebiolc productoion from look-up table according to SSP and RCP
p30_pebiolc_demandmag(ttot,regi) = p30_biolcProductionLookup(ttot,regi,"%cm_LU_emi_scen%","%cm_rcp_scen%");
*DK* In coupled runs overwrite pebiolc production from look-up table with actual MAgPIE values.
*DK* Read production of 2nd gen. purpose grown bioenergy from MAgPIE (given to MAgPIE from previous Remind run)
$if %cm_MAgPIE_coupling% == "on" table p30_pebiolc_demandmag_coupling(tall,all_regi) "production of 2nd gen. purpose grown bioenergy from MAgPIE"
$if %cm_MAgPIE_coupling% == "on" $ondelim
$if %cm_MAgPIE_coupling% == "on" $include "./modules/30_biomass/magpie_40/input/p30_pebiolc_demandmag_coupling.csv";
$if %cm_MAgPIE_coupling% == "on" $offdelim
$if %cm_MAgPIE_coupling% == "on" ;
$if %cm_MAgPIE_coupling% == "on" p30_pebiolc_demandmag(ttot,regi) = p30_pebiolc_demandmag_coupling(ttot,regi);
*** Read parameters for bioenergy supply curve
parameter f30_bioen_price(tall,all_regi,all_LU_emi_scen,all_rcp_scen,all_charScen) "time dependent fit coefficients for bioenergy price formula"
/
$ondelim
$include "./modules/30_biomass/magpie_40/input/f30_bioen_price.cs4r"
$offdelim
/
;
*** Select bioenergy bioenergy supply curve according to SSP scenario
i30_bioen_price_a(ttot,regi) = f30_bioen_price(ttot,regi,"%cm_LU_emi_scen%","%cm_rcp_scen%","a");
i30_bioen_price_b(ttot,regi) = f30_bioen_price(ttot,regi,"%cm_LU_emi_scen%","%cm_rcp_scen%","b");
*RP* in 2005 and 2010, we always want to use bau values
loop(ttot$( (ttot.val = 2005) OR (ttot.val = 2010) ),
i30_bioen_price_a(ttot,regi) = f30_bioen_price(ttot,regi,"%cm_LU_emi_scen%","none","a");
i30_bioen_price_b(ttot,regi) = f30_bioen_price(ttot,regi,"%cm_LU_emi_scen%","none","b");
);
display i30_bioen_price_a, i30_bioen_price_b;

David Klein
committed
*** -------------------------------------------------------------
*** Bounds on pedem
*** -------------------------------------------------------------

David Klein
committed
*** To prevent RUS and MEA from demanding high amounts of biomass
*** just because of their capacity to store negative emissions a
*** general rule for all regions is applied that limits the PE

David Klein
committed
*** demand of BECCS technologies in policy runs to 30% of the total
*** PE of the baseline scenario (see q30_limitTeBio)

David Klein
committed
***if(cm_emiscen ne 1,
***Execute_Loadpoint 'input_ref' v30_pedem_BAU=vm_demPe;
***Execute_Loadpoint 'input_ref' v30_seprod_BAU=vm_prodSe;
***
***p30_pedem_BAU(ttot,regi) =
*** sum(pe2se(enty,enty2,te)$(sameas(enty,"peoil") OR sameas(enty,"pecoal") OR sameas(enty,"pegas") OR sameas(enty,"pebiolc") OR sameas(enty,"pebios") OR sameas(enty,"pebioil")),
*** v30_pedem_BAU.l(ttot,regi,enty,enty2,te)
*** )
*** + sum(entySe,
*** sum(te,
*** v30_seprod_BAU.l(ttot,regi,"pegeo",entySe,te)
*** + v30_seprod_BAU.l(ttot,regi,"pehyd",entySe,te)
*** + v30_seprod_BAU.l(ttot,regi,"pewin",entySe,te)
*** + v30_seprod_BAU.l(ttot,regi,"pesol",entySe,te)
*** + v30_seprod_BAU.l(ttot,regi,"peur",entySe,te)
*** )
*** ) * 100/40 !!! substitution method
***;
***
***p30_pedemBio_BAU(ttot,regi) =
*** sum(pe2se(enty,enty2,te)$(sameas(enty,"pebiolc") OR sameas(enty,"pebios") OR sameas(enty,"pebioil")),
*** v30_pedem_BAU.l(ttot,regi,enty,enty2,te)
*** );
***);

David Klein
committed