답변:
이를 수행하는 또 다른 방법은 먼저 SELECTED_REAL_KIND 내장 함수를 사용하여 변수에 원하는 정밀도를 명시 적으로 지정한 다음이를 사용하여 변수를 정의하고 초기화하는 것입니다. 다음과 같은 것 :
INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15)
REAL(dp) :: x
x = 1.0_dp
이 방법으로 얻을 수있는 좋은 장점 dp
은 모듈에 정의를 저장 한 다음 USE
필요한 경우 해당 모듈 에 저장할 수 있다는 것 입니다. 이제 프로그램의 정밀도를 변경하려면 변수 초기화가 끝날 때 dp
모든 D0
s를 검색하고 바꾸는 대신 한곳에서 정의를 변경하면됩니다 . (이것은 또한 1.0D-1
Y를 제안 된대로 정의하기 위해 구문을 사용하지 않는 것이 좋습니다 . 작동하지만 나중에 모든 인스턴스를 찾고 변경하기가 어렵습니다.)
Fortran Wiki 의이 페이지는 에 대한 추가 정보를 제공 SELECTED_REAL_KIND
합니다.
_dp
체계 를 사용하는 주된 이유 는 정밀도가 휴대용으로 명확하게 정의되기 때문입니다.
변수를 배정도로 선언했지만 단 정밀도 값으로 변수를 초기화했습니다.
당신은 쓸 수 있습니다 :
X=1.0d0
Y=1.0d-1
아래 의 Barron의 대답 은 리터럴 배정도를 만드는 또 다른 방법이며 나중에 변수의 정밀도를 변경할 수 있다는 이점이 있습니다.