this quite sizable commit does several things, but is primarily focussed on building a toolkit that can run simultaneous simulations/analyses within a shared memory space. Versions <=2.1 use a long list of global variables that prevent multiple instantiations on linux systems without resorting to compilation tricks (like duplicate binaries or similar via static linkage). This version uses a single "Project" pointer to encapsulate the network and analysis data. There are no changes to existing algo implementations other than to accomodate dereferencing of the passed-in pointers. A more detailed list of major changes below: - mirrors all “ENxxxx” function calls with “EN_xxxx” versions (note the underscore) that take an extra first parameter: a pointer to an EN_Project struct, which contains all network, hydraulic, quality, and associated data. - tweaks some code formatting to make it more readable - removes some deprecated/commented code that was sufficiently old - fixes implicit type-cast warnings * Added ENaddnode and ENaddlink functions * More memory reallocations * Added ENInit, ENsetheadcurveindex * Added ENdeletelink and ENdeletenode * restored default behavior for float types * fixed type * Added docstrings for ENinit * cleanup change * moves global rule variables to vars.h * migrates rule structs to typedefs for better readability * char types to proper enums fixes #93 * Change some variable declarations for compatibility Changes to keep compatibility with C89 compilers: variables must be declared at the top of the functions. Remove the use of EN_LinkType in function call as it is not compatible with ENgetnodetype. * Moved declaration of idstodelete to top of function * Updated ENinit function and headers Updated header files with new functions Updated def file with new functions For ENinit changes names of parameters #98 Added enum for headloss formula * Missed these files in 1a033fc * migrates char types to enums fixes #93, supports unified link/node type enums, rather than public/private redefinitions * removing links in reverse-index order maintains proper indexing fixes #96 * style * clarifies curve getter units issue (dox) closes #95 * fixes link/node confusion in ENsetlinktype partially reverts a3bce95dc330a5a297634a303d438e2e1bc41cc9 * partial compilation fix * fixes dox issue * fixes allocation issues with enums - updates style in various places - introduces FlowDirection enum - use snprintf to prevent overflow * fixes enum type cast * updated mac project settings * Use of _snprintf on Windows and remove DLLEXPORT from mempool.h snprintf it not compatible on Windows so we use _snprintf mempool gave starnge compilation errors while removing DLLEXPORT worked. Not sure why these functions needed to be exposed in the DLL? * Revert "Use of _snprintf on Windows and remove DLLEXPORT from mempool.h" This reverts commit 6238f77d47fa0feaabe5836043c006937de433a2. * use of _snprintf instead of snprintf on Windows and removed DLLEXPORT from mempool.h Had compilation errors on mempool.h. Removed DLLEXPORT so solve it. Not sure why there was a need to expose these functions? * Shift indices for Links in ENaddnode Need to shift indices for Links not just Pipes since a pump could be connected directly to a reservoir. Also set the defult base demand to zero (was 5). * Set defualts for madatory link properties in ENaddlink and small fix for ENsetheadcurveindex Relates to #102 and closes #103 * wraps globals into structs, duplicates api functions with objective versions * parse and serialize Comment field for network elements related to #47 * adds getter for head/efficiency curve in EN_getlinkvalue * adds getter for event node index … to return the index of the junction (tank) that triggered the event. * fixes edge case in parsing … where inp files without demands in [JUNCTIONS] and without any [DEMAND] categories will fail. * adds freeing function for project pointer * removes redundant string literals, fixes overrun issue in error message getter function * check for hydraulics already closed * moving error definitions to data file * deprecates ENR err message getter (unused) * updates location of errors data file also begins to expose blind structs to curves and patterns, anticipating buildout of APIs for those. * updates CLI output to reflect executable name as invoked relates to #109 * Feature nrtest (#131) * Initial commit EPANET testing tools. * Initial commit for epanet-nrtestsuite * SWIG wrapper for EPANET outputapi (#118) * Removed pervious version of outputapi and wrapper * SWIG wrapper for EPANET outputapi * Patching cmake build script fixed target for outputapi * Build failing on deprecated test script * Minor changes. Responding to review comments. * Feature nrtest (#121) * Configured python setup to automatically build nrtest tools. * Working on build / testing automation * Adding EPANET 2.0.12 benchmark * Updated Travis yml to run nrtest * Fixing InsecurePlatformWarning * Fixing InsecurePlatformWarning again * Fixing InsecurePlatformWarning * Fixing InsecurePlatformWarning * Fixing InsecurePlatformWarning * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Working on configuring python environment and building test tools under Travis CI. * Making gen-config.sh and run-nrtest.sh executable * Debugging .travis.yml * Debugging .travis.yml * Debugging .travis.yml again * Debugging .travis.yml again * debugging travis setup * debugging Travis setup * debugging Travis setup * debugging Travis setup * debugging Travis setup * debugging Travis setup * debugging Travis setup * debugging Travis setup * debugging Travis setup * debugging Travis setup * debugging Travis setup * Fixing bug with __strncpy_chk destlen < len * nrtesting clean up * re-implements fixes from:5eead5ae403c788567a4* removes extraneous build files, moves cmake and updates travis * mirror of 9b37035560f9683f1514b439f7586a5c17bca5bf * Move some variable declarations * More variable declarations * Fix TmpDir * Allocate _defaultModel * Fix EN_addcurve funcrion * Fix for inpfile * Fix writeRuleinInp call * Set MAXMSG to 79 chars * Fix for flow direction * Refactoring testing related python packages and SWIG wrapper bug fix (#139) * Eliminated epanet-reader package. Removed numpy dependency from epanet-output. Fixed reference counting bug in SWIG wrapper. Added error checking to run_nrtest.sh. Added nrtest package to requirements file. * changing buildhome directory * Fixing bug related to preprocessor definition of PI
478 lines
16 KiB
C
Executable File
478 lines
16 KiB
C
Executable File
/*
|
|
****************************************************
|
|
|
|
String Constants for EPANET Program
|
|
|
|
VERSION: 2.00
|
|
DATE: 5/8/00
|
|
10/25/00
|
|
8/15/07 (2.00.11)
|
|
2/14/08 (2.00.12)
|
|
AUTHOR: L. Rossman
|
|
US EPA - NRMRL
|
|
|
|
****************************************************
|
|
*/
|
|
/* ------------ Keyword Dictionary ---------- */
|
|
#ifndef TEXT_H
|
|
#define TEXT_H
|
|
|
|
#define w_USE "USE"
|
|
#define w_SAVE "SAVE"
|
|
|
|
#define w_NONE "NONE"
|
|
#define w_ALL "ALL"
|
|
|
|
#define w_CHEM "CHEM"
|
|
#define w_AGE "AGE"
|
|
#define w_TRACE "TRACE"
|
|
|
|
#define w_SYSTEM "SYSTEM"
|
|
#define w_JUNC "Junc"
|
|
#define w_RESERV "Reser"
|
|
#define w_TANK "Tank"
|
|
#define w_CV "CV"
|
|
#define w_PIPE "Pipe"
|
|
#define w_PUMP "Pump"
|
|
#define w_VALVE "Valve"
|
|
#define w_PRV "PRV"
|
|
#define w_PSV "PSV"
|
|
#define w_PBV "PBV"
|
|
#define w_FCV "FCV"
|
|
#define w_TCV "TCV"
|
|
#define w_GPV "GPV"
|
|
|
|
#define w_OPEN "OPEN"
|
|
#define w_CLOSED "CLOSED"
|
|
#define w_ACTIVE "ACTIVE"
|
|
#define w_TIME "TIME"
|
|
#define w_ABOVE "ABOVE"
|
|
#define w_BELOW "BELOW"
|
|
#define w_PRECISION "PREC"
|
|
#define w_IS "IS"
|
|
#define w_NOT "NOT"
|
|
|
|
#define w_ADD "ADD"
|
|
#define w_MULTIPLY "MULT"
|
|
|
|
#define w_LIMITING "LIMIT"
|
|
#define w_ORDER "ORDER"
|
|
#define w_GLOBAL "GLOB"
|
|
#define w_BULK "BULK"
|
|
#define w_WALL "WALL"
|
|
|
|
#define w_PAGE "PAGE"
|
|
#define w_STATUS "STATUS"
|
|
#define w_SUMMARY "SUMM"
|
|
#define w_MESSAGES "MESS"
|
|
#define w_ENERGY "ENER"
|
|
#define w_NODE "NODE"
|
|
#define w_LINK "LINK"
|
|
#define w_FILE "FILE"
|
|
#define w_YES "YES"
|
|
#define w_NO "NO"
|
|
#define w_FULL "FULL"
|
|
|
|
#define w_HW "H-W"
|
|
#define w_DW "D-W"
|
|
#define w_CM "C-M"
|
|
|
|
#define w_CFS "CFS"
|
|
#define w_GPM "GPM"
|
|
#define w_MGD "MGD"
|
|
#define w_IMGD "IMGD"
|
|
#define w_AFD "AFD"
|
|
#define w_LPS "LPS"
|
|
#define w_LPM "LPM"
|
|
#define w_MLD "MLD"
|
|
#define w_CMH "CMH"
|
|
#define w_CMD "CMD"
|
|
#define w_SI "SI"
|
|
|
|
#define w_PSI "PSI"
|
|
#define w_KPA "KPA"
|
|
#define w_METERS "METERS"
|
|
|
|
#define w_ELEV "ELEV"
|
|
#define w_DEMAND "DEMAND"
|
|
#define w_HEAD "HEAD"
|
|
#define w_PRESSURE "PRESSURE"
|
|
#define w_QUALITY "QUAL"
|
|
|
|
#define w_DIAM "DIAM"
|
|
#define w_FLOW "FLOW"
|
|
#define w_ROUGHNESS "ROUG"
|
|
#define w_VELOCITY "VELO"
|
|
#define w_HEADLOSS "HEADL"
|
|
#define w_SETTING "SETTING"
|
|
#define w_POWER "POWER"
|
|
#define w_VOLUME "VOLU"
|
|
#define w_CLOCKTIME "CLOCKTIME"
|
|
#define w_FILLTIME "FILLTIME"
|
|
#define w_DRAINTIME "DRAINTIME"
|
|
#define w_GRADE "GRADE"
|
|
#define w_LEVEL "LEVEL"
|
|
|
|
#define w_DURATION "DURA"
|
|
#define w_HYDRAULIC "HYDR"
|
|
#define w_MINIMUM "MINI"
|
|
#define w_PATTERN "PATT"
|
|
#define w_REPORT "REPO"
|
|
#define w_START "STAR"
|
|
|
|
#define w_UNITS "UNIT"
|
|
#define w_MAP "MAP"
|
|
#define w_VERIFY "VERI"
|
|
#define w_VISCOSITY "VISC"
|
|
#define w_DIFFUSIVITY "DIFF"
|
|
#define w_SPECGRAV "SPEC"
|
|
#define w_TRIALS "TRIAL"
|
|
#define w_ACCURACY "ACCU"
|
|
#define w_SEGMENTS "SEGM"
|
|
#define w_TOLERANCE "TOLER"
|
|
#define w_EMITTER "EMIT"
|
|
|
|
#define w_PRICE "PRICE"
|
|
#define w_DMNDCHARGE "DEMAN"
|
|
|
|
#define w_HTOL "HTOL"
|
|
#define w_QTOL "QTOL"
|
|
#define w_RQTOL "RQTOL"
|
|
#define w_CHECKFREQ "CHECKFREQ"
|
|
#define w_MAXCHECK "MAXCHECK"
|
|
#define w_DAMPLIMIT "DAMPLIMIT"
|
|
|
|
#define w_SECONDS "SEC"
|
|
#define w_MINUTES "MIN"
|
|
#define w_HOURS "HOU"
|
|
#define w_DAYS "DAY"
|
|
#define w_AM "AM"
|
|
#define w_PM "PM"
|
|
|
|
#define w_CONCEN "CONCEN"
|
|
#define w_MASS "MASS"
|
|
#define w_SETPOINT "SETPOINT"
|
|
#define w_FLOWPACED "FLOWPACED"
|
|
|
|
#define w_PATTERN "PATT"
|
|
#define w_CURVE "CURV"
|
|
|
|
#define w_EFFIC "EFFI"
|
|
#define w_HEAD "HEAD"
|
|
#define w_POWER "POWER"
|
|
#define w_SPEED "SPEE"
|
|
|
|
#define w_MIXED "MIXED"
|
|
#define w_2COMP "2COMP"
|
|
#define w_FIFO "FIFO"
|
|
#define w_LIFO "LIFO"
|
|
|
|
#define w_STATISTIC "STAT"
|
|
#define w_AVG "AVERAGE"
|
|
#define w_MIN "MINIMUM"
|
|
#define w_MAX "MAXIMUM"
|
|
#define w_RANGE "RANGE"
|
|
|
|
#define w_UNBALANCED "UNBA"
|
|
#define w_STOP "STOP"
|
|
#define w_CONTINUE "CONT"
|
|
|
|
#define w_RULE "RULE"
|
|
#define w_IF "IF"
|
|
#define w_AND "AND"
|
|
#define w_OR "OR"
|
|
#define w_THEN "THEN"
|
|
#define w_ELSE "ELSE"
|
|
#define w_PRIORITY "PRIO"
|
|
|
|
/* ---------Input Section Names ---------- */
|
|
#define s_TITLE "[TITLE]"
|
|
#define s_JUNCTIONS "[JUNCTIONS]"
|
|
#define s_RESERVOIRS "[RESERVOIRS]"
|
|
#define s_TANKS "[TANKS]"
|
|
#define s_PIPES "[PIPES]"
|
|
#define s_PUMPS "[PUMPS]"
|
|
#define s_VALVES "[VALVES]"
|
|
#define s_CONTROLS "[CONTROLS]"
|
|
#define s_RULES "[RULES]"
|
|
#define s_DEMANDS "[DEMANDS]"
|
|
#define s_SOURCES "[SOURCES]"
|
|
#define s_EMITTERS "[EMITTERS]"
|
|
#define s_PATTERNS "[PATTERNS]"
|
|
#define s_CURVES "[CURVES]"
|
|
#define s_QUALITY "[QUALITY]"
|
|
#define s_STATUS "[STATUS]"
|
|
#define s_ROUGHNESS "[ROUGHNESS]"
|
|
#define s_ENERGY "[ENERGY]"
|
|
#define s_REACTIONS "[REACTIONS]"
|
|
#define s_MIXING "[MIXING]"
|
|
#define s_REPORT "[REPORT]"
|
|
#define s_TIMES "[TIMES]"
|
|
#define s_OPTIONS "[OPTIONS]"
|
|
#define s_COORDS "[COORDINATES]"
|
|
#define s_VERTICES "[VERTICES]"
|
|
#define s_LABELS "[LABELS]"
|
|
#define s_BACKDROP "[BACKDROP]"
|
|
#define s_TAGS "[TAGS]"
|
|
#define s_END "[END]"
|
|
|
|
/* ---------------- Units ---------------- */
|
|
/*** Limit units to MAXID or less characters ***/
|
|
#define u_CFS "cfs"
|
|
#define u_GPM "gpm"
|
|
#define u_AFD "a-f/d"
|
|
#define u_MGD "mgd"
|
|
#define u_IMGD "Imgd"
|
|
#define u_LPS "L/s"
|
|
#define u_LPM "Lpm"
|
|
#define u_CMH "m3/h"
|
|
#define u_CMD "m3/d"
|
|
#define u_MLD "ML/d"
|
|
#define u_MGperL "mg/L"
|
|
#define u_UGperL "ug/L"
|
|
#define u_HOURS "hrs"
|
|
#define u_MINUTES "min"
|
|
#define u_PERCENT "% from"
|
|
#define u_METERS "m"
|
|
#define u_MMETERS "mm"
|
|
#define u_MperSEC "m/s"
|
|
#define u_SQMperSEC "sq m/sec"
|
|
#define u_per1000M "/1000m"
|
|
#define u_KW "kw"
|
|
#define u_FEET "ft"
|
|
#define u_INCHES "in"
|
|
#define u_PSI "psi"
|
|
#define u_KPA "kPa"
|
|
#define u_FTperSEC "fps"
|
|
#define u_SQFTperSEC "sq ft/sec"
|
|
#define u_per1000FT "/1000ft"
|
|
#define u_HP "hp"
|
|
|
|
/* -------------- Curve Types ----------------- */
|
|
#define c_HEADLOSS "HEADLOSS"
|
|
#define c_PUMP "PUMP"
|
|
#define c_EFFIC "EFFIC"
|
|
#define c_VOLUME "VOLUME"
|
|
|
|
/* ------------------ Text Phrases ------------------- */
|
|
#define t_ABOVE "above"
|
|
#define t_BELOW "below"
|
|
#define t_HW "Hazen-Williams"
|
|
#define t_DW "Darcy-Weisbach"
|
|
#define t_CM "Chezy-Manning"
|
|
#define t_CHEMICAL "Chemical"
|
|
#define t_XHEAD "closed because cannot deliver head"
|
|
#define t_TEMPCLOSED "temporarily closed"
|
|
#define t_CLOSED "closed"
|
|
#define t_OPEN "open"
|
|
#define t_ACTIVE "active"
|
|
#define t_XFLOW "open but exceeds maximum flow"
|
|
#define t_XFCV "open but cannot deliver flow"
|
|
#define t_XPRESSURE "open but cannot deliver pressure"
|
|
#define t_FILLING "filling"
|
|
#define t_EMPTYING "emptying"
|
|
|
|
#define t_ELEV "Elevation"
|
|
#define t_DEMAND "Demand"
|
|
#define t_HEAD "Head"
|
|
#define t_PRESSURE "Pressure"
|
|
#define t_QUALITY "Quality"
|
|
#define t_LENGTH "Length"
|
|
#define t_DIAM "Diameter"
|
|
#define t_FLOW "Flow"
|
|
#define t_VELOCITY "Velocity"
|
|
#define t_HEADLOSS "Headloss"
|
|
#define t_LINKQUAL "Quality"
|
|
#define t_LINKSTATUS "State"
|
|
#define t_SETTING "Setting"
|
|
#define t_REACTRATE "Reaction"
|
|
#define t_FRICTION "F-Factor"
|
|
|
|
#define t_NODEID "Node"
|
|
#define t_LINKID "Link"
|
|
#define t_PERDAY "/day"
|
|
|
|
#define t_JUNCTION "Junction"
|
|
#define t_RESERVOIR "Reservoir"
|
|
#define t_TANK "Tank"
|
|
#define t_PIPE "Pipe"
|
|
#define t_PUMP "Pump"
|
|
#define t_VALVE "Valve"
|
|
#define t_CONTROL "Control"
|
|
#define t_RULE "Rule"
|
|
#define t_DEMANDFOR "Demand for Node"
|
|
#define t_SOURCE "Source"
|
|
#define t_EMITTER "Emitter"
|
|
#define t_PATTERN "Pattern"
|
|
#define t_CURVE "Curve"
|
|
#define t_STATUS "Status"
|
|
#define t_ROUGHNESS "Roughness"
|
|
#define t_ENERGY "Energy"
|
|
#define t_REACTION "Reaction"
|
|
#define t_MIXING "Mixing"
|
|
#define t_REPORT "Report"
|
|
#define t_TIME "Times"
|
|
#define t_OPTION "Options"
|
|
#define t_RULES_SECT "[RULES] section"
|
|
#define t_HALTED " EXECUTION HALTED."
|
|
#define t_FUNCCALL "function call"
|
|
#define t_CONTINUED " (continued)"
|
|
#define t_perM3 " /m3"
|
|
#define t_perMGAL "/Mgal"
|
|
#define t_DIFFER "DIFFERENTIAL"
|
|
|
|
|
|
/* ------------------ Format Messages ------------------*/
|
|
#define LOGO1 \
|
|
"******************************************************************"
|
|
#define LOGO2 \
|
|
"* E P A N E T *"
|
|
#define LOGO3 \
|
|
"* Hydraulic and Water Quality *"
|
|
#define LOGO4 \
|
|
"* Analysis for Pipe Networks *"
|
|
#define LOGO5 \
|
|
"* Version %d.%d *"
|
|
#define LOGO6 \
|
|
"******************************************************************"
|
|
#define FMT01 "\n... EPANET Version %d.%d\n"
|
|
#define FMT02 "\n o Retrieving network data"
|
|
#define FMT03 "\n Correct syntax is:\n %s <input file> <output file>\n"
|
|
#define FMT04 "\n Cannot use duplicate file names."
|
|
#define FMT05 "\n Cannot open input file "
|
|
#define FMT06 "\n Cannot open report file "
|
|
#define FMT07 "\n Cannot open output file "
|
|
#define FMT08 "\n Cannot open temporary output file"
|
|
#define FMT09 "\n\n... EPANET completed.\n"
|
|
#define FMT10 "\n\n... EPANET completed. There are warnings.\n"
|
|
#define FMT11 "\n\n... EPANET completed. There are errors.\n"
|
|
#define FMT14 "\n o Computing hydraulics at hour "
|
|
#define FMT15 "\n o Computing water quality at hour "
|
|
#define FMT16 "\n o Transferring results to file"
|
|
#define FMT17 "\n o Writing output report to "
|
|
#define FMT18 " Page 1 "
|
|
#define FMT19 " Input Data File ................... %s"
|
|
#define FMT20 " Number of Junctions................ %-d"
|
|
#define FMT21a " Number of Reservoirs............... %-d"
|
|
#define FMT21b " Number of Tanks ................... %-d"
|
|
#define FMT22 " Number of Pipes ................... %-d"
|
|
#define FMT23 " Number of Pumps ................... %-d"
|
|
#define FMT24 " Number of Valves .................. %-d"
|
|
#define FMT25 " Headloss Formula .................. %s"
|
|
#define FMT26 " Hydraulic Timestep ................ %-.2f %s"
|
|
#define FMT27 " Hydraulic Accuracy ................ %-.6f"
|
|
|
|
#define FMT27a " Status Check Frequency ............ %-d"
|
|
#define FMT27b " Maximum Trials Checked ............ %-d"
|
|
#define FMT27c " Damping Limit Threshold ........... %-.6f"
|
|
|
|
#define FMT28 " Maximum Trials .................... %-d"
|
|
#define FMT29 " Quality Analysis .................. None"
|
|
#define FMT30 " Quality Analysis .................. %s"
|
|
#define FMT31 " Quality Analysis .................. Trace From Node %s"
|
|
#define FMT32 " Quality Analysis .................. Age"
|
|
#define FMT33 " Water Quality Time Step ........... %-.2f min"
|
|
#define FMT34 " Water Quality Tolerance ........... %-.2f %s"
|
|
#define FMT36 " Specific Gravity .................. %-.2f"
|
|
#define FMT37a " Relative Kinematic Viscosity ...... %-.2f"
|
|
#define FMT37b " Relative Chemical Diffusivity ..... %-.2f"
|
|
#define FMT38 " Demand Multiplier ................. %-.2f"
|
|
#define FMT39 " Total Duration .................... %-.2f %s"
|
|
#define FMT40 " Reporting Criteria:"
|
|
#define FMT41 " No Nodes"
|
|
#define FMT42 " All Nodes"
|
|
#define FMT43 " Selected Nodes"
|
|
#define FMT44 " No Links"
|
|
#define FMT45 " All Links"
|
|
#define FMT46 " Selected Links"
|
|
#define FMT47 " with %s below %-.2f %s"
|
|
#define FMT48 " with %s above %-.2f %s"
|
|
|
|
/* ---------- Status Report Format Strings ------------ */
|
|
#define FMT49 "Hydraulic Status:"
|
|
|
|
/*** Updated 6/24/02 ***/
|
|
#define FMT50 "%10s: Tank %s is %s at %-.2f %s"
|
|
#define FMT51 "%10s: Reservoir %s is %s"
|
|
#define FMT52 "%10s: %s %s %s"
|
|
#define FMT53 "%10s: %s %s changed from %s to %s"
|
|
#define FMT54 "%10s: %s %s changed by %s %s control"
|
|
#define FMT55 "%10s: %s %s changed by timer control"
|
|
#define FMT56 " %s %s setting changed to %-.2f"
|
|
#define FMT57 " %s %s switched from %s to %s"
|
|
#define FMT58 "%10s: Balanced after %-d trials"
|
|
#define FMT59 "%10s: Unbalanced after %-d trials (flow change = %-.6f)"
|
|
|
|
#define FMT60a " Max. flow imbalance is %.4f %s at Node %s"
|
|
#define FMT60b " Max. head imbalance is %.4f %s at Link %s"
|
|
|
|
#define FMT61 "%10s: Valve %s caused ill-conditioning"
|
|
#define FMT62 "%10s: System ill-conditioned at node %s"
|
|
#define FMT63 "%10s: %s %s changed by rule %s"
|
|
#define FMT64 "%10s: Balancing the network:"
|
|
#define FMT65 " Trial %2d: relative flow change = %-.6f"
|
|
/*** End of update ***/
|
|
|
|
/* -------------------- Energy Report Table ------------------- */
|
|
#define FMT71 "Energy Usage:"
|
|
#define FMT72 \
|
|
" Usage Avg. Kw-hr Avg. Peak Cost"
|
|
#define FMT73 \
|
|
"Pump Factor Effic. %s Kw Kw /day"
|
|
#define FMT74 "%38s Demand Charge: %9.2f"
|
|
#define FMT75 "%38s Total Cost: %9.2f"
|
|
|
|
/* -------------------- Node Report Table --------------------- */
|
|
#define FMT76 "%s Node Results:"
|
|
#define FMT77 "Node Results:"
|
|
#define FMT78 "Node Results at %s hrs:"
|
|
|
|
/* -------------------- Link Report Table --------------------- */
|
|
#define FMT79 "%s Link Results:"
|
|
#define FMT80 "Link Results:"
|
|
#define FMT81 "Link Results at %s hrs:"
|
|
#define FMT82 "\n\f\n Page %-d %60.60s\n"
|
|
|
|
/* ------------------- Progress Messages ---------------------- */
|
|
#define FMT100 "Retrieving network data..."
|
|
#define FMT101 "Computing hydraulics at hour %s"
|
|
#define FMT102 "Computing water quality at hour %s"
|
|
#define FMT103 "Saving results to file..."
|
|
#define FMT104 "Analysis begun %s"
|
|
#define FMT105 "Analysis ended %s"
|
|
|
|
/*------------------- Error Messages --------------------*/
|
|
|
|
|
|
|
|
|
|
|
|
#define R_ERR201 "Input Error 201: syntax error in following line of "
|
|
#define R_ERR202 "Input Error 202: illegal numeric value in following line of "
|
|
#define R_ERR203 "Input Error 203: undefined node in following line of "
|
|
#define R_ERR204 "Input Error 204: undefined link in following line of "
|
|
#define R_ERR207 "Input Error 207: attempt to control a CV in following line of "
|
|
|
|
#define R_ERR221 "Input Error 221: mis-placed clause in following line of "
|
|
|
|
/*-------------------- Specific Warning Messages -------------------------*/
|
|
#define WARN01 "WARNING: System unbalanced at %s hrs."
|
|
#define WARN02 \
|
|
"WARNING: Maximum trials exceeded at %s hrs. System may be unstable."
|
|
#define WARN03a "WARNING: Node %s disconnected at %s hrs"
|
|
#define WARN03b "WARNING: %d additional nodes disconnected at %s hrs"
|
|
#define WARN03c "WARNING: System disconnected because of Link %s"
|
|
#define WARN04 "WARNING: Pump %s %s at %s hrs."
|
|
#define WARN05 "WARNING: %s %s %s at %s hrs."
|
|
#define WARN06 "WARNING: Negative pressures at %s hrs."
|
|
|
|
/*-------------------- General Warning Messages -------------------------*/
|
|
#define WARN1 "WARNING: System hydraulically unbalanced."
|
|
#define WARN2 "WARNING: System may be hydraulically unstable."
|
|
#define WARN3 "WARNING: System disconnected."
|
|
#define WARN4 "WARNING: Pumps cannot deliver enough flow or head."
|
|
#define WARN5 "WARNING: Valves cannot deliver enough flow."
|
|
#define WARN6 "WARNING: System has negative pressures."
|
|
|
|
#endif
|