Source
groundPressureThreshold_ = Pressure(99.,Pressure::UnitPascal); // DB 2014-03-06 : Choose 99 Pascal instead of 100 Pascal because the threshold must be lower than the value of delta_pressure used in getAverageDispersiveDryPathLength_GroundPressureDerivative()
/*******************************************************************************
* ALMA - Atacama Large Millimiter Array
* (c) CSIC - Instituto de Física Fundamental (Spain), 2024
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* "@(#) $Id: ATMProfile.cpp Exp $"
*
* who when what
* -------- -------- ----------------------------------------------
* pardo 24/03/09 created
*/
ATM_NAMESPACE_BEGIN
AtmProfile::AtmProfile(unsigned int n)
{
numLayer_ = n;
initBasicAtmosphericParameterThresholds();
for(unsigned int i = 0; i < numLayer_; ++i) {
v_layerO3_.push_back(0.0);
v_layerCO_.push_back(0.0);
v_layerN2O_.push_back(0.0);
v_layerNO2_.push_back(0.0);
v_layerSO2_.push_back(0.0);
v_layerHCl_.push_back(0.0);
v_layerHCN_.push_back(0.0);
v_layerThickness_.push_back(0.0);
v_layerTemperature_.push_back(0.0);
v_layerTemperature0_.push_back(0.0);
v_layerTemperature1_.push_back(0.0);
v_layerPressure_.push_back(0.0);
v_layerPressure0_.push_back(0.0);
v_layerPressure1_.push_back(0.0);
v_layerWaterVapor_.push_back(0.0);
v_layerWaterVapor0_.push_back(0.0);
v_layerWaterVapor1_.push_back(0.0);
}
}
AtmProfile::AtmProfile(const Length &altitude,
const Pressure &groundPressure,
const Temperature &groundTemperature,
double tropoLapseRate,
const Humidity &relativeHumidity,
const Length &wvScaleHeight,
const Pressure &pressureStep,
double pressureStepFactor,
const Length &topAtmProfile,
unsigned int atmType) :
// Atmospheretype atmType):
typeAtm_(atmType), groundTemperature_(groundTemperature),
tropoLapseRate_(tropoLapseRate), groundPressure_(groundPressure),
relativeHumidity_(relativeHumidity), wvScaleHeight_(wvScaleHeight),
pressureStep_(pressureStep), pressureStepFactor_(pressureStepFactor),
altitude_(altitude), topAtmProfile_(topAtmProfile)
{
numLayer_ = 0;
numLayer_ = mkAtmProfile();
// std::cout << "ad numLayer_=" << numLayer_ << std::endl;
initBasicAtmosphericParameterThresholds();
newBasicParam_ = true;
}
AtmProfile::AtmProfile(const Length &altitude,
const Pressure &groundPressure,
const Temperature &groundTemperature,
double tropoLapseRate,
const Humidity &relativeHumidity,