HLRN: XL Fortran und Power4 unter AIX

Die Online-Dokumentation ist nur für die Benutzer des HLRN gedacht.
Zur Zeit ist sie z.T. nur für RRZN-Mitarbeiter und nur im 5-er Netz zugänglich.

Die Kennzeichnung bestimmter Dokumenationen als druckbar weist lediglich darauf hin, dass sie (im Gegensatz zu diversen Original-IBM-Links) gedruckt werden könnten, wenn man es dürfte. Eine Druckerlaubnis muss man sich gegebenenfalls erst irgendwie besorgen. Bei den Redbooks geht das z.B. online.


Installierte Software (in H)

  xlfcmp                     7.1.1.2    C     F    XL Fortran Compiler
  xlfcmp.html.en_US          7.1.1.0    C     F    XL Fortran Compiler
  xlfcmp.idebug.html.en_US   7.1.1.0    C     F    Distributed Debugger
  xlfcmp.msg.en_US           7.1.1.0    C     F    XL Fortran Compiler Messages -
  xlfcmp.pdf.en_US           7.1.1.0    C     F    XL Fortran Compiler
  xlfcmp.ps.en_US            7.1.1.0    C     F    XL Fortran Compiler
  xlfrte                     7.1.1.2    C     F    XL Fortran Runtime
  xlfrte.aix43               7.1.1.2    C     F    XL Fortran Runtime Environment
  xlfrte.aix51               7.1.1.2    C     F    XL Fortran Runtime Environment
  xlfrte.msg.en_US           7.1.1.0    C     F    XL Fortran Runtime Messages -

Achtung:

Online-Dokumentation

Handbücher zum Fortran-Umfeld

Man Page + README.xlf

Messages (aller Art)

Wer ein spezielles Dokument sucht oder wer ein Dokument sucht, das man auch ausdrucken kann, der versuche mal im IBM Publications Center nachzusehen, dort "Search for Publications" anzuklicken und dann z.B. das Stichwort "messages" einzugeben.

Programmbibliotheken

Compiler-Aufrufe

Für den XLF-Compiler sind für die gebräuchlichsten Einsatzbereiche jeweils passende Optionspakete als Kommando/Skript vordefiniert. Diese Voreinstellungen können Sie durch explizite Angabe von Optionen im Compiler-Aufruf übersteuern.

Kommando/Skript (plus Voreinst.)Bedeutung
xlfXL Fortran 2, spaltengerechte Quelltextform, Dateiendung .f
f77 FORTRAN 77, spaltengerechte Quelltextform, Dateiendung .f
xlf90Fortran 90, freie Quelltextform, Dateiendung .f
f90Fortran 90, freie Quelltextform, Dateiendung .f90
Aber: Es ist zuvor ein Link erforderlich, z.B.: ln -s /usr/bin/xlf90 f90
xlf95Fortran 95, freie Quelltextform, Dateiendung .f
f95Fortran 95, freie Quelltextform, Dateiendung .f95
Aber: Es ist zuvor ein Link erforderlich, z.B.: ln -s /usr/bin/xlf90 f95
xlf_r, xlf90_r, xlf95_r wie ohne "_r" jedoch für SMP-Programme (autoparallelisiert oder OpenMP-parallelisiert), Verwendung thread-sicherer Libraries
mpxlf, mpxlf90, mpxlf95wie ohne "mp" jedoch für reine MPI-Programme
mpxlf_r, mpxlf90_r, mpxlf95_r wie ohne "mp" und "_r" jedoch für hybride SMP/MPI-Programme

Optionen

Laufzeitumgebung

Werkzeuge

Programmierung

Programmumstellung

Die Dokumentationen sind ausschließlich C-/C++-orientiert. Obwohl es also keinerlei Hinweise zu Fortran gibt, findet man diverse gute Hinweise zu allen anderen Aspekten der Umstellung.

Fortran-Module

Daten, die innerhalb eines Moduls vereinbart werden, haben globalen Charakter. Daten dieser Art werden von Threads gemeinsam benutzt; d.h., sie sind prinzipiell "thread-unsafe". Um solch eine Anwendung thread-safe zu machen, muss man folgende "unschöne" Quelltextmodifikation durchführen:
  1. Innerhalb des Moduls spezifiziere man einen benannten COMMON-Block,
  2. die betreffenden Modul-Daten lege man in diesen COMMON-Block und
  3. für diesen COMMON-Block füge man eine zusätzliche THREADLOCAL-Direktive ein.

Beispiel:

MODULE smp
  REAL, DIMENSION (100,10) :: x, y
  INTEGER :: i,j
END MODULE smp
wird zu
MODULE smp
  COMMON /mod/ x,y,i,j
!IBM* THREADLOCAL /mod/
  REAL, DIMENSION (100,10) :: x, y
  INTEGER :: i,j
END MODULE smp
Der COMMON-Block ist erforderlich, weil man in der THREADLOCAL-Direktive nur Blöcke und keine einzelnen Datenelemente angeben kann.

Backslash

Vorsicht Falle!!!

Per default wird ein backslash "\" in Zeichendaten, Hollerith-Konstanten, H-Datenfeldbeschreibungen und Zeichen-Datenfeldbeschreibungen als escape-Symbol interpretiert. Wenn man dagegen will, dass das Zeichen als "\"-Zeichen behandelt wird, muss man die Compiler-Option -qnoescape angeben.

Integer-Pointer

Integer-Pointer, auch CRI-Pointer oder Cray-Pointer genannt, sind eine Spracherweiterung, die dynamisches Aliasing und Adressarithmetik unterstützt und die nichts mit dem standardisierten Pointer-Konzept zu tun hat.

Alles über die XLF-Implementierung solcher Integer-Pointer finden Sie hier.


4. Dez 2002        Wilhelm Gehrke         gehrke@rrzn.uni-hannover.de