ftn95 / plato für Fortran 90 < Fortran < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 18:31 Do 19.05.2011 | Autor: | fastgiga |
Nabend,
ich habe eine Frage zu dem Windows Compiler FTN95 und dem darin enthaltenen IDE Plato.
Ich würde gerne mit Plato bzw. ftn95 eine Fortran 90 Datei compilieren, das prob ist, dass ich einfach nicht rausfinde wie...die Datei einfach *.f90 zu nennen is plato egal, er macht trotzdem eine Datei in Fortran95 daraus.
Also, wie kann ich Plato dazu zwingen eine Datei in fortran90 zu compilieren.
Eine Möglichkeit wäre noch in Plato einen anderen Compiler einzubinden, kennt da jemand ne verständliche Anleitung?
Vielen Dank für eure Hilfe im Voraus,
mfg
fastgiga
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 21:08 Do 19.05.2011 | Autor: | rainerS |
Hallo!
> Nabend,
> ich habe eine Frage zu dem Windows Compiler FTN95 und dem
> darin enthaltenen IDE Plato.
>
> Ich würde gerne mit Plato bzw. ftn95 eine Fortran 90 Datei
> compilieren, das prob ist, dass ich einfach nicht rausfinde
> wie...die Datei einfach *.f90 zu nennen is plato egal, er
> macht trotzdem eine Datei in Fortran95 daraus.
>
> Also, wie kann ich Plato dazu zwingen eine Datei in
> fortran90 zu compilieren.
Was meinst du damit? Fortran95 ist eine Erweiterung von Fortran90; es gibt nur sehr wenige Sprachelemente aus Fortran90, die in Fortran95 nicht erlaubt sind (z.B PAUSE).
Oder meinst du das Eingabeformat (ISO free source <-> ISO fixed source). Da hilft dir die Compileroption /FIXED_FORMAT. Steht alles in der Online-Doku.
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 18:37 Fr 20.05.2011 | Autor: | fastgiga |
Erstmal vielen Dank für die schnelle Antwort.
> Fortran95 ist eine Erweiterung von
> Fortran90; es gibt nur sehr wenige Sprachelemente aus
> Fortran90, die in Fortran95 nicht erlaubt sind (z.B
> PAUSE).
nen weiteres Beispiel wäre die Zuweisung der Variablen:
in Fortran90 hätte ich bspw.
real(8)::Variable
in Fortran95 muss ich des alles mit
real(3)::Varialbe
ersetzen.
Wieviele solcher Befehle/Formate von Fortran90 bei 95 nicht mehr funktionieren weiß ich nicht, "nur sehr wenige" klingt zwar ganz gut, aber es fängt ja schon bei der Variablendefinition an. Ich befürchte nun das es so weiter geht, und wenn dann die codes die ich in Fortran90 schreibe etwas komplexer werden(wieso ich in fortran90 schreiben muss tut nichts zur sache), ich jeden code praktisch 2mal schreiben muss, einmal in fortran90 und einmal in 95.
Die Frage ist eben: ist der Unterschied zwischen 90 und 95 wirklich so klein wenn es schon bei der variablendefinition einen unterschied gibt?
Ich würde das gerne glauben.....nur würde ich mich gerne für den schlimmsten fahl vorbereiten.
> Was meinst du damit?
Mir gehts eben darum, dass ich einen Code, der in fortran90 geschrieben ist gerne mit Plato compilieren würde.
Nach den Angaben von Silverfrost ist in ftn95 sowohl ein compiler für fortran90, als auch für 95 enthalten. Außerdem soll man bei Plato ja angeblich auch einen anderen Compiler verwenden können.
Nur finde ich keine verständliche Anleitung die mir sagt wie ich das machen.
> Oder meinst du das Eingabeformat [...]
Ne....zumindest wüsste ich damit nun nichts anzufangen...
reingehauen
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 20:25 Fr 20.05.2011 | Autor: | chrisno |
Ich glaube nicht, dass das ein f90-f95 Problem ist.
"Der Standard Fortran 95 ist eine kleine Revision des Standards Fortran 90." (aus Wikibooks...).
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 22:51 Fr 20.05.2011 | Autor: | rainerS |
Hallo!
> Erstmal vielen Dank für die schnelle Antwort.
>
> > Fortran95 ist eine Erweiterung von
> > Fortran90; es gibt nur sehr wenige Sprachelemente aus
> > Fortran90, die in Fortran95 nicht erlaubt sind (z.B
> > PAUSE).
>
> nen weiteres Beispiel wäre die Zuweisung der Variablen:
> in Fortran90 hätte ich bspw.
> real(8)::Variable
> in Fortran95 muss ich des alles mit
> real(3)::Varialbe
> ersetzen.
Mal abgesehen davon, dass das eine Deklaration ist, keine Zuweisung, funktioniert
real(8) :: variablenname
genauso in fortran95 wie in fortran90.
Wieso meinst du, dass du die Deklarationen ändern musst?
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 11:23 Sa 21.05.2011 | Autor: | fastgiga |
> Wieso meinst du, dass du die Deklarationen ändern musst?
Wenn ich real(8) schreibe kommt beim compilen
"error 62 - Invalid KIND specifier"
wenn ich google kommt raus, dass ich einfach real(3) schreiben muss.
Abgesehen davon ist es doch egal was ich warum so machen will, kann mir jemand nicht einfach sagen wie ich entweder bei plato den zu verwendeten compiler ändern kann oder den aktuellen(ders ja angeblich können soll) in fortran90 zu ändern?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:22 Sa 21.05.2011 | Autor: | rainerS |
Hallo!
>
> > Wieso meinst du, dass du die Deklarationen ändern musst?
>
> Wenn ich real(8) schreibe kommt beim compilen
>
> "error 62 - Invalid KIND specifier"
>
> wenn ich google kommt raus, dass ich einfach real(3)
> schreiben muss.
Das ist falsch, wie die Online-Doku hier zeigt: es ist
REAL(KIND=2)
oder kurz
REAL(2)
Wenn du die Online-Doku hier anschaust, siehst du, dass nichts ändern musst, wenn du die Compiler-Option /ALT_KINDS benutzen musst.
> Abgesehen davon ist es doch egal was ich warum so machen
> will, kann mir jemand nicht einfach sagen wie ich entweder
> bei plato den zu verwendeten compiler ändern kann oder den
> aktuellen(ders ja angeblich können soll) in fortran90 zu
> ändern?
Weil du nicht verstehst, dass dein Problem nichts mit dem Unterschied zwischen fortran90 und fortran95 zu tun hat, sondern mit der Eigenschaften des Compilers. Die Fehlermeldung tritt bei Fortran90 genauso auf wie bei Fortran95.
REAL(8) :: var
ist nicht portabel. Du kannst zum Beispiel schreiben
integer, parameter :: Q = selected_real_kind( 15 )
real( Q ) :: var
Viele Grüße
Rainer
|
|
|
|