2.3.8.6. Interace to fortran interpolation routines

These routines are made accessible to the vacumm.misc.grid.regridding module thanks to f2py as the undocumented vacumm.misc.grid._interp_ module.

Subroutines and functions

subroutine interp1d(vari, yi, varo, yo, mv, method, nx, nyi, nyo[, extrap])

Interpolation along the second axis (y)

  • vari: input variable
  • varo: output variable
  • yi: input y axis
  • yo: output y axis
  • mv: missing value (used only for initialisation)
  • method: 0 = nearest, 1 = linear, 2 = cubic, 3 = hermit
  • extrap: 0 = do not extrapolate, 1 = top, -1 = bottom, 2 = both

See: http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/interpolation/

Parameters:
  • vari (nx,nyi) [real,in]
  • yi (nyi) [real,in] :: a0
  • varo (nx,nyo) [real,out]
  • yo (nyo) [real,in] :: a0*mu^3 + a1*mu
  • mv [real,in]
  • method [integer,in]
Options:
  • nx [integer,in,optional/default=shape(vari,0)]
  • nyi [integer,in,optional/default=shape(vari,1)]
  • nyo [integer,in,optional/default=len(yo)]
  • extrap [integer,in,optional]
subroutine interp1dx(vari, yi, varo, yo, mv, method, nx, nxb, nyi, nyo[, extrap])

Interpolation along the second axis (y)

  • vari: input variable
  • varo: output variable
  • yi: input y axis
  • yo: output y axis
  • mv: missing value (used only for initialisation)
  • method: 0 = nearest, 1 = linear, 2 = cubic, 3 = hermit
  • extrap: 0 = do not extrapolate, 1 = top, -1 = bottom, 2 = both

See: http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/interpolation/

Parameters:
  • vari (nx,nyi) [real,in]
  • yi (nxb,nyi) [real,in] :: above
  • varo (nx,nyo) [real,out]
  • yo (nyo) [real,in]
  • mv [real,in]
  • method [integer,in]
Options:
  • nx [integer,in,optional/default=shape(vari,0)]
  • nxb [integer,in,optional/default=shape(yi,0)]
  • nyi [integer,in,optional/default=shape(vari,1)]
  • nyo [integer,in,optional/default=len(yo)]
  • extrap [integer,in,optional]
subroutine interp1dxx(vari, yi, varo, yo, mv, method, nx, nxb, nyi, nyo[, extrap])

Interpolation along the second axis (y)

  • vari: input variable
  • varo: output variable
  • yi: input y axis
  • yo: output y axis
  • mv: missing value (used only for initialisation)
  • method: 0 = nearest, 1 = linear, 2 = cubic, 3 = hermit
  • extrap: 0 = do not extrapolate, 1 = top, -1 = bottom, 2 = both

See: http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/interpolation/

Parameters:
  • vari (nx,nyi) [real,in]
  • yi (nxb,nyi) [real,in] :: above
  • varo (nx,nyo) [real,out]
  • yo (nxb,nyo) [real,in]
  • mv [real,in]
  • method [integer,in]
Options:
  • nx [integer,in,optional/default=shape(vari,0)]
  • nxb [integer,in,optional/default=shape(yi,0)]
  • nyi [integer,in,optional/default=shape(vari,1)]
  • nyo [integer,in,optional/default=shape(yo,1)]
  • extrap [integer,in,optional]
subroutine extrap1d(vari, varo, mv[, extrap, nx, ny])

Extrapolate valid data to the top and/or bottom

  • vari: input variable
  • varo: output variable
  • mv: missing value (used only for initialisation)
  • extrap: 0 = do not extrapolate, 1 = top, -1 = bottom, 2 = both
Parameters:
  • vari (nx,ny) [real,in]
  • varo (nx,ny) [real,out]
  • mv [real,in]
Options:
  • extrap [integer,in,optional]
  • nx [integer,in,optional/default=shape(vari,0)]
  • ny [integer,in,optional/default=shape(vari,1)]
subroutine remap1d(vari, yi, varo, yo, mv, conserv, nx, nyi, nyo[, yib[, yob[, extrap]]])

Remapping along the second axis (y)

Parameters:
  • vari (nx,nyi) [real,in]
  • yi (nyi) [real,in]
  • varo (nx,nyo) [real,out]
  • yo (nyo) [real,in] :: above
  • mv [real,in]
  • conserv [integer,in]
Options:
  • nx [integer,in,optional/default=shape(vari,0)]
  • nyi [integer,in,optional/default=shape(vari,1)]
  • nyo [integer,in,optional/default=len(yo)]
  • yib (nyi + 1) [real,in,optional]
  • yob (nyo + 1) [real,in,optional] :: below
  • extrap [integer,in,optional]
subroutine remap1dx(vari, yi, varo, yo, mv, conserv, nx, nxb, nyi, nyo[, yib[, yob[, extrap]]])

Remapping along the second axis (y)

  • vari: input variable
  • varo: output variable
  • yi: input y axis
  • yo: output y axis
  • mv: missing value (used only for initialisation)
Parameters:
  • vari (nx,nyi) [real,in]
  • yi (nxb,nyi) [real,in]
  • varo (nx,nyo) [real,out]
  • yo (nyo) [real,in]
  • mv [real,in]
  • conserv [integer,in]
Options:
  • nx [integer,in,optional/default=shape(vari,0)]
  • nxb [integer,in,optional/default=shape(yi,0)]
  • nyi [integer,in,optional/default=shape(vari,1)]
  • nyo [integer,in,optional/default=len(yo)]
  • yib (nxb,nyi + 1) [real,in,optional]
  • yob (nyo + 1) [real,in,optional]
  • extrap [integer,in,optional]
subroutine remap1dxx(vari, yi, varo, yo, mv, conserv, nx, nxb, nyi, nyo[, yib[, yob[, extrap]]])

Remapping between two variable axes in space (y)

  • vari: input variable
  • varo: output variable
  • yi: input y axis
  • yo: output y axis
  • mv: missing value (used only for initialisation)
Parameters:
  • vari (nx,nyi) [real,in]
  • yi (nxb,nyi) [real,in]
  • varo (nx,nyo) [real,out]
  • yo (nxb,nyo) [real,in] :: Above
  • mv [real,in]
  • conserv [integer,in]
Options:
  • nx [integer,in,optional/default=shape(vari,0)]
  • nxb [integer,in,optional/default=shape(yi,0)]
  • nyi [integer,in,optional/default=shape(vari,1)]
  • nyo [integer,in,optional/default=shape(yo,1)]
  • yib (nxb,nyi + 1) [real,in,optional]
  • yob (nxb,nyo + 1) [real,in,optional]
  • extrap [integer,in,optional]
subroutine cellerr1d(vari, yi, varo, yo, mv, errm, errl, erro[, yob, nx, nxb, nyi, nyo])

Error-based weighthed local mooving average interpolation between two variables axes in space (y) with interpolation error estimate

Params :
  • vari: input variable
  • varo: output variable
  • yi: input y axis
  • yo: output y axis
  • mv: missing value (used only for initialisation)
  • errm: input measurement error
  • errl: input lag error per yi units
  • erro: output error
Parameters:
  • vari (nx,nyi) [real,in]
  • yi (nyi) [real,in]
  • varo (nx,nyo) [real,out]
  • yo (nyo) [real,in]
  • mv [real,in]
  • errm (nx,nyi) [real,in]
  • errl (nxb) [real,in]
  • erro (nx,nyo) [real,out]
Options:
  • yob (nyo + 1) [real,in,optional]
  • nx [integer,in,optional/default=shape(vari,0)]
  • nxb [integer,in,optional/default=len(errl)]
  • nyi [integer,in,optional/default=shape(vari,1)]
  • nyo [integer,in,optional/default=len(yo)]
subroutine cellerr1dx(vari, yi, varo, yo, mv, errm, errl, erro[, yob, nx, nxb, nyi, nyo])

Error-based weighthed local mooving average interpolation between two variables axes in space (y) with interpolation error estimate

Params :
  • vari: input variable
  • varo: output variable
  • yi: input y axis
  • yo: output y axis
  • mv: missing value (used only for initialisation)
  • errm: input measurement error
  • errl: input lag error per yi units
  • erro: output error
Parameters:
  • vari (nx,nyi) [real,in]
  • yi (nxb,nyi) [real,in]
  • varo (nx,nyo) [real,out]
  • yo (nyo) [real,in]
  • mv [real,in]
  • errm (nx,nyi) [real,in]
  • errl (nxb) [real,in]
  • erro (nx,nyo) [real,out]
Options:
  • yob (nyo + 1) [real,in,optional]
  • nx [integer,in,optional/default=shape(vari,0)]
  • nxb [integer,in,optional/default=shape(yi,0)]
  • nyi [integer,in,optional/default=shape(vari,1)]
  • nyo [integer,in,optional/default=len(yo)]
subroutine cellerr1dxx(vari, yi, varo, yo, mv, errm, errl, erro[, yob, nx, nxb, nyi, nyo])

Error-based weighthed local mooving average interpolation between two variables axes in space (y) with interpolation error estimate

Params :
  • vari: input variable
  • varo: output variable
  • yi: input y axis
  • yo: output y axis
  • mv: missing value (used only for initialisation)
  • errm: input measurement error
  • errl: input lag error per yi units
  • erro: output error
Parameters:
  • vari (nx,nyi) [real,in] :: FIXME: bad bmask
  • yi (nxb,nyi) [real,in]
  • varo (nx,nyo) [real,out]
  • yo (nxb,nyo) [real,in]
  • mv [real,in]
  • errm (nx,nyi) [real,in]
  • errl (nxb) [real,in]
  • erro (nx,nyo) [real,out]
Options:
  • yob (nxb,nyo + 1) [real,in,optional]
  • nx [integer,in,optional/default=shape(vari,0)]
  • nxb [integer,in,optional/default=shape(yi,0)]
  • nyi [integer,in,optional/default=shape(vari,1)]
  • nyo [integer,in,optional/default=shape(yo,1)]
subroutine nearest2d(vari, xxi, yyi, varo, xxo, yyo, nb[, nogeo, nxi, nyi, nxo, nyo, nz])

Nearest neighbour interpolation of two curvilinear grids

Parameters:
  • vari (nz,nyi,nxi) [real,in]
  • xxi (nyi,nxi) [real,in]
  • yyi (nyi,nxi) [real,in]
  • varo (nz,nyo,nxo) [real,out]
  • xxo (nyo,nxo) [real,in]
  • yyo (nyo,nxo) [real,in]
  • nb [integer,in]
Options:
  • nogeo [integer,in,optional]
  • nxi [integer,in,optional/default=shape(vari,2)]
  • nyi [integer,in,optional/default=shape(vari,1)]
  • nxo [integer,in,optional/default=shape(xxo,1)]
  • nyo [integer,in,optional/default=shape(xxo,0)]
  • nz [integer,in,optional/default=shape(vari,0)]
Call to:

closest2d()

subroutine closest2d(xxi, yyi, xo, yo, nxi, nyi, i, j, nogeo)

Find indices of closest point on 2D axes

Parameters:
  • xxi (nyi,nxi) [real,in]
  • yyi (nyi,nxi) [real,in]
  • xo [real,in]
  • yo [real,in]
  • i [integer,out]
  • j [integer,out]
  • nogeo [logical,in]
Options:
  • nxi [integer,in,optional/default=shape(xxi,1)]
  • nyi [integer,in,optional/default=shape(xxi,0)]
Called from:

nearest2d(), curv2rel_single()

subroutine bilin(vari, xi, yi, varo, xo, yo, mv[, nogeo, nxi, nyi, nxo, nyo, nz])

Simple bilinear interpolation between two regular grids

See also mixt2d() as an alternative method

Parameters:
  • vari (nz,nyi,nxi) [real,in]
  • xi (nxi) [real,in]
  • yi (nyi) [real,in]
  • varo (nz,nyo,nxo) [real,out]
  • xo (nxo) [real,in]
  • yo (nyo) [real,in]
  • mv [real,in]
Options:
  • nogeo [integer,in,optional]
  • nxi [integer,in,optional/default=shape(vari,2)]
  • nyi [integer,in,optional/default=shape(vari,1)]
  • nxo [integer,in,optional/default=len(xo)]
  • nyo [integer,in,optional/default=len(yo)]
  • nz [integer,in,optional/default=shape(vari,0)]
subroutine dstwgt(vari, xi, yi, varo, xo, yo, mv[, nogeo, nxi, nyi, nxo, nyo, nz])

Simple distance weight interpolation between two regular grids It does not interpolate missing values

Parameters:
  • vari (nz,nyi,nxi) [real,in]
  • xi (nxi) [real,in]
  • yi (nyi) [real,in]
  • varo (nz,nyo,nxo) [real,out]
  • xo (nxo) [real,in]
  • yo (nyo) [real,in]
  • mv [real,in]
Options:
  • nogeo [integer,in,optional]
  • nxi [integer,in,optional/default=shape(vari,2)]
  • nyi [integer,in,optional/default=shape(vari,1)]
  • nxo [integer,in,optional/default=len(xo)]
  • nyo [integer,in,optional/default=len(yo)]
  • nz [integer,in,optional/default=shape(vari,0)]
subroutine mbilin2d(vari, xi, yi, varo, xo, yo, mv, ext, nxi, nyi, no[, nogeo])

Binilear interpolation of random point to a regular grid with minimal missing data handling

Parameters:
  • vari (nyi,nxi) [real,in]
  • xi (nxi) [real,in]
  • yi (nyi) [real,in]
  • varo (no) [real,out]
  • xo (no) [real,in]
  • yo (no) [real,in]
  • mv [real,in]
  • ext [logical,in]
Options:
  • nxi [integer,in,optional/default=shape(vari,1)]
  • nyi [integer,in,optional/default=shape(vari,0)]
  • no [integer,in,optional/default=len(xo)]
  • nogeo [integer,in,optional]
subroutine nearest2dto1d(xi, yi, zi, xo, yo, zo, mv, nxi, nyi, no, nz)

nearest neighbour interpolation of gridded data to random positions

Parameters:
  • xi (nxi) [real,in]
  • yi (nyi) [real,in]
  • zi (nz,nyi,nxi) [real,in]
  • xo (no) [real,in]
  • yo (no) [real,in]
  • zo (nz,no) [real,out]
  • mv [real,in]
Options:
  • nxi [integer,in,optional/default=len(xi)]
  • nyi [integer,in,optional/default=len(yi)]
  • no [integer,in,optional/default=len(xo)]
  • nz [integer,in,optional/default=shape(zi,0)]
subroutine bilin2dto1d(xi, yi, zi, xo, yo, zo, mv, nxi, nyi, no, nz)

bilinear interpolation of gridded data to random positions

Parameters:
  • xi (nxi) [real,in]
  • yi (nyi) [real,in]
  • zi (nz,nyi,nxi) [real,in]
  • xo (no) [real,in]
  • yo (no) [real,in]
  • zo (nz,no) [real,out]
  • mv [real,in]
Options:
  • nxi [integer,in,optional/default=len(xi)]
  • nyi [integer,in,optional/default=len(yi)]
  • no [integer,in,optional/default=len(xo)]
  • nz [integer,in,optional/default=shape(zi,0)]
subroutine dstwgt2dto1d(xi, yi, zi, xo, yo, zo, mv, nxi, nyi, no, nz)

Distance weight interpolation of gridded data to random positions

Distances are computed with the four corners of a cell and are relative to the cell sizes.

Parameters:
  • xi (nxi) [real,in]
  • yi (nyi) [real,in]
  • zi (nz,nyi,nxi) [real,in]
  • xo (no) [real,in]
  • yo (no) [real,in]
  • zo (nz,no) [real,out]
  • mv [real,in]
Options:
  • nxi [integer,in,optional/default=len(xi)]
  • nyi [integer,in,optional/default=len(yi)]
  • no [integer,in,optional/default=len(xo)]
  • nz [integer,in,optional/default=shape(zi,0)]
subroutine linear4dto1d(xi, yi, zi, ti, vi, xo, yo, zo, to, vo, mv, nxi, nyi, nzi, nti, no)

nearest neighbour interpolation of gridded data to random positions

Parameters:
  • xi (nxi) [real,in]
  • yi (nyi) [real,in]
  • zi (nzi) [real,in]
  • ti (nti) [real,in]
  • vi (nti,nzi,nyi,nxi) [real,in]
  • xo (no) [real,in]
  • yo (no) [real,in]
  • zo (no) [real,in]
  • to (no) [real,in]
  • vo (no) [real,out]
  • mv [real,in]
Options:
  • nxi [integer,in,optional/default=len(xi)]
  • nyi [integer,in,optional/default=len(yi)]
  • nzi [integer,in,optional/default=len(zi)]
  • nti [integer,in,optional/default=len(ti)]
  • no [integer,in,optional/default=len(xo)]
subroutine linear4dto1dx(xi, yi, zi, ti, vi, xo, yo, zo, to, vo, mv, nex, nxi, nyi, nzi, nti, no)

nearest neighbour interpolation of gridded data to random positions

Parameters:
  • xi (nxi) [real,in]
  • yi (nyi) [real,in]
  • zi (nzi) [real,in]
  • ti (nti) [real,in]
  • vi (nex,nti,nzi,nyi,nxi) [real,in]
  • xo (no) [real,in]
  • yo (no) [real,in]
  • zo (no) [real,in]
  • to (no) [real,in]
  • vo (nex,no) [real,out]
  • mv [real,in]
Options:
  • nex [integer,in,optional/default=shape(vi,0)]
  • nxi [integer,in,optional/default=len(xi)]
  • nyi [integer,in,optional/default=len(yi)]
  • nzi [integer,in,optional/default=len(zi)]
  • nti [integer,in,optional/default=len(ti)]
  • no [integer,in,optional/default=len(xo)]
subroutine linear4dto1dxx(xxi, yyi, zzi, ti, vi, xo, yo, zo, to, vo, mv, nxi, nyi, nyix, nxiy, nyiz, nxiz, nzi, nti, ntiz, no, nex, nexz)

linear interpolation of gridded data to random positions

Parameters:
  • xxi (nyix,nxi) [real,in]
  • yyi (nyi,nxiy) [real,in]
  • zzi (nexz,ntiz,nzi,nyiz,nxiz) [real,in]
  • ti (nti) [real,in]
  • vi (nex,nti,nzi,nyi,nxi) [real,in]
  • xo (no) [real,in]
  • yo (no) [real,in]
  • zo (no) [real,in]
  • to (no) [real,in]
  • vo (nex,no) [real,out]
  • mv [real,in] :: masked
Options:
  • nxi [integer,in,optional/default=shape(xxi,1)]
  • nyi [integer,in,optional/default=shape(yyi,0)]
  • nyix [integer,in,optional/default=shape(xxi,0)]
  • nxiy [integer,in,optional/default=shape(yyi,1)]
  • nyiz [integer,in,optional/default=shape(zzi,3)]
  • nxiz [integer,in,optional/default=shape(zzi,4)]
  • nzi [integer,in,optional/default=shape(zzi,2)]
  • nti [integer,in,optional/default=len(ti)]
  • ntiz [integer,in,optional/default=shape(zzi,1)]
  • no [integer,in,optional/default=len(xo)]
  • nex [integer,in,optional/default=shape(vi,0)]
  • nexz [integer,in,optional/default=shape(zzi,0)] :: extra dim
Call to:

curv2rel_single()

subroutine nearest4dto1dxx(xxi, yyi, zzi, ti, vi, xo, yo, zo, to, vo, mv, nxi, nyi, nyix, nxiy, nyiz, nxiz, nzi, nti, ntiz, no, nex, nexz)

linear interpolation of gridded data to random positions

Parameters:
  • xxi (nyix,nxi) [real,in]
  • yyi (nyi,nxiy) [real,in]
  • zzi (nexz,ntiz,nzi,nyiz,nxiz) [real,in]
  • ti (nti) [real,in]
  • vi (nex,nti,nzi,nyi,nxi) [real,in]
  • xo (no) [real,in]
  • yo (no) [real,in]
  • zo (no) [real,in]
  • to (no) [real,in]
  • vo (nex,no) [real,out]
  • mv [real,in]
Options:
  • nxi [integer,in,optional/default=shape(xxi,1)]
  • nyi [integer,in,optional/default=shape(yyi,0)]
  • nyix [integer,in,optional/default=shape(xxi,0)]
  • nxiy [integer,in,optional/default=shape(yyi,1)]
  • nyiz [integer,in,optional/default=shape(zzi,3)]
  • nxiz [integer,in,optional/default=shape(zzi,4)]
  • nzi [integer,in,optional/default=shape(zzi,2)]
  • nti [integer,in,optional/default=len(ti)]
  • ntiz [integer,in,optional/default=shape(zzi,1)]
  • no [integer,in,optional/default=len(xo)]
  • nex [integer,in,optional/default=shape(vi,0)]
  • nexz [integer,in,optional/default=shape(zzi,0)] :: extra dim
Call to:

curv2rel_single()

subroutine nearest4dto1d(xi, yi, zi, ti, vi, xo, yo, zo, to, vo, mv, nxi, nyi, nzi, nti, no)

nearest neighbour interpolation of gridded data to random positions

Parameters:
  • xi (nxi) [real,in]
  • yi (nyi) [real,in]
  • zi (nzi) [real,in]
  • ti (nti) [real,in]
  • vi (nti,nyi,nyi,nxi) [real,in]
  • xo (no) [real,in]
  • yo (no) [real,in]
  • zo (no) [real,in]
  • to (no) [real,in]
  • vo (no) [real,out]
  • mv [real,in]
Options:
  • nxi [integer,in,optional/default=len(xi)]
  • nyi [integer,in,optional/default=len(yi)]
  • nzi [integer,in,optional/default=len(zi)]
  • nti [integer,in,optional/default=len(ti)]
  • no [integer,in,optional/default=len(xo)]
subroutine linept(x, y, x1, x2, y1, y2, xc, yc)

Coordinates of line point closest to target point

Parameters:
  • x [real,in]
  • y [real,in]
  • x1 [real,in]
  • x2 [real,in]
  • y1 [real,in]
  • y2 [real,in]
  • xc [real,out]
  • yc [real,out]
Called from:

linepts(), lineptss(), dstpt2line()

subroutine linepts(xx, yy, x1, x2, y1, y2, xxc, yyc, np)

Coordinates of line points closest to target points

Parameters:
  • xx (np) [real,in]
  • yy (np) [real,in]
  • x1 [real,in]
  • x2 [real,in]
  • y1 [real,in]
  • y2 [real,in]
  • xxc (np) [real,out]
  • yyc (np) [real,out]
Options:

np [integer,in,optional/default=len(xx)]

Called from:

dstpts2line()

Call to:

linept()

subroutine lineptss(xx, yy, xx1, xx2, yy1, yy2, xxc, yyc, np)

Coordinates of lines points closest to target points

Parameters:
  • xx (np) [real,in]
  • yy (np) [real,in]
  • xx1 (np) [real,in]
  • xx2 (np) [real,in]
  • yy1 (np) [real,in]
  • yy2 (np) [real,in]
  • xxc (np) [real,out]
  • yyc (np) [real,out]
Options:

np [integer,in,optional/default=len(xx)]

Called from:

dstpts2lines()

Call to:

linept()

subroutine dstpt2line(x, y, x1, x2, y1, y2, d)

Distance from a point to a line

Parameters:
  • x [real,in]
  • y [real,in]
  • x1 [real,in]
  • x2 [real,in]
  • y1 [real,in]
  • y2 [real,in]
  • d [real,out]
Call to:

linept()

subroutine dstpts2line(x, y, x1, x2, y1, y2, d, np)

Distance from points to a line

Parameters:
  • x (np) [real,in]
  • y (np) [real,in]
  • x1 [real,in]
  • x2 [real,in]
  • y1 [real,in]
  • y2 [real,in]
  • d (np) [real,out]
Options:

np [integer,optional/default=len(x)]

Call to:

linepts()

subroutine dstpts2lines(x, y, x1, x2, y1, y2, d, np)

Distance from points to lines

Parameters:
  • x (np) [real,in]
  • y (np) [real,in]
  • x1 (np) [real,in]
  • x2 (np) [real,in]
  • y1 (np) [real,in]
  • y2 (np) [real,in]
  • d (np) [real,out]
Options:

np [integer,optional/default=len(x)]

Call to:

lineptss()

subroutine curv2rect(x1, x2, x3, x4, y1, y2, y3, y4, x, y, p, q)

Coordinate transform from curvilinear to rectangular

Cell shape:

2 - 3 | | 1 - 4
Source :

http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19890018062_1989018062.pdf

Parameters:
  • x1 [real,in]
  • x2 [real,in]
  • x3 [real,in]
  • x4 [real,in]
  • y1 [real,in]
  • y2 [real,in]
  • y3 [real,in]
  • y4 [real,in]
  • x [real,in]
  • y [real,in]
  • p [real,out]
  • q [real,out]
Called from:

curv2rel_single(), curv2rectss()

subroutine curv2rectss(xx1, xx2, xx3, xx4, yy1, yy2, yy3, yy4, xx, yy, pp, qq, np)

Same as curv2rel but for a definite and same number of quadrangles and points

Parameters:
  • xx1 (np) [real,in]
  • xx2 (np) [real,in]
  • xx3 (np) [real,in]
  • xx4 (np) [real,in]
  • yy1 (np) [real,in]
  • yy2 (np) [real,in]
  • yy3 (np) [real,in]
  • yy4 (np) [real,in]
  • xx (np) [real,in]
  • yy (np) [real,in]
  • pp (np) [real,out]
  • qq (np) [real,out]
Options:

np [integer,in,optional/default=len(xx1)]

Call to:

curv2rect()

subroutine curv2rel(xxi, yyi, xo, yo, p, q, nxi, nyi, no)

Convert a series of absolute coordinates to coordinates relative to a curved grid

Parameters:
  • xxi (nyi,nxi) [real,in]
  • yyi (nyi,nxi) [real,in]
  • xo (no) [real,in]
  • yo (no) [real,in]
  • p (no) [real,out]
  • q (no) [real,out]
Options:
  • nxi [integer,in,optional/default=shape(xxi,1)]
  • nyi [integer,in,optional/default=shape(xxi,0)]
  • no [integer,in,optional/default=len(xo)]
Called from:

nearest2dto1dc(), dstwgt2dto1dc(), bilin2dto1dc()

Call to:

curv2rel_single()

subroutine curv2rel_single(xxi, yyi, xo, yo, p, q, nxi, nyi)

curv2rel for a single output point

Parameters:
  • xxi (nyi,nxi) [real,in]
  • yyi (nyi,nxi) [real,in]
  • xo [real,in]
  • yo [real,in]
  • p [real,out]
  • q [real,out]
Options:
  • nxi [integer,in,optional/default=shape(xxi,1)]
  • nyi [integer,in,optional/default=shape(xxi,0)]
Called from:

curv2rel(), linear4dto1dxx(), nearest4dto1dxx()

Call to:

closest2d(), curv2rect()

subroutine nearest2dto1dc_reduc(p, q, zzi, zo, mv, nxi, nyi, no, nz)

Nearest interpolation of gridded data with 2D AXES to random positions This version takes relative positions with respect to output grid

Parameters:
  • p (no) [real,in]
  • q (no) [real,in]
  • zzi (nz,nyi,nxi) [real,in]
  • zo (nz,no) [real,out]
  • mv [real,in]
Options:
  • nxi [integer,in,optional/default=shape(zzi,2)]
  • nyi [integer,in,optional/default=shape(zzi,1)]
  • no [integer,in,optional/default=len(p)]
  • nz [integer,in,optional/default=shape(zzi,0)]
Called from:

nearest2dto1dc()

subroutine nearest2dto1dc(xxi, yyi, zzi, xo, yo, zo, mv, nxi, nyi, no, nz)

nearest interpolation of gridded data with 2D AXES to random positions

Parameters:
  • xxi (nyi,nxi) [real,in]
  • yyi (nyi,nxi) [real,in]
  • zzi (nz,nyi,nxi) [real,in]
  • xo (no) [real,in]
  • yo (no) [real,in]
  • zo (nz,no) [real,out]
  • mv [real,in]
Options:
  • nxi [integer,in,optional/default=shape(xxi,1)]
  • nyi [integer,in,optional/default=shape(xxi,0)]
  • no [integer,in,optional/default=len(xo)]
  • nz [integer,in,optional/default=shape(zzi,0)]
Call to:

curv2rel(), nearest2dto1dc_reduc()

subroutine bilin2dto1dc_reduc(p, q, zzi, zo, mv, nxi, nyi, no, nz)

Bilinear interpolation of gridded data with 2D AXES to random positions This version takes relative positions with respect to output grid

Parameters:
  • p (no) [real,in]
  • q (no) [real,in]
  • zzi (nz,nyi,nxi) [real,in]
  • zo (nz,no) [real,out]
  • mv [real,in]
Options:
  • nxi [integer,in,optional/default=shape(zzi,2)]
  • nyi [integer,in,optional/default=shape(zzi,1)]
  • no [integer,in,optional/default=len(p)]
  • nz [integer,in,optional/default=shape(zzi,0)]
Called from:

bilin2dto1dc()

subroutine bilin2dto1dc(xxi, yyi, zzi, xo, yo, zo, mv, nxi, nyi, no, nz)

Bilinear interpolation of gridded data with 2D AXES to random positions

Parameters:
  • xxi (nyi,nxi) [real,in]
  • yyi (nyi,nxi) [real,in]
  • zzi (nz,nyi,nxi) [real,in]
  • xo (no) [real,in]
  • yo (no) [real,in]
  • zo (nz,no) [real,out]
  • mv [real,in]
Options:
  • nxi [integer,in,optional/default=shape(xxi,1)]
  • nyi [integer,in,optional/default=shape(xxi,0)]
  • no [integer,in,optional/default=len(xo)]
  • nz [integer,in,optional/default=shape(zzi,0)]
Call to:

curv2rel(), bilin2dto1dc_reduc()

subroutine dstwgt2dto1dc_reduc(p, q, zzi, zo, mv, nxi, nyi, no, nz)

Bilinear interpolation of gridded data with 2D AXES to random positions This version takes relative positions with respect to output grid

Parameters:
  • p (no) [real,in]
  • q (no) [real,in]
  • zzi (nz,nyi,nxi) [real,in]
  • zo (nz,no) [real,out]
  • mv [real,in]
Options:
  • nxi [integer,in,optional/default=shape(zzi,2)]
  • nyi [integer,in,optional/default=shape(zzi,1)]
  • no [integer,in,optional/default=len(p)]
  • nz [integer,in,optional/default=shape(zzi,0)]
Called from:

dstwgt2dto1dc()

subroutine dstwgt2dto1dc(xxi, yyi, zzi, xo, yo, zo, mv, nxi, nyi, no, nz)

Distance weight interpolation of gridded data with 2D AXES to random positions

Parameters:
  • xxi (nyi,nxi) [real,in]
  • yyi (nyi,nxi) [real,in]
  • zzi (nz,nyi,nxi) [real,in]
  • xo (no) [real,in]
  • yo (no) [real,in]
  • zo (nz,no) [real,out]
  • mv [real,in]
Options:
  • nxi [integer,in,optional/default=shape(xxi,1)]
  • nyi [integer,in,optional/default=shape(xxi,0)]
  • no [integer,in,optional/default=len(xo)]
  • nz [integer,in,optional/default=shape(zzi,0)]
Call to:

curv2rel(), dstwgt2dto1dc_reduc()

subroutine mixt2dx(vari, xi, yi, varo, xo, yo, mv, ext, nxi, nyi, nxo, nyo, nz)

Extension of avgext2d to third dimension (simple loop)

Parameters:
  • vari (nxi,nyi,nz) [real,in]
  • xi (nxi) [real,in]
  • yi (nyi) [real,in]
  • varo (nxo,nyo,nz) [real,out]
  • xo (nxo) [real,in]
  • yo (nyo) [real,in]
  • mv [real,in]
  • ext [logical,in]
Options:
  • nxi [integer,in,optional/default=shape(vari,0)]
  • nyi [integer,in,optional/default=shape(vari,1)]
  • nxo [integer,in,optional/default=len(xo)]
  • nyo [integer,in,optional/default=len(yo)]
  • nz [integer,in,optional/default=shape(vari,2)]
Call to:

mixt2d()

subroutine mixt2d(idim, jdim, xx, yy, ff, mdim, ndim, rr, ss, gg)
Options:
  • idim [integer,optional/default=len(xx)]
  • jdim [integer,optional/default=len(yy)]
  • mdim [integer,optional/default=len(rr)]
  • ndim [integer,optional/default=len(ss)]
Parameters:
  • xx (idim) [real,in]
  • yy (jdim) [real,in]
  • ff (idim,jdim) [real,in]
  • rr (mdim) [real,in]
  • ss (ndim) [real,in]
  • gg (mdim,ndim) [real,out]
Called from:

mixt2dx()

subroutine cargen(xi, yi, zi, xo, yo, zo, mv, npt, nx, ny)

The famous cargen interpolator

Parameters:
  • xi (npt) [real,in]
  • yi (npt) [real,in]
  • zi (npt) [real,in]
  • xo (nx) [real,in]
  • yo (ny) [real,in]
  • zo (nx,ny) [real,out]
  • mv [real,in]
Options:
  • npt [integer,in,optional/default=len(xi)]
  • nx [integer,in,optional/default=len(xo)]
  • ny [integer,in,optional/default=len(yo)]
Call to:

zkrig()

subroutine zkrig(x0, y0, z0, x, y, z, n, npt)
Parameters:
  • x0 [real,in]
  • y0 [real,in]
  • z0 [real,out]
  • x (npt) [real,in]
  • y (npt) [real,in]
  • z (npt) [real,in]
  • n [integer,in] :: ,nbsondmx
Options:

npt [integer,in,optional/default=len(x)]

Called from:

cargen()

Call to:

plan()

function plan(xpl, ypl, zpl, x1, y1)
Parameters:
  • xpl (3) [real,in]
  • ypl (3) [real,in]
  • zpl (3) [real,in]
  • x1 [real,in]
  • y1 [real,in]
Return:

plan [real]

Called from:

zkrig()