-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDeclare_sets_and_parameters_h4380.gms
272 lines (237 loc) · 25.2 KB
/
Declare_sets_and_parameters_h4380.gms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
*###############################################################################
*
* Declaration of sets and parameter
*
*###############################################################################
year('2017') = YES;
year('2025') = YES;
hour(year,hour_all) = no;
n = -1;
Loop(i$((ord(i) ge 1) AND (ord(i) lt 4382)),
n = n + 2;
hour(year,hour_all)$(ord(hour_all) eq n) = yes;
);
*Display hour;
load_structure('2022',hour_all,country)$(hour('2020',hour_all)) = load_structure('2020',hour_all,country);
load_structure('2024',hour_all,country)$(hour('2025',hour_all)) = load_structure('2025',hour_all,country);
load_structure('2026',hour_all,country)$(hour('2025',hour_all)) = load_structure('2025',hour_all,country);
load_structure('2028',hour_all,country)$(hour('2030',hour_all)) = load_structure('2030',hour_all,country);
load_structure('2032',hour_all,country)$(hour('2030',hour_all)) = load_structure('2030',hour_all,country);
load_structure('2034',hour_all,country)$(hour('2030',hour_all)) = load_structure('2030',hour_all,country);
load_structure('2036',hour_all,country)$(hour('2030',hour_all)) = load_structure('2030',hour_all,country);
load_structure('2038',hour_all,country)$(hour('2040',hour_all)) = load_structure('2040',hour_all,country);
load_structure('2045',hour_all,country)$(hour('2040',hour_all)) = load_structure('2040',hour_all,country);
load_structure('2050',hour_all,country)$(hour('2040',hour_all)) = load_structure('2040',hour_all,country);
*Display load_structure;
first_hour('2017') = 1;
first_hour('2020') = 1;
first_hour('2025') = 1;
first_hour('2030') = 1;
first_hour('2040') = 1;
first_hour('2022') = first_hour('2020');
first_hour('2024') = first_hour('2025');
first_hour('2026') = first_hour('2025');
first_hour('2028') = first_hour('2030');
first_hour('2032') = first_hour('2030');
first_hour('2034') = first_hour('2030');
first_hour('2036') = first_hour('2030');
first_hour('2038') = first_hour('2040');
first_hour('2045') = first_hour('2040');
first_hour('2050') = first_hour('2040');
last_hour('2017') = 8759;
last_hour('2020') = 8759;
last_hour('2025') = 8759;
last_hour('2030') = 8759;
last_hour('2040') = 8759;
last_hour('2022') = last_hour('2020');
last_hour('2024') = last_hour('2025');
last_hour('2026') = last_hour('2025');
last_hour('2028') = last_hour('2030');
last_hour('2032') = last_hour('2030');
last_hour('2034') = last_hour('2030');
last_hour('2036') = last_hour('2030');
last_hour('2038') = last_hour('2040');
last_hour('2045') = last_hour('2040');
last_hour('2050') = last_hour('2040');
step_hour(year,hour_all)$hour(year,hour_all) = 2;
*Display first_hour,last_hour,hour,step_hour;
map_hourmonth('2022',hour_all,month)$(hour('2020',hour_all)) = map_hourmonth('2020',hour_all,month);
map_hourmonth('2024',hour_all,month)$(hour('2025',hour_all)) = map_hourmonth('2025',hour_all,month);
map_hourmonth('2026',hour_all,month)$(hour('2025',hour_all)) = map_hourmonth('2025',hour_all,month);
map_hourmonth('2028',hour_all,month)$(hour('2030',hour_all)) = map_hourmonth('2030',hour_all,month);
map_hourmonth('2032',hour_all,month)$(hour('2030',hour_all)) = map_hourmonth('2030',hour_all,month);
map_hourmonth('2034',hour_all,month)$(hour('2030',hour_all)) = map_hourmonth('2030',hour_all,month);
map_hourmonth('2036',hour_all,month)$(hour('2030',hour_all)) = map_hourmonth('2030',hour_all,month);
map_hourmonth('2038',hour_all,month)$(hour('2040',hour_all)) = map_hourmonth('2040',hour_all,month);
map_hourmonth('2045',hour_all,month)$(hour('2040',hour_all)) = map_hourmonth('2040',hour_all,month);
map_hourmonth('2050',hour_all,month)$(hour('2040',hour_all)) = map_hourmonth('2040',hour_all,month);
*Display map_hourmonth;
map_hourday('2030',hour_all,day)=map_hourday('2025',hour_all,day);
map_hourday('2040',hour_all,day)=map_hourday('2025',hour_all,day);
map_hourday('2022',hour_all,day)$(hour('2022',hour_all)) = map_hourday('2020',hour_all,day);
map_hourday('2024',hour_all,day)$(hour('2024',hour_all)) = map_hourday('2025',hour_all,day);
map_hourday('2026',hour_all,day)$(hour('2026',hour_all)) = map_hourday('2025',hour_all,day);
map_hourday('2028',hour_all,day)$(hour('2028',hour_all)) = map_hourday('2030',hour_all,day);
map_hourday('2030',hour_all,day)$(hour('2030',hour_all)) = map_hourday('2030',hour_all,day);
map_hourday('2032',hour_all,day)$(hour('2032',hour_all)) = map_hourday('2030',hour_all,day);
map_hourday('2034',hour_all,day)$(hour('2034',hour_all)) = map_hourday('2030',hour_all,day);
map_hourday('2036',hour_all,day)$(hour('2036',hour_all)) = map_hourday('2030',hour_all,day);
map_hourday('2038',hour_all,day)$(hour('2038',hour_all)) = map_hourday('2040',hour_all,day);
map_hourday('2040',hour_all,day)$(hour('2040',hour_all)) = map_hourday('2040',hour_all,day);
map_hourday('2045',hour_all,day)$(hour('2045',hour_all)) = map_hourday('2040',hour_all,day);
map_hourday('2050',hour_all,day)$(hour('2050',hour_all)) = map_hourday('2040',hour_all,day);
*Display map_hourday;
peakind('2022',hour_all,country) = peakind('2020',hour_all,country);
peakind('2024',hour_all,country) = peakind('2025',hour_all,country);
peakind('2026',hour_all,country) = peakind('2025',hour_all,country);
peakind('2028',hour_all,country) = peakind('2030',hour_all,country);
peakind('2032',hour_all,country) = peakind('2030',hour_all,country);
peakind('2034',hour_all,country) = peakind('2030',hour_all,country);
peakind('2036',hour_all,country) = peakind('2030',hour_all,country);
peakind('2038',hour_all,country) = peakind('2040',hour_all,country);
peakind('2045',hour_all,country) = peakind('2040',hour_all,country);
peakind('2050',hour_all,country) = peakind('2040',hour_all,country);
*Display peakind;
load(country,year,hour_all)$(hour(year,hour_all)) = load_year(year,country) * load_structure(year,hour_all,country);
*Display load_year,load;
ntc_hour(country,country2,year,hour_all)$(hour(year,hour_all)) = sum(month$(map_hourmonth(year,hour_all,month)), ntc_year_month(year,month,country,country2)) * (1 - indicator_dailyntc)
+
sum(day$(map_hourday(year,hour_all,day)), ntc_year_day(year,day,country,country2))*indicator_dailyntc;
*Display ntc_hour,ntc_year_day;
ntc_hour(country,country2,'2022',hour_all)$(hour('2020',hour_all)) = ntc(country,country2,'2022') * ( ntc_hour(country,country2,'2020',hour_all) / ntc(country,country2,'2020') );
ntc_hour(country,country2,'2024',hour_all)$(hour('2025',hour_all)) = ntc(country,country2,'2024') * ( ntc_hour(country,country2,'2025',hour_all) / ntc(country,country2,'2025') );
ntc_hour(country,country2,'2026',hour_all)$(hour('2025',hour_all)) = ntc(country,country2,'2026') * ( ntc_hour(country,country2,'2025',hour_all) / ntc(country,country2,'2025') );
ntc_hour(country,country2,'2028',hour_all)$(hour('2030',hour_all)) = ntc(country,country2,'2028') * ( ntc_hour(country,country2,'2030',hour_all) / ntc(country,country2,'2030') );
ntc_hour(country,country2,'2032',hour_all)$(hour('2030',hour_all)) = ntc(country,country2,'2032') * ( ntc_hour(country,country2,'2030',hour_all) / ntc(country,country2,'2030') );
ntc_hour(country,country2,'2034',hour_all)$(hour('2030',hour_all)) = ntc(country,country2,'2034') * ( ntc_hour(country,country2,'2030',hour_all) / ntc(country,country2,'2030') );
ntc_hour(country,country2,'2036',hour_all)$(hour('2030',hour_all)) = ntc(country,country2,'2036') * ( ntc_hour(country,country2,'2030',hour_all) / ntc(country,country2,'2030') );
ntc_hour(country,country2,'2038',hour_all)$(hour('2040',hour_all)) = ntc(country,country2,'2038') * ( ntc_hour(country,country2,'2040',hour_all) / ntc(country,country2,'2040') );
ntc_hour(country,country2,'2050',hour_all)$(hour('2040',hour_all)) = ntc(country,country2,'2050') * ( ntc_hour(country,country2,'2040',hour_all) / ntc(country,country2,'2040') );
ntc_hour(country,country2,'2045',hour_all)$(hour('2040',hour_all)) = ntc(country,country2,'2045') * ( ntc_hour(country,country2,'2040',hour_all) / ntc(country,country2,'2040') );
*Display ntc_hour;
netexport_border(country,'2020',hour_all)$(hour('2020',hour_all)) = borderflow('2017',hour_all,country);
netexport_border(country,'2022',hour_all)$(hour('2020',hour_all)) = borderflow('2017',hour_all,country);
netexport_border(country,'2024',hour_all)$(hour('2025',hour_all)) = borderflow('2017',hour_all,country);
netexport_border(country,'2026',hour_all)$(hour('2025',hour_all)) = borderflow('2017',hour_all,country);
netexport_border(country,'2028',hour_all)$(hour('2030',hour_all)) = borderflow('2017',hour_all,country);
netexport_border(country,'2030',hour_all)$(hour('2030',hour_all)) = borderflow('2017',hour_all,country);
netexport_border(country,'2032',hour_all)$(hour('2030',hour_all)) = borderflow('2017',hour_all,country);
netexport_border(country,'2034',hour_all)$(hour('2030',hour_all)) = borderflow('2017',hour_all,country);
netexport_border(country,'2036',hour_all)$(hour('2030',hour_all)) = borderflow('2017',hour_all,country);
netexport_border(country,'2038',hour_all)$(hour('2040',hour_all)) = borderflow('2017',hour_all,country);
netexport_border(country,'2040',hour_all)$(hour('2040',hour_all)) = borderflow('2017',hour_all,country);
netexport_border(country,'2045',hour_all)$(hour('2040',hour_all)) = borderflow('2017',hour_all,country);
netexport_border(country,'2050',hour_all)$(hour('2040',hour_all)) = borderflow('2017',hour_all,country);
*Display borderflow,netexport_border;
*renew parameters
capfactor_renew_max(country,'solar',year,hour_all)$(hour(year,hour_all)) = capfactor_solar(year,hour_all,country);
capfactor_renew_max(country,'windonshore',year,hour_all)$(hour(year,hour_all)) = capfactor_windonshore(year,hour_all,country);
capfactor_renew_max(country,'windoffshore',year,hour_all)$(hour(year,hour_all)) = capfactor_windoffshore(year,hour_all,country);
capfactor_renew_max(country,'runofriver',year,hour_all)$(hour(year,hour_all)) = capfactor_runofriver(year,hour_all,country);
capfactor_renew_max(country,'reservoir',year,hour_all)$(hour(year,hour_all)) = capfactor_reservoir_max(year,hour_all,country);
capfactor_renew_min(country,'reservoir',year,hour_all)$(hour(year,hour_all)) = capfactor_reservoir_min(year,hour_all,country);
capfactor_renew_max(country,'solar','2022',hour_all)$(hour('2020',hour_all)) = capfactor_renew_max(country,'solar','2020',hour_all);
capfactor_renew_max(country,'solar','2024',hour_all)$(hour('2025',hour_all)) = capfactor_renew_max(country,'solar','2025',hour_all);
capfactor_renew_max(country,'solar','2026',hour_all)$(hour('2025',hour_all)) = capfactor_renew_max(country,'solar','2025',hour_all);
capfactor_renew_max(country,'solar','2028',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'solar','2030',hour_all);
capfactor_renew_max(country,'solar','2032',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'solar','2030',hour_all);
capfactor_renew_max(country,'solar','2034',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'solar','2030',hour_all);
capfactor_renew_max(country,'solar','2036',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'solar','2030',hour_all);
capfactor_renew_max(country,'solar','2038',hour_all)$(hour('2040',hour_all)) = capfactor_renew_max(country,'solar','2040',hour_all);
capfactor_renew_max(country,'solar','2045',hour_all)$(hour('2040',hour_all)) = capfactor_renew_max(country,'solar','2040',hour_all);
capfactor_renew_max(country,'solar','2050',hour_all)$(hour('2040',hour_all)) = capfactor_renew_max(country,'solar','2040',hour_all);
capfactor_renew_max(country,'windonshore','2022',hour_all)$(hour('2020',hour_all)) = capfactor_renew_max(country,'windonshore','2020',hour_all);
capfactor_renew_max(country,'windonshore','2024',hour_all)$(hour('2025',hour_all)) = capfactor_renew_max(country,'windonshore','2025',hour_all);
capfactor_renew_max(country,'windonshore','2026',hour_all)$(hour('2025',hour_all)) = capfactor_renew_max(country,'windonshore','2025',hour_all);
capfactor_renew_max(country,'windonshore','2028',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'windonshore','2030',hour_all);
capfactor_renew_max(country,'windonshore','2032',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'windonshore','2030',hour_all);
capfactor_renew_max(country,'windonshore','2034',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'windonshore','2030',hour_all);
capfactor_renew_max(country,'windonshore','2036',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'windonshore','2030',hour_all);
capfactor_renew_max(country,'windonshore','2038',hour_all)$(hour('2040',hour_all)) = capfactor_renew_max(country,'windonshore','2040',hour_all);
capfactor_renew_max(country,'windonshore','2045',hour_all)$(hour('2040',hour_all)) = capfactor_renew_max(country,'windonshore','2040',hour_all);
capfactor_renew_max(country,'windonshore','2050',hour_all)$(hour('2040',hour_all)) = capfactor_renew_max(country,'windonshore','2040',hour_all);
capfactor_renew_max(country,'windoffshore','2022',hour_all)$(hour('2020',hour_all)) = capfactor_renew_max(country,'windoffshore','2020',hour_all);
capfactor_renew_max(country,'windoffshore','2024',hour_all)$(hour('2025',hour_all)) = capfactor_renew_max(country,'windoffshore','2025',hour_all);
capfactor_renew_max(country,'windoffshore','2026',hour_all)$(hour('2025',hour_all)) = capfactor_renew_max(country,'windoffshore','2025',hour_all);
capfactor_renew_max(country,'windoffshore','2028',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'windoffshore','2030',hour_all);
capfactor_renew_max(country,'windoffshore','2032',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'windoffshore','2030',hour_all);
capfactor_renew_max(country,'windoffshore','2034',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'windoffshore','2030',hour_all);
capfactor_renew_max(country,'windoffshore','2036',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'windoffshore','2030',hour_all);
capfactor_renew_max(country,'windoffshore','2038',hour_all)$(hour('2040',hour_all)) = capfactor_renew_max(country,'windoffshore','2040',hour_all);
capfactor_renew_max(country,'windoffshore','2045',hour_all)$(hour('2040',hour_all)) = capfactor_renew_max(country,'windoffshore','2040',hour_all);
capfactor_renew_max(country,'windoffshore','2050',hour_all)$(hour('2040',hour_all)) = capfactor_renew_max(country,'windoffshore','2040',hour_all);
capfactor_renew_max(country,'runofriver','2022',hour_all)$(hour('2020',hour_all)) = capfactor_renew_max(country,'runofriver','2020',hour_all);
capfactor_renew_max(country,'runofriver','2024',hour_all)$(hour('2025',hour_all)) = capfactor_renew_max(country,'runofriver','2025',hour_all);
capfactor_renew_max(country,'runofriver','2026',hour_all)$(hour('2025',hour_all)) = capfactor_renew_max(country,'runofriver','2025',hour_all);
capfactor_renew_max(country,'runofriver','2028',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'runofriver','2030',hour_all);
capfactor_renew_max(country,'runofriver','2032',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'runofriver','2030',hour_all);
capfactor_renew_max(country,'runofriver','2034',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'runofriver','2030',hour_all);
capfactor_renew_max(country,'runofriver','2036',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'runofriver','2030',hour_all);
capfactor_renew_max(country,'runofriver','2038',hour_all)$(hour('2040',hour_all)) = capfactor_renew_max(country,'runofriver','2040',hour_all);
capfactor_renew_max(country,'runofriver','2045',hour_all)$(hour('2040',hour_all)) = capfactor_renew_max(country,'runofriver','2040',hour_all);
capfactor_renew_max(country,'runofriver','2050',hour_all)$(hour('2040',hour_all)) = capfactor_renew_max(country,'runofriver','2040',hour_all);
capfactor_renew_max(country,'reservoir','2022',hour_all)$(hour('2020',hour_all)) = capfactor_renew_max(country,'reservoir','2020',hour_all);
capfactor_renew_max(country,'reservoir','2024',hour_all)$(hour('2025',hour_all)) = capfactor_renew_max(country,'reservoir','2025',hour_all);
capfactor_renew_max(country,'reservoir','2026',hour_all)$(hour('2025',hour_all)) = capfactor_renew_max(country,'reservoir','2025',hour_all);
capfactor_renew_max(country,'reservoir','2028',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'reservoir','2030',hour_all);
capfactor_renew_max(country,'reservoir','2032',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'reservoir','2030',hour_all);
capfactor_renew_max(country,'reservoir','2034',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'reservoir','2030',hour_all);
capfactor_renew_max(country,'reservoir','2036',hour_all)$(hour('2030',hour_all)) = capfactor_renew_max(country,'reservoir','2030',hour_all);
capfactor_renew_max(country,'reservoir','2038',hour_all)$(hour('2040',hour_all)) = capfactor_renew_max(country,'reservoir','2040',hour_all);
capfactor_renew_max(country,'reservoir','2045',hour_all)$(hour('2040',hour_all)) = capfactor_renew_max(country,'reservoir','2040',hour_all);
capfactor_renew_max(country,'reservoir','2050',hour_all)$(hour('2040',hour_all)) = capfactor_renew_max(country,'reservoir','2040',hour_all);
capfactor_renew_min(country,'reservoir','2022',hour_all)$(hour('2020',hour_all)) = capfactor_renew_min(country,'reservoir','2020',hour_all);
capfactor_renew_min(country,'reservoir','2024',hour_all)$(hour('2025',hour_all)) = capfactor_renew_min(country,'reservoir','2025',hour_all);
capfactor_renew_min(country,'reservoir','2026',hour_all)$(hour('2025',hour_all)) = capfactor_renew_min(country,'reservoir','2025',hour_all);
capfactor_renew_min(country,'reservoir','2028',hour_all)$(hour('2030',hour_all)) = capfactor_renew_min(country,'reservoir','2030',hour_all);
capfactor_renew_min(country,'reservoir','2032',hour_all)$(hour('2030',hour_all)) = capfactor_renew_min(country,'reservoir','2030',hour_all);
capfactor_renew_min(country,'reservoir','2034',hour_all)$(hour('2030',hour_all)) = capfactor_renew_min(country,'reservoir','2030',hour_all);
capfactor_renew_min(country,'reservoir','2036',hour_all)$(hour('2030',hour_all)) = capfactor_renew_min(country,'reservoir','2030',hour_all);
capfactor_renew_min(country,'reservoir','2038',hour_all)$(hour('2040',hour_all)) = capfactor_renew_min(country,'reservoir','2040',hour_all);
capfactor_renew_min(country,'reservoir','2045',hour_all)$(hour('2040',hour_all)) = capfactor_renew_min(country,'reservoir','2040',hour_all);
capfactor_renew_min(country,'reservoir','2050',hour_all)$(hour('2040',hour_all)) = capfactor_renew_min(country,'reservoir','2040',hour_all);
*Display capfactor_renew_max,capfactor_renew_min;
capfactor_renew_max(country,'geothermal',year,hour_all)$(hour(year,hour_all) AND (cap_renew_install_exogen(country,'geothermal',year) gt 0)) = ( gen_renew_exogen(country,'geothermal',year) * 1000 ) / ( cap_renew_install_exogen(country,'geothermal',year) * 8760 );
capfactor_renew_max(country,'marine',year,hour_all)$(hour(year,hour_all) AND (cap_renew_install_exogen(country,'marine',year) gt 0)) = ( gen_renew_exogen(country,'marine',year) * 1000 ) / ( cap_renew_install_exogen(country,'marine',year) * 8760 );
capfactor_renew_max(country,'othergas',year,hour_all)$(hour(year,hour_all) AND (cap_renew_install_exogen(country,'othergas',year) gt 0)) = ( gen_renew_exogen(country,'othergas',year) * 1000 ) / ( cap_renew_install_exogen(country,'othergas',year) * 8760 );
*Display capfactor_renew_max;
cap_renew_install_exogen2(country,'solar',year)$(gen_renew_exogen(country,'solar',year) gt 0) = (gen_renew_exogen(country,'solar',year) * 1000) / ( sum(hour(year,hour_all), capfactor_renew_max(country,'solar',year,hour_all)) * (8760 / sum(hour(year,hour_all), 1)) );
cap_renew_install_exogen2(country,'windonshore',year)$(gen_renew_exogen(country,'windonshore',year) gt 0) = (gen_renew_exogen(country,'windonshore',year) * 1000) / ( sum(hour(year,hour_all), capfactor_renew_max(country,'windonshore',year,hour_all)) * (8760 / sum(hour(year,hour_all), 1)) );
cap_renew_install_exogen2(country,'windoffshore',year)$(gen_renew_exogen(country,'windoffshore',year) gt 0) = (gen_renew_exogen(country,'windoffshore',year) * 1000) / ( sum(hour(year,hour_all), capfactor_renew_max(country,'windoffshore',year,hour_all)) * (8760 / sum(hour(year,hour_all), 1)) );
cap_renew_install_exogen2(country,'runofriver',year)$(gen_renew_exogen(country,'runofriver',year) gt 0) = (gen_renew_exogen(country,'runofriver',year) * 1000) / ( sum(hour(year,hour_all), capfactor_renew_max(country,'runofriver',year,hour_all)) * (8760 / sum(hour(year,hour_all), 1)) );
gen_renew_exogen2(country,'solar',year)$(gen_renew_exogen(country,'solar',year) gt 0) = sum(hour(year,hour_all), cap_renew_install_exogen2(country,'solar',year) * ( capfactor_renew_max(country,'solar',year,hour_all) / 1000 ) ) * (8760 / sum(hour(year,hour_all), 1));
gen_renew_exogen2(country,'windonshore',year)$(gen_renew_exogen(country,'windonshore',year) gt 0) = sum(hour(year,hour_all), cap_renew_install_exogen2(country,'windonshore',year) * ( capfactor_renew_max(country,'windonshore',year,hour_all) / 1000 ) ) * (8760 / sum(hour(year,hour_all), 1));
gen_renew_exogen2(country,'windoffshore',year)$(gen_renew_exogen(country,'windoffshore',year) gt 0) = sum(hour(year,hour_all), cap_renew_install_exogen2(country,'windoffshore',year) * ( capfactor_renew_max(country,'windoffshore',year,hour_all) / 1000 ) ) * (8760 / sum(hour(year,hour_all), 1));
gen_renew_exogen2(country,'runofriver',year)$(gen_renew_exogen(country,'runofriver',year) gt 0) = sum(hour(year,hour_all), cap_renew_install_exogen2(country,'runofriver',year) * ( capfactor_renew_max(country,'runofriver',year,hour_all) / 1000 ) ) * (8760 / sum(hour(year,hour_all), 1));
*Display cap_renew_install_exogen,cap_renew_install_exogen2,gen_renew_exogen,gen_renew_exogen2;
cap_renew_install_exogen(country,'solar',year) = cap_renew_install_exogen2(country,'solar',year);
cap_renew_install_exogen(country,'windonshore',year) = cap_renew_install_exogen2(country,'windonshore',year);
cap_renew_install_exogen(country,'windoffshore',year) = cap_renew_install_exogen2(country,'windoffshore',year);
cap_renew_install_exogen(country,'runofriver',year) = cap_renew_install_exogen2(country,'runofriver',year);
*Display capfactor_renew_max,gen_renew_exogen,gen_renew_exogen2;
*#####################################################
*Calibration of chp data
chp_structure_hour(country,year,hour_all)$(hour(year,hour_all)) = ( chp_structure(year,hour_all,country) * (1 - indicator_chp_trimmed) + chp_trimmed_structure(year,hour_all,country) * indicator_chp_trimmed ) / 1000 + EPS;
chp_structure_hour(country,'2022',hour_all)$(hour('2020',hour_all)) = chp_structure_hour(country,'2020',hour_all);
chp_structure_hour(country,'2024',hour_all)$(hour('2025',hour_all)) = chp_structure_hour(country,'2025',hour_all);
chp_structure_hour(country,'2026',hour_all)$(hour('2025',hour_all)) = chp_structure_hour(country,'2025',hour_all);
chp_structure_hour(country,'2028',hour_all)$(hour('2030',hour_all)) = chp_structure_hour(country,'2030',hour_all);
chp_structure_hour(country,'2032',hour_all)$(hour('2030',hour_all)) = chp_structure_hour(country,'2030',hour_all);
chp_structure_hour(country,'2034',hour_all)$(hour('2030',hour_all)) = chp_structure_hour(country,'2030',hour_all);
chp_structure_hour(country,'2036',hour_all)$(hour('2030',hour_all)) = chp_structure_hour(country,'2030',hour_all);
chp_structure_hour(country,'2038',hour_all)$(hour('2040',hour_all)) = chp_structure_hour(country,'2040',hour_all);
chp_structure_hour(country,'2045',hour_all)$(hour('2040',hour_all)) = chp_structure_hour(country,'2040',hour_all);
chp_structure_hour(country,'2050',hour_all)$(hour('2040',hour_all)) = chp_structure_hour(country,'2040',hour_all);
*Display chp_structure_hour;
*################################################################################################################################
*Calculation of montly availability factors
availability_conv(country,conv,year,hour_all)$(hour(year,hour_all)) = sum(month$(map_hourmonth(year,hour_all,month)), availability_conv_planned(country,conv,year,month)) - forcedoutages_conv(country,conv,year);
availability_conv(country,'nuclear_old_1900-2020','2017',hour_all)$(hour('2017',hour_all)) = ( 1 - plannedoutages_conv(country,'nuclear_old_1900-2020','2017') - forcedoutages_conv(country,'nuclear_old_1900-2020','2017') ) * sum(month$(map_hourmonth('2017',hour_all,month)), avail_month_structure_nuclear('2017',month,country))$( sum(month, avail_month_structure_nuclear('2017',month,country)) gt 0)
+
( sum(month$(map_hourmonth('2017',hour_all,month)), availability_conv_planned(country,'nuclear_old_1900-2020','2017',month)) - forcedoutages_conv(country,'nuclear_old_1900-2020','2017') )$( sum(month, avail_month_structure_nuclear('2017',month,country)) eq 0)
;
*Display availability_conv;
availability_renew(country,renew_disp,year,hour_all)$(hour(year,hour_all) AND (inputdata_renew(renew_disp,'avail') lt 1)) = sum(month$(map_hourmonth(year,hour_all,month)), availability_renew_month(country,renew_disp,year,month) );
*Display availability_renew;
year('2025') = NO;
year('2017') = NO;