From 41ee0e73374ac0ca50420100ab535f0cd8431190 Mon Sep 17 00:00:00 2001 From: ErolBa Date: Mon, 13 Oct 2025 14:44:26 +0200 Subject: [PATCH] Turn on axis recalculation in force_final_grad --- src/xspech.f90 | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/xspech.f90 b/src/xspech.f90 index 5d251301..09711395 100644 --- a/src/xspech.f90 +++ b/src/xspech.f90 @@ -319,7 +319,7 @@ subroutine spec version, & MPI_COMM_SPEC, & force_final, Lhessianallocated, LocalConstraint, hessian, dBBdmp, dFFdRZ, dmupfdx, & - dRodR, dRodZ, dZodR, dZodZ, dessian, LGdof + dRodR, dRodZ, dZodR, dZodZ, dRadR, dRadZ, dZadR, dZadZ, dessian, LGdof !-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-! @@ -333,7 +333,7 @@ subroutine spec CHARACTER :: pack INTEGER :: Lfindzero_old, mfreeits_old REAL :: gBnbld_old - INTEGER :: lnPtrj, numTrajTotal + INTEGER :: lnPtrj, numTrajTotal, Lfindzero_temp !-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-! @@ -501,11 +501,18 @@ subroutine spec SALLOCATE( dRodZ, (1:Ntz,0:3,1:mn), zero ) SALLOCATE( dZodR, (1:Ntz,0:3,1:mn), zero ) SALLOCATE( dZodZ, (1:Ntz,0:3,1:mn), zero ) + SALLOCATE( dRadR, (1:mn,0:1,0:1,1:mn), zero ) ! calculated in rzaxis; 19 Sep 16; + SALLOCATE( dRadZ, (1:mn,0:1,0:1,1:mn), zero ) + SALLOCATE( dZadR, (1:mn,0:1,0:1,1:mn), zero ) + SALLOCATE( dZadZ, (1:mn,0:1,0:1,1:mn), zero ) LComputeDerivatives = .true. LComputeAxis = .true. + Lfindzero_temp = Lfindzero + Lfindzero = 2 ! Necessary to trigger axis recomputation in packxi WCALL( xspech, dforce, ( NGdof, position(0:NGdof), force_final(0:NGdof), LComputeDerivatives, LComputeAxis) ) + Lfindzero = Lfindzero_temp else SALLOCATE( force_final, (0:NGdof), zero )