2009-05-27 6 views
2

Kennt jemand, was das Postfix "d + 0" bedeutet in den Zuordnungen zu M1, M2 und M4 unten oder gibt es eine Ressource im Internet oder ein Buch, wo wird man diese Information sehr wahrscheinlich finden?Postfix 'd + 0' in Fortran echte wörtliche Ausdrücke


 subroutine plot(t, x, p, q, nga, nt, wron, 
    &     ngq, gq, ngaq1, ngaq2, gaq, rwh, iwh) 
     implicit none 

     integer*4 nga, nt, ngq, ngaq1, ngaq2, iwh(*) 

     real*8 t, x(*), p(*), q(*), wron(nga,*), 
    &   gq(ngq,*), gaq(ngaq1,ngaq2,*), rwh(*) 

     real*8 M1, M2, M3, M4, mr, mst, h3, Tc 
     integer*8 iflag 

c  DISCRETIZE1(Tc, rwh, iwh) 

     M1 = 0.1362d+0 
     M2 = 0.09806d+0 
     M3 = M1 + M2 
     M4 = 0.236d+0 

     mr = M1*x(1) + M2*x(2) + M3*x(3) + M4*x(4) 
     mst = M1*q(1) + M2*q(2) + M4*q(3) 

     call mess3(t, x, h3, p, q, rwh, iwh, iflag) 

     write (10,100) t, x(1), x(2), x(3), x(4), Tc, h3, mr-mst 
100  format(e20.10, 7(1x,e20.10)) 

    end 
+0

@Deduplicator Warum entfernen Sie das 'real'-Tag? Und warum gibt es noch zwei vor kurzem geänderte Fortran-Fragen mit dem echten Tag, bei denen einige Edits innerhalb der Kulanzfrist widerrufen wurden? –

+0

@Vla Ich weiß nicht, über die anderen beiden, und das könnte * zu früh gewesen sein. Hätte die Meta-Diskussion noch weiter gehen lassen ... – Deduplicator

Antwort

9

Es bedeutet "double precision" und die +0 Mittel 10 an den nullten Leistung (der Exponent Null ist).

Hier ist ein Zitat aus first reference ich finden konnte:

Eine Zahl in einem Computer gespeichert ist begrenzt in ihrer Größe und Präzision. Die Grenzen hängen von dem bestimmten Computer ab. Somit hat eine REAL-Nummer nur eine bestimmte Anzahl von signifikanten Ziffern. Wenn für eine Berechnung höherwertige Stellen benötigt werden, müssen DOUBLE PRECISION-Nummern verwendet werden. Eine DOUBLE PRECISION-Konstante wird in der gleichen exponentiellen Form wie eine einfache Genauigkeit REAL Konstante außer mit einem D anstelle einer E geschrieben die Mantisse aus dem Exponenten.

Und hier ist ein Zitat aus einer besseren Referenz, www.fortran.com, speziell der F77-Standard.

4.5.2 Doppelte Präzisionskonstante.

Die Formen eines mit doppelter Genauigkeit konstant sind:

  1. Grund reelle Konstante durch eine doppelte Genauigkeit gefolgt Exponenten
  2. Konstante Integer durch ein doppelter Genauigkeit Exponent
gefolgt

Die Wert einer doppelten Genauigkeit Konstante ist das Produkt der Konstante, die pr ecedes die D und die Kraft von zehn angegeben durch die ganze Zahl die ganze Zahl D. Der folgenden konstanten Teil der Form (2) können mit mehr Ziffern geschrieben werden als ein Prozessor den Wert der Konstante annähert verwenden wird.

+0

o__O wow danke für die sofortige Antwort, ich suchte nach Chaträumen/Channels für Fortran-Neulinge aber du hast meine Frage schon beantwortet, bevor ich Zeit hatte mich für den IRC-Client zu entscheiden benutzen!! –