[기타] FORTRAN 사용법

2021. 3. 20. 04:41·기타

FORTRAN은 FORmula TRANslation를 줄여서 만들어진 단어이다. IBM에서 과학에 필요한 계산을 위해 만든 프로그래밍 언어라고 한다. 

수치해석이나 각종 계산 분석을 통한 분야에서 많이 사용하는데 그나마 최신이라는 Fortran 90마저도 1990년대에 나왔으니 상당히 오래된 언어이다. 다행히 다른 분들이 인터넷에 글을 많이 써줬지만 블로그 글 외에도, 책이나 강의 자료도 인터넷에 공유하면 좋을 것 같아서 이렇게 글을 조금씩 업로드하고자 한다.

 

일단 나의 경우에는

fortran 컴파일러로는 tdm-gcc를 사용하고 (jmeubank.github.io/tdm-gcc/)

코드 작성 프로그램(editor)으로는 Notepad++를 사용하기로 했다.

 

fortran 컴파일러도 종류가 많아서 여러 추천글을 읽고 싶었지만.. 어차피 쓰다가 불편하면 다시 검색해서 설치할 생각이었기 때문에 범용적으로 사용하는 것처럼 보이는 tdm-gcc를 선택했다.

저 프로그램을 설치할 때 주의할 점은, 아무 생각없이 설치 프로그램의 <다음>버튼을 누르다보면 정작 fortran 컴파일러를 설치하지 못한다는 점이다.

 

프로그램을 설치하다가 optional component를 선택하는 창에서 (+)를 눌러 fortran을 찾아줘야한다.

안그러면 c나 c++ 같은 언어의 컴파일러만 설치돼서 의미가 없어진다. (그래서 나는 지웠다가 다시 깔았다)

 

 

그 다음에는 코드를 작성할 editor를 고르는데, 내가 평소에 쓰던 Atom editor는 fortran을 지원해주지 않아서 써봤자 어떤 함수에도 highlight가 되지 않는다. 그래서 무료프로그램인 Notepad++를 설치했다.(notepad-plus-plus.org/downloads/)

 

위키피디아 '노트패드++'

출처 : ko.wikipedia.org/wiki/%EB%85%B8%ED%8A%B8%ED%8C%A8%EB%93%9C%2B%2B

 

노트패드++

위키백과, 우리 모두의 백과사전. 노트패드++(Notepad++)는 문서 편집기이자 소스 코드 편집기이다. 윈도에서 기본으로 제공하는 문서 편집기인 메모장에 견주어 노트패드++는 탭 편집을 제공하므

ko.wikipedia.org

위 그림이 notepad++가 지원하는 언어들인데 확실히 atom보다 많더라.

 

그 다음에는 다른 인터넷 글의 도움을 받아서

기본적인 코드를 작성한 다음에 컴파일을 해봤다.

PROGRAM FIRST
WRITE (6,*) "HELLO WORLD"
END PROGRAM FIRST

이 파일을 확장자 .f95로 저장한 다음(확장자 중요! fortran 버전마다 문법이 조금 다른 건지 .f로 했더니 오류가 났다.)

 

윈도우 기준 명령 프롬프트로 들어가서, 코드가 있는 폴더로 이동한다. (cd ~이동경로~)

그 다음에

gfortran (코드이름).f95

으로 입력하면 코드가 컴파일되어서 exe 파일이 나온다.

 

원하는 이름으로 컴파일하고 싶으면,

gfortran -o (프로그램이름).exe (코드이름).f95

 

컴파일하는 것까지만 확인했으면 이제 코드를 작성하면 된다.

코드를 작성하는 방법이나 과정에 대해서 나중에 차차 글을 쓰게 될 것 같다.

 


 

 

참고 사이트 및 문헌 :

 

blog.naver.com/PostView.nhn?blogId=skansllove&logNo=220160904491

 

포트란(Fortran) 시작(설치)

석사때는 매트랩(Matlab)으로 코드를 짜서 연구를 진행했는데 박사과정 들어오니까 본격적인 수치해석(Nu...

blog.naver.com

 

seismic.yonsei.ac.kr/fortran/index.html

 

Fortran Tutorial

 

seismic.yonsei.ac.kr

 

포트란 Numerical Recipe

s3.amazonaws.com/nrbook.com/book_C210.html

 

http://s3.amazonaws.com/nrbook.com/book_C210.html

Caution! This legacy Second Edition version was published in 1992 and last updated in 2002. It is now unsupported. There is a more recent Third Edition version in C++ that you can read for free here. This message will go away in a few seconds.

s3.amazonaws.com

 

저작자표시 비영리 변경금지 (새창열림)

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

[LaTeX] 알아두면 유용한 문법  (0) 2021.04.21
[기타] Reference citation 방법  (0) 2021.03.25
[기타] 하드디스크 정리 방법  (0) 2021.02.04
[기타] 주피터 노트북 단축키  (0) 2021.01.29
[기타] 전자(electronic)와 전기(electrical)은 무슨 차이일까?  (0) 2020.11.19
'기타' 카테고리의 다른 글
  • [LaTeX] 알아두면 유용한 문법
  • [기타] Reference citation 방법
  • [기타] 하드디스크 정리 방법
  • [기타] 주피터 노트북 단축키
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (468)
      • 공지 (1)
      • 영어 공부 English Study (40)
        • 텝스 TEPS (7)
        • 글 Article (21)
        • 영상 Video (10)
      • 연구 Research (99)
        • 최적화 Optimization (3)
        • 데이터과학 Data Science (7)
        • 인공지능 Artificial Intelligent (40)
        • 제어 Control (45)
      • 프로그래밍 Programming (103)
        • 매트랩 MATLAB (25)
        • 파이썬 Python (33)
        • 줄리아 Julia (2)
        • C++ (3)
        • 리눅스 우분투 Ubuntu (6)
      • 항공우주 Aeronautical engineeri.. (21)
        • 항법 Navigation (0)
        • 유도 Guidance (0)
      • 기계공학 Mechanical engineering (13)
        • 열역학 Thermodynamics (0)
        • 고체역학 Statics & Solid mechan.. (10)
        • 동역학 Dynamics (1)
        • 유체역학 Fluid Dynamics (0)
      • 수학 Mathematics (34)
        • 선형대수학 Linear Algebra (18)
        • 미분방정식 Differential Equation (3)
        • 확률및통계 Probability &amp; Sta.. (2)
        • 미적분학 Calculus (1)
        • 복소해석학 Complex Analysis (5)
        • 실해석학 Real Analysis (0)
      • 수치해석 Numerical Analysis (27)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 실험 Experiment (1)
      • 유학 생활 Daily (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    obsidian
    옵시디언
    Statics
    고체역학
    서버
    LaTeX
    딥러닝
    Linear algebra
    Python
    우분투
    WOX
    Julia
    수치해석
    MATLAB
    논문작성법
    텝스공부
    에러기록
    텝스
    teps
    ChatGPT
    Numerical Analysis
    matplotlib
    생산성
    JAX
    Dear abby
    인공지능
    IEEE
    Zotero
    pytorch
    논문작성
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[기타] FORTRAN 사용법
상단으로

티스토리툴바