Example 2 - nonlinear interpolation (Fortran single precision)


      PROGRAM NNEX02
C
C  Simple example of natural neighbor linear regridding.
C
      PARAMETER(ISLIM = 6, NUMXOUT = 21, NUMYOUT = 21)
C
C  Dimension for the work space for the NCAR Graphics call to
C  SRFACE to plot the interpolated grid.
C
      PARAMETER(IDIM=2*NUMXOUT*NUMYOUT)
C
C  Input data arrays.
C
      REAL X(ISLIM), Y(ISLIM), Z(ISLIM)
C
C  Output grid arrays.
C
      REAL XI(NUMXOUT), YI(NUMYOUT), ZI(NUMXOUT,NUMYOUT)
C
C  Define the input data arrays.
C
      DATA X/0.00, 1.00, 0.00, 1.00, 0.40, 0.75 /
      DATA Y/0.00, 0.00, 1.00, 1.00, 0.20, 0.65 /
      DATA Z/0.00, 0.00, 0.00, 0.00, 1.25, 0.80 /
C
      DIMENSION IWORK(IDIM)
C
C  Define the output grid.
C
      XMIN = 0.
      XMAX = 1.
      XINC = (XMAX-XMIN)/(NUMXOUT-1.) 
      DO 20 I=1,NUMXOUT
        XI(I) = XMIN+REAL(I-1) * XINC
   20 CONTINUE
C
      YMAX =  1.
      YMIN =  0.
      YINC = (YMAX-YMIN)/(NUMYOUT-1.)
      DO 30 J=1,NUMYOUT
        YI(J) = YMIN+REAL(J-1) * YINC
   30 CONTINUE 
C
C  Set the flag for using estimated gradients.
C
      CALL NNSETI('IGR',1)
C
C  Do the regridding.
C
      CALL NATGRIDS(ISLIM,X,Y,Z,NUMXOUT,NUMYOUT,XI,YI,ZI,IER)
      IF (IER .NE. 0) THEN
        WRITE (6,510) IER
  510   FORMAT('Error return from NATGRIDS = ',I3)
      ENDIF
C
C  Draw a plot of the interpolated surface.
C
      CALL DRWSRF(NUMXOUT,NUMYOUT,XI,YI,ZI,15.,-25.,90.,IWORK)
C 
      STOP
      END

home | contents | defs | params | procedures | exmpls | index