2010-07-12 12 views
5

Ich habe eine große Subroutine geschrieben in Fortran, die ich in einem Java-Programm verwenden muss. Wie kann ich es nennen? Ich benutze Ubuntu 10.04.Aufruf einer Fortran-Subroutine aus Java

+1

Dies ist plattformabhängig. Möglicherweise möchten Sie Ihrer Frage zusätzliche Informationen hinzufügen. –

Antwort

4

Werfen Sie einen Blick auf this document, es beschreibt den Prozess der Integration von nativem Code (Fortran/C) mit Java. Das Ergebnis wird natürlich plattformabhängig sein.

4

Das Papier, auf das @extraneon verweist, ist die Art und Weise, wie ich vor ein paar Jahren ein Fortran-Unterprogramm in ein Java-Programm integrierte. Wenn ich es heute jedoch noch einmal versuchen würde, würde ich die Interoperabilität mit mit C Features untersuchen, die im Fortran 2003-Standard definiert sind und von neueren Versionen einiger Compiler implementiert werden. Ich hoffe, dass ich die Fortran-Subroutine kompilieren konnte, um nach JNI zu schauen, als ob sie in C geschrieben wäre. Auf diese Weise könnten Sie den C-Wrapper ausschneiden.

Und wenn Ihr Compiler nicht die Interoperabilität mit C-Funktionen implementieren, Graben und erhalten Sie eine, die tut.

EDIT: ein anderer Gedanke kommt mir: Wenn die Fortran-Unterprogramm in seiner Ausführungszeit ist riesig Sie es mit Java über die Integration, indem Java einige Eingabedaten in einer Datei speichern, und Modifizieren des Fortran denken sollte seine bekommen Eingaben von der Datei. Dann könnte das Java-Programm einen Aufruf an das System machen, um den Fortran zu starten. Übergeben Sie die Ergebnisse auf die gleiche Weise. Dies ist ein echter Kludn, aber Sie werden es wahrscheinlich einfacher finden, als über JNI zu gehen. Darüber hinaus könnten Sie dies als eine Zwischenlösung implementieren, während Sie mit JNI und Interoperabilität usw. kämpfen.

Verwandte Themen