| ! { 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 |
| |