OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
funcs.h File Reference

Header file for global interfacing functions. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void project_open (const char *inp_file, const char *rpt_file, const char *out_file)
 Opens a new SWMM project.
 
void project_close (void)
 Close project.
 
void project_readInput (void)
 Read project inputs.
 
int project_readOption (char *s1, char *s2)
 Reads a project option from a pair of string tokens.
 
void project_validate (void)
 Checks validity of project data.
 
int project_init (void)
 Initializes the internal state of the project.
 
int project_addObject (int type, char *id, int n)
 Adds an object Id to a hash table.
 
int project_findObject (int type, const char *id)
 Uses hash table to find index of an object with a given ID.
 
char * project_findID (int type, char *id)
 Uses hash table to find address of a given string entry.
 
double ** project_createMatrix (int nrows, int ncols)
 Allocates memory for a matrix of doubles.
 
void project_freeMatrix (double **m)
 Frees memory allocated for a matrix of doubles.
 
int input_countObjects (void)
 Reads input file to determine number of system objects.
 
int input_readData (void)
 Reads input file to determine number of system objects.
 
int report_readOptions (char *tok[], int ntoks)
 Reads reporting options from a line of input data.
 
void report_writeLine (const char *line)
 Writes a line of text to the report file.
 
void report_writeSysTime (void)
 Writes starting/ending processing times to the report file.
 
void report_writeLogo (void)
 Writes report header lines to report file.
 
void report_writeTitle (void)
 Writes project title to report file.
 
void report_writeOptions (void)
 Writes analysis options in use to report file.
 
void report_writeReport (void)
 Writes project title to report file.
 
void report_writeRainStats (int gage, TRainStats *rainStats)
 Writes summary of rain data read from input file to report file.
 
void report_writeRdiiStats (double totalRain, double totalRdii)
 Writes summary of RDII inflow to report file.
 
void report_writeControlActionsHeading (void)
 Writes summary control actions heading to report file.
 
void report_writeControlAction (DateTime aDate, char *linkID, double value, char *ruleID)
 Writes control action to report file.
 
void report_writeRunoffError (TRunoffTotals *totals, double area)
 Writes runoff continuity error to report file.
 
void report_writeLoadingError (TLoadingTotals *totals)
 Writes runoff loading continuity error to report file.
 
void report_writeGwaterError (TGwaterTotals *totals, double area)
 Writes groundwater continuity error to report file.
 
void report_writeFlowError (TRoutingTotals *totals)
 Writes flow routing continuity error to report file.
 
void report_writeQualError (TRoutingTotals *totals)
 Writes quality routing continuity error to report file.
 
void report_writeMaxStats (TMaxStats massBalErrs[], TMaxStats CourantCrit[], int nMaxStats)
 Lists nodes and links with highest mass balance errors and courant time step violations to report file.
 
void report_writeMaxFlowTurns (TMaxStats flowTurns[], int nMaxStats)
 Lists links with highest number of flow turns to report (i.e., fraction of time periods where the flow is higher (or lower) than the flows in the previous and following periods)
 
void report_writeNonconvergedStats (TMaxStats maxNonconverged[], int nMaxStats)
 Writes non-converging nodes to report file.
 
void report_writeTimeStepStats (TTimeStepStats *timeStepStats)
 Writes routing time step statistics to report file.
 
void report_writeErrorMsg (int code, char *msg)
 Writes error message to report file.
 
void report_writeErrorCode (void)
 Writes error message to report file.
 
void report_writeInputErrorMsg (int k, int sect, char *line, long lineCount)
 Writes input error message to report file.
 
void report_writeWarningMsg (char *msg, char *id)
 Writes a warning message to report file.
 
void report_writeTseriesErrorMsg (int code, TTable *tseries)
 Writes the date where a time series' data is out of order.
 
void inputrpt_writeInput (void)
 Writes summary of input data to report file.
 
void statsrpt_writeReport (void)
 Reports simulation summary statistics.
 
int climate_readParams (char *tok[], int ntoks)
 Reads climate/temperature parameters from input line of data.
 
int climate_readEvapParams (char *tok[], int ntoks)
 Reads evaporation parameters from input line of data.
 
int climate_readAdjustments (char *tok[], int ntoks)
 Reads adjustments to monthly evaporation or rainfall from input line of data.
 
void climate_validate (void)
 Validates climatological variables.
 
void climate_openFile (void)
 Opens a climate file and reads in first set of values.
 
void climate_initState (void)
 Initializes climate state variables.
 
void climate_setState (DateTime theDate)
 Sets climate variables for current date.
 
DateTime climate_getNextEvapDate (void)
 Gets the next date when evaporation rate changes.
 
void rain_open (void)
 Opens binary rainfall interface file and RDII processor.
 
void rain_close (void)
 Closes rain interface file and RDII processor.
 
int snow_readMeltParams (char *tok[], int ntoks)
 Reads snowmelt parameters from a tokenized line of input data.
 
int snow_createSnowpack (int subcatchIndex, int snowIndex)
 Creates a snowpack object for a subcatchment.
 
void snow_validateSnowmelt (int snowIndex)
 Checks for valid values in a snowmelt parameter set.
 
void snow_initSnowpack (int subcatchIndex)
 Initializes state of a subcatchment's snowpack.
 
void snow_initSnowmelt (int snowIndex)
 Initializes values in a snowmelt parameter set.
 
void snow_getState (int subcatchIndex, int subAreaIndex, double x[])
 Retrieves the current state of a snowpack object.
 
void snow_setState (int subcatchIndex, int subAreaIndex, double x[])
 Sets the current state of a snowpack object.
 
void snow_setMeltCoeffs (int snowIndex, double season)
 Sets values of snowmelt coefficients for a particular time of year.
 
void snow_plowSnow (int subcatchIndex, double tStep)
 Adds new snow to subcatchment and plows it between sub-areas.
 
double snow_getSnowMelt (int subcatchIndex, double rainfall, double snowfall, double tStep, double netPrecip[])
 Modifies rainfall input to subcatchment's subareas based on possible snow melt and updates snow depth over entire subcatchment.
 
double snow_getSnowCover (int subcatchIndex)
 Computes volume of snow on a subcatchment.
 
int runoff_open (void)
 Opens the runoff analyzer.
 
void runoff_execute (void)
 Computes runoff for each subcatchment at the current runoff time.
 
void runoff_close (void)
 Closes the runoff analyzer.
 
int routing_open (void)
 Initializes the routing analyzer.
 
double routing_getRoutingStep (int routingModel, double fixedStep)
 Determines time step used for flow routing at current time period.
 
void routing_execute (int routingModel, double routingStep)
 Executes the routing process at the current time period.
 
void routing_close (int routingModel)
 Closes down the routing analyzer.
 
int output_open (void)
 Writes basic project data to binary output file.
 
void output_end (void)
 Writes closing records to binary file.
 
void output_close (void)
 Frees memory used for accessing the binary file.
 
void output_saveResults (double reportTime)
 Writes computed results for current report time to binary file.
 
void output_updateAvgResults (void)
 Updates average results for current time period.
 
void output_readDateTime (long period, DateTime *days)
 Retrieves the date/time for a specific reporting period from the binary output file.
 
void output_readSubcatchResults (long period, int index)
 Reads computed results for a subcatchment at a specific time period.
 
void output_readNodeResults (long period, int index)
 Reads computed results for a node at a specific time period.
 
void output_readLinkResults (long period, int index)
 Reads computed results for a link at a specific time period.
 
int gwater_readAquiferParams (int aquiferIndex, char *tok[], int ntoks)
 Reads aquifer parameter values from line of input data.
 
int gwater_readGroundwaterParams (char *tok[], int ntoks)
 Reads groundwater inflow parameters for a subcatchment from a line of input data.
 
int gwater_readFlowExpression (char *tok[], int ntoks)
 Reads mathematical expression for lateral or deep groundwater flow for a subcatchment from a line of input data.
 
void gwater_deleteFlowExpression (int subcatchIndex)
 Veletes a subcatchment's custom groundwater flow expressions.
 
void gwater_validateAquifer (int aquiferIndex)
 Validates groundwater aquifer properties.
 
void gwater_validate (int subcatchIndex)
 Validates groundwater parameters for a subcatchment.
 
void gwater_initState (int subcatchIndex)
 Initializes state of subcatchment's groundwater.
 
void gwater_getState (int subcatchIndex, double x[])
 Retrieves state of subcatchment's groundwater.
 
void gwater_setState (int subcatchIndex, double x[])
 Assigns values to a subcatchment's groundwater state.
 
void gwater_getGroundwater (int subcatchIndex, double evap, double infil, double tStep)
 Computes groundwater flow for a subcatchment.
 
double gwater_getVolume (int subcatchIndex)
 Finds volume of groundwater stored in upper & lower zones.
 
int rdii_readRdiiInflow (char *tok[], int ntoks)
 Reads properties of an RDII inflow from a line of input.
 
void rdii_deleteRdiiInflow (int nodeIndex)
 Deletes RDII inflow data for a node.
 
void rdii_initUnitHyd (int unitHydIndex)
 Initializes properties of a unit hydrograph group.
 
int rdii_readUnitHydParams (char *tok[], int ntoks)
 Reads parameters of an RDII unit hydrograph from a line of input.
 
void rdii_openRdii (void)
 Opens an exisiting RDII interface file or creates a new one.
 
void rdii_closeRdii (void)
 Closes the RDII interface file.
 
int rdii_getNumRdiiFlows (DateTime aDate)
 Finds number of RDII inflows at a specified date.
 
void rdii_getRdiiFlow (int index, int *nodeIndex, double *q)
 Finds index and current RDII inflow for an RDII node.
 
int landuse_readParams (int landuseIndex, char *tok[], int ntoks)
 Reads landuse parameters from a tokenized line of input.
 
int landuse_readPollutParams (int pollutIndex, char *tok[], int ntoks)
 Reads pollutant parameters from a tokenized line of input.
 
int landuse_readBuildupParams (char *tok[], int ntoks)
 Reads pollutant buildup parameters from a tokenized line of input.
 
int landuse_readWashoffParams (char *tok[], int ntoks)
 Reads pollutant washoff parameters from a tokenized line of input.
 
void landuse_getInitBuildup (TLandFactor *landFactor, double *initBuildup, double area, double curb)
 Determines the initial buildup of each pollutant on each land use for a given subcatchment.
 
double landuse_getBuildup (int landuseIndex, int pollutIndex, double area, double curb, double buildup, double tStep)
 Computes new pollutant buildup on a landuse after a time increment.
 
double landuse_getWashoffLoad (int landuse, int p, double area, TLandFactor landFactor[], double runoff, double vOutflow)
 Computes pollutant load generated by a land use over a time step.
 
double landuse_getAvgBmpEffic (int subcatchIndex, int pollutIndex)
 Finds the overall average BMP removal achieved for pollutant pollutIndex treated in subcatchment j.
 
double landuse_getCoPollutLoad (int p, double washoff[])
 Finds washoff mass added by a co-pollutant of a given pollutant.
 
void flowrout_init (int routingModel)
 Initializes flow routing system.
 
void flowrout_close (int routingModel)
 Closes down flow routing system.
 
double flowrout_getRoutingStep (int routingModel, double fixedStep)
 Finds variable time step for dynamic wave routing.
 
int flowrout_execute (int links[], int routingModel, double tStep)
 Routes flow through conveyance network over current time step.
 
void toposort_sortLinks (int sortedLinks[])
 Sorts links from upstream to downstream.
 
int kinwave_execute (int linkIndex, double *qin, double *qout, double tStep)
 Finds outflow over time step tStep given flow entering a conduit using Kinematic Wave flow routing.
 
void dynwave_validate (void)
 Adjusts dynamic wave routing options.
 
void dynwave_init (void)
 Initializes dynamic wave routing method.
 
void dynwave_close (void)
 Frees memory allocated for dynamic wave routing method.
 
double dynwave_getRoutingStep (double fixedStep)
 Computes variable routing time step if applicable.
 
int dynwave_execute (double tStep)
 Routes flows through drainage network over current time step.
 
void dwflow_findConduitFlow (int linkIndex, int steps, double omega, double dt)
 Updates flow in conduit link by solving finite difference form of continuity and momentum equations.
 
void qualrout_init (void)
 Initializes water quality concentrations in all nodes and links.
 
void qualrout_execute (double tStep)
 Routes water quality constituents through the drainage network over the current time step.
 
int treatmnt_open (void)
 Allocates memory for computing pollutant removals by treatment.
 
void treatmnt_close (void)
 Frees memory used for computing pollutant removals by treatment.
 
int treatmnt_readExpression (char *tok[], int ntoks)
 Reads a treatment expression from a tokenized line of input.
 
void treatmnt_delete (int nodeIndex)
 Deletes the treatment objects for each pollutant at a node.
 
void treatmnt_treat (int nodeIndex, double q, double v, double tStep)
 Updates pollutant concentrations at a node after treatment.
 
void treatmnt_setInflow (double qIn, double wIn[])
 Computes and saves array of inflow concentrations to a node.
 
int massbal_open (void)
 Opens and initializes mass balance continuity checking.
 
void massbal_close (void)
 Frees memory used by mass balance system.
 
void massbal_report (void)
 Reports mass balance results.
 
void massbal_updateRunoffTotals (int flowType, double v)
 Updates runoff totals after current time step.
 
void massbal_updateLoadingTotals (int type, int pollutIndex, double w)
 Adds inflow mass loading to loading totals for current time step.
 
void massbal_updateGwaterTotals (double vInfil, double vUpperEvap, double vLowerEvap, double vLowerPerc, double vGwater)
 Updates groundwater totals after current time step.
 
void massbal_updateRoutingTotals (double tStep)
 Updates overall routing totals with totals from current time step.
 
void massbal_initTimeStepTotals (void)
 Initializes routing totals for current time step.
 
void massbal_addInflowFlow (int type, double q)
 Adds flow inflow to routing totals for current time step.
 
void massbal_addInflowQual (int type, int pollutIndex, double w)
 Adds quality inflow to routing totals for current time step.
 
void massbal_addOutflowFlow (double q, int isFlooded)
 Adds flow outflow over current time step to routing totals.
 
void massbal_addOutflowQual (int pollutIndex, double mass, int isFlooded)
 Adds pollutant outflow over current time step to routing totals.
 
void massbal_addNodeLosses (double evapLoss, double infilLoss)
 Adds node losses over current time step to routing totals.
 
void massbal_addLinkLosses (double evapLoss, double infilLoss)
 Adds link losses over current time step to routing totals.
 
void massbal_addReactedMass (int pollutIndex, double mass)
 Adds mass reacted during current time step to routing totals.
 
void massbal_addSeepageLoss (int pollutIndex, double seepLoss)
 Adds mass lost to seepage during current time step to routing totals.
 
void massbal_addToFinalStorage (int pollutIndex, double mass)
 Adds mass remaining on dry surface to routing totals.
 
double massbal_getStepFlowError (void)
 Computes flow routing mass balance error at current time step.
 
double massbal_getRunoffError (void)
 Computes runoff mass balance error.
 
double massbal_getFlowError (void)
 Computes flow routing mass balance error.
 
int stats_open (void)
 Opens the simulation statistics system.
 
void stats_close (void)
 Closes the simulation statistics system.
 
void stats_report (void)
 Reports simulation statistics.
 
void stats_updateCriticalTimeCount (int nodeIndex, int linkIndex)
 Updates count of times a node or link was time step-critical.
 
void stats_updateFlowStats (double tStep, DateTime aDate)
 Updates various flow routing statistics at current time period.
 
void stats_updateTimeStepStats (double tStep, int trialsCount, int steadyState)
 Updates flow routing time step statistics.
 
void stats_updateSubcatchStats (int subcatchIndex, double rainVol, double runonVol, double evapVol, double infilVol, double impervVol, double pervVol, double runoffVol, double runoff)
 Updates totals of runoff components for a specific subcatchment.
 
void stats_updateGwaterStats (int subcatchIndex, double infil, double evap, double latFlow, double deepFlow, double theta, double waterTable, double tStep)
 Updates groundwater statistics for a specific subcatchment.
 
void stats_updateMaxRunoff (void)
 Updates value of maximum system runoff rate.
 
void stats_updateMaxNodeDepth (int nodeIndex, double depth)
 Updates a node's maximum depth recorded at reporting times.
 
void stats_updateConvergenceStats (int nodeIndex, int converged)
 Updates convergence statistics node.
 
int gage_readParams (int gageIndex, char *tok[], int ntoks)
 Reads rain gage parameters from a line of input data.
 
void gage_validate (int gageIndex)
 Checks for valid rain gage parameters.
 
void gage_initState (int gageIndex)
 Initializes state of a rain gage.
 
void gage_setState (int gageIndex, DateTime aDate)
 Updates state of rain gage for specified date.
 
double gage_getPrecip (int gageIndex, double *rainfall, double *snowfall)
 Determines whether gage's recorded rainfall is rain or snow.
 
void gage_setReportRainfall (int gageIndex, DateTime aDate)
 Sets the rainfall value reported at the current reporting time.
 
DateTime gage_getNextRainDate (int gageIndex, DateTime aDate)
 Finds the next date from specified date when rainfall occurs.
 
void gage_updatePastRain (int gageIndex, int tStep)
 Updates past MAXPASTRAIN hourly rain totals.
 
double gage_getPastRain (int gageIndex, int hrs)
 Retrieves rainfall total over some previous number of hours.
 
int subcatch_readParams (int subcatchIndex, char *tok[], int ntoks)
 Reads subcatchment parameters from a tokenized line of input data.
 
int subcatch_readSubareaParams (char *tok[], int ntoks)
 Rreads subcatchment's subarea parameters from a tokenized line of input data.
 
int subcatch_readLanduseParams (char *tok[], int ntoks)
 Reads assignment of landuses to subcatchment from a tokenized line of input data.
 
int subcatch_readInitBuildup (char *tok[], int ntoks)
 Reads initial pollutant buildup on subcatchment from tokenized line of input data.
 
void subcatch_validate (int subcatchIndex)
 Checks for valid subcatchment input parameters.
 
void subcatch_initState (int subcatchIndex)
 Initializes state of a subcatchment.
 
void subcatch_setOldState (int subcatchIndex)
 Replaces old state of subcatchment with new state.
 
double subcatch_getFracPerv (int subcatchIndex)
 Determines what fraction of subcatchment area, including any LID area, is pervious.
 
double subcatch_getStorage (int subcatchIndex)
 Finds total volume of water stored on a subcatchment's surface and its LIDs at the current time.
 
double subcatch_getDepth (int subcatchIndex)
 Finds average depth of water over the non-LID portion of a subcatchment.
 
void subcatch_getRunon (int subcatchIndex)
 Routes runoff from a subcatchment to its outlet subcatchment or between its subareas.
 
void subcatch_addRunonFlow (int subcatchIndex, double flow)
 Updates the total runon flow (ft/s) seen by a subcatchment that receives runon flow from an upstream subcatchment.
 
double subcatch_getRunoff (int subcatchIndex, double tStep)
 Computes runoff & new storage depth for subcatchment.
 
double subcatch_getWtdOutflow (int subcatchIndex, double wt)
 Computes weighted combination of old and new subcatchment runoff.
 
void subcatch_getResults (int subcatchIndex, double wt, float x[])
 Computes wtd. combination of old and new subcatchment results.
 
void surfqual_initState (int subcatchIndex)
 Initializes pollutant buildup, ponded mass, and washoff.
 
void surfqual_getWashoff (int subcatchIndex, double runoff, double tStep)
 Computes new runoff quality for a subcatchment.
 
void surfqual_getBuildup (int subcatchIndex, double tStep)
 Adds to pollutant buildup on subcatchment surface.
 
void surfqual_applyAPIBuildup (int subcatchIndex)
 Applies the buildup of a pollutant over a subcatchment for a given time step.
 
void surfqual_sweepBuildup (int subcatchIndex, DateTime aDate)
 Reduces pollutant buildup over a subcatchment if sweeping occurs.
 
double surfqual_getWtdWashoff (int subcatchIndex, int pollutIndex, double wt)
 Finds wtd. combination of old and new washoff for a pollutant.
 
int node_readParams (int nodeIndex, int type, int subIndex, char *tok[], int ntoks)
 Reads node properties from a tokenized line of input.
 
void node_validate (int nodeIndex)
 Validates a node's properties.
 
void node_initState (int nodeIndex)
 Initializes a node's state variables at start of simulation.
 
void node_initFlows (int nodeIndex, double tStep)
 Initializes a node's inflow/outflow/overflow at start of time step.
 
void node_setOldHydState (int nodeIndex)
 Replaces a node's old hydraulic state values with new ones.
 
void node_setOldQualState (int nodeIndex)
 Replaces a node's old water quality state values with new ones.
 
void node_setOutletDepth (int nodeIndex, double yNorm, double yCrit, double z)
 Sets water depth at a node that serves as an outlet point.
 
double node_getSurfArea (int nodeIndex, double depth)
 Computes surface area of water stored at a node from water depth.
 
double node_getDepth (int nodeIndex, double volume)
 Computes a node's water depth from its volume.
 
double node_getVolume (int nodeIndex, double depth)
 Computes volume stored at a node from its water depth.
 
double node_getPondedArea (int nodeIndex, double depth)
 Computes surface area of water at a node based on depth.
 
double node_getOutflow (int nodeIndex, int linkIndex)
 Computes outflow from node available for inflow into a link.
 
double node_getLosses (int nodeIndex, double tStep)
 Computes the rates of evaporation and infiltration over a given time step for a node.
 
double node_getMaxOutflow (int nodeIndex, double q, double tStep)
 Limits outflow rate from a node with storage volume.
 
double node_getSystemOutflow (int nodeIndex, int *isFlooded)
 Computes flow rate at outfalls and flooded nodes.
 
void node_getResults (int nodeIndex, double wt, float x[])
 Computes weighted average of old and new results at a node.
 
int inflow_readExtInflow (char *tok[], int ntoks)
 Reads parameters of a direct external inflow from a line of input.
 
int inflow_readDwfInflow (char *tok[], int ntoks)
 Reads dry weather inflow parameters from line of input data.
 
int inflow_readDwfPattern (char *tok[], int ntoks)
 Reads values of a time pattern from a line of input data.
 
int inflow_setExtInflow (int nodeIndex, int param, int type, int tSeries, int basePat, double cf, double baseline, double sf)
 This function assigns property values to the inflow object.
 
void inflow_initDwfInflow (TDwfInflow *inflow)
 Initialzes a dry weather inflow by ordering its time patterns.
 
void inflow_initDwfPattern (int patternIndex)
 Initialzes a dry weather inflow time pattern.
 
double inflow_getExtInflow (TExtInflow *inflow, DateTime aDate)
 Retrieves the value of an external inflow at a specific date and time.
 
double inflow_getDwfInflow (TDwfInflow *inflow, int m, int d, int h)
 Computes dry weather inflow value at a specific point in time.
 
void inflow_deleteExtInflows (int nodeIndex)
 Deletes all time series inflow data for a node.
 
void inflow_deleteDwfInflows (int nodeIndex)
 Deletes all dry weather inflow data for a node.
 
int iface_readFileParams (char *tok[], int ntoks)
 
void iface_openRoutingFiles (void)
 
void iface_closeRoutingFiles (void)
 
int iface_getNumIfaceNodes (DateTime aDate)
 
int iface_getIfaceNode (int index)
 
double iface_getIfaceFlow (int index)
 
double iface_getIfaceQual (int index, int pollut)
 
void iface_saveOutletResults (DateTime reportDate, FILE *file)
 
int hotstart_open (void)
 
void hotstart_save (void)
 
int hotstart_save_to_file (const char *hotstartFile)
 
int hotstart_is_valid (const char *hotstartFile, int *inputFileVersion)
 
void hotstart_close (void)
 
int link_readParams (int link, int type, int subIndex, char *tok[], int ntoks)
 
int link_readXsectParams (char *tok[], int ntoks)
 
int link_readLossParams (char *tok[], int ntoks)
 
void link_validate (int link)
 
void link_initState (int link)
 
void link_setOldHydState (int link)
 
void link_setOldQualState (int link)
 
void link_setTargetSetting (int j)
 
void link_setSetting (int j, double tstep)
 
int link_setFlapGate (int link, int n1, int n2, double q)
 
double link_getInflow (int link)
 
void link_setOutfallDepth (int link)
 
double link_getLength (int link)
 
double link_getYcrit (int link, double q)
 
double link_getYnorm (int link, double q)
 
double link_getVelocity (int link, double q, double y)
 
double link_getFroude (int link, double v, double y)
 
double link_getPower (int link)
 
double link_getLossRate (int link, int routeModel, double q, double tstep)
 
char link_getFullState (double a1, double a2, double aFull)
 
void link_getResults (int link, double wt, float x[])
 
int xsect_isOpen (int type)
 
int xsect_setParams (TXsect *xsect, int type, double p[], double ucf)
 
void xsect_setIrregXsectParams (TXsect *xsect)
 
void xsect_setCustomXsectParams (TXsect *xsect)
 
void xsect_setStreetXsectParams (TXsect *xsect)
 
double xsect_getAmax (TXsect *xsect)
 
double xsect_getSofA (TXsect *xsect, double area)
 
double xsect_getYofA (TXsect *xsect, double area)
 
double xsect_getRofA (TXsect *xsect, double area)
 
double xsect_getAofS (TXsect *xsect, double sFactor)
 
double xsect_getdSdA (TXsect *xsect, double area)
 
double xsect_getAofY (TXsect *xsect, double y)
 
double xsect_getRofY (TXsect *xsect, double y)
 
double xsect_getWofY (TXsect *xsect, double y)
 
double xsect_getYcrit (TXsect *xsect, double q)
 
double culvert_getInflow (int link, double q, double h)
 
double roadway_getInflow (int link, double dir, double hcrest, double h1, double h2)
 
double forcemain_getEquivN (int j, int k)
 
double forcemain_getRoughFactor (int j, double lengthFactor)
 
double forcemain_getFricSlope (int j, double v, double hrad)
 
int transect_create (int n)
 
void transect_delete (void)
 
int transect_readParams (int *count, char *tok[], int ntoks)
 
void transect_validate (int j)
 
void transect_createStreetTransect (TStreet *street)
 
int street_create (int nStreets)
 
void street_delete ()
 
int street_readParams (char *tok[], int ntoks)
 
double street_getExtentFilled (int link)
 
int shape_validate (TShape *shape, TTable *curve)
 
void controls_init (void)
 Initializes the control rule system.
 
void controls_addToCount (char *s)
 Updates the number of named variables or math expressions used by control rules.
 
int controls_create (int n)
 Creates an array of control rules.
 
void controls_delete (void)
 Deletes all control rules.
 
int controls_addVariable (char *tok[], int ntoks)
 Adds a named variable to the control rule system from a tokenized line of input with formats:
 
int controls_addExpression (char *tok[], int ntoks)
 Adds a math expression to the control rule system from a a tokenized line of input with format: EXPRESSION name = <math expression containing VARIABLE names>
 
int controls_addRuleClause (int rule, int keyword, char *Tok[], int nTokens)
 Adds a new clause to a control rule.
 
int controls_evaluate (DateTime currentTime, DateTime elapsedTime, double tStep)
 Evaluates all control rules at the current time of the simulation.
 
int table_readCurve (char *tok[], int ntoks)
 
int table_readTimeseries (char *tok[], int ntoks)
 
int table_addEntry (TTable *table, double x, double y)
 
int table_getFirstEntry (TTable *table, double *x, double *y)
 
int table_getNextEntry (TTable *table, double *x, double *y)
 
void table_deleteEntries (TTable *table)
 
void table_init (TTable *table)
 
int table_validate (TTable *table)
 
double table_lookup (TTable *table, double x)
 
double table_lookupEx (TTable *table, double x)
 
double table_intervalLookup (TTable *table, double x)
 
double table_inverseLookup (TTable *table, double y)
 
double table_getSlope (TTable *table, double x)
 
double table_getMaxY (TTable *table, double x)
 
double table_getStorageVolume (TTable *table, double x)
 
double table_getStorageDepth (TTable *table, double v)
 
void table_tseriesInit (TTable *table)
 
double table_tseriesLookup (TTable *table, double t, char extend)
 
double UCF (int quantity)
 Computes a conversion factor from SWMM's internal units to user's units.
 
int getInt (char *s, int *y)
 Converts a string to an int value.
 
int getFloat (char *s, float *y)
 Converts a string to a float value.
 
int getDouble (char *s, double *y)
 Converts a string to a double precision floating point number.
 
char * getTempFileName (char *fname)
 Creates a temporary file name with path prepended to it.
 
int findmatch (char *s, char *keyword[])
 Finds match between string and array of keyword strings.
 
int match (char *str, char *substr)
 Sees if a sub-string of characters appears in a string (not case sensitive). (not case sensitive).
 
int strcomp (const char *s1, const char *s2)
 Compares two strings (case insensitive).
 
size_t sstrncpy (char *dest, const char *src, size_t n)
 Copies a string to a new memory location in a safe way.
 
size_t sstrcat (char *dest, const char *src, size_t destsize)
 Safe string concatenation.
 
void writecon (const char *s)
 Writes string to console.
 
void getElapsedTime (DateTime aDate, int *days, int *hrs, int *mins)
 Finds elapsed simulation time for a given calendar date.
 
DateTime getDateTime (double elapsedMsec)
 Finds calendar date/time value for elapsed milliseconds of simulation time.
 
char * addAbsolutePath (char *fname)
 Adds an absolute path name to a file name.
 

Detailed Description

Header file for global interfacing functions.

Author
L. Rossman
M. Tryby (EPA)
Date
Created: 2023-06-12
Last updated: 2025-01-02
Version
5.3.0

Update History

  • Build 5.1.007:
  • Build 5.1.008:
    • Function list was re-ordered and blank lines added for readability.
    • Pollutant buildup/washoff functions for the new surfqual.c module added.
    • Several other functions added, re-named or have modified arguments.
  • Build 5.1.010:
  • Build 5.1.013:
    • Additional arguments added to function stats_updateSubcatchStats.
  • Build 5.1.014:
    • Arguments to link_getLossRate function changed.
  • Build 5.2.0:
    • Support added for Streets and Inlets.
    • Support added for reporting most frequent non-converging links.
    • Support added for named variables & math expressions in control rules.
    • Support added for tracking a gage's prior n-hour rainfall total.
    • Refactored external inflow code.
  • Build 5.2.4:
    • Additional arguments added to function link_getLossRate.
  • Build 5.3.0:
    • Modified code to allow saving multiple hotstart files at different times.
    • Added support for API provided pollutant build up and washoff.

Function Documentation

◆ culvert_getInflow()

double culvert_getInflow ( int  link,
double  q,
double  h 
)
Here is the caller graph for this function:

◆ forcemain_getEquivN()

double forcemain_getEquivN ( int  j,
int  k 
)

◆ forcemain_getFricSlope()

double forcemain_getFricSlope ( int  j,
double  v,
double  hrad 
)
Here is the caller graph for this function:

◆ forcemain_getRoughFactor()

double forcemain_getRoughFactor ( int  j,
double  lengthFactor 
)

◆ hotstart_close()

void hotstart_close ( void  )

◆ hotstart_is_valid()

int hotstart_is_valid ( const char *  hotstartFile,
int *  inputFileVersion 
)

◆ hotstart_open()

int hotstart_open ( void  )
Here is the call graph for this function:

◆ hotstart_save()

void hotstart_save ( void  )

◆ hotstart_save_to_file()

int hotstart_save_to_file ( const char *  hotstartFile)
Here is the call graph for this function:

◆ link_getFroude()

double link_getFroude ( int  link,
double  v,
double  y 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ link_getFullState()

char link_getFullState ( double  a1,
double  a2,
double  aFull 
)
Here is the caller graph for this function:

◆ link_getInflow()

double link_getInflow ( int  link)
Here is the call graph for this function:

◆ link_getLength()

double link_getLength ( int  link)
Here is the caller graph for this function:

◆ link_getLossRate()

double link_getLossRate ( int  link,
int  routeModel,
double  q,
double  tstep 
)
Here is the caller graph for this function:

◆ link_getPower()

double link_getPower ( int  link)

◆ link_getResults()

void link_getResults ( int  link,
double  wt,
float  x[] 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ link_getVelocity()

double link_getVelocity ( int  link,
double  q,
double  y 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ link_getYcrit()

double link_getYcrit ( int  link,
double  q 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ link_getYnorm()

double link_getYnorm ( int  link,
double  q 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ link_initState()

void link_initState ( int  link)
Here is the caller graph for this function:

◆ link_readLossParams()

int link_readLossParams ( char *  tok[],
int  ntoks 
)
Here is the call graph for this function:

◆ link_readParams()

int link_readParams ( int  link,
int  type,
int  subIndex,
char *  tok[],
int  ntoks 
)

◆ link_readXsectParams()

int link_readXsectParams ( char *  tok[],
int  ntoks 
)
Here is the call graph for this function:

◆ link_setFlapGate()

int link_setFlapGate ( int  link,
int  n1,
int  n2,
double  q 
)
Here is the caller graph for this function:

◆ link_setOldHydState()

void link_setOldHydState ( int  link)

◆ link_setOldQualState()

void link_setOldQualState ( int  link)

◆ link_setOutfallDepth()

void link_setOutfallDepth ( int  link)
Here is the call graph for this function:

◆ link_setSetting()

void link_setSetting ( int  j,
double  tstep 
)

◆ link_setTargetSetting()

void link_setTargetSetting ( int  j)

◆ link_validate()

void link_validate ( int  link)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ roadway_getInflow()

double roadway_getInflow ( int  link,
double  dir,
double  hcrest,
double  h1,
double  h2 
)

◆ shape_validate()

int shape_validate ( TShape shape,
TTable curve 
)
Here is the caller graph for this function:

◆ street_create()

int street_create ( int  nStreets)

◆ street_delete()

void street_delete ( )

◆ street_getExtentFilled()

double street_getExtentFilled ( int  link)

◆ street_readParams()

int street_readParams ( char *  tok[],
int  ntoks 
)
Here is the call graph for this function:

◆ table_addEntry()

int table_addEntry ( TTable table,
double  x,
double  y 
)
Here is the caller graph for this function:

◆ table_deleteEntries()

void table_deleteEntries ( TTable table)

◆ table_getFirstEntry()

int table_getFirstEntry ( TTable table,
double *  x,
double *  y 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ table_getMaxY()

double table_getMaxY ( TTable table,
double  x 
)

◆ table_getNextEntry()

int table_getNextEntry ( TTable table,
double *  x,
double *  y 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ table_getSlope()

double table_getSlope ( TTable table,
double  x 
)

◆ table_getStorageDepth()

double table_getStorageDepth ( TTable table,
double  v 
)

◆ table_getStorageVolume()

double table_getStorageVolume ( TTable table,
double  x 
)
Here is the call graph for this function:

◆ table_init()

void table_init ( TTable table)

◆ table_intervalLookup()

double table_intervalLookup ( TTable table,
double  x 
)

◆ table_inverseLookup()

double table_inverseLookup ( TTable table,
double  y 
)
Here is the call graph for this function:

◆ table_lookup()

double table_lookup ( TTable table,
double  x 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ table_lookupEx()

double table_lookupEx ( TTable table,
double  x 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ table_readCurve()

int table_readCurve ( char *  tok[],
int  ntoks 
)
Here is the call graph for this function:

◆ table_readTimeseries()

int table_readTimeseries ( char *  tok[],
int  ntoks 
)
Here is the call graph for this function:

◆ table_tseriesInit()

void table_tseriesInit ( TTable table)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ table_tseriesLookup()

double table_tseriesLookup ( TTable table,
double  t,
char  extend 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ table_validate()

int table_validate ( TTable table)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ transect_create()

int transect_create ( int  n)

◆ transect_createStreetTransect()

void transect_createStreetTransect ( TStreet street)
Here is the caller graph for this function:

◆ transect_delete()

void transect_delete ( void  )

◆ transect_readParams()

int transect_readParams ( int *  count,
char *  tok[],
int  ntoks 
)
Here is the call graph for this function:

◆ transect_validate()

void transect_validate ( int  j)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xsect_getAmax()

double xsect_getAmax ( TXsect xsect)

◆ xsect_getAofS()

double xsect_getAofS ( TXsect xsect,
double  sFactor 
)
Here is the caller graph for this function:

◆ xsect_getAofY()

double xsect_getAofY ( TXsect xsect,
double  y 
)
Here is the caller graph for this function:

◆ xsect_getdSdA()

double xsect_getdSdA ( TXsect xsect,
double  area 
)

◆ xsect_getRofA()

double xsect_getRofA ( TXsect xsect,
double  area 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xsect_getRofY()

double xsect_getRofY ( TXsect xsect,
double  y 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xsect_getSofA()

double xsect_getSofA ( TXsect xsect,
double  area 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xsect_getWofY()

double xsect_getWofY ( TXsect xsect,
double  y 
)
Here is the caller graph for this function:

◆ xsect_getYcrit()

double xsect_getYcrit ( TXsect xsect,
double  q 
)
Here is the caller graph for this function:

◆ xsect_getYofA()

double xsect_getYofA ( TXsect xsect,
double  area 
)
Here is the caller graph for this function:

◆ xsect_isOpen()

int xsect_isOpen ( int  type)
Here is the caller graph for this function:

◆ xsect_setCustomXsectParams()

void xsect_setCustomXsectParams ( TXsect xsect)

◆ xsect_setIrregXsectParams()

void xsect_setIrregXsectParams ( TXsect xsect)

◆ xsect_setParams()

int xsect_setParams ( TXsect xsect,
int  type,
double  p[],
double  ucf 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xsect_setStreetXsectParams()

void xsect_setStreetXsectParams ( TXsect xsect)