Program j : vpolagr

      program progj
      implicit none

      real order12,rms
      external order12,rms
      integer i,j
      real rff(14),ff(14),zi(14,13),z(13),maxerr

      do j=1,13
         z(j)=0.05*j**2
         do i=1,14
            zi(i,j)=order12(z(j),real(i))
         enddo   
      enddo   

      call vpolagr(ff,7.0,zi,z,14,13)
      
      maxerr=0
      do i=1,14
         rff(i)=order12(7.0,float(i))
         maxerr=max(maxerr,abs(1-rff(i)/ff(i)))
      enddo

      print *,'For an interpolation of a vertical field'
      print *,'at height 7.0:'
      print *,'  rms error of vpolagr is:',rms(rff,ff,14)
      print *,'  maximum relative error is:',maxerr
      

      stop
      end

      real function order12(x,nn)
      real x,nn,n

      n=0.5*nn
      order12=(((((((((((0.1*x-n+0.2)*x-n+0.3)*x-n+0.4)*x-n+0.5)*x+n
     * +0.6)*x+0.7)*x+n+0.8)*x+n+0.9)*x+n+1.0)*x+n+1.1)*x+1.2)*x+1.3
      return
      end

      real function rms(a,b,n)
      real a(n),b(n),sum
      integer i,n
      sum=0
      do i=1,n
         sum=sum+(a(i)-b(i))**2
      enddo
      rms=sqrt(sum/n)
      return
      end