I have come across a problem when I use the int() function. I have an real array mEL and I want to convert some of its components to integers for comparison with real array COORDS. I have to use int() due to rounding errors in COORDS array, so ZERO is not quite zero is 3.D-77 or similar:
DO I = 1,nLines IF (int(mEL(I,1)).EQ.int(COORDS(1,1)) .AND. 1 int(mEL(I,2)).EQ.int(COORDS(2,1)) .AND. 2 int(mEL(I,3)).EQ.int(COORDS(3,1))) THEN .....do somethingThe problem is that during the run the outcome of int(COORDS(1,1)) changes but the value of COORDS(1,1) is the same. For example:
COORDS(1,1) = 1829.0000000During 1000 runs I get int(COORDS(1,1))=1829. However, after some runs I get: int(COORDS(1,1))=1828! but COORDS(1,1)=1829!
Any ideas why this happens?
Even stranger is when I have
COORDS(1,1) = 1829.0000000 and COORDS(1,2) = 1829.0000000 and int(COORDS(1,1)) = 1828 and int(COORDS(1,2)) = 1829!!!