15#include "matpack_data.h"
24#define START_OF_PSD_METHODS() \
25 const Index nin = pnd_agenda_input_names.nelem(); \
26 const Index ndx = dpnd_data_dx_names.nelem(); \
27 const Index np = pnd_agenda_input.nrows(); \
28 const Index nsi = psd_size_grid.nelem(); \
29 ArrayOfIndex dx2in(ndx); \
31 if (pnd_agenda_input.ncols() != nin) \
32 throw runtime_error( \
33 "Length of *pnd_agenda_input_names* and number of " \
34 "columns in *pnd_agenda_input* must be equal."); \
37 throw runtime_error( \
38 "The length of *dpnd_data_dx_names* can not " \
39 "exceed the one of *pnd_agenda_input_names*."); \
40 for (Index i = 0; i < ndx; i++) { \
41 dx2in[i] = find_first(pnd_agenda_input_names, dpnd_data_dx_names[i]); \
44 os << "dpnd_data_dx_names[" << i << "] is " << dpnd_data_dx_names[i] \
45 << "\nThis string could not be found in *pnd_agenda_input_names*."; \
46 throw std::runtime_error(os.str()); \
51 psd_data.resize(np, nsi); \
54 dpsd_data_dx.resize(ndx, np, nsi); \
57 dpsd_data_dx.resize(0, 0, 0); \
78 const Vector& diameter,
110 Tensor3& dpsd_data_dx,
112 const Vector& psd_size_grid,
113 const Vector& pnd_agenda_input_t,
114 const Matrix& pnd_agenda_input,
117 const Numeric& scat_species_a,
118 const Numeric& scat_species_b,
123 const Numeric& t_min,
124 const Numeric& t_max,
146 Tensor3& dpsd_data_dx,
148 const Vector& pnd_agenda_input_t,
149 const Matrix& pnd_agenda_input,
153 const Index& species_index,
154 const Numeric& t_min,
155 const Numeric& t_max,
178void psd_rain_W16(Vector& psd,
const Vector& diameter,
const Numeric& rwc);
205 Tensor3& dpsd_data_dx,
207 const Vector& psd_size_grid,
208 const Vector& pnd_agenda_input_t,
209 const Matrix& pnd_agenda_input,
212 const Numeric& scat_species_a,
213 const Numeric& scat_species_b,
214 const Numeric& n_alpha_in,
215 const Numeric& n_b_in,
216 const Numeric& mu_in,
217 const Numeric& gamma_in,
218 const Numeric& t_min,
219 const Numeric& t_max,
246 const Vector& diameter,
271 const Numeric& N_tot,
273 const String& hydrometeor_type);
292 const Vector& diameter_max,
This file contains the definition of Array.
Implementation of gridded fields.
Header file for interpolation.cc.
Declarations having to do with the four output streams.
Scattering database structure and functions.
Propagation path structure and functions.
void psd_rain_W16(Vector &psd, const Vector &diameter, const Numeric &rwc)
The Wang16 rain DSD DEPRECATED BY NEW MGD_SMM_COMMON Only included for compatibility with "old" pnd_f...
void psd_snow_F07(Vector &psd, const Vector &diameter, const Numeric &swc, const Numeric &t, const Numeric alpha, const Numeric beta, const String ®ime)
The F07 snow PSD.
void psd_MY05(Vector &psd, Matrix &dpsd, const Vector &diameter_max, const Numeric N_tot, const Numeric WC, const String psd_type)
void psd_mgd_mass_and_something(Matrix &psd_data, Tensor3 &dpsd_data_dx, const String &something, const Vector &psd_size_grid, const Vector &pnd_agenda_input_t, const Matrix &pnd_agenda_input, const ArrayOfString &pnd_agenda_input_names, const ArrayOfString &dpnd_data_dx_names, const Numeric &scat_species_a, const Numeric &scat_species_b, const Numeric &n0, const Numeric &mu, const Numeric &la, const Numeric &ga, const Numeric &t_min, const Numeric &t_max, const Index &picky, const Verbosity &)
Code common to MGD PSD involving the integrated mass.
Numeric n0_from_t(Numeric t)
Sets N0star based on temperature.
void psd_cloudice_MH97(Vector &psd, const Vector &diameter, const Numeric &iwc, const Numeric &t, const bool noisy)
The MH97 cloud ice PSD.
void psd_mono_common(Matrix &psd_data, Tensor3 &dpsd_data_dx, const String &type, const Vector &pnd_agenda_input_t, const Matrix &pnd_agenda_input, const ArrayOfString &pnd_agenda_input_names, const ArrayOfString &dpnd_data_dx_names, const ArrayOfArrayOfScatteringMetaData &scat_meta, const Index &species_index, const Numeric &t_min, const Numeric &t_max, const Index &picky, const Verbosity &)
Code common to PSDs of mono type.
Numeric n0_from_iwc_dm(Numeric iwc, Numeric dm, Numeric rho)
Derives N0star from IWC and Dm.
Numeric dm_from_iwc_n0(Numeric iwc, Numeric n0, Numeric rho)
Derives Dm from IWC and N0star.
void psd_SB06(Vector &psd, Matrix &dpsd, const Vector &mass, const Numeric &N_tot, const Numeric &WC, const String &hydrometeor_type)
void psd_mgd_smm_common(Matrix &psd_data, Tensor3 &dpsd_data_dx, const String &psd_name, const Vector &psd_size_grid, const Vector &pnd_agenda_input_t, const Matrix &pnd_agenda_input, const ArrayOfString &pnd_agenda_input_names, const ArrayOfString &dpnd_data_dx_names, const Numeric &scat_species_a, const Numeric &scat_species_b, const Numeric &n_alpha_in, const Numeric &n_b_in, const Numeric &mu_in, const Numeric &gamma_in, const Numeric &t_min, const Numeric &t_max, const Index &picky, const Verbosity &)
Code common to a number of modified gamma PSDs used with single-moment mass schemes.