Program g13adfe

!     G13ADF Example Program Text

!     Mark 26.1 Release. NAG Copyright 2016.

!     .. Use Statements ..
      Use nag_library, Only: g13adf, nag_wp
!     .. Implicit None Statement ..
      Implicit None
!     .. Parameters ..
      Integer, Parameter               :: nin = 5, nout = 6
!     .. Local Scalars ..
      Real (Kind=nag_wp)               :: rv, xv
      Integer                          :: ifail, nk, npar, nwa, pp, qp
!     .. Local Arrays ..
      Real (Kind=nag_wp), Allocatable  :: par(:), r(:), wa(:)
      Integer                          :: isf(4), mr(7)
!     .. Intrinsic Procedures ..
      Intrinsic                        :: max
!     .. Executable Statements ..
      Write (nout,*) 'G13ADF Example Program Results'
      Write (nout,*)

!     Skip heading in data file
      Read (nin,*)

!     Read in problem size and variance
      Read (nin,*) nk
      Read (nin,*) xv

      Allocate (r(nk))

!     Read in data
      Read (nin,*) r(1:nk)

!     Read in the orders
      Read (nin,*) mr(1:7)

!     Calculate NPAR
      npar = mr(1) + mr(3) + mr(4) + mr(6)

      pp = max(mr(1),mr(4))
      qp = max(mr(3),mr(6))
      nwa = max(pp**2+pp,4*(qp+1))
      Allocate (par(npar),wa(nwa))

!     Calculate preliminary estimates
      ifail = -1
      Call g13adf(mr,r,nk,xv,npar,wa,nwa,par,rv,isf,ifail)
      If (ifail/=0) Then
        If (ifail<7) Then
          Go To 100
        End If
      End If

!     Display results
      Write (nout,99999) 'Parameter estimation success/failure indicator',     &
        isf(1:4)
      Write (nout,*)
      Write (nout,99998) 'ARIMA model parameter values ', par(1:npar)
      Write (nout,*)
      Write (nout,99998) 'Residual variance', rv

100   Continue

99999 Format (1X,A,4I4)
99998 Format (1X,A,5F10.5)
    End Program g13adfe