Sunday 20 August 2017

Fortran 90 Gleitender Durchschnitt


Einführung in Fortran s Intrinsic Functions. Read Kapitel 4 und Beispiel trigf Start Homework 4, Fällig 1 31.Long vorher gab es wissenschaftliche Taschenrechner, Wissenschaftler und Ingenieure erkannten, dass sie einfache Möglichkeiten, um Ergebnisse von gemeinsamen Funktionen wie Sinus, Kosinus, Natürlicher Logarithmus und vieles mehr Diese Bedürfnisse wurden mit jedem Fortran-Standard berücksichtigt, was zu einer langen Liste von eingebauten Funktionen intrinsische Funktionen, um Ihr Leben einfacher Ich werde nicht decken alle Funktionen in der aktuellen Standard Fortran 90, sondern geben wird Sie einige Schlüssel in diesem und späteren Diskussionen. Die Syntax für die Verwendung von intrinsischen Funktionen kann Ihnen sehr vertraut sein, weil sie auch in Kalkulationstabellen erscheinen Wenn ich die Größe einer Geschwindigkeit in Feld A1 und den Winkel zwischen der Geschwindigkeit und der X-Achse im Bogenmaß im Kasten A2, dann kann ich die x-Komponente der Geschwindigkeit in Kasten A3 mit der Formel A1 COS A2 berechnen. In Fortran konnte dieses Ergebnis mit einer Zuweisungsanweisung wie zB. velx vel cos angrad vor dem Umzug erhalten werden Auf wir brauchen eine einfache definition Im obigen Beispiel ist angrad ein Argument der Funktion cos. Some Basic Intrinsic Functions. abs x - Absoluter Wert von x. iabs I - Absoluter Wert einer Ganzzahl I vor 90 Fortran abs didn t wie Integer Arguments. sin x - Gibt den Sinus von xx zurück, ist kein Integer. cos x - Liefert den Cosinus von xx ist kein Integer. tan x - Gibt die Tangente von xx zurück, ist kein Integer. exp x - berechnet e 2 7183 an die X power x ist kein integer. log x - berechnet den natürlichen logarithmus von xx ist nicht eine ganzzahl und 0.log10 x - berechnet base 10 logarithmus von xx ist nicht eine ganzzahl und 0.asin x - gibt den arcsine inversen sine von xx zurück Ist real. acos x - Liefert den arccosinischen inversen Kosinus von xx ist real. atan x - Liefert die arkustangente inverse Tangente von xx ist real. sqrt x - Liefert die Quadratwurzel von xx ist keine Ganzzahl und 0.nint x - Gibt die zurück Nächste Ganzzahl an die reelle Zahl x. min x1, x2 - Gibt das Minimum von x1 zurück, x2 Argumente müssen gleich sein type. max x1, x2 - Gibt das Maximum von x1 zurück, x2 Argumente müssen gleich sein. Die max und min Funktionen sind Ungewöhnlich, dass sie eine beliebige Anzahl von Argumenten nehmen Die generischen Formen min und max waren kein zwanghafter Teil des Fortran 77-Standards, sondern sind in Fortran 90 In vielen Fortran 77-Codes sehen Sie Funktionen. amax1 x1, x2 - Liefert das Maximum von X2, x2 als reelle Zahl Argumente sind real. amax0 i1, i2 - Gibt das Maximum von i1, i2 als eine reelle Zahl Argumente sind integer. max0 i1, i2 - Gibt das Maximum von i1, i2 als Integer-Argumente sind ganzzahlig. Max1 x1, x2 - Gibt das Maximum von x1 zurück, x2 als Ganzzahl-Argumente sind real. Similar Formen erschienen für min Zusätzlich Log und Log10 waren optionale Formulare in Fortran 77 Ältere Programme verwenden oft alog und alog10, um den Funktionsnamen mit einem Buchstaben zu starten Charakteristisch für einen realen und nicht ganzzahligen Wert Im Allgemeinen war Fortran 77 eher abhängig von Ihnen, die spezifisch eine Funktion auswählen, die für die Argumenttypen und den Typ des Wertes, der zurückgegeben werden soll, geeignet ist. Während auf dem Thema Fortran 90 intrinsische Funktionen ist es erwähnenswert, dass zwei Sie haben in den Beispielbereichen f und einer verwandten Funktion gesehen, die bei Programmen nützlich sind, die auf einer Reihe von Maschinen laufen. tiny x - Gibt die kleinste positive Zahl zurück, die auf dem aktuellen Computer für echtes Argument dargestellt werden kann x. huge x - Returns Die größte positive Zahl, die auf dem aktuellen Computer für echtes Argument dargestellt werden kann x. precision x - Gibt die ungefähre dezimale Genauigkeit auf dem aktuellen Computer für das echte Argument x. Some Kommentare zu Speed. You müssen diese trigonometrische, log zu erkennen , Und exp intrinsische Funktionen sind relativ teuer in Bezug auf die Computerzeit erforderlich Wenn Sie den Wert von sin 0 1 häufig benötigen, verwenden Sie die Funktion einmal in einer Zuweisung wie. sin0p1 sin 0 1 dann verwenden Sie die neue Variable sin0p1 wo immer sin 0 1 benötigt wird. Die hohen Kosten von exp und log ist auch in der Verwendung des Betreibers spiegelt Normalerweise ein Ausdruck wie xy führt in den Compiler Einfügen Code äquivalent zu exp y log x Allerdings sind die meisten Compiler schlau genug zu erkennen, dass, wenn y eine ganze Zahl ist, Sie können eine oder mehrere Multiplikationen x 2 xx, x 3 xxx usw. verwenden. Solche Compiler enthalten die Logik, um den Break-even-Punkt in Bezug auf die Größe von y zwischen dieser Multiplikation und der Kombination von exp und log zu kennen. Es ist immer schneller Um x 2 als x 2 0 zu programmieren, also seien Sie vorsichtig in Ihrer Wahl der Typen für exponents. Speed ​​ist auch ein Faktor in der Existenz der sqrt intrinsic Funktion Dies ist ein spezieller Algorithmus für die Berechnung der Quadratwurzel einer Zahl, das ist immer Schneller als das Anheben der Nummer auf die 0 5 Leistung Wenn die Option existiert, verwenden Sie sqrt x anstatt x 0 5 In meiner Erfahrung sqrt sqrt x ist schneller als x 0 25.While sind wir auf dem Thema Geschwindigkeit, sollten wir die relative Geschwindigkeit zu überprüfen Von anderen Operationen Hinzufügen und Subtrahieren sind immer die schnellsten Multiply kommt zweiten Divide ist langsamer als Multiplikation, aber deutlich schneller als sqrt Wenn Sie sich durch eine Variable x häufig mehr als 2 oder 3 Mal teilen, ist es eine gute Idee, eine andere zu definieren Variable sagen rx mit der Gleichung rx 1 x, dann multiplizieren mit rx, wo man durch xA Sample-Programm mit Intrinsic Functions. Study das Beispielprogramm trigf für Beispiele für intrinsische Funktionen und als nützlichen Beginn Ihrer letzten Hausaufgabe aufgeteilt haben würde. Review Fragen. Test Ihr Wissen über dieses Material mit einigen Überprüfung questions. Up eine Ebene Home. Posted am 10. Mai 2016.fortran 90 gleitenden Durchschnitt. Before Sie kaufen Zyprexa Zydis, sollten Sie Ihren Arzt informieren, wenn Sie an Lebererkrankungen leiden, Herzkrankheit, Diabetes, Darmprobleme, Schmalspur-Glaukom oder eine vergrößerte Prostata Sie sollten ihn auch informieren, wenn Sie eine Geschichte von niedrigem oder hohem Blutdruck, niedrigem WBC-Gehalt, Hightriglyceriden oder Cholesterin, Herzinfarkt, Schlaganfall oder Herzinsuffizienz, Brust haben Krebs, Krampfanfälle oder Epilepsie Da Zyprexa Zydis Sie schwindelig macht, sollte man kein Fahrzeug fahren oder eine solche Aktivität durchführen, die eine vollständige Wachsamkeit erfordert. Das Medikament kann zu Entzugserscheinungen führen, Fütterungsprobleme, Atemprobleme, Zittern, steife oder schlaffe Muskeln und fussiness In einem ungeborenen Baby, und deshalb ist es nicht für schwangere Frauen empfohlen. New Trading Systems und Methoden von Perry J Kaufman Ebook Fortran 90 Gleitende Durchschnitt. HINWEIS Dieses Blatt ist eine Zusammenfassung Es kann nicht alle möglichen Informationen abdecken Wenn Sie Fragen dazu haben Medizin, sprechen Sie mit Ihrem Arzt, Apotheker oder Gesundheitsdienstleister Fortran 90 gleitenden Durchschnitt. Manufactured von einem MHRA genehmigt UK Generic Manufacturer. Fortran 90 gleitenden Durchschnitt - Read more. Description Fortran 90 gleitenden Durchschnitt. Wenn Sie eine Dosis verpassen, nehmen Sie es als Sobald Sie können Wenn es fast Zeit für Ihre nächste Dosis ist, nehmen Sie nur diese Dosis Nehmen Sie nicht doppelte oder zusätzliche Dosen. Withdrawal aus 10 mg Körper Schmerzen Zyprexa und Gelbsucht generischen Namen für Zyprexa Zydis Rauch zerkleinert billig Olanzapin Zyprexa Zydis Entzug Olanzapin iv Dosis. Erweiterte Zyprexa Zydis 5mg-10mg einmal am Tag, während Jugendliche Zyprexa Zydis 2 5mg-5mg einmal am Tag gegeben werden Um bipolare Störung zu behandeln, erhalten Erwachsene Zyprexa Zydis 5mg-15mg einmal am Tag, nicht mehr als 20mg Die Dosierungen Kann je nach Alter des Patienten, medizinischen Zustand und Reaktion auf die Behandlung angepasst werden Während der Einnahme der Tablette, legen Sie es auf die Zunge, so dass es innerhalb von wenigen Sekunden auflösen kann Danach können Sie easilyswallow es mit oder ohne Wasser. Produkt von United Kingdom Versand aus United Kingdomfortran 90 Umzug Durchschnitt. fortran 90 Umzug Der Zugang aus Ihrem Bereich wurde vorübergehend aus Sicherheitsgründen begrenzt. Generics sind weniger teuer, weil generische Hersteller nicht viel Geld investieren müssen, um ein Medikament zu erfinden Wenn der Markenname Patentexpires, generische Unternehmen können eine Kopie des Marken-Medikaments herstellen und verkaufen sie zu erheblichen Rabatten. Watch Fortran 90 gleitenden Durchschnitt. Overdosage Wenn Sie denken, Sie haben zu viel von diesem Medikament in Kontakt mit einem Gift-Kontrollzentrum oder Notaufnahme sofort genommen HINWEIS Diese Medizin ist nur für Sie nicht teilen diese Medizin mit anderen Fortran 90 gleitenden Durchschnitt Geld verdienen. Manufactured von einem MHRA genehmigt UK Generic Manufacturerfortran 90 gleitenden Durchschnitt. Bitte beachten Sie, dass das Land, Hersteller und Versandland je nach Verfügbarkeit variieren können Alle Marken Und eingetragene Warenzeichen sind Eigentum der jeweiligen Besitzer. Nehmen Sie dieses Arzneimittel nicht mit einer der folgenden Medikamente ein - bestimmte Antibiotika wie Grepafloxacin und Sparfloxacin - bestimmte Phenothiazine wie Chlorpromazin, Mesoridazin und Thioridazin-Cisaprid-Chlordapin-Droperidol-Halofantrin-Monomethadylpimozid Medizin kann auch mit den folgenden Medikamenten - carbamazepine - charcoal - fluvoxamin - levodopa und anderen Medikamenten für Parkinson-Krankheit-Medikamente für Diabetes-Medikamente für hohe Blutdruck-Medikamente für psychische Depressionen, Angst, andere Stimmungsstörungen oder Schlafstörungen-Omeprazol - Rifampin - ritonavir-Tabak aus Zigaretten. Die einzigen Unterschiede zwischen Generika und ihre Marken-Gegenstücke ist die Generika sind weniger teuer und kann etwas anders aussehen Form oder Farbe, wie Markengesetze verhindern, dass ein Generika genau wie die Marke Drogen Fortran 90 gleitenden Durchschnitt Geld verdienen. Alle medizinischen Inhalte wird von einer Drittanbieter-Firma, die unabhängig von dieser Website ist, wie diese, kann diese Website nicht garantieren, seine Zuverlässigkeit, Genauigkeit und oder medizinische Wirksamkeit der Informationen bieten Unter allen Umständen sollten Sie suchen Die Beratung eines Gesundheitsberufs in Bezug auf Drogen, Behandlung und oder medizinischen Zustand Beratung Beachten Sie, dass nicht alle Produkte von unserer vertraglich vereinbarten kanadischen Apotheke versendet werden Diese Website Vertrag mit Spendern auf der ganzen Welt, die Produkte an unsere Kunden versenden Einige der Gerichtsbarkeiten gehören, sind aber nicht beschränkt auf Vereinigtes Königreich, Europa, Türkei, Indien, Singapur, Kanada, Vanuatu, Mauritius und USA Die Artikel innerhalb Ihrer Bestellung können von einem dieser Jurisdiktionen abhängig von der Verfügbarkeit und den Kosten der Produkte zum Zeitpunkt der Bestellung vergeben werden. Die Produkte sind Sourced aus diesen Countries sowie Andotheren Alle Marken und eingetragene Marken sind das Eigentum ihrer jeweiligen Besitzer. Intrinsic Funktionen in Fortran 90.Es gibt eine große Anzahl von intrinsischen Funktionen und fünf intrinsischen Unterroutinen in Fortran 90 Ich behandle die numerischen und mathematischen Routinen sehr In Kürze, da sie sich nicht von Fortran 77 geändert haben und deshalb wohlbekannt sein sollten. Dieser Abschnitt basiert auf Abschnitt 13 des ISO-Standards 1991, der eine formellere Behandlung enthält. Wir folgen der Anordnung der verschiedenen Funktionen und Unterroutinen im Standard , Aber erklären Sie direkt in der Liste Für eine ausführlichere Behandlung verweisen wir auf Metcalf und Reid 1990, 1993.Wenn ein Parameter unten optional ist, wird es in Kleinbuchstaben gegeben. Wenn eine Argumentliste mehrere Argumente enthält, kann die Funktion entweder durch Position aufgerufen werden Verwandte Argumente oder durch ein Keyword Keyword muss verwendet werden, wenn ein vorheriges Argument nicht enthalten ist. Schlüsselwörter sind normalerweise die Namen, die unten angegeben werden. Wir haben nicht immer alle natürlichen Beschränkungen für die Variablen gegeben, zum Beispiel, dass der Rang nicht erlaubt ist Negativ. Die Funktion PRESENT A kehrt zurück, wenn sich das Argument A in der Aufrufliste befindet, im anderen Fall Die Verwendung wird im Beispielprogramm in Kapitel 8 des Haupttextes dargestellt. Folgende sind bei Fortran 77 ABS, AIMAG, AINT, ANHANG, CMPLX, CONJG, DBLE, DIM, DPROD, INT, MAX, MIN, MOD, NINT, REAL und SIGN. Darüber hinaus wurden DECKE, BODEN und MODULO zu Fortran hinzugefügt 90 Nur die letzte ist schwer zu erklären, welche Ist am einfachsten mit den Beispielen aus ISO 1991 möglich. Die folgenden Funktionen von Fortran 77 können einen Art-Parameter wie in AINT A, Art AINT, ANINT, CMPLX, INT, NINT und REAL verwenden. Eine historische Tatsache ist, dass die numerischen Funktionen in Fortran 66 musste in verschiedenen Präzisationen spezifische Namen haben, und diese expliziten Namen sind immer noch die einzigen, die verwendet werden können, wenn ein Funktionsname als Argument übergeben wird. Eine vollständige Tabelle aller numerischen Funktionen folgt den Namen, die mit angezeigt werden Ein Stern darf nicht als Argumente verwendet werden Einige Funktionen wie INT und IFIX haben zwei spezifische Namen, können entweder verwendet werden. Auf der anderen Seite haben einige Funktionen keinen bestimmten Namen. Im Folgenden benutze ich C für komplexe Gleitkommawert, D Für Gleitpunktwerte in doppelter Genauigkeit, I für ganze Zahlen und R für Gleitpunktwerte in Einzelpräzision Trunkierung ist gegen Null, INT -3 7 wird -3, aber Rundung ist richtig, NINT -3 7 wird -4 Die neuen Funktionen FLOOR und CEILING truncate in Richtung Minus und Plus Unendlichkeit. Die Funktion CMPLX kann ein oder zwei Argumente haben, wenn zwei Argumente vorhanden sind, müssen diese vom gleichen Typ sein, aber nicht COMPLEX. Die Funktion MOD X, Y berechnet X - INT XY Y Sign Transfer-Funktion SIGN X, Y nimmt das Vorzeichen des zweiten Arguments und setzt es auf das erste Argument, ABS X, wenn Y 0 und - ABS X wenn Y 0.Positivdifferenz DIM ist eine Funktion, die ich noch nie benutzt habe, aber DIM X, Y gibt XY, wenn dies positiv und null im anderen Fall ist. Inner Produkt DPROD auf der anderen Seite ist eine sehr nützliche Funktion, die das Produkt von zwei Zahlen in Einzelpräzision als doppelte Präzision Zahl gibt es ist schnell und genau. Die zwei Funktionen MAX und MIN sind einzigartig, da sie eine beliebige Anzahl von Argumenten haben können, aber mindestens zwei Die Argumente müssen vom gleichen Typ sein, sind aber nicht erlaubt, vom Typ COMPLEX. Same wie in Fortran 77 Alle trigonometrischen Funktionen funktionieren Im Bogenmaß Im Folgenden stehen ACOS, ASIN, ATAN, ATAN2, COS, COSH, EXP, LOG, LOG10, SIN, SINH, SQRT, TAN und TANH zur Verfügung. Historische Tatsache ist, dass die mathematischen Funktionen in Fortran 66 spezifisch unterschiedlich sein mussten Namen in verschiedenen Präzisionen, und diese expliziten Namen sind immer noch die einzigen, die verwendet werden können, wenn ein Funktionsname als Argument übergeben wird. Eine vollständige Tabelle aller mathematischen Funktionen folgt Im Folgenden benutze ich C für komplexe Gleitkommawert, D für Floating Punktwerte in doppelter Genauigkeit, I für Ganzzahlen und R für Gleitpunktwerte in Einzelpräzision Der Zweck der meisten dieser Funktionen ist offensichtlich, dass sie alle nur für Gleitkommazahlen und nicht für Ganzzahlen definiert sind. Sie können daher nicht berechnen Quadratwurzel von 4 als SQRT 4, aber stattdessen kannst du NINT SQRT REAL verwenden 4 Bitte beachten Sie auch, dass alle komplexen Funktionen den Hauptwert zurückgeben. Die Quadratwurzel gibt ein echtes Ergebnis für ein echtes Argument in Einzel - oder Doppelpräzision und ein komplexes Ergebnis für Ein komplexes Argument So SQRT -1 0 gibt eine Fehlermeldung in der Regel bereits zum Zeitpunkt der Kompilierung, während man die komplexe Quadratwurzel mit den folgenden Anweisungen erhalten kann Das Argument für die üblichen Logarithmen muss positiv sein, während das Argument für CLOG anders sein muss Null. Der Modul für das Argument für ASIN und ACOS muss höchstens 1 sein. Das Ergebnis wird innerhalb von - pi 2, pi 2 und 0, pi sein. Die Funktion ATAN gibt einen Wert in - pi 2, pi 2 zurück. Die Funktion ATAN2 Y, X arctan y, x gibt einen Wert in - pi zurück, pi Wenn Y positiv ist, ist das Ergebnis positiv Wenn Y null ist, wird das Ergebnis null, wenn X positiv ist und pi wenn X negativ ist Negativ ist das Ergebnis negativ Wenn X Null ist, wird das Ergebnis plus oder minus pi 2 sein. Sowohl X als auch Y sind nicht gleich Null. Der Zweck der Funktion ist es, die Division durch Null zu vermeiden. Eine natürliche Begrenzung für die mathematischen Funktionen Ist die begrenzte Genauigkeit und Reichweite, was bedeutet, dass zB EXP Unterströmung oder Überlauf bei ziemlich gemeinsamen Werten des Arguments verursachen kann. Die trigonometrischen Funktionen erhalten für große Argumente eine sehr geringe Genauigkeit. Diese Einschränkungen sind implementierungsabhängig und sollten im Lieferanten angegeben werden Manuell. Die folgenden Funktionen führen Operationen von und zu Zeichenfolgen aus Bitte beachten Sie, dass ACHAR mit dem Standard-ASCII-Zeichensatz arbeitet, während CHAR mit der Darstellung in dem Computer arbeitet, den Sie verwenden. Die obigen Routinen vergleichen zwei Strings mit der Sortierung nach ASCII Wenn ein String ist Kürzer als die anderen, Leerzeichen werden am Ende der kurzen Zeichenfolge hinzugefügt Wenn ein String ein Zeichen außerhalb des ASCII-Zeichensatzes enthält, ist das Ergebnis implementierungsabhängig. LEN STRING gibt die Länge einer Zeichenfolge zurück. Es muss nicht zugeordnet werden Ein Wert für die Variable STRING. Zuerst gibt es die Art des eigentlichen Arguments zurück, das vom Typ INTEGER, REAL, COMPLEX, LOGICAL oder CHARACTER sein kann. Das Argument X muss kein Wert zugewiesen werden. Das zweite gibt eine ganzzahlige Art mit zurück Die angeforderte Anzahl von Ziffern und die dritte gibt die Art für Gleitkommazahlen mit numerischer Präzision mindestens P Ziffern und einen Dezimal-Exponentenbereich zwischen - R und R zurück. Die Parameter P und R müssen skalare Ganzzahlen sein Mindestens eines von P und R Muss gegeben werden. Das Ergebnis von SELECTEDINTKIND ist eine Ganzzahl von null und aufwärts, wenn die gewünschte Art nicht verfügbar ist, erhalten Sie -1 Wenn mehrere implementierte Typen die Bedingung erfüllen, wird die mit dem kleinsten Dezimalbereich verwendet Wenn es noch mehrere gibt Typen oder Arten, die die Bedingung erfüllen, wird die mit der kleinsten Artennummer verwendet. Das Ergebnis von SELECTEDREALKIND ist auch eine Ganzzahl von Null und nach oben, wenn die gewünschte Art nicht verfügbar ist, dann wird -1 zurückgegeben, wenn die Genauigkeit nicht verfügbar ist , -2 wenn der Exponentenbereich nicht verfügbar ist und -3 wenn keine der Anforderungen vorhanden ist Wenn mehrere implementierte Typen die Bedingung erfüllen, wird die mit der kleinsten Dezimalpräzision zurückgegeben, und wenn es mehrere davon gibt, ist die eine mit Die kleinste Art wird zurückgegeben. Beispiele sind in Kapitel 2 des Haupttextes angegeben Beispiele für Arten in wenigen verschiedenen Implementierungen NAG und Cray sind in Anhang 6 enthalten. LOGICAL L, Art konvertiert zwischen verschiedenen Arten von logischen Variablen Logische Variablen können implementiert werden Auf verschiedene Weisen, zum Beispiel mit einer physikalischen Repräsentation, die ein Bit nicht empfohlen hat, ein Byte, ein Wort oder vielleicht sogar ein Doppelwort Dieser Unterschied ist wichtig, wenn COMMON und EQUIVALENCE mit logischen Variablen in einem Programm in der traditionellen Art von Fortran missbraucht wurden 66 Programmierung.8 Numerische Abfragefunktionen. Diese Funktionen arbeiten mit einem bestimmten Modell von Integer - und Gleitkomma-Arithmetik, siehe ISO 1991, Abschnitt 13 7 1 Die Funktionen geben die Eigenschaften von gleichartigen Zahlen wie die Variable X zurück, die real sein kann und In einigen Fällen ganzzahlige Funktionen, die Eigenschaften des eigentlichen Arguments X zurückgeben, sind in Abschnitt 12 unten verfügbar, Gleitkomma-Manipulationsfunktionen. BITSIZE I gibt die Anzahl der Bits entsprechend dem Modell der Bitdarstellung in der Norm ISO 1991, Abschnitt 13 5 7 zurück Normalerweise erhalten wir die Anzahl der Bits in einem ganzen Wort. Das Modell für die Bitdarstellung in der Norm ISO 1991, Abschnitt 13 5 7 wird verwendet. TRANSFER SOURCE, MOLD, Größe gibt an, dass die physikalische Darstellung des ersten Arguments SOURCE als behandelt werden soll Wenn es Typ und Parameter als das zweite Argument MOLD aber ohne es zu konvertieren hat Der Zweck ist, eine Möglichkeit zu geben, eine Menge eines bestimmten Typs über eine Routine zu verschieben, die nicht genau diesen Datentyp hat.12 Gleitpunktmanipulationsfunktionen Funktionen funktionieren in einem bestimmten Modell von Integer - und Gleitkomma-Arithmetik, siehe Standard ISO 1991, Abschnitt 13 7 1 Die Funktionen geben Nummern zurück, die sich auf die Ist-Variable X des Typs REAL beziehen, die Eigenschaften für die gleichartigen Zahlen zurückgibt Die Variable X sind unter Abschnitt 8 Numerische Abfragefunktionen. DOTPRODUCT VECTORA, VECTORB macht ein Skalarprodukt aus zwei Vektoren, die die gleiche Länge haben müssen dieselbe Anzahl von Elementen. Bitte beachten Sie, dass wenn VECTORA vom Typ COMPLEX das Ergebnis ist SUM CONJG VECTORA VECTORB. MATMUL MATRIXA, MATRIXB macht das Matrixprodukt aus zwei Matrizen, die konsistent sein müssen, dh die Dimensionen wie M, K und K, N, die in Kapitel 11 des Haupttextes verwendet werden.14 Array functions. ALL MASK, dim liefert eine logische Wert, der angibt, ob alle Verknüpfungen in MASK nur die gewünschte Dimension haben, wenn das zweite Argument gegeben ist. ANY MASK, dim gibt einen logischen Wert zurück, der angibt, ob eine Relation in MASK nur die gewünschte Dimension hat, wenn das zweite Argument gegeben wird. COUNT MASK, dim gibt einen numerischen Wert zurück, der die Anzahl der Relationen in MASK ist, die nur die gewünschte Dimension haben, wenn das zweite Argument gegeben ist. MAXVAL ARRAY, dim, mask gibt den größten Wert im Array ARRAY derjenigen zurück, die der Relation befolgen Das dritte Argument MASK, wenn das gegeben wird, nur die gewünschte Dimension, wenn das zweite Argument DIM gegeben wird. MINVAL ARRAY, dim, Maske gibt den kleinsten Wert im Array ARRAY derjenigen zurück, die die Relation im dritten Argument MASK befolgen, wenn das Man erhält nur die gewünschte Dimension, wenn das zweite Argument DIM gegeben ist. PRODUKT ARRAY, dim, mask gibt das Produkt aller Elemente im Array ARRAY von denen zurück, die der Relation im dritten Argument MASK gehorchen, wenn das gegeben wird , Nur die gewünschte Dimension, wenn das zweite Argument DIM gegeben ist. SUM ARRAY, dim, Maske gibt die Summe aller Elemente im Array ARRAY von denen zurück, die der Relation im dritten Argument MASK gehorchen, wenn diese nur gegeben wird Die gewünschte Dimension, wenn das zweite Argument DIM gegeben wird Ein Beispiel ist in Anhang 3, Abschnitt 10 gegeben. ANGEBOTEN ARRAY ist eine logische Funktion, die angibt, ob das Array zugeordnet ist. LBOUND ARRAY, dim ist eine Funktion, die die untere Dimension für die ARRAY Wenn DIM die Dimension nicht als Argument gegeben wird, bekommst du einen Integer-Vektor, wenn DIM enthalten ist, bekommst du den Integer-Wert mit genau jenem unteren Dimensionslimit, für das du gefragt hast. SHAPE SOURCE ist eine Funktion, die die Form von zurückgibt Ein Array SOURCE als Integer-Vektor. SIZE ARRAY, dim ist eine Funktion, die die Anzahl der Elemente in einem Array ARRAY zurückgibt, wenn DIM nicht gegeben ist, und die Anzahl der Elemente in der relevanten Dimension, wenn DIM enthalten ist. UBOUND ARRAY, dim ist Eine Funktion ähnlich wie LBOUND, die die obere Dimension Grenzen zurückgibt. MERGE TSOURCE, FSOURCE, MASK ist eine Funktion, die zwei Arrays verbindet Es gibt die Elemente in TSOURCE, wenn die Bedingung in MASK ist und FSOURCE, wenn die Bedingung in MASK ist Die beiden Felder TSOURCE und FSOURCE muss vom gleichen Typ und die gleiche Form sein Das Ergebnis ist auch von dieser Art und dieser Form Auch MASK muss die gleiche Form haben. Ich gebe hier ein ziemlich vollständiges Beispiel für die Verwendung von MERGE, die auch RESHAPE aus dem nächsten Abschnitt verwendet Um geeignete Testmatrizen zu bauen. Hinweis, dass die beiden Subroutinen WRITEARRAY und WRITELARRAY Testroutinen sind, um Matrizen zu schreiben, die im ersten Fall von einem REAL-Typ sind, im zweiten Fall eines LOGICAL-Typs Die folgende Ausgabe erhält PACK ARRAY, MASK , Vektor packt ein Array auf einen Vektor mit der Kontrolle von MASK Die Form des logischen Arrays MASK muss mit dem für ARRAY oder MASK übereinstimmen muss ein Skalar sein Wenn VECTOR enthalten ist, muss es ein Array von Rang 1 iea Vektor sein Mit mindestens so vielen Elementen wie die, die in MASK wahr sind und den gleichen Typ wie ARRAY haben Wenn MASK ein Skalar mit dem Wert ist, dann muss VECTOR stattdessen die gleiche Anzahl von Elementen wie ARRAY haben. Das Ergebnis ist ein Vektor mit so vielen Elementen Wie die in ARRAY, die den Bedingungen gehorchen, wenn VECTOR nicht enthalten ist, dh alle Elemente, wenn MASK ein Skalar mit Wert ist. Im anderen Fall ist die Anzahl der Elemente des Ergebnisses so viel wie in VECTOR Die Werte sind die genehmigten, dh Die Werte, die die Bedingung erfüllen und in der gewöhnlichen Fortran-Reihenfolge liegen Wenn VECTOR enthalten ist und die Anzahl ihrer Elemente die Anzahl der genehmigten Werte übersteigt, werden die fehlenden Werte, die für das Ergebnis benötigt werden, von den entsprechenden Stellen in VECTOR genommen Beispiel basiert auf der Modifikation des einen für MERGE, aber ich gebe jetzt nur die Ergebnisse SPREAD SOURCE, DIM, NCOPIES gibt ein Array des gleichen Typs wie das Argument SOURCE mit dem Rang um eins erhöht Die Parameter DIM und NCOPIES sind ganzzahlig Wenn NCOPIES Negativ ist der Wert Null verwendet statt Wenn SOURCE ein Skalar ist, dann wird SPREAD ein Vektor mit NCOPIES Elementen, die alle den gleichen Wert wie SOURCE haben. Der Parameter DIM gibt an, welcher Index ausgedehnt werden soll. Es muss innerhalb des Bereichs 1 und 1 liegen Rang von SOURCE Wenn SOURCE ein Skalar ist, dann muss DIM eins sein Der Parameter NCOPIES ist die Anzahl der Elemente in den neuen Dimensionen Zusätzliche Diskussion wird in der Lösung zur Übung gegeben 11 1.UNPACK VEKTOR, MASK, ARRAY streut einen Vektor in ein Array Unter Kontrolle von MASK Die Form des logischen Arrays MASK muss mit dem für ARRAY übereinstimmen. Das Array VECTOR muss den Rang 1 haben, dh es ist ein Vektor mit mindestens so vielen Elementen wie die, die in MASK wahr sind und auch müssen Haben den gleichen Typ wie ARRAY Wenn ARRAY als Skalar gegeben wird, dann gilt es als ein Array mit der gleichen Form wie MASK und die gleichen skalaren Elemente überall. Das Ergebnis wird ein Array mit der gleichen Form wie MASK und dem gleichen Typ sein Als VEKTOR Die Werte sind die von VECTOR, die akzeptiert werden, dh diejenigen, die die Bedingung in MASK erfüllen, in der gewöhnlichen Fortran-Reihenfolge genommen, während in den verbleibenden Positionen in ARRAY die alten Werte beibehalten werden. RESHAPE SOURCE, SHAPE, Pad, Auftragskonstrukte an Array mit einer spezifizierten Form SHAPE beginnend von den Elementen in einem gegebenen Array SOURCE Wenn PAD nicht enthalten ist, dann muss die Größe von SOURCE mindestens PRODUCT SHAPE sein Wenn PAD enthalten ist, muss es den gleichen Typ haben wie SOURCE Wenn ORDER enthalten ist, Es muss ein INTEGER-Array mit der gleichen Form wie SHAPE sein und die Werte müssen eine Permutation von 1,2,3 N sein, wobei N die Anzahl der Elemente in SHAPE ist, muss es kleiner als oder gleich 7 sein Ergebnis hat natürlich eine Form SHAPE und die Elemente sind die in SOURCE eventuell ergänzt mit PAD Die verschiedenen Dimensionen wurden bei der Zuordnung der Elemente, wenn ORDER enthalten war, aber ohne Beeinflussung der Form des Ergebnisses permutiert. Einige einfache Beispiele sind gegeben Im vorigen und im nächsten Abschnitt und auch in Anhang 3, Abschnitt 9 Ein komplizierteres Beispiel, das auch die optionalen Argumente veranschaulicht, folgt die Ausgabe aus dem obigen Programm wie folgt: Die Shift-Funktionen geben die Form eines Arrays unverändert zurück, verschieben aber Die Elemente Sie sind ziemlich schwer zu erklären, so empfehlen wir, auch die Standard-ISO 1991.CSHIFT ARRAY, SHIFT, dim durchführt kreisförmige Verschiebung durch SHIFT Positionen auf der linken Seite, wenn SHIFT positiv ist und rechts, wenn es negativ ist Wenn ARRAY ist ein Vektor wird die Verschiebung auf eine natürliche Weise durchgeführt, wenn es ein Array eines höheren Ranges ist, dann ist die Verschiebung in allen Abschnitten entlang der Dimension DIM Wenn DIM fehlt, gilt es als 1, in anderen Fällen muss es sein Skalar-Integer-Zahl zwischen 1 und n, wobei n dem Rang von ARRAY entspricht. Das Argument SHIFT ist eine skalare Ganzzahl oder ein ganzzahliges Array von Rang n-1 und die gleiche Form wie die ARRAY, außer entlang der Dimension DIM, die wegen des unteren Ranges entfernt wird Verschiedene Abschnitte können daher in verschiedene Richtungen verschoben werden und mit verschiedenen Zahlenpositionen. EOSHIFT ARRAY, SHIFT, Grenze, dim führt Verschiebung nach links, wenn SHIFT positiv ist und rechts, wenn es negativ ist Statt der Elemente verschoben werden neue Elemente sind Genommen von RUNDEN Wenn ARRAY ein Vektor ist, wird die Verschiebung auf natürliche Weise durchgeführt, wenn es ein Array eines höheren Ranges ist, ist die Verschiebung auf allen Abschnitten entlang der Dimension DIM Wenn DIM fehlt, gilt es als 1, In anderen Fällen muss es einen skalaren ganzzahligen Wert zwischen 1 und n haben, wobei n dem Rang von ARRAY entspricht. Das Argument SHIFT ist eine skalare Ganzzahl, wenn ARRAY Rang 1 hat, im anderen Fall kann es sich um eine skalare Ganzzahl oder ein ganzzahliges Array handeln Rang n-1 und mit der gleichen Form wie das Array ARRAY außer entlang der Dimension DIM, die wegen der unteren Rang entfernt wird. Das entsprechende gilt für BOUNDARY, die den gleichen Typ wie die ARRAY haben muss Wenn der Parameter GRENZE fehlt, haben Sie Die Wahl der Werte Null oder Leerzeichen, je nach Datentyp Verschiedene Abschnitte können somit in verschiedene Richtungen verschoben werden und mit verschiedenen Punkten von Positionen Ein einfaches Beispiel für die beiden obigen Funktionen für den Vektorfall folgt sowohl das Programm als auch das Ausgabe Ein einfaches Beispiel für die beiden oben genannten Funktionen im Matrix-Fall folgt ich hier verwendet RESHAPE, um eine geeignete Matrix zu erstellen, um die Arbeit zu beginnen Das Programm wird hier nicht wiedergegeben, nur die Hauptaussagen TRANSPOSE MATRIX transponiert eine Matrix, die eine ist Array von Rang 2 Es ersetzt die Zeilen und Spalten in der Matrix. MAXLOC ARRAY, Maske gibt die Position des größten Elements im Array zurück ARRAY, wenn MASK nur für diejenigen enthalten ist, die die Bedingungen in MASK erfüllen Das Ergebnis ist ein Integer-Vektor Es ist Verwendet in der Lösung der Übung 11 1.MINLOC ARRAY, Maske gibt die Position des kleinsten Elements in das Array ARRAY zurück, wenn MASK nur für diejenigen enthalten ist, die die Bedingungen in MASK erfüllen. Das Ergebnis ist ein Integer-Vektor. ASSOCIATED POINTER, Ziel ist logisch Funktion, die angibt, ob der Zeiger POINTER mit einem Ziel verbunden ist, und wenn ein bestimmter TARGET enthalten ist, zeigt er an, ob er mit genau diesem Ziel verknüpft ist. Wenn sowohl POINTER als auch TARGET Zeiger sind, ist das Ergebnis nur, wenn beide mit demselben Ziel verknüpft sind Ich verweise den Leser auf Kapitel 12 des Haupttextes, Pointers. A Subroutine, die das Datum, die Zeit und die Zeitzone zurückgibt Mindestens ein Argument muss gegeben werden. DATE muss eine skalare Zeichenfolge Variable mit mindestens 8 Zeichen und Es wird der Wert CCYYMMDD für Jahrhundert, Jahr, Monat und Tag zugewiesen. Alle werden numerisch mit Leerzeichen versehen, wenn das System nicht das Datum enthält. TIME muss auch eine skalare Zeichenfolge Variable mit mindestens 10 Zeichen sein und es wird ein Wert zugewiesen Für die Zeit in Stunden, Minuten, Sekunden und Millisekunden Alle werden numerisch mit Leerzeichen gegeben, wenn das System keine Uhr enthält. ZONE muss eine skalare Zeichenfolge Variable mit mindestens 5 Zeichen und es ist der Wert hhmm für Zeichen, Zeit in Stunden und Minuten für die lokale Zeitdifferenz mit UTC, die zuvor Greenwich Mean Time All genannt wurde, werden numerisch mit Leerzeichen gegeben, wenn das System keine Uhr enthält. In Schweden erhalten wir also 0100 im Winter und 0200 im Sommer, in Novosibirsk bekommt man 0700.Die Variablen VALUES ist stattdessen ein Integer-Vektor mit mindestens 8 Elementen, es gibt die einfachste Möglichkeit, die Ergebnisse von DATEANDTIME bei den Berechnungen in einem Programm zu verwenden Wenn das System nicht das Datum oder die Zeit, die Sie den Wert - HUGE 0 erhalten Das ist die kleinste ganzzahlige Zahl im Modell, als Ausgabe Der Vektor enthält die folgenden Elemente Jahr, Monat, Tag, Zeitdifferenz in Minuten Stunden, Minuten, Sekunden und Millisekunden Subroutine, die die Systemzeit zurückgibt Mindestens ein Argument muss gegeben werden COUNT is a scalar integer which is increased by one for each cycle up to COUNTMAX where it starts once again If there is no system clock then - HUGE 0 is returned. COUNTRATE is a scalar integer that gives the number of cycles per second If there is no system clock the value zero is returned. COUNTMAX is a scalar integer which gives the maximum value that COUNT can reach If there is no system clock, zero is returned instead. A subroutine which copies the sequence of bits in position FROMPOS and has the length LEN to target TO starting in position TOPOS The remaining bits are not changed All quantities have to be integers and all except TO have to have INTENT IN while TO is supposed to have INTENT INOUT and be of the same kind type as FROM The same variable can be both FROM and TO Some natural restrictions apply to the values of LEN, FROMPOS and TOPOS and you also have to consider the value of BITSIZE. A sequence of pseudo random numbers can be generated from a starting value which is stored as an integer vector The subroutines offer a portable interface towards an implementation dependent random number sequence This subroutine returns in the floating-point number variable HARVEST one or several if HARVEST is an array random numbers between zero and 1 This subroutine resets, or gives information about, the random number generator No arguments have to be provided The output variable SIZE must be a scalar integer and gives the number of integers N the processor uses for the starting value The input variable PUT is an integer vector which puts the starting numbers provided by the user into the random number generator The output variable GET also an integer vector reads the present starting value Example A simple example on the use of these functions is now available.

No comments:

Post a Comment