29 #error This is a C++ include file and cannot be used from plain C
90 double tropoLapseRate,
92 const Length &wvScaleHeight,
94 double pressureStepFactor,
95 const Length &topAtmProfile,
96 unsigned int atmType);
104 double tropoLapseRate,
106 const Length &wvScaleHeight,
108 double pressureStepFactor,
109 const Length &topAtmProfile,
110 unsigned int atmType,
111 const vector<Length> &v_layerBoundaries,
112 const vector<Temperature> &v_layerTemperature);
132 double tropoLapseRate,
134 const Length &wvScaleHeight,
135 unsigned int atmType);
151 const vector<Length> &v_layerThickness,
152 const vector<Pressure> &v_layerPressure,
153 const vector<Temperature> &v_layerTemperature,
154 const vector<MassDensity> &v_layerWaterVapor);
155 AtmProfile(
const vector<Length> &v_layerBoundaries,
156 const vector<Pressure> &v_layerPressure,
157 const vector<Temperature> &v_layerTemperature,
158 const vector<MassDensity> &v_layerWaterVapor);
161 const vector<Length> &v_layerThickness,
162 const vector<Pressure> &v_layerPressure,
163 const vector<Temperature> &v_layerTemperature,
164 const vector<NumberDensity> &v_layerWaterVapor);
165 AtmProfile(
const vector<Length> &v_layerBoundaries,
166 const vector<Pressure> &v_layerPressure,
167 const vector<Temperature> &v_layerTemperature,
168 const vector<NumberDensity> &v_layerWaterVapor);
177 const vector<Length> &v_layerThickness,
178 const vector<Pressure> &v_layerPressure,
179 const vector<Temperature> &v_layerTemperature,
180 const vector<MassDensity> &v_layerWaterVapor,
181 const vector<NumberDensity> &v_layerO3);
183 const vector<Length> &v_layerThickness,
184 const vector<Pressure> &v_layerPressure,
185 const vector<Temperature> &v_layerTemperature,
186 const vector<NumberDensity> &v_layerWaterVapor,
187 const vector<NumberDensity> &v_layerO3);
195 const vector<Length> &v_layerThickness,
196 const vector<Pressure> &v_layerPressure,
197 const vector<Temperature> &v_layerTemperature,
198 const vector<MassDensity> &v_layerWaterVapor,
199 const vector<NumberDensity> &v_layerO3,
200 const vector<NumberDensity> &v_layerCO,
201 const vector<NumberDensity> &v_layerN2O,
202 const vector<NumberDensity> &v_layerNO2,
203 const vector<NumberDensity> &v_layerSO2);
206 const vector<Length> &v_layerThickness,
207 const vector<Pressure> &v_layerPressure,
208 const vector<Temperature> &v_layerTemperature,
209 const vector<NumberDensity> &v_layerWaterVapor,
210 const vector<NumberDensity> &v_layerO3,
211 const vector<NumberDensity> &v_layerCO,
212 const vector<NumberDensity> &v_layerN2O,
213 const vector<NumberDensity> &v_layerNO2,
214 const vector<NumberDensity> &v_layerSO2);
238 double tropoLapseRate,
240 const Length &wvScaleHeight);
448 const Pressure &groundPressureThreshold,
450 double tropoLapseRateThreshold,
451 const Humidity &relativeHumidityThreshold,
452 const Length &wvScaleHeightThreshold);
545 double tropoLapseRate,
547 const Length &wvScaleHeight);
553 vector<NumberDensity>
st76(
const Length &ha,
unsigned int tip)
const;
554 double poli2(
double ha,
MassDensity getLayerWaterVaporMassDensity(unsigned int i) const
Function to retrieve Average Water vapor density in a given layer in kg/m**3 (thickness of layers in ...
#define ATM_NAMESPACE_END
Temperature getGroundTemperatureThreshold() const
void setLayerTemperature(unsigned int i, const Temperature &layerTemperature)
Setter for the average Temperature in layer i (allows to touch one layer each time once a profile has...
Length tropoAltitude_
Altitude where tropopause starts.
Pressure getPressureStepFactor() const
Accessor to the current Pressure_Step_Factor in the object.
Pressure groundPressure_
Ground pressure at the site.
Length getLayerBottomHeightAboveSeaLevel(unsigned int i) const
Method to access the Bottom Height of layer i above the Sea Level if the layer is not valid...
Temperature getLayerTemperature(unsigned int i) const
Method to access the average Temperature in layer i (thickness of layers in ThicknessProfile) if the ...
Temperature groundTemperature_
Ambient temperature at the site (K)
NumberDensity getLayerBottomWaterVaporNumberDensity(unsigned int i) const
Length getLayerBottomHeightAboveGround(unsigned int i) const
void setLayerThickness(const Length &layerThickness, unsigned int i) { setLayerThickness(i, layerThickness); }
double getTropoLapseRateThreshold() const
ATM_NAMESPACE_BEGIN typedef ATM_NAMESPACE::Percent Humidity
NumberDensity getLayerO3(unsigned int i) const
void setLayerCO(const NumberDensity &layerCO, unsigned int i) { setLayerCO(i, layerCO); } ...
MassDensity getLayerTopWaterVaporMassDensity(unsigned int i) const
Humidity getRelativeHumidityThreshold() const
Temperature getLayerBottomTemperature(unsigned int i) const
Method to access the Temperature at bottom of layer i (thickness of layers in ThicknessProfile) if th...
NumberDensity getLayerNO2(unsigned int i) const
void setLayerN2O(const NumberDensity &layerN2O, unsigned int i) { setLayerN2O(i, layerN2O); } ...
void setBasicAtmosphericParameterThresholds(const Length &altitudeThreshold, const Pressure &groundPressureThreshold, const Temperature &groundTemperatureThreshold, double tropoLapseRateThreshold, const Humidity &relativeHumidityThreshold, const Length &wvScaleHeightThreshold)
void setLayerSO2(const NumberDensity &layerSO2, unsigned int i) { setLayerSO2(i, layerSO2); } ...
Length getGroundWH2O() const
Method to get the zenith column of water vapor.
void setGroundPressureThreshold(const Pressure &groundPressureThreshold)
void setGroundTemperatureThreshold(const Temperature &groundTemperatureThreshold)
vector< double > v_layerCO_
CO in molecules per m**3.
Pressure getGroundPressure() const
Accessor to the current Ground Pressure used in the object (pressure units)
double get() const
Accessor to get the value in SI units (Pa)
double poli2(double ha, double x1, double x2, double x3, double y1, double y2, double y3) const
Length topAtmProfile_
Top of atmospheric profile (km)
unsigned int tropoLayer_
Layer where tropopause starts.
void initBasicAtmosphericParameterThresholds()
void setLayerWaterVaporNumberDensity(unsigned int i, const NumberDensity &layerWaterVapor)
void setLayerWaterVaporMassDensity(const MassDensity &layerWaterVapor, unsigned int i) { setLayerWate...
NumberDensity getLayerCO(unsigned int i) const
void setLayerPressure(const Pressure &layerPressure, unsigned int i) { setLayerPressure(i, layerPressure); }
Humidity rwat_inv(const Temperature &tt, const MassDensity &dd, const Pressure &pp) const
vector< double > v_layerPressure_
Pressure of layers (mb)
void setLayerCO(unsigned int i, const NumberDensity &layerCO)
Setter for the average number density of CO in layer i in molecules/m**3 (allows to touch one layer e...
Length getTopAtmProfile() const
Accessor to the Maximum allowed altitude for the Atmospheric Profile above the site (length units) ...
Pressure getGroundPressureThreshold() const
void setLayerSO2(unsigned int i, const NumberDensity &layerSO2)
Setter for the average number density of SO2 in layer i in molecules/m**3 (allows to touch one layer ...
unsigned int typeAtm_
1: tropical, 2: midlatSummer, 3: midlatWinter, 4: subarcticSummer, 5: subarcticWinter ...
void setLayerWaterVaporMassDensity(unsigned int i, const MassDensity &layerWaterVapor)
Setter for the average Water vapor density in layer i in kg/m**3 (allows to touch one layer each time...
Pressure pressureStep_
Pressure basic step (mb)
Temperature groundTemperatureThreshold_
double fractionLast_
Fraction of last layer needed for some calculations.
void setLayerNO2(unsigned int i, const NumberDensity &layerNO2)
Setter for the average number density of NO2 in layer i in molecules/m**3 (allows to touch one layer ...
double tropoLapseRateThreshold_
NumberDensity getLayerWaterVaporNumberDensity(unsigned int i) const
vector< double > v_layerThickness_
Thickness of layer (m)
Temperature getLayerTopTemperature(unsigned int i) const
Method to access the Temperature at top of layer i (thickness of layers in ThicknessProfile) if the l...
Length getAltitudeThreshold() const
Thresholds.
Length wvScaleHeight_
Relative humidity at the site (%) used only to make an estimate of the wat...
Pressure getLayerPressure(unsigned int i) const
Method to access the average Pressure in layer i if the layer is not valid.
bool updateAtmProfile(const Length &altitude, const Pressure &groundPressure, const Temperature &groundTemperature, double tropoLapseRate, const Humidity &relativeHumidity, const Length &wvScaleHeight)
returns error code: <0 unsuccessful
void setLayerThickness(unsigned int i, const Length &layerThickness)
Setter for the thickness of layer i (allows to touch one layer each time once a profile has been defi...
Length wvScaleHeightThreshold_
vector< double > v_layerNO2_
NO2 in molecules per m**3.
vector< NumberDensity > st76(const Length &ha, unsigned int tip) const
NumberDensity getLayerTopWaterVaporNumberDensity(unsigned int i) const
#define ATM_NAMESPACE_BEGIN
vector< Temperature > getTemperatureProfile() const
Method to access the Temperature Profile.
void setAltitudeThreshold(const Length &altitudeThreshold)
vector< double > v_layerTemperature_
Temp. of layers (K)
vector< double > v_layerO3_
O3 in molecules per m**3.
Length altitudeThreshold_
unsigned int getNumLayer() const
Accessor to the number of layers of the atmospheric profile.
void setAltitude(const Length &groundaltitude)
setter for the ground altitude of site (length units).
Temperature getTropopauseTemperature() const
Accessor to the current Tropopause Temperature used in the object.
Length getWvScaleHeightThreshold() const
NumberDensity getLayerSO2(unsigned int i) const
void setLayerNO2(const NumberDensity &layerNO2, unsigned int i) { setLayerNO2(i, layerNO2); } ...
Length getGroundAltitude() const
Alternative accessor to the ground altitude of site (length units)
vector< double > v_layerN2O_
N2O in molecules per m**3.
Defines pressure with units.
Class for an atmospheric profile object.
string getAtmosphereType() const
Accessor to the type of current atmosphere.
vector< double > v_layerPressure0_
Pressure at bottom of layers (mb)
Length altitude_
Multiplicative factor for presure steps.
vector< double > v_layerSO2_
SO2 in molecules per m**3.
void setLayerN2O(unsigned int i, const NumberDensity &layerN2O)
Setter for the average number density of N2O in layer i in molecules/m**3 (allows to touch one layer ...
Temperature getGroundTemperature() const
Accessor to the current Ground Temperature used in the object.
Length getLayerThickness(unsigned int i) const
Method to access the layer thickness of layer i if the layer is not valid.
double pressureStepFactor_
void setLayerPressure(unsigned int i, const Pressure &layerPressure)
Setter for the average Pressure in layer i (allows to touch one layer each time once a profile has be...
vector< double > v_layerTemperature1_
Temp. at top of layer (K)
Humidity relativeHumidityThreshold_
AtmProfile()
Default constructor (required if copy constructor in derived classes)
MassDensity rwat(const Temperature &t, const Humidity &rh, const Pressure &p) const
Pressure getPressureStep() const
Accessor to the current Primary Pressure Step in the object.
Number Density value with units.
double getTropoLapseRate() const
Accessor to the current Tropospheric Lapse Rate used in the object (temperature/length units) ...
Length getWvScaleHeight() const
Accessor to the current Water Vapor Scale Height in the object (length units)
vector< double > v_layerPressure1_
Pressure at top of layers (mb)
vector< double > v_layerWaterVapor0_
Water vapor kg/m**3 at bottom of layer.
vector< double > v_layerWaterVapor1_
Water vapor kg/m**3 at top of layer.
void setLayerO3(unsigned int i, const NumberDensity &layerO3)
Setter for the average number density of O3 in layer i in molecules/m**3 (allows to touch one layer e...
unsigned int mkAtmProfile()
double tropoLapseRate_
tropospheric lapse rate in K/km
bool setBasicAtmosphericParameters(const Length &altitude, const Pressure &groundPressure, const Temperature &groundTemperature, double tropoLapseRate, const Humidity &relativeHumidity, const Length &wvScaleHeight)
Setter to update the AtmProfile if some basic atmospheric parameter has changed.
Mass Density value with units.
Pressure getLayerTopPressure(unsigned int i) const
Method to access the Pressure at top of layer i if the layer is not valid.
Temperature value with units.
vector< double > v_layerWaterVapor_
Average water vapor kg/m**3 in the layer.
Pressure getLayerBottomPressure(unsigned int i) const
Method to access the Pressure at bottom of layer i if the layer is not valid.
Length getLayerTopHeightAboveSeaLevel(unsigned int i) const
Method to access the Top Height of layer i above the Sea Level if the layer is not valid...
vector< double > v_layerTemperature0_
Temp. at bottom of layers (K)
Pressure groundPressureThreshold_
MassDensity getLayerBottomWaterVaporMassDensity(unsigned int i) const
Class for those physical parameters having dimensions of Length [L].
Length getLayerTopHeightAboveGround(unsigned int i) const
Method to access the Top Height of layer i above the Ground if the layer is not valid.
Length getTropopauseAltitude() const
Alternative setter for the ground altitude of site (length units).
unsigned int numLayer_
Total number of layers in the output atmospheric profiles.
double get() const
Accessor to the numberdensity value in International System units (K)
NumberDensity getLayerN2O(unsigned int i) const
void setLayerO3(const NumberDensity &layerO3, unsigned int i) { setLayerO3(i, layerO3); } ...
Length getAltitude() const
Accessor to the ground altitude of site (length units)
Humidity getRelativeHumidity() const
Accessor to the current Ground Relative Humidity in the object (humidity units)
Humidity relativeHumidity_
vector< Length > getThicknessProfile() const
Method to retrieve the layer thickness from site altitude upwards.
vector< Pressure > getPressureProfile() const
void setLayerWaterVapor(const NumberDensity &layerWaterVapor, unsigned int i) { setLayerWaterVapor(i...
Temperature tropoTemperature_
Temperature at the tropopause.