Main Page | User's Guide | Namespace List | Class List | File List | Namespace Members | Class Members

code/Meteorology.hxx

00001 // Copyright (C) 2003-2004 CEREA 00002 // Author: Vivien Mallet 00003 // 00004 // CEREA (http://www.enpc.fr/cerea) is a joint laboratory of 00005 // ENPC (http://www.enpc.fr) and EDF R&D (http://www.edf.fr). 00006 // 00007 // This file is part of AtmoData library. 00008 // AtmoData library is a tool for data processing in atmospheric 00009 // sciences. 00010 // 00011 // AtmoData is free software; you can redistribute it and/or modify 00012 // it under the terms of the GNU General Public License as published by 00013 // the Free Software Foundation; either version 2 of the License, or 00014 // (at your option) any later version. 00015 // 00016 // AtmoData is distributed in the hope that it will be useful, 00017 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 // GNU General Public License (file "license") for more details. 00020 // 00021 // For more information, please see the AtmoData home page: 00022 // http://spacetown.free.fr/lib/atmodata 00023 00024 00025 #ifndef ATMODATA_FILE_METEOROLOGY_HXX 00026 00027 namespace AtmoData 00028 { 00029 00030 template<class TU, class TV, class TTp, class T, class TG> 00031 void ComputeRichardson(Data<TU, 4, TG>& ZonalWind, 00032 Data<TV, 4, TG>& MeridionalWind, 00033 Data<TTp, 4, TG>& PotentialTemperature, 00034 Data<T, 4, TG>& Richardson, 00035 T wind_threshold = 0.001); 00036 00037 template<class TU, class TV, class TTp, class T, class TG> 00038 void ComputeRichardson(Data<TU, 4, TG>& ZonalWind, 00039 Data<TV, 4, TG>& MeridionalWind, 00040 Data<TTp, 4, TG>& PotentialTemperature, 00041 Data<T, 3, TG>& SurfaceRichardson, 00042 T wind_threshold = 0.001); 00043 00044 template<class TU, class TTp, class T, class TG> 00045 void ComputeRichardson(Data<TU, 3, TG>& WindModule, 00046 Data<TTp, 3, TG>& SurfacePotentialTemperature, 00047 Data<TTp, 4, TG>& PotentialTemperature, 00048 Data<T, 3, TG>& SurfaceRichardson, 00049 T wind_threshold = 0.001); 00050 00051 template<class TR, class TU, class TTp, class T, class TG> 00052 void ComputeRichardson(Data<TR, 2, TG>& Roughness, 00053 Data<TU, 3, TG>& WindModule, 00054 Data<TTp, 3, TG>& SurfacePotentialTemperature, 00055 Data<TTp, 4, TG>& PotentialTemperature, 00056 Data<T, 3, TG>& SurfaceRichardson, 00057 T wind_threshold = 0.001); 00058 00059 template<class TT, class TP, class T, class TG> 00060 void ComputePotentialTemperature(Data<TT, 4, TG>& Temperature, 00061 Data<TP, 4, TG>& Pressure, 00062 Data<T, 4, TG>& PotentialTemperature, 00063 T P0 = 101325., T cp = 1005.,T r = 287.0); 00064 00065 template<class TT, class TP, class T, class TG> 00066 void ComputePotentialTemperature(Data<TT, 3, TG>& Temperature, 00067 Data<TP, 3, TG>& Pressure, 00068 Data<T, 3, TG>& PotentialTemperature, 00069 T P0 = 101325., T cp = 1005.,T r = 287.0); 00070 00071 template<class TT, class TP, class T, class TG> 00072 void ComputeSaturationHumidity(Data<TT, 3, TG>& Temperature, 00073 Data<TP, 3, TG>& Pressure, 00074 Data<T, 3, TG>& SaturationHumidity); 00075 00076 template<class TT, class TP, class T, class TG> 00077 void ComputeSaturationHumidity(Data<TT, 4, TG>& Temperature, 00078 Data<TP, 4, TG>& Pressure, 00079 Data<T, 4, TG>& SaturationHumidity); 00080 00081 template<class TS, class TT, class TP, class T, class TG> 00082 void ComputeRelativeHumidity(Data<TS, 4, TG>& SpecificHumidity, 00083 Data<TT, 4, TG>& Temperature, 00084 Data<TP, 4, TG>& Pressure, 00085 Data<T, 4, TG>& RelativeHumidity); 00086 00087 template<class TH, class TS, class TW, class TL, class T, class TG> 00088 void ComputeSurfaceHumidity_diag(Data<TH, 4, TG>& Humidity, 00089 Data<TS, 3, TG>& SaturationHumidity, 00090 Data<TW, 3, TG>& SoilWater, 00091 Data<TL, 3, TG>& LUC, int sea_index, 00092 Data<T, 3, TG>& SurfaceHumidity, 00093 T veg = 1.0, T theta_cap = 0.323); 00094 00095 template<class TS, class TP, class T, class TG> 00096 void ComputeCriticalRelativeHumidity(Data<TS, 3, TG>& SurfacePressure, 00097 Data<TP, 4, TG>& Pressure, 00098 Data<T, 4, TG>& CriticalRelativeHumidity, 00099 T coeff0 = 2., T coeff1 = sqrt(3.)); 00100 00101 template<class TS, class TP, class T, class TG> 00102 void ComputeCriticalRelativeHumidity_extended(Data<TS, 3, TG>& SurfacePressure, 00103 Data<TP, 4, TG>& Pressure, 00104 Data<T, 4, TG>& CriticalRelativeHumidity, 00105 T coeff0 = 1.1, 00106 T coeff1 = sqrt(1.3), 00107 T a0 = 0., T a1 = 1.1); 00108 00109 template<class TB, class TS, class TP, class T, class TG> 00110 void ComputeCriticalRelativeHumidity(Data<TB, 3, TG>& BoundaryLayerHeight, 00111 Data<TS, 3, TG>& SurfacePressure, 00112 Data<TP, 4, TG>& Pressure, 00113 Data<T, 4, TG>& CriticalRelativeHumidity, 00114 T coeff0 = 2., T coeff1 = sqrt(3.), 00115 T BL_CRH = 0.98); 00116 00117 template<class TP, class T, class TG> 00118 void ComputeCriticalRelativeHumidity(Data<TP, 4, TG>& Pressure, 00119 Data<T, 4, TG>& CriticalRelativeHumidity, 00120 T CRH_0 = 0.75, T CRH_1 = 0.95, 00121 T CRH_2 = 0.95, 00122 T P_0 = 70000., T P_1 = 40000.); 00123 00124 template<class TR, class TC, class T, class TG> 00125 void ComputeCloudFraction(Data<TR, 4, TG>& RelativeHumidity, 00126 Data<TC, 4, TG>& CriticalRelativeHumidity, 00127 Data<T, 4, TG>& CloudFraction); 00128 00129 template<class TP, class TR, class TC, class T, class TG> 00130 void ComputeCloudFraction(Data<TP, 3, TG>& BoundaryLayerHeight, 00131 Data<TR, 4, TG>& RelativeHumidity, 00132 Data<TC, 4, TG>& CriticalRelativeHumidity, 00133 Data<T, 4, TG>& CloudFraction); 00134 00135 template<class TU, class TV, class T, class TG> 00136 void ComputeModule(Data<TU, 4, TG>& U, Data<TV, 4, TG>& V, 00137 Data<T, 4, TG>& Module); 00138 00139 template<class TU, class TV, class T, class TG> 00140 void ComputeModule(Data<TU, 4, TG>& U, Data<TV, 4, TG>& V, 00141 Data<T, 3, TG>& Module); 00142 00143 template<class TU, class TV, class T, class TG> 00144 void ComputeModule(Data<TU, 3, TG>& U, Data<TV, 3, TG>& V, 00145 Data<T, 3, TG>& Module); 00146 00147 template<class TC, class TP, class T, class TG> 00148 void ComputeCloudiness(Data<TC, 4, TG>& CloudFraction, 00149 Data<TP, 4, TG>& Pressure, 00150 Grid<TG>& GridZ_interf, 00151 Data<int, 4>& LowIndices, 00152 Data<int, 4>& MediumIndices, 00153 Data<int, 4>& HighIndices, 00154 Data<T, 3, TG>& LowCloudiness, 00155 Data<T, 3, TG>& MediumCloudiness, 00156 Data<T, 3, TG>& HighCloudiness, 00157 T P_0 = 80000., T P_1 = 45000.); 00158 00159 template <class TT, class TP, class TH, 00160 class T, class TG> 00161 void ComputeCloudHeight(Data<TT, 4, TG>& Temperature, 00162 Data<TP, 4, TG>& Pressure, 00163 Data<TH, 4, TG>& Humidity, 00164 T (CriticalRelativeHumidity)(const T&, const T&, 00165 const T&), 00166 Data<T, 3, TG>& CloudHeight); 00167 00168 template <class TT, class TP, class TH, 00169 class TCRH, class T, class TG> 00170 void ComputeCloudHeight(Data<TT, 4, TG>& Temperature, 00171 Data<TP, 4, TG>& Pressure, 00172 Data<TH, 4, TG>& Humidity, 00173 Data<TCRH, 4, TG>& CriticalRelativeHumidity, 00174 Data<T, 3, TG>& CloudHeight); 00175 00176 template <class T, class TG> 00177 void ComputeCloudHeight(Data<int, 4>& LowIndices, 00178 Data<int, 4>& MediumIndices, 00179 Data<int, 4>& HighIndices, 00180 Grid<TG>& GridZ_interf, 00181 Data<T, 3, TG>& CloudHeight); 00182 00183 template <class Ta, class Tb, class TSP, 00184 class T, class TG> 00185 void ComputePressure(Data<Ta, 1, TG>& alpha, Data<Tb, 1, TG>& beta, 00186 Data<TSP, 3, TG>& SurfacePressure, 00187 Data<T, 4, TG>& Pressure, T P0 = 101325.); 00188 00189 template<class TPS, class TP, class TT, class T, class TG> 00190 void ComputeHeight(Data<TPS, 3, TG>& SurfacePressure, 00191 Data<TP, 4, TG>& Pressure, 00192 Data<TT, 4, TG>& Temperature, 00193 Grid<T>& Height, T g = 9.80665, T r = 287.0); 00194 00195 template<class TP, class TT, class T, class TG> 00196 void ComputeInterfHeight(Data<TP, 4, TG>& Pressure, 00197 Data<TT, 4, TG>& Temperature, 00198 Grid<T>& Height, bool ground_set = false, 00199 T g = 9.80665, T r = 287.0); 00200 00201 template<class TP, class TT, class T, class TG> 00202 void ComputeMiddleHeight(Data<TP, 4, TG>& Pressure, 00203 Data<TT, 4, TG>& Temperature, 00204 Grid<T>& InterfHeight, Grid<T>& MiddleHeight, 00205 T g = 9.80665, T r = 287.0); 00206 00207 template <class TT, class TH, class T, class TG> 00208 void ComputeVirtualTemperature(Data<TT, 4, TG>& Temperature, 00209 Data<TH, 4, TG>& SpecificHumidity, 00210 Data<T, 4, TG>& VirtualTemperature, 00211 T c = 0.608); 00212 00213 } // namespace AtmoData. 00214 00215 #define ATMODATA_FILE_METEOROLOGY_HXX 00216 #endif

Generated on Fri Nov 5 14:42:11 2004 for AtmoData by doxygen 1.3.8