값을 반환하는 서브루틴을 이용하여 극좌표를 직교좌표로 전화는 프로그램
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로 저장
컴파일 및 프로그램 테스트
'Programming > Fortran' 카테고리의 다른 글
사다리꼴 적분 근사(모듈을 서브루틴의 인수로 사용) (0) | 2008.09.15 |
---|---|
핵반응기 차폐 모사(서브루틴 RANDOM_SEED, RANDOM_NUMBER) (0) | 2008.09.13 |
각도(도,분,초)를 도로 표시하기(subroutine) (0) | 2008.09.13 |
도로망의 경로 수 계산(Recursive, 재귀함수) (0) | 2008.09.09 |
온도변환(외부 함수에 대한 Interface 사용) (0) | 2008.09.09 |