FORTRAN integer ier, gdxysval ier = gdxysval(gdid, zvals, zin, x, y, n) integer gdid,n real zout(n), zin(*), x(n), y(n) |
C int gdxysval(int gdid, float *zvals, float *zin, float *x, float *y, int n) |
Routine description
gdxysval interpolates values, located at points x(1..n), y(1..n), in grid coordinates, from the source field zin. The degree of interpolation is the one currently defined by the last call to ezsetopt (set to cubic (3) by default). |
Description of parameters
gdid |
a valid grid identifier (returned by ezqkdef or ezgdef) that will be used as the source (input) grid. |
zvals |
Output interpolated values. There is 1:1 relationship with zvals and x/y; that is, interpolated values at point x(1), y(1) is zvals(1). |
zin |
Input (source) field. zin is assumed to have the dimensions referred by gdid (the input grid). |
x |
Stream of grid positions |
y |
Stream of grid positions |
n |
Number of points |
?
Sample FORTRAN code :
We want to interpolate data from a GEM grid to selected x-y points. Assume necessary memory space has been allocated.
datev = -1 etiket = ' ' typvar = ' ' nomvar = 'GZ' ip1 = 500 ip2 = 0 ip3 = -1 iun = 13 *** read fld info and data key = FSTINF(iun, NI, NJ, NK, datev, etiket, ip1, ip2, ip3, typvar, $ nomvar) ier = FSTPRM(key, DATEO, DEET, NPAS, NI, NJ, NK, NBITS, DATYP, IP1, $ IP2, IP3, TYPVAR, NOMVAR, ETIKET, GRTYP, IG1, IG2, IG3, $ IG4, SWA, LNG, DLTF, UBC, EX1, EX2, EX3) ier = FSTLUK(zgem, key, NI, NJ, NK) *** Define input grid gdgem = ezqkdef(nigem,njgem ,'Z',ig1, ig2, ig3, ig4, iun) *** Define x-y values *** Define latlon values lat(1) = 45.73 lon(1) = -73.75 lat(2) = 43.40 lon(2) = -79.38 lat(3) = 49.18 lon(3) = -123.18 *** Convert the latlon values to x-y coordinates ier = gdxyfll(gdgem, x, y, lat, lon, 3) *** Do scalar interpolation at the x-y points call gdxysval(gdgem, zval, zgem, x, y, 3) do i=1,3 print *, i, x(i), y(i), zval(i) enddo *** Note: in this example *** ier = gdxyfll(gdgem, x, y, lat, lon, 3) *** ier = gdxysval(gdgem, zval, zgem, x, y, 3) *** is equivalent to *** ier = gdllsval(gdgem, zval, zgem, lat, lon, 3) ***
Go to the list of functions, or the general index.