![](https://blog.kakaocdn.net/dn/ca5MIM/btrOQg82QWH/u7LClMoyNbLuzE0TH4NN60/img.png)
이번에 한 내용은 이심률 구하는 작업입니다
이심률이란 원운동하는 물체가 궤도에서 벗어난 정도를 뜻합니다
이걸 지구에 적용하면 태양을 도는 공전 궤도의 변화 정도를 말합니다
![](https://blog.kakaocdn.net/dn/s7eHm/btrOP48Ez3W/Gf1mQDODkED1tjnQzA4IP0/img.png)
먼저 이심률 공식을 설명하기 전에 Day Number 라는 숫자를 알아보겠습니다
1년은 총 365일로 구성이 되어있습니다
1월 1일을 0으로 두고 12월 31일을 365로 계산합니다
2월은 4년마다 29일이 되지만 이는 포함하지 않습니다
![](https://blog.kakaocdn.net/dn/bKj51W/btrOR6KVXy2/8zk4ggPAC2qIERwz9YekYk/img.png)
이심률 공식입니다
2가지가 있는데 위에 공식이 조금 더 정밀하게 값이 나옵니다
![](https://blog.kakaocdn.net/dn/cOBAng/btrOGulVadS/mXtAohWs8wUGk15KRKcwd1/img.png)
위에 식을 가지고 만든 코드입니다
fortran 90까지는 한 줄에 입력 가능한 글자수가 제한이 있기 때문에 자동으로 줄바꿈이 됩니다
그럴때는 넘어간 줄 맨 앞으로 커서를 옮겨서 백스페이스바를 한 번 눌러주면 윗 줄로 올라옵니다
올라온 부분은 저렇게 형광펜 칠 한 것처럼 표시가 되는데 아무 문제 없이 잘 읽어오니까 괜찮습니다
저는 이걸로 그래프를 그리기 위해 csv 파일이 필요했기 때문에 write문으로 쓸 때
사이사이 ','를 입력해주었습니다
여기서 설명이 필요한 부분은 REAL, parameter :: pi = 4. * atan(1.) 부분입니다
pi는 말 그대로 원주율인데 원주율은 소수점이 거의 무한에 가까운 수이기 때문에
저희가 임의로 변수를 선언해서 3.1415926535처럼 이렇게 많은 숫자를 써도 오차가 발생합니다
수정 : 부동 소수점 체계를 사용하는 포트란에서는 직접 타이핑해서 사용하나 atan를 사용하나
유효 숫자만큼 오차가 존재할 뿐 값의 정확도와 정밀도 측면에서는 결과를 좌지우지 할 만큼 큰 차이가
발생하지는 않습니다 (y님의 도움이 있었습니다)
fortran에서는 pi의 값을 4. * atan(1.)이라는 값으로 계산이 되어집니다
pi를 변수로 해도 될 텐데 parameter로 지정을 왜 하냐 라는 의문이 생길 수도 있습니다
기존의 변수들은 위에서 이 변수들이 어떤 자료형태다 라는 걸 알려주어야 했다면
parameter는 이 자료가 어떻게 되어있는지를 읽고 알아서 형태를 지정해주는 일을 합니다
정확하지 않을 수도 있기 때문에 REAL, parameter로 해주면 오차를 가능한 줄이면서 선언이 가능합니다
![](https://blog.kakaocdn.net/dn/SAQxO/btrOGusGvrO/94CwHmTi9k5xBD8SeQykp1/img.png)
2번째 식도 마찬가지 입니다
이번 공식도 크게 어려울 건 없습니다
최근에 학교에서 진행하는 프로그램들을 몇 개 참가하면서
NCL이라고 하는 언어도 알게 되었는데
제가 지금까지는 그래프를 파이썬을 통해서만 그려왔지만
앞으로는 NCL로도 그려보려고 합니다
교수님이 추천해주시기도 하셨고 대기과학을 위해 만들어졌다는 말이 너무 와 닿은 것 같습니다
'Fortran' 카테고리의 다른 글
작업6 : Fortran으로 합성 풍속 풍향 구하기2 (0) | 2022.10.26 |
---|---|
작업5 : Fortran으로 합성 풍향 풍속 구하기1 (0) | 2022.10.26 |
작업4 : Fortran으로 시간방정식 계산하기 (0) | 2022.10.26 |
작업3: Fortran으로 태양의 적위 계산하기 (0) | 2022.10.26 |
작업1 : 태양의 유효복사온도 계산 (0) | 2022.10.18 |