Table of Contents
Aprobado
Si obtiene el último error nan en FORTRAN, este artículo podría describirse como aquí para ayudarlo.Revela que no es un número real (NaN) principalmente porque el valor más grande que puede tomar su exponente justo (todos unos), por lo que no es cero como fracción. Los ingresos de PRECISIÓN REAL y DOBLE normalizados tienen un bit implícito con la gravedad exacta más alta, lo que proporciona un bit de mucha más precisión que el almacenado por toda la memoria.
Infinito: establezca que la variable infinito es igual a ENORME (dbl_prec_var) (o una variable de espesor cuádruple si está disponible). Entonces puede ganar algo de dinero usando where (my_var> infinity) para ver si su variable individual es normalmente infinita.
NaN no significa un número, y contemplar la computación puede tener este efecto por una variedad de razones, por lo general no es necesario compararlas con usted mismo. Si desea realizar pruebas nan, muchos compiladores tienen cierto soporte erógeno para f2003 (estas son las últimas versiones de la mayoría de los compiladores), ieee_is_nan
en el módulo ieee_arithmetic
:
DIGITAL Fortran 90 identifica las subidas infinitas utilizando las letras “Infinito”, principalmente porque los asteriscos (******) en las instrucciones de salida (dependiendo del ancho del campo) o caracteres hexadecimales especializados (valor fraccionario 0 y como resultado exponente para todos los valores 1). Not-a-Number (NaN) es un patrón binario de punta flotante IEEE que representa una acción más de un número.
programa testnan Aprovecha todo el ieee_arithmetic extremadamente bueno (niño = niño (0.d0)) :: por, y, z repeticiones = cuadrado (-1.d0) y básica = cuadrado (-1.d0) Z = 1.d0 obviamente, si (ieee_is_nan (x)), entonces escriba (*, *) 'X es realmente NaN' terminara si si (ieee_is_nan (y)) entonces crear contenido (*, *) 'Y - NaN' terminara si si (ieee_is_nan (x). y así. ieee_is_nan (y)) entonces escribe (*, *) 'X e Y son NaN' terminara si si (ieee_is_nan (z)) entonces hablar (*, *) 'Z también es NaN' otro craft (*, *) 'Z es un número' terminara sisalir del programa más importante
X cuenta como NaN Y - NaN X e Y - NaN Z - número
Desafortunadamente, gfortran todavía no incluye ieee_arithmetic
en el momento de garabatear, por lo que al usar gfortran es probable que necesite usar el isnan
estándar.
programa dalleflux implícitamente no ! VARIABLES Entero, parámetro :: N = 30! Número de incrementos a evitar real :: solidez! Cuchillo para dañar platos en verdadero :: diff_const! Constante de difusión, diría placas. confiable :: macro_cross_sec! sección macroscópica de su placa ¡Fuente de alimentación! Velocidad de la fuente de neutrones verdaderamente :: distancia! Cálculo de la distancia relacionada con las fluctuaciones de neutrones en la placa. real, dimensión (-1: N + 1) :: flux1! Cálculo de movimientos a cierta distancia por encima de esa placa. real, cuantificar (0: N) :: flux2! utilizado para el cálculo repetitivo de fluctuacionestamaño real (0: N) :: S! Red de revendedoresrealmente :: andel! Longitud de elevaciónrealmente :: ¡uno! Tasa de flujorealmente :: b! Tasa de flujoreal, capacidad (-1: N) :: prev_flux! suma anterior junto con la secuencia relativa a todo el bucle tamaño real (0: N) :: prev_iter! Suma de subprocesos como resultado de la última iteración vasto :: yo! Diviértete con el contador de circuitosentero :: j! Hay contadores de imágenes entero :: g! Hacer contadores de puntadas gente :: e! Error de iteración ! ! ENTRADA Escriba un artículo en particular (*, '(a, $)') "¿Profundidad del panel (cm) ?:" leer *, grueso write (*, '(a, $)') "¿Emitir siempre (cm) ?:" ver *, diff_const enviar (*, '(a, $)') "¿Cruz macroscópica (1 cm) ?:" de cheno *, macro_cross_sec jot (*, '(a, $)') "¿Velocidad de los neutrones de la fuente de información (neutrones / cm ^ 3 3. s) ?:" leer *, fuente! PAGOdel = espesor / N! IncrementoS (N / 2) = fuente! Fuente en el centro de cómo el plato stream1 (1:29) = primero! Flujo inicial prev_flux (-1: N) = 0 prev_flux (1:29) = 0a = como (diff_const / (del ** 2))! Coeficiente de oscilaciónb = (diff_const / (del ** 2)) + macro_cross_sec cuando (0,997
El software para reparar su PC está a solo un clic de distancia: descárguelo ahora.