유닉스머신이나 리눅스 머신에서 포트란을 사용하기 위해서는 일단 시스템 관리자에서 포트란을 설치해 달라고 요청을 해야된다. 요즘에 관심의 촛점이되고 있는 리눅스 머신의 경우 기본적으로 포트란 컴파일러가 설치가 되어 있다. 좀 전에 작성한 sample.for 파일을 리눅스 머신에서 컴파일하는 방법에 대한 생각을 해보자. 리눅스 머신에서 사용하는 명령어는 대부분 f77이나 g77이다. g77의 경우를 예를 들어 설명하겠다.
g77 sample.for
위와 같은 명령어에 의해 생성되는 파일은 윈도우의 경우와는 약간 다르다. 위의 경우에는 실행 파일의 이름을 정해주지 않았기 때문에 a.out이라는 형태의 실행파일이 만들어졌다. 그러므로 프로그램을 실행하기 위해서는
./a.out
이라고 해야만 실행이 된다. 실행 파일의 이름을 결정하기 위해서는 -o 옵션을 사용해야 된다.
g77 -o sample sample.for
또한 유닉스나 리눅스에서는 도스와는 달리 실행파일의 확장자 같은 것은 필요가 없기 때문에 파일의 실행 권한만 있으면 된다. 그러므로 위에서 컴파일한 파일을 실행하기 위해서는
./sample
이라고 하면 된다. 또한 단순히 목적코드만을 만드는 경우에는 -c 옵션을 사용하면 된다.
g77 -c sample.for
이 경우에는 윈도우 시스템과 달리 sample.o 라는 파일을 만들어 준다. 윈도우 시스템에서는 sample.obj 가 만들어지는 것과는 약간 다르다.

마지막으로 다른 언어와 달리 포트란은 대소문자를 구분하지 않는다. 윈도우 시스템인 경우야 당연이 시스템을 사용하는 경우 대소문자를 구분하지 않지만 유닉스 시스템인 경우는 다르게 대소문자를 구분한다. 예를 들어 a.exe와 A.exe 파일이 있는 경우 윈도우 시스템은 같은 것으로 인식을 한다. 또한 명령어를 사용하는데 있어서도 디렉토리를 바꾸는데 사용하는 명령어인 `cd'나 `CD'를 구분하지 않는다. 즉, 같은 명령어로 인식한다는 것이다. 그러나 유닉스 시스템에서는 대소문자를 구분해서 위에서 예를 들은 a.exe와 A.exe라는 파일은 다른 파일이며 명령어인 `cd'는 있지만 `CD'라는 명령어는 없는 것으로 나온다. 그렇지만 두 시스템 모두 포트란에서 사용하는 변수나 함수는 모두 동일한 것으로 인식을 한다.

C        1         2         3         4         5         6         7
C23456789012345678901234567890123456789012345678901234567890123456789012
C
C Sample file to show basic fortran program
C
program sample

integer a, B

a=1
B=2

write(*,10) A, b
10 format(2i)
stop
end
위의 예제를 컴파일 하는 경우 어떠한 에러도 발생하지 않는다. 그러나 대부분의 다른 언어의 경우에는 이 두개를 구분해서 사용하므로 포트란을 사용할때 주의를 해야된다. Matlab에서도 a라고 지정한 변수와 A라고 지정한 변수는 다른 것으로 알고 있다.

원본소스 : http://cheric.org/ippage/e/ipdata/2001/13/node11.html


Posted by 스핏파이어
,