From cb64464dff75798e6f4a515a229f42872ca1e716 Mon Sep 17 00:00:00 2001 From: David Minton Date: Fri, 14 May 2021 17:25:33 -0400 Subject: [PATCH] Fixed problems related to bad translation from C to Fortran and differences in arrays --- src/util/util_minimize_bfgs.f90 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/util/util_minimize_bfgs.f90 b/src/util/util_minimize_bfgs.f90 index 14e7b40f4..8971cf6e3 100644 --- a/src/util/util_minimize_bfgs.f90 +++ b/src/util/util_minimize_bfgs.f90 @@ -489,9 +489,9 @@ function quadfit(f, x0, S, N, lo, hi, eps) result(fnum) row_2 = [1.0_DP, a2, a2**2] row_3 = [1.0_DP, a3, a3**2] rhs = [f1, f2, f3] - lhs(:, 1) = row_1 - lhs(:, 2) = row_2 - lhs(:, 3) = row_3 + lhs(1, :) = row_1 + lhs(2, :) = row_2 + lhs(3, :) = row_3 ! Solve system of equations soln(:) = util_solve_linear_system(lhs, rhs, 3, lerr) if (lerr) then @@ -504,8 +504,8 @@ function quadfit(f, x0, S, N, lo, hi, eps) result(fnum) return end if aold = astar - if (abs(soln(2)) < small) soln(2) = small - astar = -soln(1) / (2 * soln(2)) + if (abs(soln(3)) < small) soln(3) = small + astar = -soln(2) / (2 * soln(3)) fstar = n2one(f, x0, S, N, astar) fnum = fnum + 1 ! keep the three closest a values to astar and discard the fourth