Program e01bgfe ! E01BGF Example Program Text ! Mark 24 Release. NAG Copyright 2012. ! .. Use Statements .. Use nag_library, Only: e01bgf, nag_wp ! .. Implicit None Statement .. Implicit None ! .. Parameters .. Integer, Parameter :: nin = 5, nout = 6 ! .. Local Scalars .. Real (Kind=nag_wp) :: step Integer :: i, ifail, m, n, r ! .. Local Arrays .. Real (Kind=nag_wp), Allocatable :: d(:), f(:), pd(:), pf(:), px(:), x(:) ! .. Intrinsic Procedures .. Intrinsic :: min, real ! .. Executable Statements .. Write (nout,*) 'E01BGF Example Program Results' ! Skip heading in data file Read (nin,*) Read (nin,*) n Allocate (d(n),f(n),x(n)) Do r = 1, n Read (nin,*) x(r), f(r), d(r) End Do Read (nin,*) m Allocate (pd(m),pf(m),px(m)) ! Compute M equally spaced points from X(1) to X(N). step = (x(n)-x(1))/real(m-1,kind=nag_wp) Do i = 1, m px(i) = min(x(1)+real(i-1,kind=nag_wp)*step,x(n)) End Do ifail = 0 Call e01bgf(n,x,f,d,m,px,pf,pd,ifail) Write (nout,*) Write (nout,*) ' Interpolated Interpolated' Write (nout,*) ' Abscissa Value Derivative' Do i = 1, m Write (nout,99999) px(i), pf(i), pd(i) End Do 99999 Format (1X,2F15.4,1P,E15.3) End Program e01bgfe