Fortran 배열은 열 우선이다. a(i,j)와 a(i+1,j)는 메모리에서 이웃이다. a(i,j+1)은 열 하나만큼 떨어져 있다. 그러니 메모리를 순서대로 훑는 루프는 j가 바깥, i가 안쪽이다.
C 습관대로 거꾸로 써도 답은 맞다. 다만 열 길이만큼씩 건너뛰며 메모리를 지난다. 컴파일러는 안전하다고 증명할 수 있으면 루프를 맞바꾸기도 한다. 믿지 마라.
배열 단면도 같다. a(:,j)는 연속이다. a(i,:)는 아니다. 이걸 더미 인수가 명시적 형상(explicit-shape)이나 크기 가정(assumed-size)인 프로시저에 넘기면 복사해 들이고 복사해 내보내는 일이 생길 수 있다. (:)로 선언한 형상 가정(assumed-shape) 더미는 띄엄띄엄한 단면을 그대로 받는다.
b = 2.0 * a 같은 배열 전체 식은 순서를 컴파일러에 맡긴다. 원소별 연산이면 이걸 쓴다.
표현이 먼저다. 한 번 만든 전치 사본이 여러 번 도는 영리한 순회보다 쌀 때가 있다.