diff --git a/source/KKRnano/source/ProcessKKRresults_mod.F90 b/source/KKRnano/source/ProcessKKRresults_mod.F90 index 62c197c39dfcad7ce58fa4b0a0a41a5ee572efee..2c63166ee5fdc29df39a40f39032438fb59ee95d 100644 --- a/source/KKRnano/source/ProcessKKRresults_mod.F90 +++ b/source/KKRnano/source/ProcessKKRresults_mod.F90 @@ -1814,12 +1814,14 @@ module ProcessKKRresults_mod end if ! Look for largest angle change of constraint atom - ! Normalize moment to get direction before fixing - newmoment = newmoment / sqrt(dot_product(newmoment, newmoment)) ! Calculate local frame of reference direction dir(1) = sin(theta_noco)*cos(phi_noco) dir(2) = sin(theta_noco)*sin(phi_noco) dir(3) = cos(theta_noco) + ! Normalize moment to get direction before fixing + newmoment = newmoment / sqrt(dot_product(newmoment, newmoment)) + ! For negative moments, correct sign + newmoment = newmoment * sign(1., dot_product(newmoment, dir)) ! Calculate change in angle constr_angle_change = acos(dot_product(newmoment, dir)) if (constr_angle_change > max_constr_angle_change) then