From 9d8bc1a3c49f8470f6af89ce8f7420a07e96d02d Mon Sep 17 00:00:00 2001 From: David Minton Date: Thu, 13 May 2021 17:38:38 -0400 Subject: [PATCH] Went back to original loop code until I can troubleshoot the vectorized version better. --- src/util/util_minimize_bfgs.f90 | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/util/util_minimize_bfgs.f90 b/src/util/util_minimize_bfgs.f90 index 35fdb6c87..22f956b62 100644 --- a/src/util/util_minimize_bfgs.f90 +++ b/src/util/util_minimize_bfgs.f90 @@ -124,8 +124,15 @@ function gradf(f, N, x1, grad, dx) result(fnum) fnum = 0 do i = 1, N - xp(:) = [((x1(j), j=1, k-1), x1(j) + dx, (x1(j), j=k+1, N), k=1, N)] - xm(:) = [((x1(j), j=1, k-1), x1(j) - dx, (x1(j), j=k+1, N), k=1, N)] + do j = 1, N + if (j == i) then + xp(j) = x1(j) + dx + xm(j) = x1(j) - dx + else + xp(j) = x1(j) + xm(j) = x1(j) + end if + end do grad(i) = (f%eval(xp) - f%eval(xm)) / (2 * dx) fnum = fnum + 2 end do