# ARTS built-in documentation server

## Workspace Method psdMilbrandtYau05

### Description

Calculates psd_data and dpsd_data_dx following Milbrandt and Yau (2005) two moment particle size distribution for cloud water, cloud ice, rain, snow, graupel and hail, which is used in the GEM model. WSM for use in pnd_agenda_array for mapping particle_bulkprop_field to pnd_field using pnd_fieldCalcFromParticleBulkProps. Produces the particle size distribution values (dN/dD) and their derivates with respect to independent variables x by dpnd_data_dx_names over multiple particle sizes and atmospheric levels (or SWC/T combinations). psd_size_grid is considered to be in terms of maximum diameter. WC is considered to be in terms of mass content (or mass density), ie. units of [kg/m3]. N_tot in terms of number density, ie. units of [1/m3]. Derivatives with respect to WC and N_tot are obtained analytically. Six particle size distributions for the different hydrometeors are handled, governed by setting of ``hydrometeor_type``, where (1) "cloud_water" selects cloud liquid water , (2) "cloud_ice" selects cloud ice, (3) "snow" selects snow, (4) "rain" selects rain, (5) "graupel" selects graupel, and (6) "hail" selects hail, Requirements: pnd_agenda_input_names must include:: ["X-mass_density", "X-number_density" ]. "X" is an arbitrary name The entries in dpnd_data_dx_names (ie. the allowed independent variablea ) can be "X-mass_density" and\or "X-number_density". The validity range of WC is not limited. Negative WC will produce negative psd values following a distribution given by abs(WC), ie. abs(psd)=f(abs(WC)). If temperature is outside [``t_min``,``t_max``] psd=0 and dpsd=0 if picky=0, or an error is thrown if picky=1.

**Authors: **Manfred Brath

### Synopsis

psdMilbrandtYau05( | psd_data, dpsd_data_dx, psd_size_grid, pnd_agenda_input_t, pnd_agenda_input, pnd_agenda_input_names, dpnd_data_dx_names, hydrometeor_type, t_min, t_max, picky ) |

### Variables

OUT | psd_data | (Matrix) | Particle size distribution values for a set of points. |

OUT | dpsd_data_dx | (Tensor3) | Partial derivates of psd_data. |

IN | psd_size_grid | (Vector) | The particle sizes associated with psd_data. |

IN | pnd_agenda_input_t | (Vector) | Temperature input to one element of pnd_agenda_array. |

IN | pnd_agenda_input | (Matrix) | The variable input to one element of pnd_agenda_array. |

IN | pnd_agenda_input_names | (ArrayOfString) | Naming of (existing or expected) data in pnd_agenda_input. |

IN | dpnd_data_dx_names | (ArrayOfString) | Selection of partial derivatives of pnd_data. |

GIN | hydrometeor_type | (String) | Hydrometeor type (see above description). |

GIN | t_min | (Numeric, Default: 0) | Low temperature limit to calculate a psd. |

GIN | t_max | (Numeric, Default: 999) | High temperature limit to calculate a psd. |

GIN | picky | (Index, Default: 0) | Flag whether to be strict with parametrization value checks. |