101 const Index& atmosphere_dim,
108 if( atmosphere_dim == 1 )
114 else if( atmosphere_dim == 2 )
116 assert( gp_lat.
nelem() == n );
121 else if( atmosphere_dim == 3 )
123 assert( gp_lat.
nelem() == n );
124 assert( gp_lon.
nelem() == n );
161 const Index& atmosphere_dim,
170 if( atmosphere_dim == 1 )
172 assert( itw.
ncols() == 2 );
176 else if( atmosphere_dim == 2 )
178 assert( itw.
ncols() == 4 );
182 else if( atmosphere_dim == 3 )
184 assert( itw.
ncols() == 8 );
185 interp( x, itw, x_field, gp_p, gp_lat, gp_lon );
217 const Index& atmosphere_dim,
241 const Index& atmosphere_dim,
251 if( atmosphere_dim > 1 )
257 if( atmosphere_dim > 2 )
309 const Index& atmosphere_dim,
313 if( atmosphere_dim == 1 )
316 gp_p_out.
idx -= cloudbox_limits[0];
318 assert(itw.
nelem() == 2 );
321 else if( atmosphere_dim == 2 )
325 gp_p_out.
idx -= cloudbox_limits[0];
326 gp_lat_out.
idx -= cloudbox_limits[2];
329 assert(itw.
nelem() == 4 );
337 gp_p_out.
idx -= cloudbox_limits[0];
338 gp_lat_out.
idx -= cloudbox_limits[2];
339 gp_lon_out.
idx -= cloudbox_limits[4];
343 assert(itw.
nelem() == 8 );
373 const Index& atmosphere_dim,
377 if( atmosphere_dim == 1 )
383 else if( atmosphere_dim == 2 )
390 else if( atmosphere_dim == 3 )
393 assert( n == gp_lon.
nelem() );
429 const Index& atmosphere_dim,
435 if( atmosphere_dim == 1 )
437 assert( itw.
ncols() == 1 );
441 else if( atmosphere_dim == 2 )
444 assert( itw.
ncols() == 2 );
448 else if( atmosphere_dim == 3 )
451 assert( itw.
ncols() == 4 );
452 interp( x, itw, x_surface, gp_lat, gp_lon );
483 const Index& atmosphere_dim,
505 const Index& atmosphere_dim,
512 if( atmosphere_dim > 1 )
518 if( atmosphere_dim > 2 )
567 assert( itw.
ncols() == 2 );
575 interp( p_values, itw, logpgrid, gp );
620 gridpos( gp, logold, lognew, extpolfac );
692 const Index& atmosphere_dim,
701 if( atmosphere_dim == 1 )
717 gridpos( gp_lat, lat_grid, rte_pos[1] );
719 if( atmosphere_dim == 2 )
721 for(
Index i=0; i<np; i++ )
722 { agp_lat[i] = gp_lat; }
731 gridpos( gp_lon, lon_grid, rte_pos[2] );
733 for(
Index i=0; i<np; i++ )
740 interp( z_grid, itw, z_field, agp_z, agp_lat, agp_lon );
746 gridpos( gp_p, z_grid, rte_pos[0] );
784 assert( z.
nelem() == np );
785 assert( z_field.nrows() == np );
786 assert( z_field.ncols() == lat_grid.nelem() );
793 gridpos( gp_z, p_grid, p_grid );
795 interp( z_matrix, itw, z_field, gp_z, agp_lat );
839 assert( z.
nelem() == np );
840 assert( z_field.npages() == np );
841 assert( z_field.nrows() == lat_grid.nelem() );
842 assert( z_field.ncols() == lon_grid.
nelem() );
850 gridpos( agp_z, p_grid, p_grid );
853 interp( z_tensor, itw, z_field, agp_z, agp_lat, agp_lon );
889 Index gfield_fID = 0;
890 Index gfield_tID = 1;
891 Index gfield_compID = 2;
904 os <<
"The data in *" << varname <<
"* must have exactly two pages. One page "
905 <<
"each\nfor the real and imaginary part of the complex refractive index.";
915 assert( n_real.
nrows() == nf_out && n_real.
ncols() == nt_out );
916 assert( n_imag.
nrows() == nf_out && n_imag.
ncols() == nt_out );
923 Matrix nrf(nf_out,nt_in), nif(nf_out,nt_in);
927 for(
Index i=0; i<nf_out; i++ )
939 gridpos( gp, f_grid_in, f_grid );
941 for(
Index i=0; i<nt_in; i++ )
952 for(
Index i=0; i<nt_out; i++ )
964 gridpos( gp, t_grid_in, t_grid );
966 for(
Index i=0; i<nf_out; i++ )