-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy pathforcupd.cli
33 lines (32 loc) · 1.68 KB
/
forcupd.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
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* 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).
*----------------------------------------------------------------------------
* FORCUPD.cli - Climate Module forcing function update
*----------------------------------------------------------------------------
$SET CH4_PRE 700
$SET N2O_PRE 270
$SET FOFO (0.47*LOG(1 + 2.01E-5*(F*Z)**0.75 + 5.31E-15*F*(F*Z)**1.52)-MY_SUM)
LOOP(CM_ATMAP(CM_EMIS,CM_HISTS), CM_RESULT(CM_HISTS,LL)$CM_LED(LL) =
SUM(CM_BOXMAP(CM_EMIS,CM_VAR,CM_BOX)$CM_PHI(CM_EMIS,CM_BOX,CM_EMIS),VAR_CLIBOX.L(CM_VAR,LL))/CM_PPM(CM_EMIS));
F=%CH4_PRE%; Z=%N2O_PRE%; MY_SUM=0; MY_SUM=%FOFO%;
LOOP(LL$CM_LED(LL),
*...methane
F = MAX(1,CM_RESULT('CH4-PPB',LL)-.5); Z = %N2O_PRE%;
FIRST_VAL = .036*(SQRT(F)-SQRT(%CH4_PRE%)) - %FOFO%; F=F+1;
LAST_VAL = .036*(SQRT(F)-SQRT(%CH4_PRE%)) - %FOFO%;
Z=LAST_VAL-FIRST_VAL; LAST_VAL=(FIRST_VAL+LAST_VAL)/2;
CM_LINFOR(LL,'CH4-PPB','N') = Z;
CM_LINFOR(LL,'CH4-PPB','FX') = LAST_VAL-Z*(F-0.5);
*...nitrous
F = %CH4_PRE%; Z = MAX(1,CM_RESULT('N2O-PPB',LL)-.5);
FIRST_VAL = 0.12*(SQRT(Z)-SQRT(%N2O_PRE%)) - %FOFO%; Z=Z+1;
LAST_VAL = 0.12*(SQRT(Z)-SQRT(%N2O_PRE%)) - %FOFO%;
F=LAST_VAL-FIRST_VAL; LAST_VAL=(FIRST_VAL+LAST_VAL)/2;
CM_LINFOR(LL,'N2O-PPB','N') = F;
CM_LINFOR(LL,'N2O-PPB','FX') = LAST_VAL-F*(Z-0.5);
);
* carbon
CM_LINFOR(LL,'CO2-PPM',BDNEQ)$CM_LED(LL) = CM_RESULT('CO2-PPM',LL);
$ BATINCLUDE coef_ext.cli SLOPE