11. Anlage
 
zurück
11.2.4 Fortran-Schnittstellenpaket


Da viele mathematische Programme in Fortran geschrieben worden sind und noch werden, ist es wichtig, daß Ada-Programme in der Lage sind, Fortran-Unterprogramme oder Bibliotheksfunktionen von Fortran aufzurufen. Umgekehrt gibt es auch Gründe dafür, daß Fortran-Programme in der Lage sein sollen, Ada-Unterprogramme aufzurufen. Die Schnittstelle zu Fortran wird durch das Kindpaket "Interfaces.Fortran" und den Konventionsbezeichner "Fortran" in den Schnittstellenpragmas zur Verfügung gestellt. Es definiert Ada-Typen, die den gleichen Namen wie die eigentlichen Typen in Fortran haben und deren Darstellung der standardmäßigen Darstellung der Typen der Zielimplementierung von Fortran entsprechen. Ausnahmen bilden die Fälle, in denen sich Namenskonflikte mit den Ada-Typen im Paket "Standard" ergeben. Hier wurden deshalb abweichende Namen gewählt. Es handelt sich im Paket um die Typen "integer", "real""double precision", "complex", "logical" und "character". Die Funktionen "To_Fortran" und "To_Ada" bilden den Typ "character" und den Fortran-Typ "character_set" sowie den Ada-Typ "string" und den Fortran-Typ "fortran_character"
aufeinander ab.

Falls verschiedene Übersetzerimplementierungen für Fortran in der Zielrechnerumgebung bereitgestellt werden sollen, müssen auch mehrere Fortran-Schnittstellenpakete zur Verfügung gestellt werden. Jedes Schnittstellenpaket hat einen entsprechenden Bezeichner, der die entsprechende Fortran-Implementierung anzeigt.

Zusätzliche Typen können zum Paket "Interfaces.Fortran" aufgenommen werden. Zum Beispiel könnte das Schnittstellenpaket zur Implementierung von "Fortran 77" Deklarationen für "integer_star_2", "integer_star_4", "logical_star_1", "logical_star_4" usw. aufnehmen.

Wenn die Anwendung nur skalare Typen von einem Ada-Unterprogramm an ein Fortran-Unterprogramm übergeben will, genügt es, die Typen im Schnittstellenpaket "Interfaces.Fortran" zu verwenden.

Das Pragma "Convention" kann dazu verwendet werden, um anzuzeigen, daß eine mehrdimensionale Reihung auf die spaltenweisen Darstellung von Fortran abgebildet werden soll oder daß ein Verbundobjekt, das in einer Unterprogrammbibliothek bzw. in einem Paket deklariert ist, auf einen "Common"-Block abgebildet werden soll. Eine Vereinbarung "Convention (Fortran, Matrix)" impliziert, daß "Matrix" in Ada entsprechend der in Fortranbeschriebenen Konvention dargestellt werden soll, nämlich spaltenorientiert.


 
zurück
 Index   Ada Tour - Dokumentation  
© 2003 Förderverein Ada Deutschland e.V.