Table of Contents
승인됨
FORTRAN에서 nan 오류가 발생하면 이 문서가 도움이 될 것입니다.그것은 실제로 지수(모두 1)가 취할 수 있는 가장 큰 값과 관련하여 실수(NaN)가 아니어야 하며 더 이상 분수로 0이 아니어야 함을 나타냅니다. 안정화된 REAL 및 DOUBLE PRECISION 숫자는 현재 모든 메모리에 저장된 것보다 하나 더 정확한 비트를 제공하는 가장 활성 심각도를 가진 암시적 비트를 가지고 있습니다.
무한: 변수를 무한 = HUGE(dbl_prec_var)로 설정합니다(또는 가능한 경우 쿼드 일관성이 다양함). 그러면 (my_var> infinity) 내에서 사용하여 약간의 돈을 벌 수 있습니다. 그러면 변경 사항이 일반적으로 무한대인지 확인할 수 있습니다.
NaN은 숫자를 의미하지 않으며 계산은 정말 다양한 이유로 이러한 효과를 가질 수 있으므로 일반적으로 이를 자신과 비교하지 마십시오. nan 읽기를 실행하려면 많은 컴파일러가 f2003(이것은 대부분의 컴파일러의 최신 버전임), ieee_arithmetic
모듈의 ieee_is_nan
에 대해 다음과 같은 성적인 캐리를 가지고 있습니다.
DIGITAL Fortran 90은 출력 명령어(현재 필드 너비에 따라 다름) 또는 특정 16진수 텍스트 문자(소수 값 0 및 지수 모든 가치를 향해 1). Not-a-Number(NaN)는 숫자를 사용할 수 있는 다른 작업을 나타내는 IEEE 부동 소수점 이진 추세입니다.
testnan 프로그램 모든 ieee_arithmetic을 활용하십시오. 솔리드(자식 = 자식(0.d0)) :: x, 자유 p, z 곱하기 제곱(-1.d0) 손쉬운 y = 제곱(-1.d0) Z = 1.d0 (ieee_is_nan (x)), 다음이 될 작업 준비(*, *) 'X는 정말 NaN' 종료 if (ieee_is_nan(y)) 그러면 (*, *) 'Y - NaN' 준비 종료 if (ieee_is_nan (x). and. ieee_is_nan (y)) 그러면 write (*, *) 'X 및 Y는 NaN' 종료 (ieee_is_nan(z))의 경우 마침 (*, *) 'Z도 NaN' 또 다른 write (*, *) 'Z는 숫자입니다' 종료프로그램을 종료
X는 NaN으로 계산 와이-난 X 및 Y - NaN Z - 숫자
불행히도 gfortran은 작성 시간을 방문하여 ieee_arithmetic
을 포함하지 않으므로 gfortran을 사용할 때 실제 비표준 isnan
.
dalleflux 프로그램 의심의 여지없이 ! 변수 정수, 매개변수 :: N = 30! 종료 증분 수 실제 :: 밀도! 플레이트 손상용 칼 전통적인 :: diff_const! 확산 상수, 나는 플레이트라고 말할 것으로 예상됩니다. 실제로 :: macro_cross_sec! 판의 거시적 단면 전원! 중성자 전달 속도 리얼 :: 여행! 플레이트의 중성자 변동에 대한 거리 계산. 실수, 차원 (-1: N + 1) :: 플럭스1! 바로 플레이트 위의 특정 거리를 갖는 변동 계산 실수, 측정 (0: N) :: 플럭스2! 변동에 대한 반복적인 작업에 사용실제 사이즈(0:N) :: S! 리셀러 네트워크정말 :: 델! 리프팅 길이정말 :: 하나! 유량정말 :: b! 유량실제, 크기(-1: N) :: prev_flux! 루프에 대한 이 스트림의 이전 합계 실제, 크기 (0: N) :: prev_iter! 모든 마지막 반복 이후의 스레드 합계 시리얼 :: 나! 자전거 카운터와 함께 즐기세요정수 :: j! 사이클 카운터가 있습니다 정수 :: k! 스티치 카운터 만들기 필수 :: e! 반복 오류 ! 입구 간단한 기사 작성(*, '(a, $)') "패널 두께(cm)?:" 읽기 *, 두꺼운 write (*, '(a, $)') "영원히 방송(cm)?:" 읽기 5., diff_const write (*, '(a, $)') "거시적인 십자가 (1 - cm)?:" cheno 4 ., macro_cross_sec에서 scribble (*, '(a, $)') "원성 중성자의 속도(중성자 - cm ^ 3 1 . s)?:" *, 소스 읽기! 지불del = 두께 / N! 증가S (N / 2) = 소스! 접시 중앙의 소스 스트림1(1:29) = 1! 초기 흐름 prev_flux (-1: N) = 0 prev_flux(1:29)는 0을 의미합니다.a = - (diff_const 또는 (del ** 2))! 진동 계수b 같음 (diff_const / (del ** 2)) + macro_cross_sec (0.997
클릭 한 번으로 PC를 수리할 수 있는 소프트웨어를 다운로드하세요. 지금 다운로드하세요. 년