For loop variables get changed in Fortran

Viewed 47

I am using the finite element method and separating a unit isosceles triangle into triangles with six nodes. While calculating coordinates of the nodes I noticed that the variables in the for loop get messed up for some reason and I cannot figure out why. Here is my code:

PROGRAM triangle

    IMPLICIT NONE

    INTEGER, PARAMETER :: stepSize = 4    
    INTEGER, PARAMETER :: numberOfNodes = ((2*stepSize - 1) * (2*stepSize)) / 2
    INTEGER            :: i, j, counter

    REAL, DIMENSION(2, numberOfNodes) :: nodeCoordinates

        counter = 0
        DO j = 1, 2*stepSize - 1
            DO i = 1, 2*stepSize - 1 - counter

                nodeCoordinates(1, i + (j-1)*(2*stepSize - 1)) = ((REAL(i-1)) / REAL(2*stepSize - 2))
                nodeCoordinates(2, i + (j-1)*(2*stepSize - 1)) = ((REAL(j-1)) / REAL(2*stepSize - 2))
            
            END DO 
            counter = counter + 1
        END DO

END PROGRAM triangle

When I print the variable j in the inner for loop, the following is shown:

           1
           1
           1
           1
           1
           1
           1
           2
           2
           2
           2
           2
           2
           3
           3
           3
           3
           3
           4
           4
           4
           4
           0
           0
           0
           1
           1
           2
0 Answers
Related