ARTS  2.3.1285(git:92a29ea9-dirty)
surface.h
Go to the documentation of this file.
1 /* Copyright (C) 2012
2  Patrick Eriksson <Patrick.Eriksson@chalmers.se>
3 
4  This program is free software; you can redistribute it and/or modify it
5  under the terms of the GNU General Public License as published by the
6  Free Software Foundation; either version 2, or (at your option) any
7  later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
17  USA. */
18 
19 /*===========================================================================
20  === File description
21  ===========================================================================*/
22 
32 #ifndef surface_h
33 #define surface_h
34 
35 #include "complex.h"
36 #include "matpackIV.h"
37 #include "mystring.h"
38 #include "ppath.h"
39 
51 Numeric calc_incang(ConstVectorView rte_los, ConstVectorView specular_los);
52 
67 Index index_of_zsurface(const Numeric& z_surface,
68  ConstVectorView z_profile);
69 
86 void surface_calc(Matrix& iy,
88  ConstMatrixView surface_los,
89  ConstTensor4View surface_rmatrix,
90  ConstMatrixView surface_emission);
91 
115 void surface_specular_R_and_b(MatrixView surface_rmatrix,
116  VectorView surface_emission,
117  const Complex& Rv,
118  const Complex& Rh,
119  const Numeric& f,
120  const Index& stokes_dim,
121  const Numeric& surface_skin_t);
122 
137 void surface_props_check(const Index& atmosphere_dim,
138  const Vector& lat_grid,
139  const Vector& lon_grid,
140  const Tensor3& surface_props_data,
141  const ArrayOfString& surface_props_names);
142 
162  const String& vname,
163  const Index& atmosphere_dim,
164  const ArrayOfGridPos& gp_lat,
165  const ArrayOfGridPos& gp_lon,
166  const Matrix& itw,
167  const Tensor3& surface_props_data,
168  const ArrayOfString& surface_props_names);
169 
184 void dsurface_check(const ArrayOfString& surface_props_names,
185  const ArrayOfString& dsurface_names,
186  const ArrayOfTensor4 dsurface_rmatrix_dx,
187  const ArrayOfMatrix& dsurface_emission_dx);
188 #endif // surface_h
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:39
The VectorView class.
Definition: matpackI.h:610
void surface_props_check(const Index &atmosphere_dim, const Vector &lat_grid, const Vector &lon_grid, const Tensor3 &surface_props_data, const ArrayOfString &surface_props_names)
Peforms basic checks of surface_props_data and surface_props_names
Definition: surface.cc:139
A class implementing complex numbers for ARTS.
The Vector class.
Definition: matpackI.h:860
The MatrixView class.
Definition: matpackI.h:1093
void surface_specular_R_and_b(MatrixView surface_rmatrix, VectorView surface_emission, const Complex &Rv, const Complex &Rh, const Numeric &f, const Index &stokes_dim, const Numeric &surface_skin_t)
Sets up the surface reflection matrix and emission vector for the case of specular reflection...
Definition: surface.cc:88
A constant view of a Tensor4.
Definition: matpackIV.h:133
Numeric calc_incang(ConstVectorView rte_los, ConstVectorView specular_los)
Calculates the incidence angle for a flat surface, based on rte_los and specular_los.
Definition: surface.cc:50
The Tensor3 class.
Definition: matpackIII.h:339
std::complex< Numeric > Complex
Definition: complex.h:33
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:33
The Matrix class.
Definition: matpackI.h:1193
Index index_of_zsurface(const Numeric &z_surface, ConstVectorView z_profile)
Lccates the surface with respect to pressure levels.
Definition: surface.cc:54
Propagation path structure and functions.
This can be used to make arrays out of anything.
Definition: array.h:40
void surface_calc(Matrix &iy, ConstTensor3View I, ConstMatrixView surface_los, ConstTensor4View surface_rmatrix, ConstMatrixView surface_emission)
Weights together downwelling radiation and surface emission.
Definition: surface.cc:63
A constant view of a Tensor3.
Definition: matpackIII.h:132
A constant view of a Vector.
Definition: matpackI.h:476
A constant view of a Matrix.
Definition: matpackI.h:982
void dsurface_check(const ArrayOfString &surface_props_names, const ArrayOfString &dsurface_names, const ArrayOfTensor4 dsurface_rmatrix_dx, const ArrayOfMatrix &dsurface_emission_dx)
Peforms basic checks of the dsurface variables.
Definition: surface.cc:210
void surface_props_interp(Vector &v, const String &vname, const Index &atmosphere_dim, const ArrayOfGridPos &gp_lat, const ArrayOfGridPos &gp_lon, const Matrix &itw, const Tensor3 &surface_props_data, const ArrayOfString &surface_props_names)
Peforms an interpolation of surface_props_data
Definition: surface.cc:180
This file contains the definition of String, the ARTS string class.