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