gdllwdal

FORTRAN

integer gdllwdval, ier
ier = gdllwdval(gdid, spdvals, wdvals, uuin, vvin, lat, lon, n)
integer gdid, n
real spdvals(n), wdvals(n), uuin(*), vvin(*), lat(n), lon(n)

C

int c_gdllwdval(int gdid, float *spdvals, float *wdvals, float *uuin, float *vvin, 
               float *lat, float *lon, int n)

 

Routine description

gdllwdval does a bi-dimensional vector interpolation on the values contained in uuin and vvin, themselves defined on grid gdid, at selected lat/lon points. Interpolated values are returned in spdvals and wdvals, in meteorological wind speed and direction.

Description of parameters

gdid

a valid grid identifier (returned by ezqkdef or ezgdef) that will be used as the source (input) grid.

spdvals, wdvals

Output interpolated winds, in grid coordinates based on gdid. There is 1:1 relationship with zvals and lat/lon; that is, interpolated values at point lat(1), lon(1) is zvals(1).

uuin, vvin

Input (source) winds. uuin and vvin are assumed to have the dimensions referred by gdid (the input grid).

lat

Stream of latitude points

lon

Stream of longitude points

n

Number of points

?

Sample FORTRAN code :

We want to interpolate data from a GEM grid to selected lat-lon 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 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
***   Do vector interpolation, returned values are in x,y coordinates,
***   uval is x-component (east-west) of the wind
***   vval is y-component (north-south) of the wind
      call gdllvval(gdgem, uuvals, vvals, uugem, vvgem, lat, lon, 3)
***   Do vector interpolation, returned values are in wind-speed coordinates.
***   spdvals is wind speed.
***   wdvals is meteorological wind direction
      call gdllwdval(gdgem, spdvals, wdvals, uugem, vvgem, lat, lon, 3)

      do i=1,3
         print *, lat(i),lon(i), uvals(i),vvals(i)
         print *, lat(i),lon(i), wdvals(i), sdvals(i)
         print *
      enddo

Go to the list of functions, or the general index.