2011-01-10 9 views
0

Ich habe die Aufgabe bekommen, eine Gui für ein Fortran 77 Programm zu erstellen. Dazu benutze ich einen Lahey Fujitsu Compiler und Wisk, der im Wesentlichen eine reine Version von Winteracter ist. Jetzt kodiere ich den GUI-Teil in 90, um ehrlich zu sein, im Moment bin ich nichts codieren und benutze nur den Code, den der Wisk-Wizard ausspuckt, und habe ein Problem mit dem GUI-Teil, der mit dem 77-Teil spricht.Programmierung eines Fortran 77 Programms in eine Unterroutine

Das Programm besteht aus einem Hauptprogramm und 14 Unterprogrammdateien. Das Hauptprogramm ruft alle anderen Unterprogramme auf, verarbeitet Berechnungen und schreibt das Endergebnis in eine Textdatei. Was ich tun möchte, ist, das Hauptprogramm zu einer Subroutine zu machen und es aus dem gui oder fortran 90 Teil des Programms zu benennen, wodurch die GUI zum Hauptprogramm wird. Ist es möglich, dies zu tun, da ein großer Teil des Fortran 77 als implizite doppelte Genauigkeit deklariert wird, während der fortran 90 Code implizit keine ist? Desweiteren müsste ich im GUI-Teil alle Subroutinen aufrufen oder wird das Hauptprogramm, das in eine Subroutine umgewandelt wird, damit umgehen?

Jede Hilfe/Beratung wäre willkommen.

Wenn einer davon nicht klar ist, was ich sicher bin, ist der Fall, da meine Fortran-Fähigkeiten immer noch begrenzt sind, frag mich einfach, was ich meine.

Danke, Christian

Antwort

0

Ich bin Teil eines Teams an einem Programm arbeiten, das weitgehend in Fortran 77 geschrieben wird und das macht reichlich Gebrauch von impliziten realen usw. Es gibt jedoch Moduldateien, die gewesen sind hinzugefügt zu einem späteren Zeitpunkt, und diese sind in Fortran 90 geschrieben, und sie verwenden implicit none. Ich weiß nicht, ob all dies als gute Praxis angesehen werden kann oder nicht, aber zumindest funktioniert es, und die Anwesenheit dieser beiden Fortran-Dialekte hat bisher noch nie Probleme bereitet (oder keine, an die ich mich erinnern kann ...). Daher bezweifle ich, dass der Mix aus 90 und 77 Kopfschmerzen bereiten wird. (Nur zur Info, wir verwenden den Intel Compiler)

Ich kann jetzt etwas offensichtlich übersehen, aber auf den ersten Blick sehe ich nichts falsch mit Ihrer Idee, das aktuelle Hauptprogramm in eine Unterroutine der GUI zu verwandeln, und es mit einer Reihe von Argumenten anruft, die "ihm sagen, was zu tun ist". Wenn Sie diese Straße hinuntergehen, lassen Sie so viel wie möglich vom alten Code unberührt - lassen Sie das alte Hauptprogramm die Subroutine usw. aufrufen.

Wäre es nicht möglich, eine Art Wrapper zu konstruieren? für das alte Programm, dh lassen Sie es wie es ist, erstellen Sie eine separate GUI, und diese GUI das Programm mit den entsprechenden Parametern aufrufen? Ich habe jedoch nicht viel Erfahrung im Bereich GUI-Programmierung und Wrapper-Erstellung, daher kann ich Ihnen nicht sagen, welcher Ansatz vorzuziehen wäre, aber das klingt nach der Route, für die Sie am wenigsten ändern müssten, und das alte Programm könnte weiterhin als eigenständiges Befehlszeilenprogramm verwendet werden, was in einigen Fällen vorzuziehen sein kann.

+0

danke für die Antwort, tut mir leid, meine Antwort ist ein bisschen spät. – Christian

+0

@Christian Falls Sie die Antwort mögen, möchten Sie vielleicht darüber nachdenken, sie anzunehmen und/oder zu akzeptieren. Sie können dies tun, indem Sie auf den Pfeil nach oben über der großen 0 klicken (Upvoting)/indem Sie auf das Häkchen klicken (akzeptieren). :) – canavanin

Verwandte Themen