20#ifndef OPENSWMM_CLIMATE_HPP
21#define OPENSWMM_CLIMATE_HPP
58 void push(
double t_avg,
double t_range);
104 double adjust_evap[12] = {1,1,1,1,1,1,1,1,1,1,1,1};
105 double adjust_temp[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
106 double adjust_rain[12] = {1,1,1,1,1,1,1,1,1,1,1,1};
107 double adjust_hydcon[12] = {1,1,1,1,1,1,1,1,1,1,1,1};
156double hargreaves(
double latitude,
int day_of_year,
double t_avg,
double t_range);
210 double* evap_out,
int n,
double dt);
Definition Climate.cpp:18
double getSubdailyTemp(const ClimateState &state, double hour)
Compute sub-daily temperature using a three-zone sinusoidal model.
Definition Climate.cpp:193
void updateDailyClimate(ClimateState &state, int day_of_year, int month)
Update daily climate state.
Definition Climate.cpp:89
constexpr double MM_PER_INCH
Definition Climate.hpp:33
EvapMethod
Definition Climate.hpp:39
@ TIMESERIES
Definition Climate.hpp:42
@ CONSTANT
Definition Climate.hpp:40
@ TEMPERATURE
Hargreaves method.
Definition Climate.hpp:43
@ MONTHLY
Definition Climate.hpp:41
@ PAN
Definition Climate.hpp:44
void updateTempTimes(ClimateState &state, int doy)
Update sunrise/sunset parameters for sub-daily temperature interpolation.
Definition Climate.cpp:162
void batchDistributeEvap(double evap_rate, const double *ponded_depth, double *evap_out, int n, double dt)
Batch distribute evaporation to all subcatchments.
Definition Climate.cpp:148
double hargreaves(double latitude, int day_of_year, double t_avg, double t_range)
Compute Hargreaves evapotranspiration.
Definition Climate.cpp:51
Definition NodeCoupling.cpp:15
Central, reentrant simulation context.
Definition SimulationContext.hpp:292
Definition Climate.hpp:71
double ea
Saturation vapor pressure.
Definition Climate.hpp:87
double latitude
Latitude (degrees)
Definition Climate.hpp:90
double adjust_hydcon[12]
Infiltration conductivity multipliers.
Definition Climate.hpp:107
int temp_ts_index
Temperature timeseries table index.
Definition Climate.hpp:123
MovingAvg7 temp_ma
Definition Climate.hpp:116
bool has_minmax
True when tmin_daily/tmax_daily are valid.
Definition Climate.hpp:139
double recovery_factor
Definition Climate.hpp:120
double wind_speed_src
Source/default wind speed (mph)
Definition Climate.hpp:83
double infil_factor
Definition Climate.hpp:113
double evaprate_ucf
Definition Climate.hpp:101
double hrsr
Sunrise hour (time of min temp), 0-24.
Definition Climate.hpp:133
double dydif
24 + hrsr - hrss (hours from max to next min)
Definition Climate.hpp:137
double adjust_evap[12]
Definition Climate.hpp:104
double dtlong
Longitude correction (hrs); 0 = solar time.
Definition Climate.hpp:138
double elev
Site elevation above sea level (ft)
Definition Climate.hpp:93
EvapMethod evap_method
Definition Climate.hpp:109
double hrss
Sunset-3 hour (time of max temp), 0-24.
Definition Climate.hpp:134
double temperature_src
Source/default air temperature (deg F)
Definition Climate.hpp:82
double tmax_daily
Current day's maximum temperature (deg F)
Definition Climate.hpp:131
double hrday
Mid-hour between hrsr and hrss.
Definition Climate.hpp:135
double monthly_evap[12]
Definition Climate.hpp:96
int recovery_pat_index
Recovery pattern index in ctx.patterns.
Definition Climate.hpp:125
double humidity
Relative humidity (%)
Definition Climate.hpp:76
double wind_speed
Wind speed (mph) — effective (post-forcing)
Definition Climate.hpp:75
int last_temp_doy
Day-of-year when hrsr/hrss were last computed.
Definition Climate.hpp:140
double temp_range
Daily temperature range (deg F)
Definition Climate.hpp:73
double dhrdy
hrsr - hrss (negative)
Definition Climate.hpp:136
double gamma
Psychrometric constant.
Definition Climate.hpp:86
double prev_tmax
Previous day's maximum temperature (deg F)
Definition Climate.hpp:132
double adjust_temp[12]
Definition Climate.hpp:105
double evap_rate
Evaporation rate (ft/sec)
Definition Climate.hpp:74
double adjust_rain[12]
Definition Climate.hpp:106
double temperature
Air temperature (deg F) — effective (post-forcing)
Definition Climate.hpp:72
int evap_ts_index
Evaporation timeseries table index.
Definition Climate.hpp:124
double tmin_daily
Current day's minimum temperature (deg F)
Definition Climate.hpp:130
Definition Climate.hpp:51
void push(double t_avg, double t_range)
Push a new day's values into the buffer.
Definition Climate.cpp:26
double tr[7]
Daily temp ranges (deg F)
Definition Climate.hpp:53
double avg_range() const
Current moving average of temperature range.
Definition Climate.cpp:40
int count
Number of values stored (max 7)
Definition Climate.hpp:55
int front
Circular buffer write index.
Definition Climate.hpp:54
double ta[7]
Daily average temps (deg F)
Definition Climate.hpp:52
double avg_temp() const
Current moving average of temperature.
Definition Climate.cpp:33