wind_from_down_fps = 0;
thermal_lift_fps = 0;
ridge_lift_fps= 0;
+ local_weather_lift_fps=0;
altitude_half_to_sun_m = 1000;
altitude_tropo_top_m = 10000;
#ifdef USING_TABLES
wind_from_down_fps = env.wind_from_down_fps;
thermal_lift_fps = env.thermal_lift_fps;
ridge_lift_fps= env.ridge_lift_fps;
+ local_weather_lift_fps = env.local_weather_lift_fps;
turbulence_magnitude_norm = env.turbulence_magnitude_norm;
turbulence_rate_hz = env.turbulence_rate_hz;
}
maybe_copy_value(this, node, "turbulence/rate-hz",
&FGEnvironment::set_turbulence_rate_hz);
+
// calculate derived properties here to avoid duplicate expensive computations
_recalc_ne();
_recalc_alt_pt();
return ridge_lift_fps;
}
+double
+FGEnvironment::get_local_weather_lift_fps () const
+{
+ return local_weather_lift_fps;
+}
+
double
FGEnvironment::get_turbulence_magnitude_norm () const
{
ridge_lift_fps = ri;
if( live_update ) {
_recalc_updraft();
+ }
}
+
+void
+FGEnvironment::set_local_weather_lift_fps (double lwl)
+{
+ local_weather_lift_fps = lwl;
+ if( live_update ) {
+ _recalc_updraft();
+ }
}
void
{
elevation_ft = e;
if( live_update ) {
- _recalc_alt_dewpoint();
_recalc_alt_pt();
+ _recalc_alt_dewpoint();
_recalc_density();
_recalc_relative_humidity();
}
void
FGEnvironment::_recalc_updraft ()
{
- wind_from_down_fps = thermal_lift_fps + ridge_lift_fps ;
+ wind_from_down_fps = thermal_lift_fps + ridge_lift_fps + local_weather_lift_fps ;
}
// Intended to help with the interpretation of METAR data,
double t_strato = ISA_def[1].temp - atmodel::freezing;
if (temperature_degc < t_strato) temperature_sea_level_degc = t_strato;
else temperature_sea_level_degc =
- temperature_degc - elevation_ft * ISA_def[0].lapse;
+ temperature_degc + elevation_ft * atmodel::foot * ISA_def[0].lapse;
// Alternative implemenation:
// else temperature_sea_level_inhg = T_layer(0., elevation_ft * foot,
<< " and " << temperature_sea_level_degc
<< " :: " << this
<< " # " << count);
- ///////////////////////////////////raise(SIGUSR1);
}
}
#endif
env2->get_temperature_sea_level_degc(),
fraction));
- result->set_dewpoint_degc
+ result->set_dewpoint_sea_level_degc
(do_interp(env1->get_dewpoint_sea_level_degc(),
env2->get_dewpoint_sea_level_degc(),
fraction));