I compiled my code on my intel fortran compiler 11.1.048.

The code just ran fine.

When I compiled and ran the code in a UNIX cluster, with the Intel Fortran 11.1 I have something really weird going on.

First, the program was crashing at some point... Debugging it I found this out:

XR(14) = log(rsk(1))**2

print*, 'XR(14) - log(rsk(1))**2 =', XR(14) - log(rsk(1))**2

XR(15) = log(rsk(2))**2

print*, 'XR(15) - log(rsk(2))**2 =', XR(15) - log(rsk(2))**2

XR(16) = log(rsk(3))**2

print*, 'XR(16) - log(rsk(3))**2 =', XR(16) - log(rsk(3))**2

XR(17) = log(rsk(4))**2

print*, 'XR(17) - log(rsk(4))**2 =', XR(17) - log(rsk(4))**2

this prints a bunch of zeros on the screen, which should be the case.

However if I do this:

XR(14) = log(rsk(1))**2

XR(15) = log(rsk(2))**2

XR(16) = log(rsk(3))**2

XR(17) = log(rsk(4))**2

print*, 'XR(14) - log(rsk(1))**2 =', XR(14) - log(rsk(1))**2

print*, 'XR(15) - log(rsk(2))**2 =', XR(15) - log(rsk(2))**2

print*, 'XR(16) - log(rsk(3))**2 =', XR(16) - log(rsk(3))**2

print*, 'XR(17) - log(rsk(4))**2 =', XR(17) - log(rsk(4))**2

I get nonzero stuff printed.

More confusingly, if I code:

XR(14) = log(rsk(1))**2

print*, 'XR(14) - log(rsk(1))**2 =', XR(14) - log(rsk(1))**2

XR(15) = log(rsk(2))**2

print*, 'XR(15) - log(rsk(2))**2 =', XR(15) - log(rsk(2))**2

XR(16) = log(rsk(3))**2

print*, 'XR(16) - log(rsk(3))**2 =', XR(16) - log(rsk(3))**2

XR(17) = log(rsk(4))**2

print*, 'XR(17) - log(rsk(4))**2 =', XR(17) - log(rsk(4))**2

print*, 'XR(14) - log(rsk(1))**2 =', XR(14) - log(rsk(1))**2

print*, 'XR(15) - log(rsk(2))**2 =', XR(15) - log(rsk(2))**2

print*, 'XR(16) - log(rsk(3))**2 =', XR(16) - log(rsk(3))**2

print*, 'XR(17) - log(rsk(4))**2 =', XR(17) - log(rsk(4))**2

Then I get zeros everywhere.

How is this happening?

Let me just remind that none of this happens on my machine using the Intel compiler and Intel Fortran 11.1.048. But that happens when I migrate to the UNIX cluster with Intel Fortran 11.1

Thanks,

Rafael