'포트란'에 해당되는 글 2건

  1. 2014.07.10 윈도우에서 포트란 이용하기 6
  2. 2011.04.13 48/2(9+3) 포트란 결과



요 몇달전에 아시는 분께서 윈도우에서 포트란을 이용할 수 있느냐는 질문을 하신적이 있으셨습니다.


그 분은 최적화 디자인을 하시는 분이셨고 주로 이용하시는 OS는 윈도우 였습니다.


윈도우 xp 의 경우 기존에 마이크로소프트사나 컴팩에서 만들어 놓은 포트란 프로그램을 이용해서 프로그램을 작성하고 컴파일, 실행하면 되었습니다.


<컴팩 비주얼포트란>


그러나 요즘은 모두 윈도우7 을 이용하고 있고 과거 비주얼 포트란 프로그램은 실행이 안됩니다. 그리고 포트란의 경우 리눅스 환경에서만 이용을 하는 것이 대부분이 되었습니다.


그 만큼 포트란은 속도를 중요시하는 계산프로그램전용으로 빠지고 일반적인 공학문제의 계산엔 크게 이용되지 않는 현실이 반영이 된것이라고 볼 수 있습니다.


그러나 저에게 포트란이용에 대해 질문을 해주신분은 리눅스의 이용법에 대해서 많이 알지 못하셨고 더군다나 간단한 포트란 코드를 돌려보기 위해서 리눅스를 까는 건 좀 그렇다고 해서 문의를 해주셨던 겁니다.


그래서 제가 이용하고 있던 방법을 알려드렸지요.


기존에 제가 이용하던 방법은 MinGW 를 이용하여 UltraEditor 로 연계시킨 gfortran 컴파일러를 이용하는 방법이었습니다.


MinGW 는 GNU 소프트웨어 모음을 윈도우 환경으로 포팅하여 이용할 수 있게 만든 프로그램입니다.


기존의 방법을 이용할 때에는 울트라에디터에서 코드를 작성을 하고 MinGW 내의 포트란 컴파일러를 에디터와 연계시켜서 바로 컴파일러와 작성한 프로그램을 연계시켜 코드를 실행하는 방법을 이용했었습니다.


그래서 처음 이러한 방법을 이용할 때에는 일일이 컴파일러를 연계시켜야 하는 작업을 해주어야 했고 포트란 코드가 많이지고 링크작업등이 필요하게 된 경우에는 따로 컴파일을 시켜줘야 하는 단점이 있었습니다.


이러한 단점을 없애고 윈도우에서 포트란을 직접작동시키는 방법이 있습니다.


코드블럭스(Code::Blocks) 프로그램을 이용하는 것입니다.


Code::Blocks Homepage




코드블럭스는 여러 컴파일러들을 이용할 수 있는 오픈소스 크로스 플랫폼 FREE c, c++ and FORTRAN 의 IDE 입니다.


이 프로그램은 C 와 C++ 를 지향하는 프로그램입니다. 그런데 기본적으로 이 프로그램은 GNU 소프트웨어 모음을 이용하여 컴파일을 하기 때문에 다른 컴파일러의 설치없이도 c, c++ 의 컴파일이 가능합니다.


그럼 포트란은 어떠냐구요??


당연히 포트란도 가능합니다. 포트란 프로그램을 작성하시고 gfortran 을 이용해서 컴파일을 하고 실행이 가능합니다.


그럼 윈도우에서 포트란 프로그램을 쉽게 작성해 보시기 바랍니다. 


윈도우에서 돌아가는 코드블럭스는 다음과 같이 받으시면 됩니다.


코드블럭스 홈페이지 - Downloads - Downloads the binary release - 해당버전용 다운로드


MinGW 가 없으신 분들은 MinGW가 포함된 버전을 받으시면 됩니다.


설치 후 이용법은 다음과 같습니다. ===============================================================================



1. File - New - Project - Empty project - next




2. Project title - next>




3. GNU fortran compiler 선택


프로젝트 생성 후


4. File - New - Empty file 생성




5. Add file to project - 예 선택



Debug-Release - 예 선택




6. 프로그램 작성 및 컴파일-실행


Posted by 스핏파이어
,




뭐 아시는 분들은 다 아시겠지만...

이런 문제는 너무 소모적인 논쟁인듯 하네요..



처음 문제가 된 것은 위와 같이 공학용 계산기 조차 다른 답을 냈기 때문인듯 합니다..

그 동안 믿어왔던 계산기의 결과가 이렇다니..ㅎㅎㅎ 혹...시험때 잘못 계산된건 아니겠죠..

제가 봤을때 둘다 모두 288 로 봐야 할것 같습니다.. 수학적으로 곱셈기호가 없다고 한들.. 기본적으로 봤을때 그렇다는 이야기 입니다...

처음부터 목적에 맞는 계산식을 써야겠지요..

우리의 포트란 신께서는 위 문제를 간단히 정의하시죠... ㅎㅎ

 
Program calctest

        Implicit none
        real :: x1 , x2

        x1=48/2*(9+3)
        x2=48/2(9+3)

        print *,x1,x2

Endprogram calctest


위와 같이 간단히 문제를 제시하면...

프로그래밍 하시는 분들은 아시겠지만...

결과는!!!

 
fortcom: Error: test1.f90, line 7: Syntax error, found '(' when expecting one of: .EQV. .NEQV. .XOR. .OR. .AND. .LT. < .LE. <= .EQ. == .NE. /= .GT. > ...
        x2=48/2(9+3)
---------------^
compilation aborted for test1.f90 (code 1)


그냥 포트란 신님은 에러를 뱉으시죠..

누가봐도 문법오류라서;;

솔직히 이번 논란에 대해서 수학계가 나선다...2가 답이다 ... 이러시던데...

그냥 처음부터 잘 쓰셨으면 이런 문제는 없을 듯 합니다..

포트란의 경우도 처음부터 문법에 안 맞으면 에러로 처리하는 것 처럼 말입니다.


어쨋든...샤프 9650님은 이런 문제를 너무 인간적으로 다루시는것 같으시고.. 이젠 너무 늙으셔서 그런지 버튼도 안눌리는 문제가 있으시네요... 대학생활을 함께 보낸 계산기고 터치까지 되다보니 버리긴 너무 아까운 계산기인데요..


이번 문제와 유사한 문제가 공학하시는 분들께 가끔 있으실 텐데요..

단위 적으실때 잘 적어 주시면 좋은데... 이 문제와 같이 적으시는 분들이 꽤 됩니다..

[kg/m/s^2]     [kg/m s^2]    [kg/(m/s^2)]   이런 문제들이 꽤 많아요.. 어느 것이 잘못되셨는지는 알고 계시리라 판단합니다.


Posted by 스핏파이어
,