I found out what the problem could be.
Here is an example piece of code:
Real (KIND=8) :: A, VEX,VEY
VEX=0.7071063969767235057872767 ! result of an other computation
R1=A * VEX * VEX
R2=A * VEY * VEX
R3=A * VEX * VEY
R4=A * VEY * VEY
This results in:
R2 and R3 should be identical (commutative law, VEX * VEY = VEY * VEX).
They are identical when compiling without OMP,
but the are not when compiling with OMP and without any OMP-directive.
The differences disturb the solution of the sparse matrix.
The solution with and without OMP are much different.
But this is not always the case. When using the following numbers, f.e.,
everything is ok:
And the effect is not there when setting A=1.0
So there must be a difference in handling floating-point-operation..
I know, that using Kind=8 - variables is only precise for about 15 digits.
But the digits far behind the point have an effect on the solution.
Do you have an idea what to do?
Thanks and best regards,