ningshuxia
6 天以前 e372b432b52bedf58b7d3bd80bd679ae9c3cecb3
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
/*
 ******************************************************************************
 Project:      OWA EPANET
 Version:      2.2
 Module:       funcs.h
 Description:  prototypes of external functions called by various modules
 Authors:      see AUTHORS
 Copyright:    see AUTHORS
 License:      see LICENSE
 Last Updated: 11/15/2019
 ******************************************************************************
*/
#ifndef FUNCS_H
#define FUNCS_H
 
// ------- PROJECT.C ------------
 
void    initpointers(Project *);
int     allocdata(Project *);
void    freedata(Project *);
 
int     openfiles(Project *, const char *, const char *,const char *);
int     openhydfile(Project *);
int     openoutfile(Project *);
void    closeoutfile(Project *);
 
int     buildadjlists(Network *);
void    freeadjlists(Network *);
 
int     incontrols(Project *, int, int);
int     valvecheck(Project *, int, int, int, int);
int     findnode(Network *, char *);
int     findlink(Network *, char *);
int     findtank(Network *, int);
int     findvalve(Network *, int);
int     findpump(Network *, int);
int     findpattern(Network *, char *);
int     findcurve(Network *, char *);
 
Pdemand finddemand(Pdemand, int);
int     adddemand(Snode *, double, int, char *);
void    freedemands(Snode *);
 
int     addlinkvertex(Slink *, double, double);
void    freelinkvertices(Slink *);
 
void    adjustpatterns(Network *, int);
void    adjustcurves(Network *, int);
int     adjustpumpparams(Project *, int);
int     resizecurve(Scurve *, int);
 
int     getcomment(Network *, int, int, char *);
int     setcomment(Network *, int, int, const char *);
 
int     namevalid(const char *);
void    getTmpName(char *);
char    *xstrcpy(char **, const char *, const size_t n);
int     strcomp(const char *, const char *);
double  interp(int, double [], double [], double);
char    *geterrmsg(int, char *);
void    errmsg(Project *, int);
void    writewin(void (*vp)(char *), char *);
 
// ------- INPUT1.C ----------------
 
int     getdata(Project *);
void    setdefaults(Project *);
void    initreport(Report *);
void    adjustdata(Project *);
int     inittanks(Project *);
void    initunits(Project *);
void    convertunits(Project *);
 
//-------- INPUT2.C -----------------
 
int     netsize(Project *);
int     readdata(Project *);
int     updatepumpparams(Project *, int);
int     findmatch(char *, char *[]);
int     match(const char *, const char *);
int     gettokens(char *, char **, int, char *);
int     getfloat(char *, double *);
double  hour(char *, char *);
int     setreport(Project *, char *);
 
// ------- INPUT3.C -----------------
 
int     juncdata(Project *);
int     tankdata(Project *);
int     pipedata(Project *);
int     pumpdata(Project *);
int     valvedata(Project *);
int     patterndata(Project *);
int     curvedata(Project *);
int     coordata(Project *);
int     demanddata(Project *);
int     controldata(Project *);
int     energydata(Project *);
int     sourcedata(Project *);
int     emitterdata(Project *);
int     qualdata(Project *);
int     reactdata(Project *);
int     mixingdata(Project *);
int     statusdata(Project *);
int     reportdata(Project *);
int     timedata(Project *);
int     optiondata(Project *);
int     vertexdata(Project *);
 
// ------- RULES.C ------------------
 
void    initrules(Project *);
void    addrule(Parser *, char *);
void    deleterule(Project *, int);
int     allocrules(Project *);
void    freerules(Project *);
int     ruledata(Project *);
void    ruleerrmsg(Project *);
void    adjustrules(Project *, int, int);
void    adjusttankrules(Project *);
Spremise *getpremise(Spremise *, int);
Saction  *getaction(Saction *, int);
int     writerule(Project *, FILE *, int);
int     checkrules(Project *, long);
 
// ------- REPORT.C -----------------
 
int     clearreport(Project *);
int     copyreport(Project *, char *);
int     writereport(Project *);
void    writelogo(Project *);
void    writesummary(Project *);
void    writehydstat(Project *, int, double);
void    writeheader(Project *, int,int);
void    writeline(Project *, char *);
void    writerelerr(Project *, int, double);
void    writestatchange(Project *, int,char,char);
void    writecontrolaction(Project *, int, int);
void    writeruleaction(Project *, int, char *);
int     writehydwarn(Project *, int,double);
void    writehyderr(Project *, int);
void    writemassbalance(Project *);
void    writetime(Project *, char *);
char    *clocktime(char *, long);
 
// ------- HYDRAUL.C -----------------
 
int     openhyd(Project *);
void    inithyd(Project *, int initFlags);
int     runhyd(Project *, long *);
int     nexthyd(Project *, long *);
void    closehyd(Project *);
void    setlinkstatus(Project *, int, char, StatusType *, double *);
void    setlinksetting(Project *, int, double, StatusType *, double *);
int     tanktimestep(Project *, long *);
void    getenergy(Project *, int, double *, double *);
double  tankvolume(Project *, int, double);
double  tankgrade(Project *, int, double);
 
// ------- HYDCOEFFS.C -----------------
 
void    resistcoeff(Project *, int);
void    headlosscoeffs(Project *);
void    matrixcoeffs(Project *);
void    emitterheadloss(Project *, int, double *, double *);           
void    demandheadloss(Project *, int, double, double, double *, double *);
 
// ------- QUALITY.C --------------------
 
int     openqual(Project *);
int     initqual(Project *);
int     runqual(Project *, long *);
int     nextqual(Project *, long *);
int     stepqual(Project *, long *);
int     closequal(Project *);
double  avgqual(Project *, int);
 
// ------- OUTPUT.C ---------------------
 
int     savenetdata(Project *);
int     savehyd(Project *, long *);
int     savehydstep(Project *, long *);
int     saveenergy(Project *);
int     readhyd(Project *, long *);
int     readhydstep(Project *, long *);
int     saveoutput(Project *);
int     savefinaloutput(Project *);
 
// ------- INPFILE.C --------------------
 
int     saveinpfile(Project *, const char *);
 
#endif