내부 프로그램을 서브루틴의 인수로 사용

사다리꼴 적분 근사

사인 함수의 적분

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로 저장



+ Recent posts