blob: 9e0c9ffc72141424a96e3ac0c36955db817f8d43 [file] [log] [blame]
! { dg-do compile }
! { dg-options "-O3 -fprefetch-loop-arrays -w" }
MODULE cp_lbfgs
INTEGER, PARAMETER :: dp=8
CONTAINS
SUBROUTINE mainlb(n, m, x, l, u, nbd, f, g, factr, pgtol, ws, wy, &
csave, lsave, isave, dsave)
REAL(KIND=dp) :: x(n), l(n), u(n)
REAL(KIND=dp) :: f, g(n), factr, pgtol, ws(n, m), wy(n, m), sy(m, m), &
ss(m, m), wt(m, m), wn(2*m, 2*m), snd(2*m, 2*m), z(n), r(n), d(n), &
t(n), wa(8*m)
CHARACTER(len=60) :: task
IF (task == 'START') THEN
IF (task(1:5) == 'FG_LN') GOTO 666
ENDIF
222 CONTINUE
DO 40 i = 1, n
d(i) = z(i) - x(i)
40 ENDDO
666 CONTINUE
IF (info /= 0 .OR. iback >= 20) THEN
CALL dcopy(n,r,1,g,1)
ENDIF
GOTO 222
END SUBROUTINE mainlb
END MODULE cp_lbfgs