-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy pathrpt_ext.cli
53 lines (50 loc) · 2.68 KB
/
rpt_ext.cli
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
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* Copyright (C) 2000-2023 Energy Technology Systems Analysis Programme (ETSAP)
* This file is part of the IEA-ETSAP TIMES model generator, licensed
* under the GNU General Public License v3.0 (see file NOTICE-GPLv3.txt).
*-----------------------------------------------------------------------------
* RPT_EXT.cli - Extension for Climate Module: Stochastic report
*-----------------------------------------------------------------------------
* Questions/Comments:
*
*-----------------------------------------------------------------------------
* Calculate Reporting parameters for Climate Module
*-----------------------------------------------------------------------------
$IFI %SENSIS%==YES $EXIT
$%SW_NOTAGS%
*-----------------------------------------------------------------------------
EQUATIONS
%EQ%_CLITOT(CM_VAR,T,LL %SWD%) 'Balances for the total emissions or forcing'
%EQ%_CLIMAX(ALLYEAR,CM_VAR %SWD%) 'Constraint for maximum climate quantities'
;
VARIABLES
%VAR%_CLITOT(CM_VAR,LL %SWD%) 'Total emissions or forcing by milestone year'
POSITIVE VARIABLES
%VAR%_CLIBOX(CM_VAR,LL %SWD%) 'Quantities in the climate reservoirs'
;
*-----------------------------------------------------------------------------
$IF %STAGES%==YES $%SW_TAGS% SET SWSW SW_TSW(SOW,T,WW),
$IF %SCUM%==1 $SET SWSW 'SW_T(T,WW),' SET SCUM *SW_TPROB(T,WW)
* Results for each SOW
$IF NOT %STAGES%==YES LOOP(SOW,
$IF %STAGES%==YES LOOP(AUXSOW(SOW)$SW_PROB(SOW),
* Clear results from previous SOW
$IF NOT %STAGES%==YES $GOTO REPORT
OPTION CLEAR=VAR_CLITOT,CLEAR=VAR_CLIBOX;
OPTION CLEAR=EQ_CLITOT, CLEAR=EQ_CLIMAX;
LOOP(SUPERYR(T,LL)$CM_LED(LL),
VAR_CLITOT.L(CM_VAR,LL) $= SUM(%SWSW% %VAR%_CLITOT.L(CM_VAR,LL%SWD%)%SCUM%);
VAR_CLIBOX.L(CM_VAR,LL) $= SUM(%SWSW% %VAR%_CLIBOX.L(CM_VAR,LL%SWD%)%SCUM%);
$IF %STAGES%%SCUM%==YES VAR_CLIBOX.L(CM_VAR,LL) $= %VAR%_CLIBOX.L(CM_VAR,LL,SOW);
EQ_CLIMAX.M(LL,CM_VAR) $= SUM(%SWSW% %EQ%_CLIMAX.M(LL,CM_VAR%SWD%)*SW_UNPB(T,WW)));
EQ_CLITOT.M(CM_VAR,T,T) $= SUM(%SWSW% %EQ%_CLITOT.M(CM_VAR,T,T%SWD%)*SW_UNPB(T,WW));
$LABEL REPORT BATINCLUDE rpt_par.cli
);
IF(CARD(SOW)=1,DISPLAY CM_RESULT,CM_MAXC_M; ELSE DISPLAY CM_SRESULT,CM_SMAXC_M);
*-----------------------------------------------------------------------------
$IF NOT %STAGES%==YES $EXIT
* Expected marginals
LOOP(SUPERYR(T,LL)$CM_LED(LL),
EQ_CLIMAX.M(LL,CM_VAR) $= SUM(SW_T(T,W),%EQ%_CLIMAX.M(LL,CM_VAR,W));
VAR_CLITOT.L(CM_VAR,LL) $= SUM(SW_T(T,W),SW_TPROB(T,W)*%VAR%_CLITOT.L(CM_VAR,LL,W));
VAR_CLIBOX.L(CM_VAR,LL) $= SUM(SW_T(T,W),SW_TPROB(T,W)*%VAR%_CLIBOX.L(CM_VAR,LL,W)));