값을 반환하는 서브루틴을 이용하여 극좌표를 직교좌표로 전화는 프로그램

PROGRAM P2R

IMPLICIT NONE

REAL :: RCoord, TCoord, XCoord, YCoord
CHARACTER(1) :: Response

DO

WRITE (*, '(1X, A)', ADVANCE = "NO") &
"극좌표를 입력하시오(ex : 2, 1) : "
READ *, RCoord, TCoord

CALL SubP2R(RCoord, TCoord, XCoord, YCoord)

PRINT *, "직교좌표 = (", XCoord, YCoord, ")"

WRITE (*, '(/ 1X, A)', ADVANCE = "NO") &
"더 변환하겠는가 (Y or N)? "

READ *, Response

IF (Response /= "Y") EXIT

END DO

CONTAINS

SUBROUTINE SubP2R(R, Theta, X, Y)

REAL, INTENT(IN) :: R, Theta
REAL, INTENT(OUT) :: X, Y

X = R * COS(Theta)
Y = R * SIN(Theta)

END SUBROUTINE SubP2R

END PROGRAM P2R

위 소스를 07_02_P2R.f95로 저장

컴파일 및 프로그램 테스트



+ Recent posts