내부 프로그램을 서브루틴의 인수로 사용
사다리꼴 적분 근사
사인 함수의 적분
PROGRAM Integral
IMPLICIT NONE
REAL :: A, B
INTRINSIC SIN
INTEGER :: Number_of_Subintervals
WRITE (*, '(1X, A)', ADVANCE = "NO") &
"적분 구간의 처음과 끝, 그리고 구간 수를 입력하시오(ex 0, 1, 100 : "
READ * , A, B, Number_of_Subintervals
CALL Integrate(SIN, A, B, Number_of_Subintervals)
CONTAINS
SUBROUTINE Integrate(F, A, B, N)
REAL, INTENT(IN) :: A, B
INTEGER, INTENT(IN) :: N
REAL :: F, DeltaX, X, Y, Sum
INTEGER :: I
DeltaX = (B - A) / REAL(N)
X = A
Sum = 0.0
DO I = 1, N - 1
X = X + DeltaX
Y = F(X)
Sum = Sum + Y
END DO
Sum = DeltaX * ((F(A) + F(B)) / 2.0 + Sum)
Print '(1X, I4, "개의 구간을 이용한 면적 = ", F10.5)', Number_of_Subintervals, Sum
END SUBROUTINE Integrate
END PROGRAM Integral
위 소스를 07_07_Integral.f95로 저장
'Programming > Fortran' 카테고리의 다른 글
평균 이상의 고장 시간 출력(배열 이용) (0) | 2008.09.16 |
---|---|
하노이 탑 이동(재귀 서브루틴을 이용) (0) | 2008.09.16 |
사다리꼴 적분 근사(외부 프로그램을 서브루틴의 인수로 사용) (0) | 2008.09.15 |
사다리꼴 적분 근사(모듈을 서브루틴의 인수로 사용) (0) | 2008.09.15 |
핵반응기 차폐 모사(서브루틴 RANDOM_SEED, RANDOM_NUMBER) (0) | 2008.09.13 |