본문 바로가기

과학 연구용 도구/Fortran

포트란: 파일연결에서 채널 6은 사용금지



(그림을 클릭하지 마시오. 절대)




아마 옛날에 포트란 77로 포트란을 공부하던 시절에 책에서 분명히 읽었 법한 내용이다.

시간도 오래되고 90을 거쳐 95로 넘어가면서 그런 당연한 규칙을 잊었던 것 같다. 


OPEN문을 사용하여 외부파일과 연결을 시킬 때 다음과 같은 형식을 쓴다.

(물론 포트란 종류에 따라 조금 다른 포맷을 쓸 수도 있다.)


OPEN(# , file='filename.dat', status='unknown') 


#는 외부파일과 연결하는 채널 번호이다. 채널번호를 부여해 파일을 연결시켜서 파일을 읽어들이거나 값을 외부파일에 보낼 수도 있다. 


이전에 바보같이 #자리에 6을 써서 아래 READ문을 사용하여 파일을 읽어들였는데 그 아래의 WRTIE(*,*)나 PRINT *, 문등을 이용한 화면출력문이 먹히질 않았다. 다른 채널을 통해 값을 외부파일에 보내는 것은 되는데 화면출력이 안되서 며칠 의구심 속에서 보낸 적이 있었다. 


화면으로 보내는 채널을 다른 파일로 꽉 막아놓고는 왜 화면출력이 안되는지 투덜거리고 있었던 셈이었다. 고로 OPEN 사용시 6은 금기의 숫자임을 알아두자 !!



단순히 계산 값을 외부파일로 보내는 것 외에 외부값을 프로그램으로 불러오는 기술은 프로그래밍에서 고급기술이다. 


완벽히 짜여진 프로그램은 더 이상 손볼 일이 없는 프로그램이다. 파라미터로 변화를 주고 싶은 내용은 포트란 프로그램과 연결된 외부파일로 제어할 수 있어야 한다.


비슷한 맥락에서 그때그때 바뀌는 입자의 질량등의 값들도 외부파일로 모아 관리하면 편하다. 어떤 함수를 쓸 것인가에 대한 옵션이나 출력옵션 등의 정보도 외부파일에서 관리하고 메인 프로그램 들은 손대지 않는 방향으로 프로그램을 설계해나갈 것을 권한다.


2012년 10월 29일 월요일