본문 바로가기

Code/기타

g95 이용하여 fortran 컴파일하기

G95는 무료 포트란 컴파일러로서 아래 링크에서 다운 받을 수 있다.

http://www.g95.org

통합 개발환경(IDE)를 따로 제공하고 있지 않아서 도스 명령창을 이용해야한다는 불편을 감수해야 한다는 단점을 지니고 있다.

다운받은 파일을 더블클릭하면 설치를 실행하는 데, 폴더는 임의로 설정하여도 되나, 꾸준히 사용할 것으로 예상되면, C:\g95 로 설정하는 걸 추천한다. (Path에 추가하는 등, 물어보는 거는 Yes로 답해주면 된다, 마지막에 readme 파일은 안봐도 되고....)

설치가 끝나고 나면, 기본적으로 컴파일 방법은
g95 -o 실행파일명 소스파일명
을 써주면 된다.
커맨드 창을 띄우고 실행하는 것이 번거로우므로, 다음과 같이 하면 손쉽게 할 수 있을 것이다.

1. 소스가 있는 폴더에 가서 bat 파일(빈 파일 이름은 어떻게든 상관없고 확장자만 bat)을 만든다. 
ex) test_compile.bat

2. 방금 만든 bat 파일을 열어서 다음과 같이 입력하고 저장한다. (컴파일 하고자하는 소스 파일이름이 ann.for 라고 하자.)
g95 -o ann.exe ann.for
pause
(※추가 : 포트란 코드는 기본적으로 가로폭 80칸이 넘어가면 읽지를 않는다. 이 경우, -ffixed-line-length-132 옵션을 붙여서 컴파일 해줘야 한다.)

3. 저장한 bat 파일을 실행한다. 에러가 없다면, 에러표시 없이 '아무키나 누르세요'라는 문구를 볼 수 있을 것이다.


우리과 후배들을 위해 ANN 코드 수정시 예전 스타일 포트란 코드(아니면 visual fortan 스타일)를 g95로 돌릴 때 몇가지 에러 수정 사항을 정리하면 다음과 같다.

1. 첫줄의 $debug는 지운다.

2. 입력 파일을 받아들이는 부분이다. 위를 아래와 같이 고쳐라.
===============================================
       open(7,file=' ',status='old')
       inquire(7,name=siminfile)
       open(8,file=' ',status='unknown')
       inquire(8,name=simoutfile)
===============================================
       CALL GETARG(1,siminfile)
       CALL GETARG(2,simoutfile)
       open(7,file=siminfile,status='old')
       inquire(7,name=siminfile)
       open(8,file=simoutfile,status='unknown')
       inquire(8,name=simoutfile)
===============================================

3. 130 라인 전후에 READ 구문에 END파라미터를 추가해주라.(그렇지 않으면, 실행시 에러난다.)
=======================================================================
       READ(7,*,err=7200)IT(i),(AINPUT(I,J),J=1,IA),(OUPT(I,J),J=1,IC)
=======================================================================
       READ(7,*,err=7200,END=7200)IT(i),(AINPUT(I,J),J=1,IA),(OUPT(I,J),J=1,IC)
=======================================================================


마지막으로 !, C 등으로 시작하는 줄은 주석이니 무시해도 되고,
옛 스타일으로 포트란 코드를 짤 때는 7번째 칸부터 시작해야 한다. 띄워쓰기 안하고 컴파일하면, NUMBER 어쩌고 하는 에러를 볼 수 있을 것이다.


기타 실행 방법은 다른 레퍼런스를 참조해서 쓰기 바람.

'Code > 기타' 카테고리의 다른 글

엑셀로 역행렬 구하기  (0) 2010.09.08
엑셀에서 Scientific Notation  (0) 2010.06.10
Eclipse Setting - Latex 용  (0) 2009.09.07
드라이브 아이콘 설정하기  (0) 2007.11.19
윈도우 드라이브 아이콘 설정하기  (0) 2007.10.29