data list-of-variables/ list-of-values/, ...
로 여기서 세 개의 점은 이 형태가 반복된다는 것을 의미한다. 다음은 예이다.
data m/10/, n/20/, x/2.5/, y/2.5/
또 이것을 다음과 같이 나타낼 수도 있다.
data m,n/10,20/, x,y/2*2.5/
같은 것을 assignment로 할 수도 있다.
m = 10
n = 20
x = 2.5
y = 2.5
data 문은 더 간결하고 따라서 보통 더 편리하다. 특히 같은 값을 반복하여 사용할 때 간단히 사용하는 방법에 주의하라.
data 문은 단 한 번만 프로그램을 수행하기 직전에 읽어 들인다. 이런 이유로 data 문은 주로 main program에서 사용하고 subroutines에서는 사용하지 않는다.
data 문은 배열(vectors, matrices)을 초기화할 때 사용하기도 한다. 아래는 프로그램을 시작할 때 matrix를 모두 0으로 하는 법이다.
real A(10,20)
data A/ 200 * 0.0/
어떤 compiler는 자동으로 이런식으로 배열을 초기화하기도 하지만 모든 것이 다 그런 것은 아니다. 따라서 배열의 원소가 0이어야만 한다면 다음 예를 다르는 것이 좋다. 물론 0이 아닌 다른 값으로 초기화 할 수도 있다. 또는 각각의 원소를 초기화할 수도 있다.
data A(1,1)/ 12.5/, A(2,1)/ -33.3/, A(2,2)/ 1.0/
또는 다음과 같이 작은 배열의 모든 원소를 나열할 수 있다.
integer v(5)
real B(2,2)
data v/10,20,30,40,50/, B/1.0,-3.7,4.3,0.0/
이차원 배열은 다른 경우와 마찬가지로 column 우선에 따라 값을 지정할 수 있다.
block data
integer nmax
parameter (nmax=20)
real v(nmax), alpha, beta
common /vector/v,alpha,beta
data v/20*100.0/, alpha/3.14/, beta/2.71/
end
data 문처럼, block data도 main program이 수행되기 시작할 때 한 번 수행된다. source code에서의 block data "subroutine"의 위치는 (main program이나 subprogram 안에 들어 있지 않기만 하다면) 어느 곳이든 상관없다..