ARTS 2.5.0 (git: 9ee3ac6c)
check_input.h File Reference
#include "agenda_class.h"
#include "exceptions.h"
#include "gridded_fields.h"
#include "matpackVII.h"
#include "mystring.h"

Go to the source code of this file.

Classes

class  runtime_error_not_found
 Subclasses of runtime_error. More...
 
class  runtime_error_not_unique
 Subclasses of runtime_error. More...
 

Functions

void chk_if_bool (const String &x_name, const Index &x)
 chk_if_bool More...
 
void chk_if_in_range (const String &x_name, const Index &x, const Index &x_low, const Index &x_high)
 chk_if_in_range More...
 
void chk_if_increasing (const String &x_name, const ArrayOfIndex &x)
 chk_if_increasing More...
 
void chk_not_negative (const String &x_name, const Numeric &x)
 chk_not_negative More...
 
void chk_if_in_range (const String &x_name, const Numeric &x, const Numeric &x_low, const Numeric &x_high)
 chk_if_in_range More...
 
void chk_if_in_range_exclude_low (const String &x_name, const Numeric &x, const Numeric &x_low, const Numeric &x_high)
 chk_if_in_range_exclude_low More...
 
void chk_if_in_range_exclude_high (const String &x_name, const Numeric &x, const Numeric &x_low, const Numeric &x_high)
 chk_if_in_range_exclude_high More...
 
void chk_if_in_range_exclude (const String &x_name, const Numeric &x, const Numeric &x_low, const Numeric &x_high)
 chk_if_in_range_exclude More...
 
void chk_vector_length (const String &x_name, ConstVectorView x, const Index &l)
 chk_vector_length More...
 
void chk_vector_length (const String &x1_name, const String &x2_name, ConstVectorView x1, ConstVectorView x2)
 chk_vector_length More...
 
void chk_if_increasing (const String &x_name, ConstVectorView x)
 chk_if_increasing More...
 
void chk_if_decreasing (const String &x_name, ConstVectorView x)
 chk_if_decreasing More...
 
void chk_if_equal (const String &x1_name, const String &x2_name, ConstVectorView v1, ConstVectorView v2, Numeric margin=1e-6)
 chk_if_equal More...
 
void chk_matrix_ncols (const String &x_name, ConstMatrixView x, const Index &l)
 chk_matrix_ncols More...
 
void chk_matrix_nrows (const String &x_name, ConstMatrixView x, const Index &l)
 chk_matrix_nrows More...
 
template<class T >
Index chk_contains (const String &x_name, const Array< T > &x, const T &what)
 Check if an array contains a value. More...
 
template<class T >
void chk_size (const String &x_name, const Array< T > &x, const Index &c)
 Check the size of an array. More...
 
void chk_size (const String &x_name, ConstVectorView x, const Index &c)
 Runtime check for size of Vector. More...
 
void chk_size (const String &x_name, ConstMatrixView x, const Index &r, const Index &c)
 Runtime check for size of Matrix. More...
 
void chk_size (const String &x_name, ConstTensor3View x, const Index &p, const Index &r, const Index &c)
 Runtime check for size of Tensor. More...
 
void chk_size (const String &x_name, ConstTensor4View x, const Index &b, const Index &p, const Index &r, const Index &c)
 Runtime check for size of Tensor. More...
 
void chk_size (const String &x_name, ConstTensor5View x, const Index &s, const Index &b, const Index &p, const Index &r, const Index &c)
 Runtime check for size of Tensor. More...
 
void chk_size (const String &x_name, ConstTensor6View x, const Index &v, const Index &s, const Index &b, const Index &p, const Index &r, const Index &c)
 Runtime check for size of Tensor. More...
 
void chk_size (const String &x_name, ConstTensor7View x, const Index &l, const Index &v, const Index &s, const Index &b, const Index &p, const Index &r, const Index &c)
 Runtime check for size of Tensor. More...
 
void chk_not_empty (const String &x_name, const Agenda &x)
 chk_not_empty More...
 
void chk_interpolation_grids_loose (Index &ing_min, Index &ing_max, const String &which_interpolation, ConstVectorView old_grid, ConstVectorView new_grid, ConstVectorView data, const Index order=1)
 Check interpolation grids. More...
 
void chk_interpolation_grids_loose_no_data_check (Index &ing_min, Index &ing_max, const String &which_interpolation, ConstVectorView old_grid, ConstVectorView new_grid, const Index order=1)
 Check interpolation grids. More...
 
void chk_interpolation_pgrids_loose_no_data_check (Index &ing_min, Index &ing_max, const String &which_interpolation, ConstVectorView old_pgrid, ConstVectorView new_pgrid, const Index order=1)
 Check log pressure interpolation grids. More...
 
void chk_interpolation_grids_loose_check_data (Index &ing_min, Index &ing_max, const String &which_interpolation, ConstVectorView old_grid, ConstVectorView new_grid, ConstVectorView data)
 Check interpolation grids. More...
 
void chk_interpolation_grids (const String &which_interpolation, ConstVectorView old_grid, ConstVectorView new_grid, const Index order=1, const Numeric &extpolfac=0.5, const bool islog=false)
 Check interpolation grids. More...
 
void chk_interpolation_grids (const String &which_interpolation, ConstVectorView old_grid, const Numeric &new_grid, const Index order=1, const Numeric &extpolfac=0.5)
 Check interpolation grids. More...
 
void chk_interpolation_pgrids (const String &which_interpolation, ConstVectorView old_pgrid, ConstVectorView new_pgrid, const Index order=1, const Numeric &extpolfac=0.5)
 Check log pressure interpolation grids. More...
 
void chk_atm_grids (const Index &dim, ConstVectorView p_grid, ConstVectorView lat_grid, ConstVectorView lon_grid)
 chk_atm_grids More...
 
void chk_atm_field (const String &x_name, ConstTensor3View x, const Index &dim, ConstVectorView p_grid, ConstVectorView lat_grid, ConstVectorView lon_grid, const bool &chk_lat90=1)
 chk_atm_field (simple fields) More...
 
void chk_atm_field (const String &x_name, ConstTensor4View x, const Index &dim, const Index &nspecies, ConstVectorView p_grid, ConstVectorView lat_grid, ConstVectorView lon_grid, const bool &check_nan=1)
 chk_atm_field (fields with one more dimension) More...
 
void chk_atm_vecfield_lat90 (const String &x1_name, ConstTensor3View x1, const String &x2_name, ConstTensor3View x2, const Index &dim, ConstVectorView lat_grid, const Numeric &threshold=1e-3)
 chk_atm_vecfield_lat90 More...
 
void chk_latlon_true (const Index &atmosphere_dim, ConstVectorView lat_grid, ConstVectorView lat_true, ConstVectorView lon_true)
 chk_latlon_true More...
 
void chk_atm_surface (const String &x_name, const Matrix &x, const Index &dim, ConstVectorView lat_grid, ConstVectorView lon_grid)
 chk_atm_surface More...
 
void chk_rte_pos (const Index &atmosphere_dim, ConstVectorView rte_pos, const bool &is_rte_pos2=false)
 chk_rte_pos More...
 
void chk_rte_los (const Index &atmosphere_dim, ConstVectorView rte_los)
 chk_rte_los More...
 
void chk_griddedfield_gridname (const GriddedField &gf, const Index gridindex, const String &gridname)
 Check name of grid in GriddedField. More...
 
void chk_met_mm_backend (const Matrix &bdsp)
 Check met_mm_backend. More...
 

Detailed Description

Author
Patrick Eriksson patri.nosp@m.ck.e.nosp@m.rikss.nosp@m.on@c.nosp@m.halme.nosp@m.rs.s.nosp@m.e
Date
2002-04-15

This file contains the declaration of functions in check_input.cc.

Definition in file check_input.h.

Function Documentation

◆ chk_atm_field() [1/2]

void chk_atm_field ( const String x_name,
ConstTensor3View  x,
const Index dim,
ConstVectorView  p_grid,
ConstVectorView  lat_grid,
ConstVectorView  lon_grid,
const bool &  chk_lat90 
)

chk_atm_field (simple fields)

Checks if an atmospheric field matches the dimensionality and the grids.

The function gives an error message if this is not the case.

Parameters
x_nameThe name of the atmospheric field.
xA variable holding an atmospheric field.
dimThe atmospheric dimensionality.
p_gridThe pressure grid.
lat_gridThe latitude grid.
lon_gridThe longitude grid.
chk_lat90Flag whether pole consistency check to be done (only relevant for dim==3.
Author
Patrick Eriksson
Date
2002-04-15

Definition at line 1162 of file check_input.cc.

References ARTS_USER_ERROR_IF, chk_if_bool(), is_lon_cyclic(), is_same_within_epsilon(), nonstd::isnan(), max, ncols, ConstTensor3View::ncols(), ConstVectorView::nelem(), npages, ConstTensor3View::npages(), nrows, and ConstTensor3View::nrows().

Referenced by AtmFieldPerturb(), AtmFieldPerturbAtmGrids(), atmfields_checkedCalc(), AtmFieldsExpand1D(), AtmFieldsRefinePgrid(), atmgeom_checkedCalc(), cloudbox_checkedCalc(), InterpAtmFieldToPosition(), particle_bulkpropRadarOnionPeeling(), and pnd_fieldCalcFromParticleBulkProps().

◆ chk_atm_field() [2/2]

void chk_atm_field ( const String x_name,
ConstTensor4View  x,
const Index dim,
const Index nspecies,
ConstVectorView  p_grid,
ConstVectorView  lat_grid,
ConstVectorView  lon_grid,
const bool &  check_nan 
)

chk_atm_field (fields with one more dimension)

Checks if an atmospheric field matches the dimensionality and the grids. This is the version for fields like vmr_field, which are a Tensor4, not a Tensor3. (First dimension is the gas species.)

The function gives an error message if this is not the case.

Parameters
x_nameThe name of the atmospheric field.
xA variable holding an atmospheric field.
dimThe atmospheric dimensionality.
nspeciesNumber of species.
p_gridThe pressure grid.
lat_gridThe latitude grid.
lon_gridThe longitude grid.
Author
Stefan Buehler, cloned from Patrick Eriksson
Date
2002-12-20

Definition at line 1273 of file check_input.cc.

References ARTS_USER_ERROR_IF, is_same_within_epsilon(), nonstd::isnan(), nbooks, ConstTensor4View::nbooks(), ncols, ConstTensor4View::ncols(), ConstVectorView::nelem(), npages, ConstTensor4View::npages(), nrows, and ConstTensor4View::nrows().

◆ chk_atm_grids()

void chk_atm_grids ( const Index dim,
ConstVectorView  p_grid,
ConstVectorView  lat_grid,
ConstVectorView  lon_grid 
)

chk_atm_grids

Checks if the atmospheric grids and the specified atmospheric dimensionality match, and if the grids are ordered correctly.

The function gives an error message if this is not the case.

Parameters
dimThe atmospheric dimensionality.
p_gridThe pressure grid.
lat_gridThe latitude grid.
lon_gridThe longitude grid.
Author
Patrick Eriksson
Date
2002-04-15

Definition at line 1100 of file check_input.cc.

References ARTS_USER_ERROR_IF, chk_if_decreasing(), chk_if_increasing(), and ConstVectorView::nelem().

Referenced by atmfields_checkedCalc(), AtmFieldsAndParticleBulkPropFieldFromCompact(), AtmFieldsCalc(), AtmFieldsCalcExpand1D(), AtmFieldsExpand1D(), AtmFieldsRefinePgrid(), atmgeom_checkedCalc(), cloudbox_field_monoSetConst(), cloudbox_fieldUpdateSeq3D(), cloudboxSetAutomatically(), cloudboxSetManually(), InterpAtmFieldToPosition(), InterpSurfaceFieldToPosition(), MagFieldsCalc(), MagFieldsCalcExpand1D(), pnd_fieldCalcFromParticleBulkProps(), pnd_fieldCalcFrompnd_field_raw(), WindFieldsCalc(), and WindFieldsCalcExpand1D().

◆ chk_atm_surface()

void chk_atm_surface ( const String x_name,
const Matrix x,
const Index dim,
ConstVectorView  lat_grid,
ConstVectorView  lon_grid 
)

chk_atm_surface

Checks if a surface-type variable matches the dimensionality and the grids.

The function gives an error message if this is not the case.

Parameters
x_nameThe name of the surface-type variable.
xThe variable holding the surface data.
dimThe atmospheric dimensionality.
lat_gridThe latitude grid.
lon_gridThe longitude grid.
Author
Patrick Eriksson
Date
2002-04-15

Definition at line 1536 of file check_input.cc.

References ARTS_USER_ERROR_IF, is_same_within_epsilon(), ncols, ConstMatrixView::ncols(), ConstVectorView::nelem(), nrows, and ConstMatrixView::nrows().

Referenced by atmgeom_checkedCalc(), InterpSurfaceFieldToPosition(), and particle_bulkpropRadarOnionPeeling().

◆ chk_atm_vecfield_lat90()

void chk_atm_vecfield_lat90 ( const String x1_name,
ConstTensor3View  x1,
const String x2_name,
ConstTensor3View  x2,
const Index dim,
ConstVectorView  lat_grid,
const Numeric threshold 
)

chk_atm_vecfield_lat90

Checks if a two-compnent vector atmospheric field is consistant at the poles.

Similar to the field-constant at poles check of chk_atm_field, but checking the total vector instead of each component to be constant (since this involves some numerics, we allow a deviation threshold instead of perfect match). Note that each component of the vector is stored in a separate atmospheric field. Intended for variables that are supposed to be two horizontal components of a 3D vector field (e.g., winds, magnetic field). It is assumed that individual fields have passed chk_atm_field. The function gives an error message if a mismatch is encountered.

Parameters
x1_nameThe name of the atmospheric field.
x1A variable holding an atmospheric field.
x2_nameThe name of the atmospheric field.
x2A variable holding an atmospheric field.
dimThe atmospheric dimensionality.
lat_gridThe latitude grid.
thresholdThe percentage threshold the total vector lengths along the pole are allowed to deviate.
Author
Jana Mendrok
Date
2012-06-29

Definition at line 1400 of file check_input.cc.

Referenced by atmfields_checkedCalc().

◆ chk_contains()

template<class T >
Index chk_contains ( const String x_name,
const Array< T > &  x,
const T &  what 
)

Check if an array contains a value.

This makes sure that the array x contains the element with value what exactly once.

As a bonus, it returns the index of what in x.

This template function can be used for arrays of anything, provided that the "==" operator is defined.

Returns
The index of the thing we looked for.
Parameters
x_nameName of the array to check
xThe array to check
whatThe value to look for.
Exceptions
runtime_error_not_found,runtime_error_not_unique
Author
Stefan Buehler
Date
2002-11-28

Definition at line 149 of file check_input.h.

References find_all(), and Array< base >::nelem().

Referenced by GasAbsLookup::Adapt(), and x2artsAtmAndSurf().

◆ chk_griddedfield_gridname()

◆ chk_if_bool()

void chk_if_bool ( const String x_name,
const Index x 
)

chk_if_bool

Checks that a variable of type Index has the value 0 or 1.

The function gives an error message if this is not the case.

Parameters
x_nameThe name of the variable.
xA variable of type Index.
Author
Patrick Eriksson
Date
2002-04-15

Definition at line 65 of file check_input.cc.

References ARTS_USER_ERROR_IF, and is_bool().

Referenced by chk_atm_field(), cloudbox_checkedCalc(), sensor_responseAntenna(), sensor_responseInit(), and sensor_responseMetMM().

◆ chk_if_decreasing()

void chk_if_decreasing ( const String x_name,
ConstVectorView  x 
)

chk_if_decreasing

Checks if a vector is strictly decreasing.

Duplicated values are not allowed.

The function gives an error message if this is not the case.

Parameters
x_nameThe name of the variable.
xA variable of type Vector.
Author
Patrick Eriksson
Date
2002-04-15

Definition at line 325 of file check_input.cc.

References ARTS_USER_ERROR_IF, and is_decreasing().

Referenced by GasAbsLookup::Adapt(), chk_atm_grids(), cloudbox_fieldUpdate1D(), and cloudbox_fieldUpdateSeq1D().

◆ chk_if_equal()

void chk_if_equal ( const String x1_name,
const String x2_name,
ConstVectorView  v1,
ConstVectorView  v2,
Numeric  margin 
)

chk_if_equal

Checks if two vectors are equal within a margin.

Parameters
x1_nameThe name of the first variable (used in error message).
x2_nameThe name of the second variable (used in error message).
v1First vector
v2Second vector
marginuncertainty margin. Default: 1e-6
Author
Gerrit Holl
Date
2011-05-04

Definition at line 345 of file check_input.cc.

References abs, ARTS_USER_ERROR_IF, chk_vector_length(), and ConstVectorView::nelem().

Referenced by FieldFromGriddedField(), and FieldFromGriddedFieldCheckLatLonHelper().

◆ chk_if_in_range() [1/2]

void chk_if_in_range ( const String x_name,
const Index x,
const Index x_low,
const Index x_high 
)

chk_if_in_range

Checks that a variable of type Index has a value inside the specified range.

The function gives an error message if this is not the case.

Parameters
x_nameThe name of the variable.
xA variable of type Index.
x_lowLowest allowed value for x.
x_highHighest allowed value for x.
Author
Patrick Eriksson
Date
2002-04-15

Definition at line 86 of file check_input.cc.

References ARTS_USER_ERROR_IF.

Referenced by GasAbsLookup::Adapt(), AntennaMultiBeamsToPencilBeams(), atmfields_checkedCalc(), AtmFieldsCalc(), AtmFieldsCalcExpand1D(), AtmFieldsExpand1D(), atmgeom_checkedCalc(), cloudbox_field_monoSetConst(), cloudboxSetAutomatically(), cloudboxSetManually(), cloudboxSetManuallyAltitude(), complex_n_ice_matzler06(), complex_n_water_liebe93(), complex_refr_indexIceMatzler06(), doit_za_interpSet(), DoitGetIncoming(), DoitGetIncoming1DAtm(), DoitInit(), FastemStandAlone(), InterpGriddedField2ToPosition(), iyRadarSingleScat(), iySurfaceRtpropAgenda(), iySurfaceRtpropCalc(), MagFieldsCalc(), MagFieldsCalcExpand1D(), MCGeneral(), MCRadar(), particle_bulkpropRadarOnionPeeling(), pnd_fieldCalcFromParticleBulkProps(), pnd_fieldZero(), propmat_clearsky_fieldCalc(), refellipsoidOrbitPlane(), rte_losSet(), rte_pos_losMoveToStartOfPpath(), rte_posSet(), ScatElementsPndAndScatAdd(), ScatElementsToabs_speciesAdd(), ScatSpeciesPndAndScatAdd(), sensor_responseAntenna(), sensor_responseInit(), sensor_responseStokesRotation(), specular_losCalc(), specular_losCalcNoTopography(), surface_complex_refr_indexFromGriddedField5(), surface_reflectivityFromGriddedField6(), surface_scalar_reflectivityFromGriddedField4(), surface_typeInterpTypeMask(), surfaceBlackbody(), surfaceFastem(), surfaceFlatReflectivity(), surfaceFlatRefractiveIndex(), surfaceFlatRvRh(), surfaceFlatScalarReflectivity(), surfaceLambertianSimple(), surfaceTelsem(), surfaceTessem(), telsemAtlasLookup(), telsemStandalone(), telsemSurfaceTypeLandSea(), WindFieldsCalc(), WindFieldsCalcExpand1D(), yCalc(), and yRadar().

◆ chk_if_in_range() [2/2]

void chk_if_in_range ( const String x_name,
const Numeric x,
const Numeric x_low,
const Numeric x_high 
)

chk_if_in_range

Checks that a variable of type Numeric has a value inside the specified range.

The function gives an error message if this is not the case.

Parameters
x_nameThe name of the variable.
xA variable of type Numeric.
x_lowLowest allowed value for x.
x_highHighest allowed value for x.
Author
Patrick Eriksson
Date
2002-04-15

Definition at line 155 of file check_input.cc.

References ARTS_USER_ERROR_IF.

◆ chk_if_in_range_exclude()

void chk_if_in_range_exclude ( const String x_name,
const Numeric x,
const Numeric x_low,
const Numeric x_high 
)

chk_if_in_range_exclude

Checks that a variable of type Numeric has a value inside the specified range. The low and high values are excluded from the valid range.

The function gives an error message if this is not the case.

Parameters
x_nameThe name of the variable.
xA variable of type Numeric.
x_lowLowest allowed value for x.
x_highHighest allowed value for x.
Author
Oliver Lemke
Date
2016-05-10

Definition at line 230 of file check_input.cc.

References ARTS_USER_ERROR_IF.

Referenced by FastemStandAlone(), surfaceTelsem(), and surfaceTessem().

◆ chk_if_in_range_exclude_high()

void chk_if_in_range_exclude_high ( const String x_name,
const Numeric x,
const Numeric x_low,
const Numeric x_high 
)

chk_if_in_range_exclude_high

Checks that a variable of type Numeric has a value inside the specified range. The high value is excluded from the valid range.

The function gives an error message if this is not the case.

Parameters
x_nameThe name of the variable.
xA variable of type Numeric.
x_lowLowest allowed value for x.
x_highHighest allowed value for x.
Author
Oliver Lemke
Date
2016-05-10

Definition at line 205 of file check_input.cc.

References ARTS_USER_ERROR_IF.

Referenced by FastemStandAlone(), and surfaceTessem().

◆ chk_if_in_range_exclude_low()

void chk_if_in_range_exclude_low ( const String x_name,
const Numeric x,
const Numeric x_low,
const Numeric x_high 
)

chk_if_in_range_exclude_low

Checks that a variable of type Numeric has a value inside the specified range. The low value is excluded from the valid range.

The function gives an error message if this is not the case.

Parameters
x_nameThe name of the variable.
xA variable of type Numeric.
x_lowLowest allowed value for x.
x_highHighest allowed value for x.
Author
Oliver Lemke
Date
2016-05-10

Definition at line 180 of file check_input.cc.

References ARTS_USER_ERROR_IF.

◆ chk_if_increasing() [1/2]

void chk_if_increasing ( const String x_name,
const ArrayOfIndex x 
)

chk_if_increasing

Checks if an ArrayOfIndex is strictly increasing. Cloned from Patricks similar function for Vector.

Duplicated values are not allowed.

The function gives an error message if this is not the case.

Parameters
x_nameThe name of the variable.
xA variable of type ArrayOfIndex.
Author
Stefan Buehler
Date
2007-05-18

Definition at line 111 of file check_input.cc.

References ARTS_USER_ERROR_IF, and is_increasing().

Referenced by GasAbsLookup::Adapt(), atmgeom_checkedCalc(), chk_atm_grids(), cloudbox_fieldUpdate1D(), cloudbox_fieldUpdateSeq1D(), cloudbox_fieldUpdateSeq3D(), doit_conv_flagAbsBT(), doit_conv_flagLsq(), DoitCalc(), scat_data_checkedCalc(), ScatElementsToabs_speciesAdd(), sensor_responseAntenna(), SurfaceFlatScalarReflectivity(), WMRFSelectChannels(), yCalc(), and yRadar().

◆ chk_if_increasing() [2/2]

void chk_if_increasing ( const String x_name,
ConstVectorView  x 
)

chk_if_increasing

Checks if a vector is strictly increasing.

Duplicated values are not allowed.

The function gives an error message if this is not the case.

Parameters
x_nameThe name of the variable.
xA variable of type Vector.
Author
Patrick Eriksson
Date
2002-04-15

Definition at line 304 of file check_input.cc.

References ARTS_USER_ERROR_IF, and is_increasing().

◆ chk_interpolation_grids() [1/2]

void chk_interpolation_grids ( const String which_interpolation,
ConstVectorView  old_grid,
const Numeric new_grid,
const Index  order,
const Numeric extpolfac 
)

Check interpolation grids.

This function checks if old and new grid for an interpolation are ok. If not, it throws a detailed runtime error message. This is intended for workspace method input variable checking.

This is for the special case that the new grid is just a single Numeric, instead of a Vector. ("Red" interpolation.) It just calles the other more general chk_interpolation_grids function for which both grid arguments are vectors.

Parameters
[in]which_interpolationA string describing the interpolation for which the grids are intended.
[in]old_gridThe original grid.
[in]new_gridThe new grid.
[in]orderInterpolation order. (Default value is 1.)
[in]extpolfacThe extrapolation fraction. See gridpos function for details. Has a default value, which is consistent with gridpos.
Author
Stefan Buehler
Date
2008-11-24

Definition at line 1038 of file check_input.cc.

References chk_interpolation_grids(), and v.

◆ chk_interpolation_grids() [2/2]

void chk_interpolation_grids ( const String which_interpolation,
ConstVectorView  old_grid,
ConstVectorView  new_grid,
const Index  order,
const Numeric extpolfac,
const bool  islog 
)

Check interpolation grids.

This function checks if old and new grid for an interpolation are ok. If not, it throws a detailed runtime error message. This is intended for workspace method input variable checking.

Parameters
[in]which_interpolationA string describing the interpolation for which the grids are intended.
[in]old_gridThe original grid.
[in]new_gridThe new grid.
[in]orderInterpolation order. (Default value is 1.)
[in]extpolfacThe extrapolation fraction. See gridpos function for details. Has a default value, which is consistent with gridpos.
Author
Stefan Buehler
Date
2008-11-24

Definition at line 906 of file check_input.cc.

References ARTS_USER_ERROR_IF, is_decreasing(), is_increasing(), max, min, ConstVectorView::nelem(), and var_string().

Referenced by atm_fields_compactAddSpecies(), chk_interpolation_grids(), chk_interpolation_pgrids(), cia_interpolation(), cloudbox_field_monoOptimizeReverse(), complex_n_interp(), XsecRecord::Extract(), GriddedFieldLatLonRegridHelper(), InterpSurfaceFieldToPosition(), MagFieldsCalc(), MagFieldsFromAltitudeRawCalc(), opt_prop_sptFromData(), opt_prop_sptFromMonoData(), opt_prop_sptFromScat_data(), pha_mat_sptFromData(), pha_mat_sptFromDataDOITOpt(), pha_mat_sptFromMonoData(), pha_mat_sptFromScat_data(), rte_pos2gridpos(), scat_dataCalc(), scat_dataReduceT(), ScatElementsToabs_speciesAdd(), ScatSpeciesMerge(), specular_losCalc(), ssd_tinterp_parameters(), surface_reflectivityFromGriddedField6(), surface_scalar_reflectivityFromGriddedField4(), and WindFieldsCalc().

◆ chk_interpolation_grids_loose()

void chk_interpolation_grids_loose ( Index ing_min,
Index ing_max,
const String which_interpolation,
ConstVectorView  old_grid,
ConstVectorView  new_grid,
ConstVectorView  data,
const Index  order 
)

Check interpolation grids.

This function checks if old and new grid for an interpolation are ok. If not, it throws a detailed runtime error message. This is intended for workspace method input variable checking. If the original grid does not have to cover the whole new grid. The returned ing_min and ing_max give the positions in the new grid of the first values that are outside the old grid. This is only allowed if the boundary value in the input data is 0.

Parameters
[out]ing_minIndex in the new grid with first value covered by the old grid.
[out]ing_maxIndex in the new grid with last value covered by the old grid.
[in]which_interpolationA string describing the interpolation for which the grids are intended.
[in]old_gridThe original grid.
[in]new_gridThe new grid.
[in]dataThe data for the interpolation.
[in]orderInterpolation order. (Default value is 1.)
[in]extpolfacThe extrapolation fraction. See gridpos function for details. Has a default value, which is consistent with gridpos.
Author
Oliver Lemke
Date
2012-07-11

Definition at line 665 of file check_input.cc.

References chk_interpolation_grids_loose_check_data(), chk_interpolation_grids_loose_no_data_check(), and data.

◆ chk_interpolation_grids_loose_check_data()

void chk_interpolation_grids_loose_check_data ( Index ing_min,
Index ing_max,
const String which_interpolation,
ConstVectorView  old_grid,
ConstVectorView  new_grid,
ConstVectorView  data 
)

Check interpolation grids.

This function checks if old and new grid for an interpolation are ok. If not, it throws a detailed runtime error message. This is intended for workspace method input variable checking. If the original grid does not have to cover the whole new grid. The returned ing_min and ing_max give the positions in the new grid of the first values that are outside the old grid. This is only allowed if the boundary value in the input data is 0.

Parameters
[out]ing_minIndex in the new grid with first value covered by the old grid.
[out]ing_maxIndex in the new grid with last value covered by the old grid.
[in]which_interpolationA string describing the interpolation for which the grids are intended.
[in]old_gridThe original grid.
[in]new_gridThe new grid.
[in]dataThe data for the interpolation.
Author
Oliver Lemke
Date
2012-03-28

Definition at line 853 of file check_input.cc.

References ARTS_USER_ERROR_IF, data, and ConstVectorView::nelem().

Referenced by chk_interpolation_grids_loose().

◆ chk_interpolation_grids_loose_no_data_check()

void chk_interpolation_grids_loose_no_data_check ( Index ing_min,
Index ing_max,
const String which_interpolation,
ConstVectorView  old_grid,
ConstVectorView  new_grid,
const Index  order 
)

Check interpolation grids.

This function checks if old and new grid for an interpolation are ok. If not, it throws a detailed runtime error message. This is intended for workspace method input variable checking. The original grid does not have to cover the whole new grid. The returned ing_min and ing_max give the positions in the new grid of the first values that are outside the old grid.

Parameters
[out]ing_minIndex in the new grid with first value covered by the old grid.
[out]ing_maxIndex in the new grid with last value covered by the old grid.
[in]which_interpolationA string describing the interpolation for which the grids are intended.
[in]old_gridThe original grid.
[in]new_gridThe new grid.
[in]orderInterpolation order. (Default value is 1.)
[in]extpolfacThe extrapolation fraction. See gridpos function for details. Has a default value, which is consistent with gridpos.
Author
Oliver Lemke (based on chk_interpolation_grids by Stefan)
Date
2012-03-28

Definition at line 703 of file check_input.cc.

References ARTS_USER_ERROR_IF, is_decreasing(), is_increasing(), max, min, and ConstVectorView::nelem().

Referenced by chk_interpolation_grids_loose(), chk_interpolation_pgrids_loose_no_data_check(), and GriddedFieldZToPRegridHelper().

◆ chk_interpolation_pgrids()

void chk_interpolation_pgrids ( const String which_interpolation,
ConstVectorView  old_pgrid,
ConstVectorView  new_pgrid,
const Index  order,
const Numeric extpolfac 
)

Check log pressure interpolation grids.

This function checks if old and new grid for an interpolation are ok. If not, it throws a detailed runtime error message. This is intended for workspace method input variable checking.

Parameters
[in]which_interpolationA string describing the interpolation for which the grids are intended.
[in]old_pgridThe original grid.
[in]new_pgridThe new grid.
[in]orderInterpolation order. (Default value is 1.)
[in]extpolfacThe extrapolation fraction. See gridpos function for details. Has a default value, which is consistent with gridpos.
Author
Oliver Lemke
Date
2012-07-11

Definition at line 1065 of file check_input.cc.

References chk_interpolation_grids(), ConstVectorView::nelem(), and transform().

Referenced by AtmFieldPRegridHelper(), GriddedFieldPRegridHelper(), GriddedFieldZToPRegridHelper(), MagFieldsCalc(), and WindFieldsCalc().

◆ chk_interpolation_pgrids_loose_no_data_check()

void chk_interpolation_pgrids_loose_no_data_check ( Index ing_min,
Index ing_max,
const String which_interpolation,
ConstVectorView  old_pgrid,
ConstVectorView  new_pgrid,
const Index  order 
)

Check log pressure interpolation grids.

This function checks if old and new grid for an interpolation are ok. If not, it throws a detailed runtime error message. This is intended for workspace method input variable checking. The original grid does not have to cover the whole new grid. The returned ing_min and ing_max give the positions in the new grid of the first values that are outside the old grid.

Parameters
[out]ing_minIndex in the new grid with first value covered by the old grid.
[out]ing_maxIndex in the new grid with last value covered by the old grid.
[in]which_interpolationA string describing the interpolation for which the grids are intended.
[in]old_gridThe original grid.
[in]new_gridThe new grid.
[in]orderInterpolation order. (Default value is 1.)
[in]extpolfacThe extrapolation fraction. See gridpos function for details. Has a default value, which is consistent with gridpos.
Author
Oliver Lemke (based on chk_interpolation_grids by Stefan)
Date
2012-03-28

Definition at line 813 of file check_input.cc.

References chk_interpolation_grids_loose_no_data_check(), ConstVectorView::nelem(), and transform().

Referenced by GriddedFieldPRegridHelper().

◆ chk_latlon_true()

void chk_latlon_true ( const Index atmosphere_dim,
ConstVectorView  lat_grid,
ConstVectorView  lat_true,
ConstVectorView  lon_true 
)

chk_latlon_true

Checks that lat_true and lon_true have the correct size for 1D and 2D cases (they are not used for 3D).

Parameters
atmosphere_dimAs the WSV with the same name
lat_gridAs the WSV with the same name
lat_trueAs the WSV with the same name
lon_trueAs the WSV with the same name
Author
Patrick Eriksson
Date
2012-03-19

Definition at line 1503 of file check_input.cc.

References ARTS_USER_ERROR_IF, and ConstVectorView::nelem().

Referenced by InterpGriddedField2ToPosition(), iyIndependentBeamApproximation(), surface_complex_refr_indexFromGriddedField5(), surface_reflectivityFromGriddedField6(), surface_scalar_reflectivityFromGriddedField4(), surface_typeInterpTypeMask(), and telsemSurfaceTypeLandSea().

◆ chk_matrix_ncols()

void chk_matrix_ncols ( const String x_name,
ConstMatrixView  x,
const Index l 
)

chk_matrix_ncols

Checks that a matrix has the specified number of columns.

The function gives an error message if this is not the case.

Parameters
x_nameThe name of the variable.
xA matrix.
lThe expected length of x.
Author
Patrick Eriksson
Date
2002-05-16

Definition at line 380 of file check_input.cc.

References ARTS_USER_ERROR_IF, Interpolation::l(), and ConstMatrixView::ncols().

Referenced by GasAbsLookup::Adapt().

◆ chk_matrix_nrows()

void chk_matrix_nrows ( const String x_name,
ConstMatrixView  x,
const Index l 
)

chk_matrix_nrows

Checks that a matrix has the specified number of rows.

The function gives an error message if this is not the case.

Parameters
x_nameThe name of the variable.
xA matrix.
lThe expected length of x.
Author
Patrick Eriksson
Date
2002-05-16

Definition at line 399 of file check_input.cc.

References ARTS_USER_ERROR_IF, Interpolation::l(), and ConstMatrixView::nrows().

Referenced by GasAbsLookup::Adapt().

◆ chk_met_mm_backend()

void chk_met_mm_backend ( const Matrix mmb)

Check met_mm_backend.

Verifies that the backend description matrix has the correct size and format.

Parameters
[in]mmbmet_mm_backend
Exceptions
std::runtime_error
Author
Oliver Lemke

Definition at line 1728 of file check_input.cc.

References ARTS_USER_ERROR_IF, ConstMatrixView::ncols(), and ConstMatrixView::nrows().

Referenced by f_gridMetMM().

◆ chk_not_empty()

void chk_not_empty ( const String x_name,
const Agenda x 
)

chk_not_empty

Checks that an agenda is not empty.

The function gives an error message if the agenda is empty.

Parameters
x_nameThe name of the agenda.
xA variable of type Agenda.
Author
Patrick Eriksson
Date
2002-08-20

Definition at line 627 of file check_input.cc.

References ARTS_USER_ERROR_IF, and Agenda::nelem().

Referenced by cloud_RT_surface(), cloudbox_field_monoIterate(), cloudbox_fieldUpdate1D(), cloudbox_fieldUpdateSeq1D(), cloudbox_fieldUpdateSeq3D(), doit_scat_fieldCalc(), doit_scat_fieldCalcLimb(), DoitCalc(), get_iy_of_background(), and surf_albedoCalc().

◆ chk_not_negative()

void chk_not_negative ( const String x_name,
const Numeric x 
)

chk_not_negative

Checks that a variable of type Numeric is 0 or positive.

The function gives an error message if this is not the case.

Parameters
x_nameThe name of the variable.
xA variable of type Numeric.
Author
Patrick Eriksson
Date
2002-04-15

Definition at line 134 of file check_input.cc.

References ARTS_USER_ERROR_IF.

Referenced by surfaceBlackbody(), surfaceFlatReflectivity(), surfaceFlatRefractiveIndex(), surfaceFlatRvRh(), surfaceFlatScalarReflectivity(), and surfaceLambertianSimple().

◆ chk_rte_los()

void chk_rte_los ( const Index atmosphere_dim,
ConstVectorView  rte_los 
)

◆ chk_rte_pos()

void chk_rte_pos ( const Index atmosphere_dim,
ConstVectorView  rte_pos,
const bool &  is_rte_pos2 
)

◆ chk_size() [1/8]

template<class T >
void chk_size ( const String x_name,
const Array< T > &  x,
const Index c 
)

Check the size of an array.

Checks the size of an Array. Cloned from Patricks similar function for Vector.

The function throws a runtime_error if the size is not correct.

This is a template function that works for any array type.

Parameters
x_nameThe name of the variable.
xA variable of type ArrayOfIndex.
cThe size to match
Author
Stefan Buehler
Date
2007-05-18

Definition at line 201 of file check_input.h.

References ARTS_USER_ERROR_IF, c, and Array< base >::nelem().

◆ chk_size() [2/8]

void chk_size ( const String x_name,
ConstMatrixView  x,
const Index r,
const Index c 
)

Runtime check for size of Matrix.

This is the runtime version of is_size. An appropriate error message is generated if the size is not correct.

Parameters
x_nameThe name of the agenda.
xA variable of type Matrix.
rRequired number of rows
cRequired number of columns
Author
Stefan Buehler
Date
2002-11-29

Definition at line 441 of file check_input.cc.

References ARTS_USER_ERROR_IF, c, is_size(), ConstMatrixView::ncols(), and ConstMatrixView::nrows().

◆ chk_size() [3/8]

void chk_size ( const String x_name,
ConstTensor3View  x,
const Index p,
const Index r,
const Index c 
)

Runtime check for size of Tensor.

This is the runtime version of is_size. An appropriate error message is generated if the size is not correct.

Parameters
x_nameThe name of the agenda.
xA variable of type Tensor3.
pRequired number of pages
rRequired number of rows
cRequired number of columns
Author
Stefan Buehler
Date
2002-11-29

Definition at line 466 of file check_input.cc.

References ARTS_USER_ERROR_IF, c, is_size(), ConstTensor3View::ncols(), ConstTensor3View::npages(), and ConstTensor3View::nrows().

◆ chk_size() [4/8]

void chk_size ( const String x_name,
ConstTensor4View  x,
const Index b,
const Index p,
const Index r,
const Index c 
)

Runtime check for size of Tensor.

This is the runtime version of is_size. An appropriate error message is generated if the size is not correct.

Parameters
x_nameThe name of the agenda.
xA variable of type Tensor4.
bRequired number of books
pRequired number of pages
rRequired number of rows
cRequired number of columns
Author
Stefan Buehler
Date
2002-11-29

Definition at line 493 of file check_input.cc.

References ARTS_USER_ERROR_IF, b, c, is_size(), ConstTensor4View::nbooks(), ConstTensor4View::ncols(), ConstTensor4View::npages(), and ConstTensor4View::nrows().

◆ chk_size() [5/8]

void chk_size ( const String x_name,
ConstTensor5View  x,
const Index s,
const Index b,
const Index p,
const Index r,
const Index c 
)

Runtime check for size of Tensor.

This is the runtime version of is_size. An appropriate error message is generated if the size is not correct.

Parameters
x_nameThe name of the agenda.
xA variable of type Tensor5.
sRequired number of shelves
bRequired number of books
pRequired number of pages
rRequired number of rows
cRequired number of columns
Author
Stefan Buehler
Date
2002-11-29

Definition at line 524 of file check_input.cc.

References ARTS_USER_ERROR_IF, b, c, is_size(), ConstTensor5View::nbooks(), ConstTensor5View::ncols(), ConstTensor5View::npages(), ConstTensor5View::nrows(), and ConstTensor5View::nshelves().

◆ chk_size() [6/8]

void chk_size ( const String x_name,
ConstTensor6View  x,
const Index v,
const Index s,
const Index b,
const Index p,
const Index r,
const Index c 
)

Runtime check for size of Tensor.

This is the runtime version of is_size. An appropriate error message is generated if the size is not correct.

Parameters
x_nameThe name of the agenda.
xA variable of type Tensor6.
vRequired number of vitrines
sRequired number of shelves
bRequired number of books
pRequired number of pages
rRequired number of rows
cRequired number of columns
Author
Stefan Buehler
Date
2002-11-29

Definition at line 557 of file check_input.cc.

References ARTS_USER_ERROR_IF, b, c, is_size(), ConstTensor6View::nbooks(), ConstTensor6View::ncols(), ConstTensor6View::npages(), ConstTensor6View::nrows(), ConstTensor6View::nshelves(), ConstTensor6View::nvitrines(), and v.

◆ chk_size() [7/8]

void chk_size ( const String x_name,
ConstTensor7View  x,
const Index l,
const Index v,
const Index s,
const Index b,
const Index p,
const Index r,
const Index c 
)

Runtime check for size of Tensor.

This is the runtime version of is_size. An appropriate error message is generated if the size is not correct.

Parameters
x_nameThe name of the agenda.
xA variable of type Tensor7.
lRequired number of libraries
vRequired number of vitrines
sRequired number of shelves
bRequired number of books
pRequired number of pages
rRequired number of rows
cRequired number of columns
Author
Stefan Buehler
Date
2002-11-29

Definition at line 592 of file check_input.cc.

References ARTS_USER_ERROR_IF, b, c, is_size(), Interpolation::l(), ConstTensor7View::nbooks(), ConstTensor7View::ncols(), ConstTensor7View::nlibraries(), ConstTensor7View::npages(), ConstTensor7View::nrows(), ConstTensor7View::nshelves(), ConstTensor7View::nvitrines(), and v.

◆ chk_size() [8/8]

void chk_size ( const String x_name,
ConstVectorView  x,
const Index c 
)

Runtime check for size of Vector.

This is the runtime version of is_size. An appropriate error message is generated if the size is not correct.

Parameters
x_nameThe name of the agenda.
xA variable of type Vector.
cRequired number of elements
Author
Stefan Buehler
Date
2002-11-29

Definition at line 421 of file check_input.cc.

References ARTS_USER_ERROR_IF, c, is_size(), and ConstVectorView::nelem().

Referenced by abs_coefCalcFromXsec(), GasAbsLookup::Adapt(), chk_scat_data(), cloudbox_fieldUpdate1D(), cloudbox_fieldUpdateSeq1D(), cloudbox_fieldUpdateSeq3D(), ConvertAzimuthallyRandomSingleScatteringData(), doit_za_grid_optCalc(), and FieldFromGriddedFieldCheckLatLonHelper().

◆ chk_vector_length() [1/2]

void chk_vector_length ( const String x1_name,
const String x2_name,
ConstVectorView  x1,
ConstVectorView  x2 
)

chk_vector_length

Checks if two vectors have the same length.

The function gives an error message if this is not the case.

Parameters
x1_nameThe name of the first vector
x2_nameThe name of the second vector
x1The first vector.
x2The second vector.
Author
Patrick Eriksson
Date
2002-04-15

Definition at line 279 of file check_input.cc.

◆ chk_vector_length() [2/2]

void chk_vector_length ( const String x_name,
ConstVectorView  x,
const Index l 
)

chk_vector_length

Checks that a vector has the specified length.

The function gives an error message if this is not the case.

Parameters
x_nameThe name of the variable.
xA variable of type Vector.
lThe expected length of x.
Author
Patrick Eriksson
Date
2002-04-15

Definition at line 257 of file check_input.cc.

References ARTS_USER_ERROR_IF, Interpolation::l(), and ConstVectorView::nelem().

Referenced by GasAbsLookup::Adapt(), chk_if_equal(), and FastemStandAlone().