mirror of git://gcc.gnu.org/git/gcc.git
29 lines
819 B
Fortran
29 lines
819 B
Fortran
! { 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
|
|
|