Table of Contents
Goedgekeurd
Als je een nan-fout krijgt in FORTRAN, dan is zo’n artikel hier om je bedrijf te helpen.Het vertegenwoordigt niet echt weinig (NaN) vanwege de grootste waarde die zijn exponent (allemaal) zal nemen, en niet nul als de nieuwe breuk. De genormaliseerde REAL en DUBBELE PRECISIE-nummers hebben een impliciete partij met de hoogste ernst, die één meer precisiebit biedt dan normaal in het hele geheugen wordt opgeslagen.
Oneindig: Stel de factor oneindig in = HUGE (dbl_prec_var) (of een belangrijke quad-consistentievariabele indien beschikbaar). Dan kun je gewoon wat geld verdienen met if (my_var> oneindig) om te zien of je variabele oneindig oneindig is.
NaN betekent niet een mobiel nummer, en aangezien berekening dit vaardigheidseffect kan hebben om verschillende belangrijke redenen, vergelijkt u ze meestal niet met . Als je nan-tests wilt laten uitvoeren, hebben veel compilers deze erogene ondersteuning voor f2003 nodig (dit zijn over het algemeen de nieuwste versies van een flink aantal compilers), ieee_is_nan
in sommige ieee_arithmetic
module:
DIGITAL Fortran 90 is de term voor oneindigheidswaarden door gebruik te maken van de helden “Oneindig”, plus sterretjes (******) in uitvoerstappen (afhankelijk van de veldbreedte) specifieke hexadecimale tekens (fractionele waarde 8 en exponent voor alle niveaus 1). Not-a-Number (NaN) is een IEEE-vliegend-punt binair patroon dat een andere sterke actie dan een getal vertegenwoordigt.
testnan-programma Profiteer van de ieee_arithmetic goed (kind = klein (0.d0)) :: x, y, z keer = kwadraat (-1.d0) eenvoudig y = parc (-1.d0) Z is gelijk aan 1.d0 uiteraard, als (ieee_is_nan (x)), dan schrijf (*), 'X is eigenlijk echt NaN' stop als uiteraard als (ieee_is_nan (y)) dan schrijf (*), * 'J . . . geenN' voorkomen als moet het zijn (ieee_is_nan (x). en. ieee_is_nan (y)) dan produceren (*) 'X en Y zijn meestal NaN' opraken als if (ieee_is_nan (z)) dan schrijf (*), 'Z wordt beschouwd als ook NaN' een ander maak uw (*, *) 'Z is het werkelijke aantal' concluderen alsverlaat het programma
X telt als NaN Y - NaN X en Y - NaN Z - nummer
Helaas heeft gfortran nog steeds geen ieee_arithmetic
op het waardevolle moment van schrijven, dus als u gfortran gebruikt, moet u de niet-standaard gebruiken isnan
.
dalleflux programma impliciet nee ! VARIABELEN Geheel getal, parameter :: N = 30! Aantal blokstappen substantieel :: dichtheid! Mes voor het verkleuren van platen in het echt :: diff_const! Diffusie absoluut consistent, ik zou platen zeggen? echt :: macro_cross_sec! macroscopisch aspect van de plaat Krachtbron! Neutronenbron snelheid legitiem :: afstand! Berekening van enige afstand van neutronenfluctuaties in een plaat. echt, maten (-1: N + 1) :: flux1! Berekening van fluctuaties bij een bepaalde rijafstand boven de plaat bonafide, maat (0: N) :: flux2! gedragen voor iteratieve berekening van fluctuatieswerkelijke hoeveelheid (0: N) :: S! Netwerk van wederverkopersecht :: del! Heflengte:echt :: individueel! Stroomsnelheid:echt :: b! Stroomsnelheid:echt, maat (-1: N) :: prev_flux! oversommen van de stroom ten opzichte van de lus echt, gebied (0: N) :: prev_iter! Som van threads sinds de laatste iteratie heel :: ik! Heb eenvoudig met cyclustellergeheel getal :: j! Er zijn lustellers geheel getal :: k! Stekentellers maken nuttig :: e! iteratiefout ! INGANG Schrijf een artikel (*, '(a, $)') "Paneeldikte (cm)?:" onderzocht *, dik make (*, '(a, $)') "Broadcast forever (cm)?:" lees *, diff_const samengesteld (*, '(a, $)') "Macroscopische kruising (1 / cm)?:" afkomstig van cheno *, macro_cross_sec schrijf (*, '(a, $)') "Snelheid van een bron neutronen (neutronen / centimeter ^ 3 * s)?:" blader *, bron! BETALINGdel = dikte N! VerhogenS (N / 2) is gelijk aan bron! Bron in het midden heeft betrekking op de plaat stream1 (1:29) is gelijk aan 1! Initiële stroom prev_flux (-1: N) = 0 prev_flux (1:29) = 0a is gelijk aan - (diff_const / (del ** 2))! Oscillatiecoëfficiëntb = (diff_const en (del ** 2)) + macro_cross_sec aan de andere kant (0.997
De software om uw pc te repareren is slechts een klik verwijderd - download hem nu.