diff --git a/config/default.cfg b/config/default.cfg index ca3beb4c36..28ea2375cf 100644 --- a/config/default.cfg +++ b/config/default.cfg @@ -28,10 +28,10 @@ cfg$regionmapping <- "config/regionmappingH12.csv" cfg$extramappings_historic <- "" #### Current input data revision (.) #### -cfg$inputRevision <- "7.88" +cfg$inputRevision <- "7.92ariadne" #### Current CES parameter and GDX revision (commit hash) #### -cfg$CESandGDXversion <- "a12b6355e0ac96081f79504465c61e68fd14ed48" +cfg$CESandGDXversion <- "a5823de238613baa6d82c7ee6d0539def2f013db" #### Path to a renv.lock file to restore a project's dependencies from. If NULL, all R packages in their currently installed version will be used. cfg$UseThisRenvLock <- NULL diff --git a/config/scenario_config_21_EU11_ARIADNE.csv b/config/scenario_config_21_EU11_ARIADNE.csv index efcbb31098..89a0c5a93a 100644 --- a/config/scenario_config_21_EU11_ARIADNE.csv +++ b/config/scenario_config_21_EU11_ARIADNE.csv @@ -1,26 +1,13 @@ -title;start;copyConfigFrom;.description;CES_parameters;c_keep_iteration_gdxes;cm_calibration_string;optimization;c_testOneRegi_region;cm_solver_try_max;cm_nash_mode;subsidizeLearning;trade;cm_trade_SE_exog;cm_EnSecScen_price;cm_EnSecScen_limit;cm_Ger_Pol;c_ccsinjecratescen;c_ccsinjecrateRegi;cm_ccsinjeCost;cm_frac_NetNegEmi;cm_bioprod_regi_lim;c_tech_earlyreti_rate;cm_import_tax;cm_1stgen_phaseout;c_agricult_base_shift;cm_altFeEmiFac;cm_PriceDurSlope_elh2;cm_SEtaxRampUpParam;cm_build_H2costAddH2Inv;cm_steel_secondary_max_share_scenario;cm_CESMkup_build;cm_CESMkup_ind;cm_CESMkup_ind_data;cm_exogDem_scen;cm_wasteIncinerationCCSshare;cm_ind_energy_limit;cm_ind_energy_limit_manual;cm_FEtax_trajectory_abs;cm_FEtax_trajectory_rel;cm_inco0Factor;cm_adj_coeff_multiplier;cm_adj_seed_multiplier;regionmapping;extramappings_historic;cm_rcp_scen;cm_iterative_target_adj;cm_budgetCO2from2020;carbonprice;c_regi_earlyreti_rate;c_NearTermProjectCompletion;cm_taxCO2_startyear;cm_peakBudgYr;techpol;regipol;cm_regiExoPrice;cm_emiMktTarget;cm_emiMktTarget_tolerance;cm_regiExoPrice_fromFile;cm_VREminCap_Ger;cm_NucRegiPol;cm_CoalRegiPol;cm_EDGEtr_scen;cm_emiscen;cm_multigasscen;cm_GDPpopScen;cm_demScen;cm_startyear;path_gdx;path_gdx_ref -# _____Reference Runs_____;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Calib_EU_NPi;0;;Calibration Run with National Policies Implemented (NPI);calibrate;;;;;;;;standard;;;;;;;;;DEU 1.1, EU27_regi 7.5;;EU27_regi.pebiolc.worldPricemarkup 10;1;;;;;;;;;;;;;;;;;;;./config/regionmapping_21_EU11.csv;./config/extramapping_EU27.csv;;;;NPi;;;;;NPi2018;;;;;;;;;Mix1;;;;;2005;; -NPi;0;Calib_EU_NPi;National Policies implemented;load;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Calib_EU_Npi_lowDem;0;Calib_EU_NPi;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;NAV_all;;;;SSP2_NAV_all;;; -Npi_lowDem;0;Calib_EU_Npi_lowDem;;load;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Calib_EU_Npi_highDem;0;Calib_EU_NPi;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SSP2_highDemDEU;;; -Npi_highDem;0;Calib_EU_Npi_highDem;;load;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -# ____ Standard Scenarios______;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -CurrentPolicies;0;NPi;Current Policies Scenario for Germany including latest credible developments from Fit for 55 and Ampel government;;;;;;;;;se_trade;2035.2045.FRA.DEU.seel 0.045, 2030.2045.ESW.DEU.seh2 0.091, 2035.2045.MEA.DEU.seliqsyn 0.091;;;;2;;high;0;DEU 1.1, EU27_regi 7.5;GLO.(biodiesel 0.15, bioeths 0.15), EUR_regi.(bioigcc 0.05, biotr 0.05, biotrmod 0.05, biochp 0.05, biohp 0.05, biogas 0.05, biogasc 0.05, gash2c 0.05), USA_regi.pc 0.13, REF_regi.pc 0.13, CHA_regi.pc 0.13;EU27_regi.pebiolc.worldPricemarkup 10;1;;EUR_regi, NEU_regi;GLO 15;off;;;fehob 1.75, enhb 0.5;;;ariadne_bal;;manual;2050 . GLO . (ue_cement, ue_steel_primary, ue_steel_secondary) 0.75, 2100 . GLO . (ue_chemicals, ue_otherInd) 0.90, 2100 . DEU . (ue_otherInd, ue_cement, ue_chemicals) 0.01;;;;;;;;;;;;;;;;none;;EU27_regi.(2025 80,2030 105,2035 130,2040 155,2045 180,2050 205,2055 205,2060 205,2070 205,2080 205,2090 205,2100 205,2110 205,2130 205,2150 205);;;;;;;Mix3ICEban ;;;;;2025;;NPi -KN2045_Bal_v4;0;;Standard Ariadne scenario with -55% GHG in 2030 and GHG neutrality goal in 2050 for EU (incl. EU LULUCF sink), -65% GHG in 2030 and GHG neutrality goal in 2045 for Germany;;;;;;;;globallyOptimal;se_trade;2035.2045.FRA.DEU.seel 0.183, 2030.2045.ESW.DEU.seh2 0.366, 2035.2045.MEA.DEU.seliqsyn 0.366;;;;2;;high;0;DEU 1.1, EU27_regi 7.5;GLO.(biodiesel 0.15, bioeths 0.15), EUR_regi.(bioigcc 0.05, biotr 0.05, biotrmod 0.05, biochp 0.05, biohp 0.05, biogas 0.05, biogasc 0.05, gash2c 0.05), USA_regi.pc 0.13, REF_regi.pc 0.13, CHA_regi.pc 0.13;EU27_regi.pebiolc.worldPricemarkup 10;1;;;;off;;;fehob 1.75, enhb 0.5;manual;feelhth_otherInd 1.3;ariadne_bal;;manual;2050 . GLO . (ue_cement, ue_steel_primary, ue_steel_secondary) 0.75, 2100 . GLO . (ue_chemicals, ue_otherInd) 0.90, 2100 . DEU . (ue_otherInd, ue_cement, ue_chemicals) 0.01;;;;;;./config/regionmapping_21_EU11.csv;./config/extramapping_EU27.csv;rcp20;9;650;functionalForm;EUR_regi 0.08, USA_regi 0.07, CHA_regi 0.07, CAZ_regi 0.07, JPN_regi 0.07, GLO 0.06;transformative;100;2055;none;;;2020.2030.DEU.all.year.netGHG_noLULUCF_noBunkers 0.44, 2035.2045.DEU.all.year.netGHG_LULUCFGrassi 0.001;GLO 0.003;;Opt;;;Mix4ICEban;;2;;;2025;;NPi -KN2045_Elec_v4;0;KN2045_Bal_v4;Scenario with high electrification, low H2 and synfuel imports;;;;;;;;;;2035.2045.FRA.DEU.seel 0.183, 2030.2045.ESW.DEU.seh2 0.183, 2035.2045.MEA.DEU.seliqsyn 0.366;;;;;;;;;;;;;;;;;;feelhpb 1.4, fehob 1.75, enhb 0.5;;feelhth_otherInd 0.9, feelhth_chemicals 0.43, feh2_otherInd 0.7, feh2_cement 2.2, feh2_chemicals 1.05;;;;;;2040.build.feels 0.7, 2040.build.fegas 1.3, 2040.indst.feels 0.7, 2040.indst.fegas 1.3, 2040.indst.fehos 1.3, 2040.trans.feelt 0.7, 2040.trans.fepet 1.3, 2040.trans.fedie 1.3;tdh2s 3, tdh2t 3;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -KN2045_H2_v4;0;KN2045_Bal_v4;Scenario with high H2 and synfuel use, high H2 and synfuel imports;;;;;;;;;;2035.2045.FRA.DEU.seel 0.183, 2030.2045.ESW.DEU.seh2 0.732, 2035.2045.MEA.DEU.seliqsyn 0.366;;;;;;;;;;;;;;GLO 20;;0.1;;feelhpb 2.3, feelrhb 0.87, fehob 1.75, enhb 0.5;;feelhth_otherInd 1.6, feelhth_chemicals 1.6, feh2_otherInd 0.01, feh2_cement 0.43, feh2_chemicals 0.43;;;;;;2040.build.feels 1.3, 2040.build.fegas 1.3, 2040.indst.feels 1.3, 2040.indst.fegas 1.3, 2040.indst.fehos 1.3, 2040.trans.feelt 1.3, 2040.trans.fepet 1.3, 2040.trans.fedie 1.3, 2040.trans.feh2t 0.7;tdh2s 0.5, tdh2t 0.5;;;;;;;;;;;;;;;;;;;;;;HydrHype4;;;;;;; -# ____ Energy Security Scenarios___;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -KN2045_EnSov;0;KN2045_Bal_v4;Energy security scenario with limits/taxes on PE gas consumption in Germany and reduced steel demand;;;;;;;;;;;on;2;ensec;;;;;;;;;;EUR_regi, NEU_regi;;;;;feelhpb 1.4, fehob 1.75, enhb 0.5;;feelhth_otherInd 1.1, fega_steel 0.4;ariadne_lowDem;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -# ____ low-demand/high-demand scenarios ____;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -KN2045plus_EasyRide;0;KN2045_Bal_v4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;feelhpb 1.4, fehob 1.75, enhb 0.5, feheb 0.01;;feelhth_otherInd 0.9, feelhth_chemicals 0.43, feh2_chemicals 0.43;ariadne_lowDem;;;2050 . GLO . (ue_cement, ue_steel_primary, ue_steel_secondary) 0.75, 2100 . GLO . (ue_chemicals, ue_otherInd) 0.90;;;tdh2s 0.5, tdh2t 0.5;spv 0.5, storspv 0.5, wind 0.5, storwind 0.5, elh2 0.5;spv 2, storspv 2, wind 2, storwind 2, elh2 2;;;;;;;;;;;;;;off;;KN2045_Bal_v4;;;;NAV_all;;;;SSP2_NAV_all;;;Npi_lowDem -KN2045plus_LowDemand;0;KN2045_Bal_v4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;feelhpb 1.4, fehob 1.75, enhb 0.5, feheb 0.01;;feelhth_otherInd 0.9, feelhth_chemicals 0.43, feh2_chemicals 0.43;ariadne_bal;;;2050 . GLO . (ue_cement, ue_steel_primary, ue_steel_secondary) 0.75, 2100 . GLO . (ue_chemicals, ue_otherInd) 0.90;;;;;;;;;;;;;;;;;;;off;;KN2045_Bal_v4;;;;NAV_all;;;;SSP2_NAV_all;;;Npi_lowDem -KN2045minus_WorstCase;0;KN2045_Bal_v4;;;;;;;;;;;2035.2045.FRA.DEU.seel 0.045, 2035.2045.ESW.DEU.seh2 0.091, 2035.2045.MEA.DEU.seliqsyn 0.091;;;;;;;;;;;;;;;;;;feelhpb 2.3, feelrhb 0.87, fehob 1.75, enhb 0.5;;feelhth_otherInd 1.6, feelhth_chemicals 1.6;ariadne_highDem;;;;;;tdh2s 3, tdh2t 3;spv 2, storspv 2, wind 2, storwind 2, elh2 2;spv 0.5, storspv 0.5, wind 0.5, storwind 0.5, elh2 0.5;;;;;;;;;;;;;;off;;KN2045_Bal_v4;;;;Mix3;;;;SSP2_highDemDEU;;;Npi_highDem -KN2045minus_SupplyFocus;0;KN2045_Bal_v4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;feelhpb 2.3, feelrhb 0.87, fehob 1.75, enhb 0.5;;feelhth_otherInd 1.6, feelhth_chemicals 1.6;ariadne_highDem;;;;;;;;;;;;;;;;;;;;;;off;;KN2045_Bal_v4;;;;Mix3;;;;SSP2_highDemDEU;;;Npi_highDem -#_____low-demand/high-demand net-zero scenarios;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -KN2045_EasyRide;0;KN2045plus_EasyRide;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020.2030.DEU.all.year.netGHG_noLULUCF_noBunkers 0.44, 2035.2045.DEU.all.year.netGHG_LULUCFGrassi 0.001;;off;;;;;;;;;;; -KN2045_LowDemand;0;KN2045plus_LowDemand;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020.2030.DEU.all.year.netGHG_noLULUCF_noBunkers 0.44, 2035.2045.DEU.all.year.netGHG_LULUCFGrassi 0.001;;off;;;;;;;;;;; -KN2045_WorstCase;0;KN2045minus_WorstCase;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020.2030.DEU.all.year.netGHG_noLULUCF_noBunkers 0.44, 2035.2045.DEU.all.year.netGHG_LULUCFGrassi 0.001;;off;;;;;;;;;;; -KN2045_SupplyFocus;0;KN2045minus_SupplyFocus;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020.2030.DEU.all.year.netGHG_noLULUCF_noBunkers 0.44, 2035.2045.DEU.all.year.netGHG_LULUCFGrassi 0.001;;off;;;;;;;;;;; -# Tests;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +title;start;copyConfigFrom;.description;CES_parameters;cm_keep_presolve_gdxes ;c_keep_iteration_gdxes;cm_calibration_string;optimization;c_testOneRegi_region;cm_solver_try_max;cm_nash_mode;cm_seFeSectorShareDevMethod;subsidizeLearning;trade;cm_trade_SE_exog;c_ccsinjecratescen;c_ccsinjecrateRegi;cm_ccsinjeCost;cm_frac_NetNegEmi;cm_bioprod_regi_lim;c_regi_earlyreti_rate;c_tech_earlyreti_rate;cm_import_tax;cm_1stgen_phaseout;c_agricult_base_shift;cm_altFeEmiFac;cm_PriceDurSlope_elh2;cm_SEtaxRampUpParam;cm_build_H2costAddH2Inv;cm_steel_secondary_max_share_scenario;cm_CESMkup_build;cm_CESMkup_ind;cm_CESMkup_ind_data;cm_exogDem_scen;cm_wasteIncinerationCCSshare;cm_ind_energy_limit;cm_ind_energy_limit_manual;cm_optimisticMAC;cm_FEtax_trajectory_rel;cm_inco0Factor;cm_adj_coeff_multiplier;cm_adj_seed_multiplier;regionmapping;extramappings_historic;cm_rcp_scen;cm_iterative_target_adj;cm_budgetCO2from2020;carbonprice;cm_taxCO2_expGrowth;cm_taxCO2_startyear;cm_peakBudgYr;cm_taxCO2_regiDiff;techpol;cm_RenShareTargets;regipol;cm_regiExoPrice;cm_emiMktTarget;cm_emiMktTarget_tolerance;cm_regiExoPrice_fromFile;cm_VREminCap_Ger;cm_NucRegiPol;cm_CoalRegiPol;cm_EDGEtr_scen;cm_emiscen;cm_multigasscen;cm_GDPpopScen;cm_demScen;cm_startyear;path_gdx;path_gdx_ref +# _____Reference Runs_____;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Calib_Ariadne_NPi;0;;Ariadne calibration NPI2025 run, differs from standard SSP2 calibration run by some biomass switches (limited biomass potential for Germany/EU, 1st generation biomass phase-out);calibrate;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;./config/regionmapping_21_EU11.csv;./config/extramapping_EU27.csv;;;;;;;;;;0;none;;;;;;;;;;;;;2005;; +NPi;0;Calib_Ariadne_NPi;National Policies implemented;load;;;;;;;;;;;;;;;;DEU 1.4, EU27_regi 7.5;;;EU27_regi.pebiolc.worldPricemarkup 100;1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;regiCarbonPrice;;;;;;;;;;;;;;; +# ____ Standard Scenarios______;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +CurrentPolicies;0;NPi;Current Policies Scenario for Germany including latest credible developments from Fit for 55 and Ampel government. CO2 price reaches 200$/tCo2 by 2050. In line with ETS+ ETS2 average of UBA Projektionsbericht project of the 2025 MMS scenario. ;;;;;;;;;;;se_trade;2035.2045.FRA.DEU.seel 0.045, 2030.2045.ESW.DEU.seh2 0.091, 2035.2045.MEA.DEU.seliqsyn 0.091;2;;high;0;DEU 1.4, EU27_regi 7.5;;DEU.(biodiesel 0.15, bioeths 0.15);EU27_regi.pebiolc.worldPricemarkup 100;1;;EUR_regi, NEU_regi;GLO 15;off;;;fehob 1.75, enhb 0.5;;;ariadne_bal;2050.DEU 0.65;manual;2050 . GLO . (ue_cement, ue_steel_primary, ue_steel_secondary) 0.75, 2100 . GLO . (ue_chemicals, ue_otherInd) 0.90, 2100 . DEU . (ue_otherInd, ue_cement, ue_chemicals) 0.01;;;;;;;;;;;;;;;;;;;EU27_regi.(2025 80,2030 105,2035 130,2040 155,2045 180,2050 205,2055 205,2060 205,2070 205,2080 205,2090 205,2100 205,2110 205,2130 205,2150 205);;;;;;;Mix3ICEban ;;;;;2030;;NPi +KN2045_Bal_v5;0;;Standard Ariadne scenario with GHG neutrality goal in 2045 for Germany;;1;;;;;;;;globallyOptimal;se_trade;2035.2045.FRA.DEU.seel 0.183, 2030.2045.ESW.DEU.seh2 0.366, 2035.2045.MEA.DEU.seliqsyn 0.366;2;;high;0;DEU 1.4, EU27_regi 7.5;EUR_regi 0.08, USA_regi 0.07, CHA_regi 0.07, CAZ_regi 0.07, JPN_regi 0.07, GLO 0.06;DEU.(biodiesel 0.15, bioeths 0.15);EU27_regi.pebiolc.worldPricemarkup 100;1;DEU -0.45;;;off;;;fehob 1.75, enhb 0.5;manual;feelhth_otherInd 1.3;ariadne_bal;2050.GLO 0.9;manual;2050 . GLO . (ue_cement, ue_steel_primary, ue_steel_secondary) 0.75, 2100 . GLO . (ue_chemicals, ue_otherInd) 0.90, 2100 . DEU . (ue_otherInd, ue_cement, ue_chemicals) 0.01;;;;;;./config/regionmapping_21_EU11.csv;./config/extramapping_EU27.csv;rcp20;0;750;expoLinear;1.08;100;2055;6;;0;;;2030.2045.DEU.all.year.netGHG_LULUCFGrassi 0.001;GLO 0.003;;Opt;;;Mix4ICEban;;2;;;2030;/p/projects/ariadne/remind/Current/output/KN2045_Bal_v5_2026-05-21_01.48.16/fulldata.gdx;NPi +KN2045_Elec_v5;0;KN2045_Bal_v5;Scenario with high electrification, low H2 and synfuel imports;;;;;;;;;;;;2035.2045.FRA.DEU.seel 0.183, 2030.2045.ESW.DEU.seh2 0.183, 2035.2045.MEA.DEU.seliqsyn 0.366;;;;;;;;;;;;;;;2040.DEU 0.7;feelhpb 1.4, fehob 1.75, enhb 0.5;;feelhth_otherInd 0.9, feelhth_chemicals 0.43, feh2_otherInd 0.7, feh2_cement 2.2, feh2_chemicals 1.05;;;;;;2040.build.feels 0.7, 2040.build.fegas 1.3, 2040.indst.feels 0.7, 2040.indst.fegas 1.3, 2040.indst.fehos 1.3, 2040.trans.feelt 0.7, 2040.trans.fepet 1.3, 2040.trans.fedie 1.3;tdh2s 3, tdh2t 3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +KN2045_H2_v5;0;KN2045_Bal_v5;Scenario with high H2 and synfuel use, high H2 and synfuel imports;;;;;;;;;;;;2035.2045.FRA.DEU.seel 0.183, 2030.2045.ESW.DEU.seh2 0.732, 2035.2045.MEA.DEU.seliqsyn 0.366;;;;;;;;;;;;GLO 20;;0.1;;feelhpb 2.3, feelrhb 0.87, fehob 1.75, enhb 0.5;;feelhth_otherInd 1.6, feelhth_chemicals 1.6, feh2_otherInd 0.01, feh2_cement 0.43, feh2_chemicals 0.43;;;;;;2040.build.feels 1.3, 2040.build.fegas 1.3, 2040.indst.feels 1.3, 2040.indst.fegas 1.3, 2040.indst.fehos 1.3, 2040.trans.feelt 1.3, 2040.trans.fepet 1.3, 2040.trans.fedie 1.3, 2040.trans.feh2t 0.7;tdh2s 0.5, tdh2t 0.5;;;;;;;;;;;;;;;;;;;;;;;HydrHype4;;;;;;; +KN2045_Elec_plus_v5;0;KN2045_Elec_v5;Scenario with high electrification, very low H2/E-fuel, more CCS;;;;;;;;;;;;off;;DEU 0.0034,GLO 0.005;med;;;;;;;;;;;;;;;;ariadne_reloc;;;;;;tdh2s 5, tdh2t 5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +# Tests;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Npi_AsInCalib;0;Calib_Ariadne_NPi;;load;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Bal_no2045Target;0;KN2045_Bal_v5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;off;;;;;;;;;;;;; diff --git a/core/datainput.gms b/core/datainput.gms index e5a9e17270..3255fad90c 100644 --- a/core/datainput.gms +++ b/core/datainput.gms @@ -1290,6 +1290,7 @@ $ifthen.cm_subsec_model_steel "%cm_subsec_model_steel%" == "processes" *** steel technologies p_adj_seed_te(ttot,regi,"bfcc") = 0.05; p_adj_seed_te(ttot,regi,"idrcc") = 0.05; + p_adj_seed_te(ttot,regi,"idr") = 0.05; $endif.cm_subsec_model_steel *RP: for comparison of different technologies: @@ -1344,6 +1345,7 @@ $ifthen.cm_subsec_model_steel "%cm_subsec_model_steel%" == "processes" *** steel technologies p_adj_coeff(ttot,regi,"bfcc") = 1.0; p_adj_coeff(ttot,regi,"idrcc") = 1.0; + p_adj_coeff(ttot,regi,"idr") = 1.0; $endif.cm_subsec_model_steel ); diff --git a/core/sets.gms b/core/sets.gms index 40df56903f..8738086faf 100755 --- a/core/sets.gms +++ b/core/sets.gms @@ -1231,6 +1231,7 @@ teAdj(all_te) "technologies with adjustment costs on capacity addition $ifthen.cm_subsec_model_steel "%cm_subsec_model_steel%" == "processes" bfcc "Blast furnace CCS" idrcc "Direct reduction CCS" + idr "Iron direct reduction" $endif.cm_subsec_model_steel / @@ -1255,6 +1256,7 @@ teEarlyReti(all_te) "technologies for which early retirement of existing capa biochp biohp bioigcc + biotrmod tnrs / diff --git a/main.gms b/main.gms index ed5e22c820..792100637a 100755 --- a/main.gms +++ b/main.gms @@ -1778,7 +1778,7 @@ $setGlobal cm_indstExogScen off !! def off *** (ariadne_ensec) steel and cement production trajectories for Germany used in the Ariadne "EnSec" (energy security) scenario *** (ariadne_highDem) *** (ariadne_lowDem) -$setGLobal cm_exogDem_scen off !! def off !! regexp = off|ariadne_(bal|ensec|highDem|lowDem) +$setGLobal cm_exogDem_scen off !! def off !! regexp = off|ariadne_(bal|reloc) *** cm_Ger_Pol "switch for selecting different policies for Germany used in the ARIADNE scenarios" *** switch for Germany-specific policies *** (off) default @@ -1972,7 +1972,7 @@ $setglobal cm_peakBudgYrRegi off !! def = off $setglobal cm_ind_energy_limit default !! def = default !! regexp = default|manual $setglobal cm_ind_energy_limit_manual "2050 . GLO . (ue_cement, ue_steel_primary, ue_steel_secondary) 0.75, 2100 . GLO . (ue_chemicals, ue_otherInd) 0.90" -*** cm_wasteIncinerationCCSshare, proportion of waste incineration emissions that is captured and geologically stored at a given year and region +*** cm_wasteIncinerationCCSshare, proportion of waste incineration emissions that is captured at a given year and region *** off: means that all plastics incineration emissions in the World goes back to the atmosphere. *** 2050.GLO 0.5, 2050.EUR 0.8: means that 50% of waste incineration emissions are captured for all regions from 2050 onward, except for Europe that has 80% of its waste incineration emissions captured. *** The CCS share of waste incineration increases linearly from zero, in 2025, to the value set at the switch, and it is kept constant for years afterwards. @@ -2118,7 +2118,7 @@ $setGlobal cm_APssp FROMGDPSSP !! def = FROMGDPSSP !! regexp = SSP1|SS *' (SMIPbySSP): ScenarioMIP default scenario (differentiated by SSP, available for SSP1, SSP2, SSP3 and SSP5) *' (SMIPVLLO): ScenarioMIP VLLO scenario (not differentiated by SSP) $setGlobal cm_APscen SMIPbySSP !! def = SMIPbySSP !! regexp = CLE|SLE|MTFR|SMIPbySSP|SMIPVLLO -$setglobal cm_CES_configuration indu_subsectors-buil_simple-tran_edge_esm-GDPpop_SSP2-En_SSP2-Kap_debt_limit-Reg_62eff8f7 !! this will be changed by start_run() +$setglobal cm_CES_configuration indu_subsectors-buil_simple-tran_edge_esm-GDPpop_SSP2-En_SSP2-Kap_debt_limit-Reg_2b1450bc !! this will be changed by start_run() $setglobal c_CES_calibration_iterations 10 !! def = 10 $setglobal c_CES_calibration_industry_FE_target 1 *' setting which region is to be tested in the one-region test run (80_optimization = testOneRegi) diff --git a/modules/04_PE_FE_parameters/iea2014/datainput.gms b/modules/04_PE_FE_parameters/iea2014/datainput.gms index f9d940c06b..a9ac7fd12f 100644 --- a/modules/04_PE_FE_parameters/iea2014/datainput.gms +++ b/modules/04_PE_FE_parameters/iea2014/datainput.gms @@ -192,8 +192,6 @@ loop(regi$(sameAs("DEU", regi)), pm_secBioShare("2020",regi,"fedie","trans") = 0.05; *** set 2020 biomass share in industry solids to 20% based on AGEB data pm_secBioShare("2020",regi,"fesos","indst") = 0.2; -*** set maximum coal share in buildings after 2020 to 2020 value as residential coal heating is not going to recover once phased out - pm_secBioShare(t,regi,"fesos","build")$(t.val gt 2020) = pm_secBioShare("2020",regi,"fesos","build"); ); display pm_secBioShare; @@ -303,8 +301,6 @@ p04_prodCoupleGlob("pebiolc","seliqbio","bioethl","seel") = 0.153; p04_prodCoupleGlob("pebiolc","seliqbio","bioftrec","seel") = 0.147; p04_prodCoupleGlob("pebiolc","seliqbio","bioftcrec","seel") = 0.108; -p04_prodCoupleGlob("segabio","fegas","tdbiogas","seel") = -0.05; -p04_prodCoupleGlob("segafos","fegas","tdfosgas","seel") = -0.05; p04_prodCoupleGlob("pegeo","sehe","geohe","seel") = -0.3; p04_prodCoupleGlob("cco2","ico2","ccsinjeon","seel") = -0.005; p04_prodCoupleGlob("cco2","ico2","ccsinjeoff","seel") = -0.005; !!DKX assumption correct? diff --git a/modules/30_biomass/magpie/bounds.gms b/modules/30_biomass/magpie/bounds.gms index 96c47e8fd7..f7722e8501 100644 --- a/modules/30_biomass/magpie/bounds.gms +++ b/modules/30_biomass/magpie/bounds.gms @@ -176,7 +176,7 @@ if (cm_phaseoutBiolc eq 1, *' @stop -*** FS: limit biomass domestic production from 2035 onwards to regional upper value defined by cm_bioprod_regi_lim +*' If cm_bioprod_regi_lim switch used, limit biomass domestic production to regional upper value $IFTHEN.bioprod_regi_lim not "%cm_bioprod_regi_lim%" == "off" loop( ext_regi$(p30_bioprod_regi_lim(ext_regi)), loop(regi$regi_groupExt(ext_regi,regi), diff --git a/modules/37_industry/subsectors/bounds.gms b/modules/37_industry/subsectors/bounds.gms index a79cea8242..8d853a67ef 100755 --- a/modules/37_industry/subsectors/bounds.gms +++ b/modules/37_industry/subsectors/bounds.gms @@ -133,8 +133,10 @@ $ifthen.policy_scenario "%cm_indstExogScen_set%" == "YES" $endif.policy_scenario $drop cm_indstExogScen_set -v37_regionalWasteIncinerationCCSshare.lo(t,regi) = 0.; -v37_regionalWasteIncinerationCCSshare.up(t,regi) = p37_regionalWasteIncinerationCCSMaxShare(t,regi); +!! Fix regional waste incineration carbon capture share to what is assumed via cm_wasteIncinerationCCSshare from 2035 on for Germany +v37_regionalWasteIncinerationCCSshare.lo(t,regi)$(t.val lt 2035) = 0; +v37_regionalWasteIncinerationCCSshare.up(t,regi)$(t.val ge 2035) = p37_regionalWasteIncinerationCCSMaxShare(t,regi); +v37_regionalWasteIncinerationCCSshare.fx(t,regi)$(t.val ge 2035 AND (sameAs(regi, "DEU"))) = p37_regionalWasteIncinerationCCSMaxShare(t,regi); $ifthen.cm_subsec_model_steel "%cm_subsec_model_steel%" == "processes" !! fix processes procudction in historic years @@ -161,7 +163,4 @@ loop ((ue_industry_dyn37(in),regi_groupExt(regi_fxDem37(ext_regi),regi)), ); $endif.fixedUE_scenario -!! Fix to avoid reoccurring random infeasibilities. May need to be excluded if e.g. synfuels (or something else) are set to zero. -vm_demFeSector_afterTax.lo(t,regi,entySe,"fesos","indst",emiMkt)$(NOT sameAs(emiMkt, "other")) = 1e-16; - *** EOF ./modules/37_industry/subsectors/bounds.gms diff --git a/modules/47_regipol/regiCarbonPrice/bounds.gms b/modules/47_regipol/regiCarbonPrice/bounds.gms index bc1a517d46..9c7f57e139 100644 --- a/modules/47_regipol/regiCarbonPrice/bounds.gms +++ b/modules/47_regipol/regiCarbonPrice/bounds.gms @@ -21,34 +21,54 @@ *' ####### Power Sector $ifThen.tech_bounds_2025 "%cm_tech_bounds_2025%" == "on" -*' Set bounds for renewable power capacity in 2025 based on recent and historic growth rates -*' This limits wind and solar PV capacity additions for 2025 in light of recent slow developments as of 2023. -*' Upper bound is double the historic maximum capacity addition in 2011-2020. -*' In addition: Limit solar PV capacity to 120 GW in 2025 (2023-2027 average) given that we are at only 76 GW PV in 2023 +*' Set 2025 bounds for power capacity based on latest data from Frauenhofer ISE +*' https://energy-charts.info/?l=en&c=DE +*' For large-scale heat pumps: https://www.ewi.uni-koeln.de/de/aktuelles/grosswaermepumpen-markthochlauf-und-kosten-in-deutschland/ + + + loop(regi$(sameAs(regi,"DEU")), - vm_deltaCap.up("2025",regi,"windon","1")=2*smax(tall$(tall.val ge 2011 and tall.val le 2020), pm_delta_histCap(tall,regi,"windon")); - vm_deltaCap.up("2025",regi,"spv","1")=2*smax(tall$(tall.val ge 2011 and tall.val le 2020), pm_delta_histCap(tall,regi,"spv")); +*' solar PV + p47_histCap("2020",regi,"spv")=51; + p47_histCap("2025",regi,"spv")=120; +*' onshore wind + p47_histCap("2020",regi,"windon")=54; + p47_histCap("2025",regi,"windon")=68; +*' offshore wind + p47_histCap("2020",regi,"windoff")=7.8; + p47_histCap("2025",regi,"windoff")=10; +*' large-scale heat pumps for district heating + p47_histCap("2025",regi,"geohe")=0.2; +); -*' 2025 lower bounds for VRE capacities based on installed capacity by 2024 and recent yearly growth rates - vm_cap.lo("2025",regi,"spv","1")=0.096+0.014; - vm_cap.lo("2025",regi,"windon","1")=0.062+0.003; - vm_cap.lo("2025",regi,"windoff","1")=0.009+0.001; +*' Set bounds on historical capacity for non-zero entries of p47_histCap, +*' 5% flexibility for model to deviate from historical data +loop((ttot,regi,te)$(p47_histCap(ttot,regi,te)), + vm_cap.lo(ttot,regi,te,"1") = 0.95 * p47_histCap(ttot,regi,te) * 0.001; !! convert from GW to TW + vm_cap.up(ttot,regi,te,"1") = 1.05 * p47_histCap(ttot,regi,te) * 0.001; !! convert from GW to TW ); $endIf.tech_bounds_2025 -*' make assumptions on minimum renewable power and heat pump growth for Germany between 2025 and 2030 and distinguish two different scenarios ("Current Policies" and "Optimistic") -$ifthen.cm_VREminCap_Ger "%cm_VREminCap_Ger%" == "CurrPol" - vm_deltaCap.lo("2030",regi,"windon","1")$(sameAs(regi,"DEU")) = 6/1000; - vm_deltaCap.lo("2030",regi,"windoff","1")$(sameAs(regi,"DEU")) = 2/1000; - vm_cap.lo("2030",regi,"geohe","1")$(sameAs(regi,"DEU")) = 7/1000; -$endIf.cm_VREminCap_Ger +*' define plausible corridor for renewable power and heat pump growth for Germany between 2025 and 2030 -$ifthen.cm_VREminCap_Ger "%cm_VREminCap_Ger%" == "Opt" - vm_deltaCap.lo("2030",regi,"windon","1")$(sameAs(regi,"DEU")) = 7.5/1000; - vm_deltaCap.lo("2030",regi,"windoff","1")$(sameAs(regi,"DEU")) = 3/1000; - vm_cap.lo("2030",regi,"geohe","1")$(sameAs(regi,"DEU")) = 7/1000; -$endIf.cm_VREminCap_Ger +*' offshore wind near-term capacity additions based on recent project pipeline +*' https://www.wind-energie.de/fileadmin/redaktion/dokumente/pressemitteilungen/2026/Status_des_Offshore-Windenergieausbaus_Jahr_2025.pdf +vm_deltaCap.lo("2030",regi,"windoff","1")$(sameAs(regi,"DEU")) = 2/1000; +vm_deltaCap.up("2030",regi,"windoff","1")$(sameAs(regi,"DEU")) = 4/1000; +*' onshore wind near-term capacity additions based on recent trends and planned auction volumes +*' https://www.fachagentur-wind-solar.de/fileadmin/Veroeffentlichungen/Wind/Daten/FA_Wind_Solar_Status_des_Windenergieausbaus_an_Land_Halbjahr_2025.pdf, p. 22 +vm_deltaCap.lo("2030",regi,"windon","1")$(sameAs(regi,"DEU")) = 6/1000; +vm_deltaCap.up("2030",regi,"windon","1")$(sameAs(regi,"DEU")) = 12/1000; + +*' solar PV near-term capacity additions based on recent trends and planned auction volumes +*' https://www.sfv.de/medien/artikel/habecks-osterpaket/ausschreibungsmengen' +vm_deltaCap.lo("2030",regi,"spv","1")$(sameAs(regi,"DEU")) = 10/1000; !! current annual additions +vm_deltaCap.up("2030",regi,"spv","1")$(sameAs(regi,"DEU")) = 20/1000; !! planned annual additions to be reached from 2030 via EEG + +*' large-scale heat pumps near-term capacity additions +*' https://www.ewi.uni-koeln.de/de/aktuelles/grosswaermepumpen-markthochlauf-und-kosten-in-deutschland/ +vm_deltaCap.up("2030",regi,"geohe","1")$(sameAs(regi,"DEU")) = 0.5/1000; !! 500 MW/yr would be really ambitious already *' These bounds account for historic gas power development. *' TODO: Historical fixings should be done in the core the via input data from mrremind, this still needs to be moved @@ -57,10 +77,18 @@ $ifThen.tech_bounds_2025 "%cm_tech_bounds_2025%" == "on" v47_prodSEtotal.up("2025",regi,"pegas","seel")$(sameAs(regi,"DEU"))= 0.4*sm_EJ_2_TWa; $endIf.tech_bounds_2025 +*' disallow early retirement of gas power plants in Germany before 2040 since Germany is planning to keep / increase gas power capacities in the near-term +*' https://www.bundeswirtschaftsministerium.de/Redaktion/DE/Pressemitteilungen/2026/01/20260115-grundsatzeinigung-mit-europaeischen-kommission-ueber-eckpunkte-der-kraftwerksstrategie.html +*' Note: some early retirement needs to be allowed for ngcc to fullfill the 2020 gas generation bound above, +*' clean solution would probably fix capacities and capacities factors correctly before 2020 +vm_capEarlyReti.up(t,regi,'ngcc') $ ( t.val lt 2040 AND sameAs(regi,"DEU") ) = 0.4; +vm_capEarlyReti.up(t,regi,'ngt') $ ( t.val lt 2040 AND sameAs(regi,"DEU") ) = 0.01; + *' These bounds account for historic coal power development. vm_cap.up("2020",regi,"pc","1")$((cm_startyear le 2020) and (sameas(regi,"DEU"))) = 38.028/1000; -*' This limits early retirement of coal power in Germany in 2020s to avoid extremly fast phase-out. +*' This limits early retirement of coal power in Germany in near-term to avoid extremly fast phase-out. vm_capEarlyReti.up('2025',regi,'pc')$(sameAs(regi,"DEU")) = 0.65; +vm_capEarlyReti.up('2030',regi,'pc')$(sameAs(regi,"DEU")) = 0.8; *' This aligns 2020 chp capcities for Germany with historic data (AGEB) diff --git a/modules/47_regipol/regiCarbonPrice/declarations.gms b/modules/47_regipol/regiCarbonPrice/declarations.gms index 071a9337b2..4d21793ad0 100644 --- a/modules/47_regipol/regiCarbonPrice/declarations.gms +++ b/modules/47_regipol/regiCarbonPrice/declarations.gms @@ -17,6 +17,7 @@ Parameter pm_emiMktTarget_dev(ttot,ttot2,ext_regi,emiMktExt) "deviation of emissions of current iteration from target emissions, for budget target this is the difference normalized by target emissions, while for year targets this is the difference normalized by 2005 emissions [%]" pm_taxemiMkt(ttot,all_regi,all_emiMkt) "CO2 tax path per region and emissions market [T$/GtC]" pm_taxemiMkt_iteration(iteration,ttot,all_regi,all_emiMkt) "CO2 tax path per region and emissions market calculated from previous iteration [T$/GtC]" + p47_histCap(ttot,all_regi,all_te) "historical capacity per technology and region, used for setting bounds [GW]" ; *** parameters to track regipol emissions calculation diff --git a/modules/47_regipol/regiCarbonPrice/sets.gms b/modules/47_regipol/regiCarbonPrice/sets.gms index 61ca8a8ca2..ecd9128352 100644 --- a/modules/47_regipol/regiCarbonPrice/sets.gms +++ b/modules/47_regipol/regiCarbonPrice/sets.gms @@ -157,9 +157,7 @@ $ifthen.exogDemScen NOT "%cm_exogDem_scen%" == "off" exogDemScen "exogenuous FE and ES demand scenarios that can be activated by cm_exogDem_scen" / ariadne_bal - ariadne_ensec - ariadne_highDem - ariadne_lowDem + ariadne_reloc / $endif.exogDemScen diff --git a/modules/80_optimization/nash/declarations.gms b/modules/80_optimization/nash/declarations.gms index 0c56505c94..cd22950926 100644 --- a/modules/80_optimization/nash/declarations.gms +++ b/modules/80_optimization/nash/declarations.gms @@ -32,7 +32,10 @@ p80_defic_trade(all_enty) "Surplus in monetary terms over all p80_defic_sum(iteration) "Surplus in monetary terms over all times on all commodity markets combined [trillion US$2017] (NOTE: to compare this number with the Negishi defic_sum, divide by around 100)", p80_defic_sum_rel(iteration) "Surplus monetary value over all times on all commodity markets combined, normalized to consumption [%]", -*LB* diagnostic parameters +*** diagnostic parameter for NA detection in q01_cesIO +p80_CesNACheck(ttot,all_regi,all_in) "Diagnostic parameter to reproduce the term inside the log of the CES function. This can be used to debug error that an expression in q01_cesIO is NA" + +*LB* other diagnostic parameters p80_etaLT_correct(all_enty,iteration) "long term price correction factor in percent" p80_etaST_correct(tall,all_enty,iteration) "short term price correction factor in percent" @@ -57,8 +60,12 @@ p80_repy_iteration(all_regi,solveinfo80,iteration) "summary report from solver i p80_repyLastOptim(all_regi,solveinfo80) "p80_repy from last iteration" p80_repy_thisSolitr(all_regi,solveinfo80) "p80_repy from the current solitr - only shows results for regions that were run in this solItr" p80_repy_nashitr_solitr(all_regi,solveinfo80,iteration,sol_itr) "summary report from solver in nash iteration and solver iteration" -p80_messageFailedMarket(tall,all_enty) "nash display helper" -p80_messageShow(convMessage80) "nash display helper" +p80_messageFailedMarket(tall,all_enty) "shows timesteps and traded goods for which the market surplus was above the tolerance, thus indicating that the Nash iteration did not converge for these items" +p80_messageShow(convMessage80) "shows all convergence criteria which were not met in this iteration" +p80_messageFailedMarket_iter(tall,all_enty,iteration) "shows p80_messageFailedMarket over iterations" +p80_messageShow_iter(convMessage80,iteration) "shows p80_messageShow over iterations" + + p80_trackConsecFail(all_regi) "Parameter to keep track of consecutive solve failures of regions in Nash mode." p80_curracc(ttot,all_regi) "current account" diff --git a/modules/80_optimization/nash/postsolve.gms b/modules/80_optimization/nash/postsolve.gms index dc3bd518be..d90ec06aa6 100644 --- a/modules/80_optimization/nash/postsolve.gms +++ b/modules/80_optimization/nash/postsolve.gms @@ -465,6 +465,11 @@ $ifthen.internalizeDamages not "%internalizeDamages%" == "off" ); $endIf.internalizeDamages + +*** save failed markets and criteria for non-convergence over iterations +p80_messageFailedMarket_iter(tall,all_enty,iteration) = p80_messageFailedMarket(tall,all_enty); +p80_messageShow_iter(convMessage80,iteration) = p80_messageShow(convMessage80); + display "####"; display "Convergence diagnostics"; display "Iteration number: "; diff --git a/modules/80_optimization/nash/solve.gms b/modules/80_optimization/nash/solve.gms index 45e2e9f9eb..b939126ce1 100644 --- a/modules/80_optimization/nash/solve.gms +++ b/modules/80_optimization/nash/solve.gms @@ -31,6 +31,50 @@ $endif.repeatNonOpt regi(all_regi) = YES; + !! ---------------------------------------------------------------------------------------- + !! Debugging Code for Execution Errors: + !! This is a blueprint for debugging execution errors like NA values in equations. + !! It serves to identify the problematic set element combinations and print them to the full.log file. + !! The code can be used as a basis to debug similar problems in other equations. + !! ---------------------------------------------------------------------------------------- + !! Check for NAs in the log of the q01_cesIO equation + !! Calculate expression inside log of q01_cesIO equation + loop(out $ ( ipf(out) ), + p80_CesNACheck(t,all_regi,out) = + sum(cesOut2cesIn(out,in), + pm_cesdata(t,all_regi,in,"xi") + * exp( + log( + pm_cesdata(t,all_regi,in,"eff") + * vm_effGr.l(t,all_regi,in) + * vm_damageProdFactor.l(t,all_regi,in) + * vm_cesIO.l(t,all_regi,in) + ) + * pm_cesdata(t,all_regi,out,"rho") + ) + ); + ); + + !! Check for problematic values in p80_CesNACheck (NA, 0, negative values) + put logfile; + put "Checking for possible NA expressions in q01_cesIO for region " all_regi.tl /; + + if (smax((t,out)$( ipf(out) AND (p80_CesNACheck(t,all_regi,out) = NA OR p80_CesNACheck(t,all_regi,out) le 0) ), + 1), + put "Warning: p80_CesNACheck issues found:" /; + loop ((t,out)$( ipf(out) AND (p80_CesNACheck(t,all_regi,out) = NA OR p80_CesNACheck(t,all_regi,out) le 0) ), + put " t=" t.tl:0, " out=" out.tl:0, " all_regi=" all_regi.tl:0, + " value=" p80_CesNACheck(t,all_regi,out):15:10 /; + ); + else + put "No issues found in p80_CesNACheck for region " all_regi.tl /; + ); + putclose logfile " " /; + + !! End Debugging Code for Execution Errors + !! ---------------------------------------------------------------------------------------- + + if (execError > 0, execute_unload "abort.gdx"; abort "at least one execution error occured, possibly in the loop";