Program h02bffe
! H02BFF Example Program Text
! Mark 30.1 Release. NAG Copyright 2024.
! .. Use Statements ..
Use nag_library, Only: h02bff, nag_wp, x04acf, x04baf
! .. Implicit None Statement ..
Implicit None
! .. Parameters ..
Real (Kind=nag_wp), Parameter :: xbl_default = 0.0E0_nag_wp
Real (Kind=nag_wp), Parameter :: xbu_default = 1.0E+20_nag_wp
Integer, Parameter :: maxm = 50, maxn = 50, msglvl = 1, &
nindat = 7, nout = 6
Integer, Parameter :: maxdpt = 3*maxn/2
Character (*), Parameter :: fname = 'h02bffe.opt'
Character (3), Parameter :: optim = 'MIN'
! .. Local Scalars ..
Integer :: ifail, infile, liwork, lrwork, m, &
mode, n
Character (80) :: rec
! .. Local Arrays ..
Real (Kind=nag_wp), Allocatable :: rwork(:)
Real (Kind=nag_wp) :: x(maxn)
Integer, Allocatable :: iwork(:)
Character (8) :: crname(maxn+maxm)
! .. Intrinsic Procedures ..
Intrinsic :: min
! .. Executable Statements ..
Write (rec,99999) 'H02BFF Example Program Results'
Call x04baf(nout,rec)
! Open the data file for reading
mode = 0
ifail = 0
Call x04acf(nindat,fname,mode,ifail)
! Solve the problem
liwork = (25+maxn+maxm)*maxdpt + 7*maxn + 2*maxm + 4
lrwork = maxdpt*(maxn+1) + 2*min(maxn,maxm+1)**2 + maxm*maxn + 19*maxn + &
15*maxm
Allocate (iwork(liwork),rwork(lrwork))
infile = nindat
ifail = 0
Call h02bff(infile,maxn,maxm,optim,xbl_default,xbu_default,maxdpt, &
msglvl,n,m,x,crname,iwork,liwork,rwork,lrwork,ifail)
99999 Format (1X,A)
End Program h02bffe