1! { dg-do compile }
2! { dg-options "-O3 -fprefetch-loop-arrays -w" }
3
4MODULE cp_lbfgs
5  INTEGER, PARAMETER :: dp=8
6CONTAINS
7  SUBROUTINE mainlb(n, m, x, l, u, nbd, f, g, factr, pgtol, ws, wy, &
8       csave, lsave, isave, dsave)
9    REAL(KIND=dp)                            :: x(n), l(n), u(n)
10    REAL(KIND=dp) :: f, g(n), factr, pgtol, ws(n, m), wy(n, m), sy(m, m), &
11      ss(m, m), wt(m, m), wn(2*m, 2*m), snd(2*m, 2*m), z(n), r(n), d(n), &
12      t(n), wa(8*m)
13    CHARACTER(len=60)                        :: task
14    IF (task == 'START') THEN
15       IF (task(1:5) == 'FG_LN') GOTO 666
16    ENDIF
17222 CONTINUE
18    DO 40 i = 1, n
19       d(i) = z(i) - x(i)
2040  ENDDO
21666 CONTINUE
22    IF (info /= 0 .OR. iback >= 20) THEN
23       CALL dcopy(n,r,1,g,1)
24    ENDIF
25    GOTO 222
26  END SUBROUTINE mainlb
27END MODULE cp_lbfgs
28
29