Fortran

작업4 : Fortran으로 시간방정식 계산하기

이석사 중 2022. 10. 26. 04:40
728x90

 

이번에는 저희 대기복사 교재에 있는 시간방정식을 계산해보겠습니다

 

개념 자체는 조금 어려울 수 있습니다


시간방정식의 의미)

 

균시차라고 부르기도 합니다

 

쉽게 말해서 해시계로 읽은 시간과 기계적으로 읽은 시간의 차이를 말합니다

 

흔히 저희가 사용하는 시계는 24시간이지만 실제 태양시는 24시간이 아닙니다

 

하루하루 차이는 작을 수 있지만 1년 동안 누적되면 생각보다 커집니다

 

이 차이가 생기는 이유는 지구의 자전축의 경사와 공전 궤도의 이심률 때문입니다

 

지구의 공전궤도가 타원이기 때문에 태양에 가까워 질수록 공전속도가 빨라지고 멀어질수록 느려지게 됩니다

이를 근일점과 원일점이라고 합니다

 

자전축이 기울어진 채 공전궤도 위를 지나기 때문에 태양이 지나가는 길, 즉 황도가 일정할 수 없습니다

 

이 두 가지 이유로 인해 차이가 나게 되는 것이죠


시간 방정식)

 

시간 방정식의 공식은 이렇게 생겼습니다

 

대표사진 삭제

사진 설명을 입력하세요.

대문자 감마는 여전히 day number로 계산한 값을 사용합니다

 

1월 1일부터 12월 31일까지 얼마나 차이가 나는지 보는 방정식이니까요


시간방정식 코드)

        REAL :: r
        REAL, parameter :: pi = 4. * atan(1.)

        open(1, file = 'et.csv')

        write(1, *)'dn',',','et'

        do i  = 1, 365

        r = (2 * pi * (i - 1))/365.

        et1 = 0.000075 + 0.001868 * cos(r) -  0.032077 * sin(r) -0.014615* cos(2 * r) - 0.04089 * sin(2 * r)

        et = et1 * 229.18

        write(1, 10) i,',',et
10      format(i3, a, f10.2, a)

        end do
        end
 

아직까지는 단순한 공식 계산을 하고 있기 때문에 코드들이 대부분 비슷합니다

 

공식 표현을 하기 위해 변수들을 잘 만드냐의 문제일 뿐이죠

 

반복문을 사용해서 day number가 1부터 365까지 계산한 것이기 때문에

 

write문도 반복문 안에 있어야 1부터 365까지 계산된 값을 모두 출력하는 것만 알아두시면 될 것 같습니다

 

다음 포스팅은 평균 풍향 풍속을 계산해보겠습니다

 

감사합니다!

 

728x90