-
Alois Dirnaichner authored
- Only the biofuel share in the transport sector is limited. - Parameters renamed: v_shBioliq -> v_shBioTrans, c_shBioliq -> c_shBioTrans - Equations: q_shBioliq -> q_shBioTrans
Alois Dirnaichner authored- Only the biofuel share in the transport sector is limited. - Parameters renamed: v_shBioliq -> v_shBioTrans, c_shBioliq -> c_shBioTrans - Equations: q_shBioliq -> q_shBioTrans
declarations.gms 42.74 KiB
*** | (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 ./core/declarations.gms
*LB* declaration of parameters, variables and equations
***----------------------------------------------------------------------------------------
*** PARAMETERS
***----------------------------------------------------------------------------------------
parameters
***----------------------------------------------------------------------------------------
***--------------------------------------------------MACRO module--------------------------
***prices
pm_pvp(ttot,all_enty) "Price on commodity markets",
p_pvpRef(ttot,all_enty) "Price on commodity markets - imported from REF gdx",
pm_pvpRegi(ttot,all_regi,all_enty) "prices of traded commodities - regional. only used for permit trade"
p_pvpRegiBeforeStartYear(ttot,all_regi,all_enty) "prices of traded commodities before start year - regional. only used for permit trade"
pm_pricePerm(ttot) "permit price in special case when the marginal is only found in box module"
p_share(ttot,all_regi,all_in,all_in) "share of production factors"
pm_share_trans(tall,all_regi) "transportation share"
pm_gdp_gdx(tall,all_regi) "GDP path from gdx, updated iteratively."
p_inv_gdx(tall,all_regi) "macro-investments path from gdx, updated iteratively."
pm_taxCO2eq(ttot,all_regi) "CO2 tax path in T$/GtC = $/kgC. To get $/tCO2, multiply with 272 [T$/GtC]"
pm_taxCO2eqHist(ttot,all_regi) "Historic CO2 tax path in 2010 and 2015 (also in BAU!) in T$/GtC = $/kgC. To get $/tCO2, multiply with 272 [T$/GtC]"
pm_taxCO2eq_iteration(iteration,ttot,all_regi) "save CO2eq tax used in iteration"
p_taxCO2eq_iterationdiff(ttot,all_regi) "help parameter for iterative adjustment of taxes"
p_taxCO2eq_iterationdiff_tmp(ttot,all_regi) "help parameter for iterative adjustment of taxes"
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_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"
f_pop(tall,all_regi,all_POPscen) "population data for all possible scenarios"
pm_pop(tall,all_regi) "population data [bn people]"
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_esCapCost(tall,all_regi,all_teEs) "Capital energy cost per unit of consumption for end-use capital (energy service layer)"
pm_cesdata_sigma(ttot,all_in) "elasticities of substitution"
o_diff_to_Budg(iteration) "Difference between actual CO2 budget and target CO2 budget"
o_totCO2emi_peakBudgYr(iteration) "Total CO2 emissions in the peakBudgYr"
o_peakBudgYr_Itr(iteration) "Year in which the CO2 budget is supposed to peak. Is changed in iterative_target_adjust = 9"
o_factorRescale_taxCO2_afterPeakBudgYr(iteration) "Multiplicative factor for rescaling the CO2 price in the year after peakBudgYr - only needed if flip-flopping of peakBudgYr occurs"
o_delay_increase_peakBudgYear(iteration) "Counter that tracks if flip-flopping of peakBudgYr happened. Starts an inner loop to try and overcome this"
o_reached_until2150pricepath(iteration) "Counter that tracks if the inner loop of increasing the CO2 price AFTER peakBudgYr goes beyond the initial trajectory"
p_taxCO2eq_until2150(ttot,all_regi) "CO2 price trajectory continued until 2150 - as if there was no change in trajectory after peakBudgYr. Needed to recalculate CO2 price trajectory after peakBudgYr was shifted right"
o_totCO2emi_allYrs(ttot,iteration) "Global CO2 emissions over time and iterations. Needed to check the procedure to find the peakBudgYr"
o_change_totCO2emi_peakBudgYr "Measure for how much the CO2 emissions change around the peakBudgYr"
p_factorRescale_taxCO2(iteration) "Multiplicative factor for rescaling the CO2 price to reach the target"
p_factorRescale_taxCO2_Funneled(iteration) "Multiplicative factor for rescaling the CO2 price to reach the target - limited by an iteration-dependent funnel"
o_taxCO2eq_Itr_1regi(ttot,iteration) "CO2 taxed in the last region, tracked over iterations for debugging"
o_pkBudgYr_flipflop(iteration) "Counter that tracks if flipfloping of cm_peakBudgYr occured in the last iterations"
o_taxCO2eq_afterPeakShiftLoop_Itr_1regi(ttot, iteration) "CO2 taxed in the last region, after the loop that shifts peakBudgYr, tracked over iterations for debugging"
***----------------------------------------------------------------------------------------
***-----------------------------------------------ESM module-------------------------------
pm_emiExog(tall,all_regi,all_enty) "exogenous emissions"
p_macBaseMagpie(tall,all_regi,all_enty) "baseline emissions from MAgPIE (type emiMacMagpie)"
p_macBaseExo(tall,all_regi,all_enty) "exogenous baseline emissions (type emiMacExo)"
pm_macAbat(tall,all_regi,all_enty,steps) "abatement levels based on data from van Vuuren [fraction]"
pm_macAbatLev(tall,all_regi,all_enty) "actual level of abatement per time step, region, and source [fraction]"
p_macAbat_lim(tall,all_regi,all_enty) "limit of abatement level based on limit of yearly change [fraction]"
p_macUse2005(all_regi,all_enty) "usage of MACs in 2005 [fraction]"
p_macLevFree(tall,all_regi,all_enty) "Phase in of zero-cost MAC options [fraction]"
pm_macCost(tall,all_regi,all_enty) "abatement costs for all emissions subject to MACCs (type emiMacSector) []"
pm_macStep(tall,all_regi,all_enty) "step number of abatement level [integer]"
pm_macSwitch(all_enty) "switch to include mac option in the code"
pm_macCostSwitch(all_enty) "switch to include mac costs in the code (e.g. in coupled scenarios, we want to include the costs in REMIND, but MAC effects on emissions are calculated in MAgPIE)"
pm_priceCO2(tall,all_regi) "carbon price [$/tC]"
p_priceCO2forMAC(tall,all_regi,all_enty) "carbon price defined for MAC gases [$/tC]"
p_priceGas(tall,all_regi) "gas price in [$/tCeq] for ch4gas MAC"
pm_ResidualCementDemand(tall,all_regi) "reduction in cemend demand (and thus process emissions) due to climate policy [0...1]"
pm_CementAbatementPrice(ttot,all_regi) "CO2 price used during calculation of cement demand reduction [$/tCO2]"
pm_CementDemandReductionCost(tall,all_regi) "cost of reducing cement demand [tn$2005]"
p_macPE(ttot,all_regi,all_enty) "pe from MACs"
pm_shPerm(tall, all_regi) "emission permit shares"
pm_emicapglob(tall) "global emission cap"
p_adj_coeff(ttot,all_regi,all_te) "coefficient for adjustment costs"
p_adj_coeff_glob(all_te) "coefficient for adjustment costs - global scale"
p_switch_cement(ttot,all_regi) "describes an s-curve to provide a smooth switching from the short-term behavior (depending on per capita capital investments) to the long-term behavior (constant per capita emissions) of CO2 emissions from cement production"
p_cint(all_regi,all_enty,all_enty,rlf) "additional emissions of GHG from mining, on top of emissions from combustion"
pm_eta_conv(tall,all_regi,all_te) "Time-dependent eta for technologies that do not have explicit time-dependant etas, still eta converges until 2050 to dataglob_values. [efficiency (0..1)]"
pm_EN_demand_from_initialcap2(all_regi,all_enty) "PE demand resulting from the initialcap routine. [EJ, Uranium: MT U3O8]"
pm_budgetCO2eq(all_regi) "budget for regional energy-emissions in period 1"
p_actualbudgetco2(tall) "actual level of cumulated emissions [GtCO2]"
pm_dataccs(all_regi,char,rlf) "maximum CO2 storage capacity using CCS technology. [GtC]"
pm_dataeta(tall,all_regi,all_te) "regional eta data"
p_emi_quan_conv_ar4(all_enty) "conversion factor for various gases to GtCeq"
pm_emifac(tall,all_regi,all_enty,all_enty,all_te,all_enty) "emission factor by technology for all types of emissions in emiTe"
pm_omeg (all_regi,opTimeYr,all_te) "technical depreciation parameter, gives the share of a capacity that is still usable after tlt. [none/share, value between 0 and 1]"
p_aux_lifetime(all_regi,all_te) "auxiliary parameter for calculating life times, calculated externally in excel sheet"
pm_pedem_res(ttot,all_regi,all_te) "Demand for pebiolc residues, needed for enhancement of residue potential [TWa]"
p_ef_dem(all_enty) "Demand side emission factor of final energy carriers [MtCO2/EJ]"
p_bioshare(tall,all_regi,all_enty) "bioshare for each FE carrier"
p_avCapFac2015(all_regi,all_te) "average capacity factor of non-bio renewables in 2015 in REMIND"
p_aux_capToDistr(all_regi,all_te) "aux. param. to calculate p_avCapFac2015; The historic capacity in 2015"
s_aux_cap_remaining "aux. param. to calculate p_avCapFac2015; countdown parameter"
p_aux_capThisGrade(all_regi,all_te,rlf) "aux. param. to calculate p_avCapFac2015; How the historic 2015 capacity is distributed among grades"
p_aux_capacityFactorHistOverREMIND(all_regi,all_te) "aux. param. to calculate capacity factors correction (wind and spv): the ratio of historic over REMIND CapFac in 2015"
pm_fe2es(tall,all_regi,all_teEs) "Conversion factor from final energies to energy services. Default is 1."
pm_shFeCes(ttot,all_regi,all_enty,all_in,all_teEs) "Final energy shares for CES nodes"
p_adj_coeff_Orig(ttot,all_regi,all_te) "initial value of p_adj_coeff"
p_adj_seed_te_Orig(ttot,all_regi,all_te) "initial value of p_adj_seed_te"
p_varyAdj_mult_adjSeedTe(ttot,all_regi) "Multiplicative factor to adjust adjustment cost parameter p_adj_seed_te according to CO2 price level"
p_varyAdj_mult_adjCoeff(ttot,all_regi) "Multiplicative factor to adjust adjustment cost parameter p_adj_coeff according to CO2 price level"
p_boundtmp(tall,all_regi,all_te,rlf) "read-in bound on capacities"
p_bound_cap(tall,all_regi,all_te,rlf) "read-in bound on capacities"
pm_data(all_regi,char,all_te) "Large array for most technical parameters of technologies; more detail on the individual technical parameters can be found in the declaration of the set 'char' "
pm_cf(tall,all_regi,all_te) "Installed capacity availability - capacity factor (fraction of the year that a plant is running)"
p_tkpremused(all_regi,all_te) "turn-key cost premium used in the model (with a discount rate of 3+ pure rate of time preference); in comparison to overnight costs)"
p_aux_tlt(all_te) "auxilliary parameter to determine maximal lifetime of a technology"
p_aux_check_omeg(all_te) "auxiliary parameter for an automated check that no technology is erroneously entered with pm_omeg('1') value of 0"
p_aux_check_tlt(all_te) "auxiliary parameter for an automated check that the pm_omeg calculation and filling of the opTimeYr2te mapping is in accordance"
p_aux_tlt_max(all_te) "auxiliary parameter to find the last mapping in opTimeYr2te for each technology"
pm_vintage_in(all_regi,opTimeYr,all_te) "historical vintage structure. [arbitrary]"
p_efFossilFuelExtr(all_regi,all_enty,all_enty) "emission factor for CH4 from fossil fuel extraction and N2O from bioenergy"
p_efFossilFuelExtrGlo(all_enty,all_enty) "global emission factor for CH4 from fossil fuel extraction and N2O from bioenergy"
pm_dataren(all_regi,char,rlf,all_te) "Array including both regional renewable potential and capacity factor"
p_datapot(all_regi,char,rlf,all_enty) "Total land area usable for the solar technologies PV and CSP. [km^2]"
p_adj_seed_reg(tall,all_regi) "market capacity that can be built from 0 and gives v_adjFactor=1"
p_adj_seed_te(ttot,all_regi,all_te) "technology-dependent multiplicative prefactor to the v_adjFactor seed value. Smaller means slower scale-up"
*** appears in q_esm2macro and q_balFeForCes. This energy category is 0 in LAM, IND and AFR in 2005, but a value > 0 is needed for the calculation of CES parameters.
*** Accordingly, a value of sm_eps is inserted in pm_cesdata to allow calculation of the CES parameters.
p_datacs(all_regi,all_enty) "fossil energy that is not oxidized (=carbon stored)"
pm_inco0_t(ttot,all_regi,all_te) "New inco0 that is time-dependent for some technologies. [T$/TW]"
*LB* calculate parameter pm_tsu2opTimeYr for the eq q_transPe2se and q_cap;
***this parameter counts backwards from time ttot - only the existing time steps
p_tsu2opTimeYr_h(ttot,opTimeYr) "parameter to generate pm_tsu2opTimeYr",
pm_tsu2opTimeYr(ttot,opTimeYr) "parameter that counts opTimeYr regarding tsu2opTimeYr apping"
pm_emissions0(tall,all_regi,all_enty) "Emissions in last iteration"
pm_co2eq0(tall,all_regi) "vm_co2eq from last iteration"
pm_capCum0(tall,all_regi,all_te) "vm_capCum from last iteration"
p_capCum(tall, all_regi,all_te) "vm_capCum from input.gdx for recalibration of learning investment costs"
pm_capCumForeign(ttot,all_regi,all_te) "parameter for learning externality (cumulated capacity of other regions except regi)"
pm_SolNonInfes(all_regi) "model status from last iteration. 1 means status 2 or 7, 0 for all other status codes"
p_cintraw(all_enty) "carbon intensity of fossils [GtC per TWa]"
p_CapFixFromRWfix(ttot,all_regi,all_te) "parameter for fixing capacity variable to Real-World values in 2010/2015"
p_deltaCapFromRWfix(ttot,all_regi,all_te) "parameter with resulting deltacap values resulting from fixing capacity to real-world values in 2010/2015"
*** climate related
pm_globalMeanTemperature(tall) "global mean temperature anomaly"
pm_globalMeanTemperatureZeroed1900(tall) "global mean temperature anomaly, zeroed around 1900"
pm_temperatureImpulseResponseCO2(tall,tall) "temperature impulse response to CO2 [K/GtCO2]"
pm_regionalTemperature(tall,all_regi) "regional temperature"
pm_tempScaleGlob2Reg(tall,all_regi) "scaling factor from global to regional temperature"
pm_damage(tall,all_regi) "damage factor (reduces GDP)"
pm_damageGrowthRate(tall,all_regi) "damage function for growth rate of GDP"
pm_damageMarginal(tall,all_regi) "damage function derivative"
pm_taxCO2eqSCC(ttot,all_regi) "carbon tax component due to damages (social cost of carbon) "
pm_GDPGross(tall,all_regi) "gross GDP (before damages)"
***----------------------------------------------------------------------------------------
*** ----- Parameters needed for MAGICC ----------------------------------------------------
p_MAGICC_emi(tall,RCP_regions_world_bunkers,emiRCP) "emission data to export"
***----------------------------------------------------------------------------------------
***---------------------------parameter for output-----------------------------------------
o_DirlcoCCS(ttot,all_regi,all_te) "Annuity per sequestered CO2 by CCS technology, calc. from investment costs and fixOM. [$/tCO2]"
o_DirlcoCCS_total(ttot,all_regi) "Total annuity per sequestered CO2. [$/tCO2]"
o_CO2emi_per_energy(ttot,all_regi,all_te) "Emitted CO2 per MWh energy (main product) produced. [kgCO2/MWh]"
o_seq_CCO2emi_per_energy(ttot,all_regi,all_te) "Sequestered CO2 per MWh energy produced (main product). [kgCO2/MWh]"
o_lcoemarkup_CCS(ttot,all_regi,all_te) "Additional LCOE mark-up due to CCS transport&storage. [$/MWh]"
o_INI_DirProdSeTe "directly produced SE by technology in 2005 (from initialcap2)"
o_INI_TotalDirProdSe "Total direct SE production in 2005 (from initialcap2)"
o_INI_TotalCap "Total electricity producing capacity in 2005 (from initialcap2)"
o_INI_AvCapFac "Average regional capacity factor of the power sector in 2005 (from initialcap2)"
o_iterationNumber "output parameter to be able to display the iteration number"
*** Keep track of ESM numbers for output to see changes between iterations
o_negitr_cumulative_peprod(iteration,entyPe) "estimated production 2005-2100. 'estimated' because of different times step lengths around 2100 [ZJ]"
o_negitr_cumulative_CO2_emineg_co2luc(iteration) "estimated CO2 emissions from LUC 2005-2100. 'estimated' because of different times step lengths around 2100 [GtCO2]"
o_negitr_cumulative_CO2_emineg_cement(iteration) "estimated CO2 emissions from cement 2005-2100. 'estimated' because of different times step lengths around 2100 [GtCO2]"
o_negitr_cumulative_CO2_emieng_seq(iteration) "estimated sequestered CO2 emissions 2005-2100. 'estimated' because of different times step lengths around 2100 [GtCO2]"
o_negitr_disc_cons_dr5_reg(iteration,all_regi) "estimated discounted consumption 2005-2100 with discount rate 5%. 'estimated' because of different times step lengths around 2100 [T$]"
o_negitr_disc_cons_drInt_reg(iteration,all_regi) "estimated discounted consumption 2005-2100 with internal discount rate. 'estimated' because of different times step lengths around 2100 [T$]"
o_negitr_total_forc(iteration) "total forcing in 2100"
***----------------------------------------------------------------------------------------
***------------------------------------------------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"
pm_dt(tall) "difference to last timestep"
pm_interpolWeight_ttot_tall(tall) "weight for linear interpolation of ttot-dependent variables"
pm_tall_2_ttot(tall,ttot) "mapping from tall to ttot"
pm_ttot_2_tall(ttot,tall) "mapping from ttot to tall"
p_share_seliq_s(ttot,all_regi) "share of liquids used for stationary sector (fehos). [0..1]"
p_share_seh2_s(ttot,all_regi) "share of hydrogen used for stationary sector (feh2s). [0..1]"
p_share_seel_s(ttot,all_regi) "Share of electricity used for stationary sector (feels). [0..1]"
p_discountedLifetime(all_te) "Sum over the discounted (@6%) depreciation factor (omega)"
p_teAnnuity(all_te) "Annuity factor of a technology"
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"
;
***----------------------------------------------------------------------------------------
*** VARIABLES
***----------------------------------------------------------------------------------------
variables
***----------------------------------------------------------------------------------------
***--------------------------------------------------MACRO module--------------------------
vm_taxrev(ttot,all_regi) "difference between tax volume in current and previous iteration"
vm_costSubsidizeLearning(ttot,all_regi) "regional cost of subsidy for learning technologies"
vm_dummyBudget(ttot,all_regi) "auxiliary variable that helps to meet permit allocation equation in nash case"
***----------------------------------------------------------------------------------------
***-------------------------------------------------ESM module-----------------------------
vm_macBase(ttot,all_regi,all_enty) "baseline emissions for all emissions subject to MACCs (type emismac)"
vm_emiTeDetail(ttot,all_regi,all_enty,all_enty,all_te,all_enty) "energy-related emissions per region and technology"
vm_emiTe(ttot,all_regi,all_enty) "total energy-related emissions of each region. [GtC, Mt CH4, Mt N]"
vm_emiMacSector(ttot,all_regi,all_enty) "total non-energy-related emission of each region. [GtC, Mt CH4, Mt N]"
vm_emiCdr(ttot,all_regi,all_enty) "total (negative) emissions due to CDR technologies of each region. [GtC]"
vm_emiMac(ttot,all_regi,all_enty) "total non-energy-related emission of each region. [GtC, Mt CH4, Mt N]"
vm_emiAll(ttot,all_regi,all_enty) "total regional emissions. [GtC, Mt CH4, Mt N]"
vm_emiAllGlob(ttot,all_enty) "total global emissions - link to the climate module. [GtC, Mt CH4, Mt N]"
vm_perm(ttot,all_regi) "emission allowances"
vm_co2eqGlob(ttot) "global emissions to be balanced by allowances. [GtCeq]"
vm_co2eq(ttot,all_regi) "total emissions measured in co2 equivalents ATTENTION: content depends on multigasscen. [GtCeq]"
v_co2eqCum(all_regi) "cumulated vm_co2eq emissions for the first budget period. [GtCeq]"
vm_banking(ttot,all_regi) "banking of emission permits"
v_adjFactor(tall,all_regi,all_te) "factor to multiply with investment costs for adjustment costs"
v_adjFactorGlob(tall,all_regi,all_te) "factor to multiply with investment costs for adjustment costs - global scale"
v_costInvTeDir(tall,all_regi,all_te) "annual direct investments into a technology"
v_costInvTeAdj(tall,all_regi,all_te) "annual investments into a technology due to adjustment costs"
vm_usableSe(ttot,all_regi,entySe) "usable se before se2se and MP/XP (pe2se, +positive oc from pe2se, -storage losses). [TWa]"
vm_usableSeTe(ttot,all_regi,entySe,all_te) "usable se produced by one te (pe2se, +positive oc from pe2se, -storage losses). [TWa]"
vm_costFuBio(ttot,all_regi) "fuel costs from bio energy [tril$US]"
vm_omcosts_cdr(tall,all_regi) "O&M costs for spreading grinded rocks on fields"
vm_costpollution(tall,all_regi) "costs for air pollution policies"
vm_emiFgas(tall,all_regi,all_enty) "F-gas emissions by single gases from IMAGE"
;
***----------------------------------------------------------------------------------------
*** POSITIVE VARIABLES
***----------------------------------------------------------------------------------------
positive variables
***----------------------------------------------------------------------------------------
***-------------------------------------------------MACRO module---------------------------
vm_enerSerAdj(tall,all_regi,all_in) "adjustment costs for energy service transformations"
vm_esCapInv(ttot,all_regi,all_teEs) "investment for energy end-use capital at the energy service level"
***----------------------------------------------------------------------------------------
*-----------------------------------------------ESM module---------------------------------
vm_costEnergySys(ttot,all_regi) "energy system costs"
vm_cap(tall,all_regi,all_te,rlf) "net total capacities"
vm_capDistr(tall,all_regi,all_te,rlf) "net capacities, distributed to the different grades for renewables"
vm_capFac(ttot,all_regi,all_te) "capacity factor of conversion technologies"
vm_deltaCap(tall,all_regi,all_te,rlf) "capacity additions"
vm_capCum(tall,all_regi,all_te) "gross capacities (=capacities cumulated over time)"
vm_fuExtr(ttot,all_regi,all_enty,rlf) "fuel use [TWa]"
vm_demPe(tall,all_regi,all_enty,all_enty,all_te) "pe demand. [TWa, Uranium: Mt Ur]"
vm_prodPe(ttot,all_regi,all_enty) "pe production. [TWa, Uranium: Mt Ur]"
vm_demSe(ttot,all_regi,all_enty,all_enty,all_te) "se demand. [TWa]"
vm_prodSe(tall,all_regi,all_enty,all_enty,all_te) "se production. [TWa]"
vm_prodFe(ttot,all_regi,all_enty,all_enty,all_te) "fe production. [TWa]"
v_costFu(ttot,all_regi) "fuel costs"
vm_costFuEx(ttot,all_regi,all_enty) "fuel costs from exhaustible energy [tril$US]"
vm_pebiolc_price(ttot,all_regi) "Bioenergy price according to MAgPIE supply curves [T$US/TWa]"
v_costOM(ttot,all_regi) "o&m costs"
v_costInv(ttot,all_regi) "investment costs"
vm_costTeCapital(ttot,all_regi,all_te) "investment costs"
vm_co2CCS(ttot,all_regi,all_enty,all_enty,all_te,rlf) "all differenct ccs. [GtC/a]"
vm_co2capture(ttot,all_regi,all_enty,all_enty,all_te,rlf) "all captured CO2. [GtC/a]"
v_co2capturevalve(ttot,all_regi) "CO2 emitted right after capture [GtC/a] (in q_balCCUvsCCS to account for different lifetimes of capture and CCU/CCS te and capacities)"
vm_prodUe(ttot,all_regi,all_enty,all_enty,all_te) "Useful energy production [TWa]"
v_demFe(ttot,all_regi,all_enty,all_enty,all_te) "fe demand [TWa]"
vm_capEarlyReti(tall,all_regi,all_te) "fraction of early retired capital"
vm_otherFEdemand(ttot,all_regi,all_enty) "final energy demand from no transformation technologies (e.g. enhanced weathering)"
vm_demSeOth(ttot,all_regi,all_enty,all_te) "other sety demand from certain technologies, have to calculated in additional equations [TWa]"
vm_prodSeOth(ttot,all_regi,all_enty,all_te) "other sety production from certain technologies, have to be calculated in additional equations [TWa]"
v_shGreenH2(ttot,all_regi) "share of green hydrogen in all hydrogen by 2030 [0..1]"
v_shBioTrans(ttot,all_regi) "Share of biofuels in transport liquids from 2025 onwards. Value between 0 and 1."
*** 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)."
;
***----------------------------------------------------------------------------------------
*** EQUATIONS
***----------------------------------------------------------------------------------------
equations
***----------------------------------------------------------------------------------------
***------------------------------------------------MACRO module----------------------------
qm_balFeForCesAndEs(ttot,all_regi,all_enty) "FE balance coupling ESM and production function either directly (Pathway I) or Indirectly through Energy services (Pathway III)"
q_limitSeel2fehes(ttot,all_regi) "equation to limit the share of electricity that can be used for fehes"
q_esCapInv(ttot,all_regi,all_teEs) "investment equation for end-use capital investments (energy service layer)"
***----------------------------------------------------------------------------------------
***-----------------------------------------------ESM module-------------------------------
q_costEnergySys(ttot,all_regi) "energy system costs"
q_costFu(ttot,all_regi) "costs of fuels"
q_costOM(ttot,all_regi) "costs of o&m"
q_costInv(ttot,all_regi) "costs of investment"
q_cap(tall,all_regi,all_te,rlf) "definition of available capacities"
q_capDistr(tall,all_regi,all_te) "distribute available capacities across grades"
q_limitCapSe(ttot,all_regi,all_enty,all_enty,all_te) "capacity constraint for se production"
q_limitCapSe2se(ttot,all_regi,all_enty,all_enty,all_te) "capacity constraint for se to se transformation"
q_limitCapFe(ttot,all_regi,all_te) "capacity constraint for fe production"
q_capCumNet(t0,all_regi,all_te) "cumulative net capactiy"
qm_deltaCapCumNet(ttot,all_regi,all_te) "increase of cumulative net capacity"
q_costTeCapital(tall,all_regi,all_te) "calculation of investment cost for learning technologies"
q_balPe(ttot,all_regi,all_enty) "balance of primary energy (pe)"
q_balSe(ttot,all_regi,all_enty) "balance of secondary energy (se)"
q_transPe2se(ttot,all_regi,all_enty,all_enty,all_te) "energy tranformation pe to se"
q_transSe2fe(ttot,all_regi,all_enty,all_enty,all_te) "energy tranformation se to fe"
q_transSe2se(ttot,all_regi,all_enty,all_enty,all_te) "energy transformation se to se"
qm_fuel2pe(ttot,all_regi,all_enty) "constraint on cumulative fuel use"
q_limitProd(ttot,all_regi,all_te,rlf) "constraint on annual production"
q_emiTeDetail(ttot,all_regi,all_enty,all_enty,all_te,all_enty) "determination of emissions"
q_macBase(tall,all_regi,all_enty) "baseline emissions for all emissions subject to MACCs (type emiMacSector)"
q_emiMacSector(ttot,all_regi,all_enty) "total non-energy-related emission of each region"
q_emiTe(ttot,all_regi,all_enty) "total energy-emissions per region"
q_emiAll(ttot,all_regi,all_enty) "calculates all regional emissions as sum over energy and non-energy relates emissions"
q_emiAllGlob(ttot,all_enty) "calculates all global emissions as sum over regions"
q_emiCap(ttot,all_regi) "emission cap"
q_emiMac(ttot,all_regi,all_enty) "summing up all non-energy emissions"
q_co2eq(ttot,all_regi) "regional emissions in co2 equivalents"
q_co2eqGlob(ttot) "global emissions in co2 equivalents"
qm_co2eqCum(all_regi) "cumulate regional emissions over time"
q_budgetCO2eqGlob "global emission budget balance"
q_transCCS(ttot,all_regi,all_enty,all_enty,all_te,all_enty,all_enty,all_te,rlf) "transformation equation for ccs"
q_limitCapCCS(ttot,all_regi,all_enty,all_enty,all_te,rlf) "capacity constraint for ccs"
q_limitCCS(all_regi,all_enty,all_enty,all_te,rlf) "ccs constraint for sequestration alternatives"
q_balcapture(ttot,all_regi,all_enty,all_enty,all_te) "balance equation for carbon capture"
q_balCCUvsCCS(ttot,all_regi) "balance equation for captured carbon to CCU or CCS or valve"
q_limitCapUe(ttot,all_regi,all_enty,all_enty,all_te) "capacity constraint for ES production"
q_transFe2Ue(ttot,all_regi,all_enty,all_enty,all_te) "energy tranformation fe to es"
q_balFe(ttot,all_regi,all_enty) "balance of FE that are transformed into ES"
q_esm2macro(ttot,all_regi,all_in) "hand over amount of entyFe/entyUe from ESM(GENERIS) to the MACRO module"
q_limitSo2(ttot,all_regi) "prevent SO2 from rising again after 2050"
q_limitCO2(ttot,all_regi) "prevent CO2 from rising again after 2050"
q_limitGeopot(ttot,all_regi,all_enty,rlf) "constraint on annual renewable production due to competition for the same geographical potential"
q_costInvTeAdj(ttot,all_regi,all_te) "calculation of total adjustment costs for a technology"
q_costInvTeDir(ttot,all_regi,all_te) "calculation of total direct investment costs (without adjustment costs) for a technology"
q_eqadj(all_regi,tall,all_te) "calculation of adjustment factor for a technology"
q_limitCapEarlyReti(ttot,all_regi,all_te) "constraint to avoid reactivation of retired capacities"
q_smoothphaseoutCapEarlyReti(ttot,all_regi,all_te) "phase-out constraint for early retirement to avoid immediate retirement"
q_limitBiotrmod(ttot,all_regi) "limit the total amount of modern biomass use for solids to the amount of coal use for solids "
q_limitShOil(ttot,all_regi) "requires minimum share of liquids from oil in total liquids of 15%"
q_PE_histCap(ttot,all_regi,all_enty,all_enty) "model capacity must be equal or greater than historical capacity"
*** ES layer equations
q_transFe2Es(ttot,all_regi,all_enty,all_esty,all_teEs) "Conversion from final energy to energy service"
q_es2ppfen(ttot,all_regi,all_in) "Energy services are handed to the CES tree."
q_shFeCes(ttot,all_regi,all_enty,all_in,all_teEs) "Shares of final energies in production factors."
*q_shFeCesNorm(ttot,all_regi,all_in) "Shares have to sum to 1."
q_shGreenH2(ttot,all_regi) "share of green hydrogen in all hydrogen"
q_shBioTrans(ttot,all_regi) "Define the share of biofuels in transport liquids from 2025 on."
***----------------------------------------------------------------------------------------
***----------------------------------------------trade module------------------------------
;
***----------------------------------------------------------------------------------------
*** SCALARS
***----------------------------------------------------------------------------------------
scalars
o_modelstat "critical solver status for solution"
***----------------------------------------------------------------------------------------
***------------------------------------------------MACRO module----------------------------
***----------------------------------------------------------------------------------------
***-----------------------------------------------ESM module-------------------------------
pm_conv_TWa_EJ "conversion from TWa to EJ" /31.536/,
sm_c_2_co2 "conversion from c to co2" /3.666666666667/,
*** conversion factors of time units
sm_year_2_day "days per year" /365/,
sm_day_2_hour "hours per day" /24/,
sm_mega_2_non "mega to non" /1e+6/,
sm_giga_2_non "giga to non" /1e+9/,
sm_trillion_2_non "trillion to non" /1e+12/,
*** conversion of energy units
*** 1J = 1Ws ==> 1GJ = 10^9 / 3600 kWh = 277.77kWh = 277.77 / 8760 kWyr = 0.03171 kWyr
s_zj_2_twa "zeta joule to tw year" /31.7098/,
sm_EJ_2_TWa "multiplicative factor to convert from EJ to TWa" /31.71e-03/,
sm_GJ_2_TWa "multiplicative factor to convert from GJ to TWa" /31.71e-12/,
sm_TWa_2_MWh "tera Watt year to Mega Watt hour" /8.76e+9/,
sm_TWa_2_kWh "tera Watt year to kilo Watt hour" /8.76e+12/,
*RP* all these new conversion factors with the form "s_xxx_2_yyy" are multplicative factors. Thus, if you have a number in Unit xxx, you have to
*RP* multiply this number by the conversion factor s_xxx_2_yyy to get the new value in Unit yyy.
s_NO2_2_N "convert NO2 to N [14 / (14 + 2 * 16)]" / .304 /
s_DpKWa_2_TDpTWa "convert Dollar per kWa to TeraDollar per TeraWattYear" /0.001/
sm_DpKW_2_TDpTW "convert Dollar per kW to TeraDollar per TeraWatt" /0.001/
sm_DpGJ_2_TDpTWa "multipl. factor to convert (Dollar per GJoule) to (TerraDollar per TWyear)" / 31.54e-03/
s_gwpCH4 "Global Warming Potentials of CH4, AR5 WG1 CH08 Table 8.7" /28/
s_gwpN2O "Global Warming Potentials of N2O, AR5 WG1 CH08 Table 8.7" /265/
sm_dmac "step in MAC functions [US$]" /5/
s_macChange "maximum yearly increase of relative abatement in percentage points of maximum abatement. Unit: 0..1" /0.05/
s_tgn_2_pgc "conversion factor 100-yr GWP from TgN to PgCeq"
s_tgch4_2_pgc "conversion factor 100-yr GWP from TgCH4 to PgCeq"
sm_MtCH4_2_TWa "Energy content of methane. MtCH4 --> TWa: 1 MtCH4 = 1.23 * 10^6 toe * 42 GJ/toe * 10^-9 EJ/GJ * 1 TWa/31.536 EJ = 0.001638 TWa (BP statistical review)" /0.001638/
sm_D2015_2_D2005 "Convert $2015 to $2005 by dividing by 1.2: 1/1.2 = 0.8333" /0.8333/
sm_DptCO2_2_TDpGtC "Conversion multiplier to go from $/tCO2 to T$/GtC: 44/12/1000" /0.00366667/
s_co2pipe_leakage "Leakage rate of CO2 pipelines. Unit: [0..1]"
s_tau_cement "range of per capita investments for switching from short-term to long-term behavior in CO2 cement emissions" / 12000 /
s_c_so2 "constant, see S. Smith, 2004, Future Sulfur Dioxide Emissions" /4.39445/
sm_ccsinjecrate "CCS injection rate factor. Unit: 1/a"
s_t_start "start year of emission budget"
cm_peakBudgYr "date of net-zero CO2 emissions for peak budget runs without overshoot"
sm_endBudgetCO2eq "end time step of emission budget period 1"
sm_budgetCO2eqGlob "budget for global energy-emissions in period 1"
p_emi_budget1_gdx "budget for global energy-emissions in period 1 from gdx, may overwrite default values"
s_reference2030co2eq "reference level of 2030 GHG emissions for AWP2 myopic scenarios in GtCO2eq p.a., all Kyoto gases"
s_referencebudgetco2 "reference level of 2000-2100 cumulated emissions for AWP2 myopic scenarios in GtCO2, including all CO2"
s_actual2030co2eq "actual level of 2030 GHG emissions for AWP2 myopic scenarios in GtCO2eq p.a., all Kyoto gases for last iteration"
s_actualbudgetco2 "actual level of 2000-2100 cumulated emissions for AWP2 myopic scenarios in GtCO2, including all CO2 for last iteration"
s_actualbudgetco2_last "actual level of 2000-2100 cumulated emissions for previous iteration" /0/
sm_eps "small number: 1e-9 " /1e-9/
***----------------------------------------------------------------------------------------
***----------------------------------------------trade module------------------------------
;
s_tgn_2_pgc = (44/28) * s_gwpN2O * (12/44) * 0.001;
s_tgch4_2_pgc = s_gwpCH4 * (12/44) * 0.001;
***----------------------------------------------------------------------------------------
*----------------------------------------------carbon intensities of coal, oil, and gas
p_cintraw("pecoal") = 26.1 / s_zj_2_twa;
p_cintraw("peoil") = 20.0 / s_zj_2_twa;
p_cintraw("pegas") = 15.0 / s_zj_2_twa;
***----------------------------------------------------------------------------------------
*** F I L E S
***----------------------------------------------------------------------------------------
file magicc_scenario / "./magicc/REMIND_%c_expname%.SCEN" /;
magicc_scenario.ap = 0;
magicc_scenario.pw = 3000;
file magicc_sed_script / "./magicc/modify_MAGCFG_USER_CFG.sed" /;
magicc_sed_script.ap = 0;
*** EOF ./core/declarations.gms