diff --git a/WEGA/contrib/ingres/dbs/tmp/f77/f77 b/WEGA/contrib/ingres/dbs/tmp/f77/f77 new file mode 100644 index 0000000..f45af3d --- /dev/null +++ b/WEGA/contrib/ingres/dbs/tmp/f77/f77 @@ -0,0 +1,396 @@ + + + + + + + @ @ @ @ @ + @ @ @@ @@ @ @ + @ @ @ @ @ @ @ @ + @ @ @ @ @ @ + @@@@@@@ @ @ @ @ + @ @ @ @ @ @ + @ @ @ @ @ @ + + + + + + @ @ @ @ @@@@@ + @ @ @@ @ @ @ + @ @ @ @ @ @ @ + @ @ @ @ @ @ @ + @ @ @ @@ @ @ + @@@@ @ @ @@@@@ + + + + + + @@@@@@@ @@@@@@@ @@@@@@@ + @ @ @ @ @ + @ @ @ + @@@@@ @ @ + @ @ @ + @ @ @ + @ @ @ + + + + + + + + + + + + J . W e n z l a f f + + Z K I d e r A d W + K u r s t r . 3 3 + ----------------------- + B E R L I N , 1 0 8 6 + + + + + + + + + - 1 - + + + + + + + + + ING_DB 6.3/4 AMX(FORTRAN77) + + + + EINLEITUNG + Fuer die Einbindung von Datenbankaktionen in FORTRAN77 unter + UNIX bsd 2.9 stehen die AMX-Compiler `amxf' und `oamxf' zur + Verfuegung. `oamxf' ist die overlay-Version von `amxf'. + Die Datenbankaktionen werden in AMX/C programmiert und mit + `amxf' uebersetzt, alle anderen Programmteile koennen in + FORTRAN77 geschrieben werden. Sie werden mit `f77' ueber- + setzt und mit `amxf' bzw. `oamxf' gelinkt (verbunden). + Die Verwendung von `amxf' zur Programmerstellung erfordert + keine Angabe einer speziellen AMX-Bibliothek (analog zu + `amx'). Die Verwendung von `oamxf' erfordert vom Nutzer + + 1. die Angabe des Flags `-V' beim Uebersetzen der zu + ueberlagernden Moduln + + 2. die Angabe der ueberlagerbaren AMX-Bibliotheken + -lova1 bzw. `.../lib/libova1.a' + -lova2 bzw. `.../lib/libova2.a' + -lova3 bzw. `.../lib/libova3.a' + -lova4 bzw. `.../lib/libova4.a' + wobei der Pfad `.../' das home-directory des Da- + tenbanksystems ING_DB 6.3 angeben soll. + + Jede Bibliothek belegt ein Textsegment (8 KByte). Ent- + sprechend der Ueberlagerungsstruktur koennen die Biblio- + theken verteilt werden. Die Nummerierung schreibt aber die + Reihenfolge der Angabe beim Verbinden vor. + + + EIN-/AUSGABEN + Solange in FORTRAN77 und C jeweils verschiedene Dateien an- + gesprochen werden, koennen ohne Sprachmixprobleme beliebige + Ein-/Ausgabeoperationen ausgefuehrt werden. Gleiche Dateien + koennen nur dann in beiden Sprachen angesprochen werden, + wenn es sich um die Standard-Ein- oder -Ausgabedatei han- + delt. + + FORTRAN77 C + --------- --------------------- + Einheit 5 stdin (Deskriptor 0) + Einheit 6 stdout (Deskriptor 1) + Einheit 0 stderr (Deskriptor 2) + + Einheit 5, 6 oder 0 in FORTRAN77 darf dabei keiner anderen + Datei zugewiesen werden, wie auch stdin, stdout oder stderr + bzw. Deskriptor 0, 1 oder 2 in C. In C sollten die Stan- + darddateien auch nicht gepuffert werden (s. SETBUF(III)). + + + + + + + - 1 - + + + + + + + + + ING_DB 6.3/4 AMX(FORTRAN77) + + + + FELDER + In FORTRAN77 beginnen Indizes von Felder (Vektoren) immer + mit 1, in C dagegen mit 0. + + Beispiel + FORTRAN77: array(n) hat die Indizes 1 .. n + C array[n] hat die Indizes 0 .. (n - 1) + + Probleme koennen immer dann auftreten, wenn ueber Argumente + ein Index uebermittelt wird, der den Bearbeitungsstand des + Feldes ausdruecken soll. Die Uebermittlung der Kardinali- + taet des Feldes (Anzahl der Feldelemente) bringt keine Pro- + bleme. + In mehrdimensionalen Feldern hat in FORTRAN77 Spalte vor + Zeile, in C Zeile vor Spalte Vorrang. + + FORTRAN77 + +-----------------------------------+ + a(2,3) | 1,1 | 1,2 | 1,3 | 2,1 | 2,2 | 2,3 | + a(3,2) | 1,1 | 1,2 | 2,1 | 2,2 | 3,1 | 3,2 | + a(6) | 1 | 2 | 3 | 4 | 5 | 6 | + +-----------------------------------+ + C + +-----------------------------------+ + a[6] | 0 | 1 | 2 | 3 | 4 | 5 | + a[2,3] | 0,0 | 1,0 | 0,1 | 1,1 | 0,2 | 1,2 | + a[3,2] | 0,0 | 1,0 | 2,0 | 0,1 | 1,1 | 2,1 | + +-----------------------------------+ + + + FORTRAN77 KONVENTIONEN + Der Eintrittspunkt in das FORTRAN77-Programm ist + + subroutine amx() + + Damit wird eine ordnungsgemaesse Datenbankinitialisierung + und -beendigung gesichert. + Fuer FORTRAN77 gibt es keine weiteren Konventionen zu + beachten, folgende Hinweise sollen die Arbeit etwas erleich- + tern: + + - Vermeiden Sie die Verwendung von Funktionen, die + in C geschrieben sind und von FORTRAN77 aufgerufen + werden, solange Sie den Mechanismus der Argu- + mentuebergabe nicht vollstaendig verstanden haben. + + - Stringvariablen in FORTRAN77, die Zeichenketten- + domaenen aufnehmen sollen, muessen ein Zeichen + laenger sein, als die Laenge der Zeichenketten- + domaene in der Datenbank, auch wenn FORTRAN77 das + Abschlusszeichen `\0' fuer die Zeichenkette nicht + + + - 2 - + + + + + + + + + ING_DB 6.3/4 AMX(FORTRAN77) + + + benoetigt. + + - Schon sehr kleine AMX/FORTRAN77-Programme belegen + den vollen Adressraum. Benutzen Sie von vornhe- + rein die Ueberlagerungsstrukturen. + + - Benutzen Sie fuer AMX/F-Austauschobjekte vom Typ + `integer' immer `integer*2' bzw. `integer*4'. + + + C KONVENTIONEN + Vom C-Teil der C/FORTRAN77-Programmen koennen alle + FORTRAN77-Objekte (Routinen, Daten), vom FORTRAN77-Teil + koennen nur bestimmte C-Objekte benutzt werden. + + + NAMEN + FORTRAN77-Namen (Symbole) duerfen maximal 6 Zeichen lang + sein. In C muss an den FORTRAN77-Namen ein zusaetzlicher + Unterstrich `_' angehaengt werden, um FORTRAN77-Objekte in C + zu erreichen. + + z.B. FORTRAN77 name string func + C name_ string_ func_ + + Normalerweise wird in FORTRAN77 Gross- und Kleinschreibung + nicht unterschieden, d.h. der FORTRAN77-Compiler uebersetzt + alle Gross- in Kleinbuchstaben. Das `f77'-Flag `-U' + gestattet die Verwendung von Gross- und Kleinbuchstaben. + + + TYPKONVERSIONEN + Fuer die Typen in FORTRAN77 und C gelten folgende Zuordnun- + gen: + + integer*2 short bzw. short int + integer long bzw. long int + oder + short bzw. short int + (siehe `f77'-Flag `-i2') + integer*4 long bzw. long int + logical long bzw. long int + oder + short bzw. short int + (siehe `f77'-Flag `-i2') + real float + double precision double + complex struct { float r, i; } + double complex struct { double r, i; } + character*n char [n] + + + + + - 3 - + + + + + + + + + ING_DB 6.3/4 AMX(FORTRAN77) + + + + ARGUMENTKONVERSIONEN + In FORTRAN77 werden Parameter grundsaetzlich durch + Adressverweise (Call By Reference) uebergeben, einige Para- + meter (Funktionen, Parameter vom Typ character*n) erzeugen + einen zusaetzlichen Laengenparameter vom Typ integer*4 bzw. + long. + + subroutine f(..., x, ...) f_(..., x, ...) + integer*2 x short *x; + + subroutine f(..., x, ...) f_(..., x, ...) + integer x long *x; + oder + short *x; + (siehe `f77'-Flag `-i2') + + subroutine f(..., x, ...) f_(..., x, ...) + integer*4 x long *x; + + subroutine f(..., x, ...) f_(..., x, ...) + logical x long *x; + oder + short *x; + (siehe `f77'-Flag `-i2') + + subroutine f(..., x, ...) f_(..., x, ...) + real x float *x; + + subroutine f(..., x, ...) f_(..., x, ...) + double precision x double *x; + + subroutine f(..., x, ...) f_(..., x, ...) + complex x struct {float r, i; } *x; + + subroutine f(..., x, ...) f_(..., x, ...) + double complex x struct {double r, i; } *x; + + subroutine f(..., x, ...) f_(..., x, ..., xlen) + character*(*) x char x[]; + long xlen; + + subroutine f(..., x, ...) f_(..., x, ..., xnull) + subroutine x int (*x)(); + long xnull; /* == 0L */ + + + + + + + + + + - 4 - + + + + + + + + + ING_DB 6.3/4 AMX(FORTRAN77) + + + FUNKTIONSKONVERSIONEN + Fuer die Uebergabe von Funktionswerten an aufrufende Routi- + nen gelten folgende Zuordnungen: + + integer*2 function f(...) short f_(...) + + integer function f(...) long f_(...) + oder + short f_(...) + (siehe `f77'-Flag `-i2') + + integer*4 function f(...) long f_(...) + + logical function f(...) long f_(...) + oder + short f_(...) + (siehe `f77'-Flag `-i2') + + real function f(...) nicht darstellbar, weil + float in Ausdruecken + immer in double umgewan- + delt wird + + double precision function f(...) double f_(...) + + complex function f(...) f_(r, ...) + struct {float r, i;} *r; + + double complex function f(...) f_(r, ...) + struct {double r, i;} *r; + + character*n function f(...) f_(r, l...) + char r[]; + long l; + + + + + + + + + + + + + + + + + + + + + - 5 - + + + + diff --git a/WEGA/contrib/ingres/dbs/tmp/f77/f77.nr b/WEGA/contrib/ingres/dbs/tmp/f77/f77.nr new file mode 100644 index 0000000..6efdfd4 --- /dev/null +++ b/WEGA/contrib/ingres/dbs/tmp/f77/f77.nr @@ -0,0 +1,469 @@ +.pl 66 +.ll 65 +.ns +.po 5 +.nr in 5 +.de i0 +.in \n(in +.. +.de lp +.i0 +.if !\n(.V .ta \\$2+1 +.if \n(.V .ta \\$2 +.in \\$1 +.ti -\\$2 +.. +.de s1 +.sp 1 +.ne 4 +.. +.de s2 +.sp 1 +.. +.de fo +'sp 2 +'tl ''- % -'' +'bp +.. +.de th +.de x1 +.rs +'sp 4 +'tl '\\*(II/\\$3''\\$1(\\$2)' +'sp 2 +\\.. +.wh -7 fo +.wh 0 x1 +.pn 1 +'fi +'ad +.bp +.in \n(in +.dt +.. +.de sh +.i0 +.s1 +.ne 5 +.ti 0 +\\$1 +.br +.. +.de dt +.ta 8 16 24 32 40 48 56 64 +.. +.ds II ING_DB 6.3 +.ds UU UNIX +.ds AA AMX +.ds FF FORTRAN77 +.if !\n(.V .ds +- +- +.if \n(.V .ds +- \(+- +.ds ** * +.ds - - +.ds _ _ +.ds v | +.hy 0 +.so f77.um +.nf + +.fi +.sp 5 +.nf + @ @ @ @ @ + @ @ @@ @@ @ @ + @ @ @ @ @ @ @ @ + @ @ @ @ @ @ + @@@@@@@ @ @ @ @ + @ @ @ @ @ @ + @ @ @ @ @ @ +.fi +.sp 5 +.nf + @ @ @ @ @@@@@ + @ @ @@ @ @ @ + @ @ @ @ @ @ @ + @ @ @ @ @ @ @ + @ @ @ @@ @ @ + @@@@ @ @ @@@@@ +.fi +.sp 5 +.nf + @@@@@@@ @@@@@@@ @@@@@@@ + @ @ @ @ @ + @ @ @ + @@@@@ @ @ + @ @ @ + @ @ @ + @ @ @ + +.fi +.sp 10 +.nf + J . W e n z l a f f + + Z K I d e r A d W + K u r s t r . 3 3 + ----------------------- + B E R L I N , 1 0 8 6 +.fi +.th \*(AA \*(FF 4 +.sh EINLEITUNG +F\*ur die Ein\%bin\%dung von Da\%ten\%bank\%aktio\%nen in +\*(FF unter +\*(UU bsd 2.9 stehen die +\*(AA\*-Compiler `amxf' und `oamxf' zur Ver\%f\*ugung. +`oamxf' ist die overlay\*-Ver\%sion von `amxf'. +.br +Die Da\%ten\%bank\%aktio\%nen wer\%den in +\*(AA/C pro\%gram\%miert und mit `amxf' \*uber\%setzt, +alle anderen Pro\%gramm\%tei\%le k\*on\%nen in +\*(FF ge\%schrie\%ben wer\%den. +Sie wer\%den mit `f77' \*uber\%setzt +und mit `amxf' bzw. `oamxf' gelinkt (ver\%bunden). +.br +Die Ver\%wen\%dung von `amxf' zur Pro\%gramm\%er\%stel\%lung +erfordert keine An\%ga\%be einer speziellen +\*(AA\*-Bib\%lio\%thek +(analog zu `amx'). +Die Ver\%wen\%dung von `oamxf' erfordert vom Nutzer +.s2 +.lp +10 5 +1. die An\%ga\%be des Flags `\*-V' beim +\*Uber\%setzen der zu \*uber\%lagernden Moduln +.s2 +.lp +10 5 +2. die An\%ga\%be der \*uber\%la\%ger\%baren +\*(AA\*-Bib\%lio\%theken +.br +\*-lova1 bzw. `.../lib/libova1.a' +.br +\*-lova2 bzw. `.../lib/libova2.a' +.br +\*-lova3 bzw. `.../lib/libova3.a' +.br +\*-lova4 bzw. `.../lib/libova4.a' +.br +wobei der Pfad `.../' das home\*-directory +des Da\%ten\%bank\%sys\%tems \*(II an\%ge\%ben soll. +.i0 +.s1 +Jede Bib\%lio\%thek belegt ein Text\%seg\%ment +(8 KByte). +Ent\%sprech\%end der \*Uber\%la\%ge\%rungs\%struk\%tur k\*on\%nen +die Bib\%lio\%theken ver\%teilt wer\%den. +Die Num\%me\%rie\%rung schreibt aber +die Reihenfolge der An\%ga\%be +beim Ver\%bin\%den vor. +.s1 +.sh "EIN\*-/AUSGABEN" +So\%lan\%ge in \*(FF und C jeweils ver\%schie\%dene +Da\%tei\%en an\%ge\%sprochen wer\%den, +k\*on\%nen ohne Sprach\%mix\%pro\%ble\%me +beliebige Ein\*-/Aus\%ga\%be\%ope\%ra\%tionen +ausgef\*uhrt wer\%den. +Glei\%che Da\%tei\%en k\*on\%nen nur dann +in bei\%den Spra\%chen an\%ge\%sprochen wer\%den, +wenn es sich um die Stan\%dard\*-Ein\*- +oder \*-Aus\%ga\%be\%da\%tei han\%delt. +.s2 +.lp +25 20 +\*(FF C +.br +.lp +25 20 +\*-\*-\*-\*-\*-\*-\*-\*-\*- \*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*- +.br +.lp +25 20 +Einheit 5 stdin\ \ (Des\%krip\%tor 0) +.br +.lp +25 20 +Einheit 6 stdout (Des\%krip\%tor 1) +.br +.lp +25 20 +Einheit 0 stderr (Des\%krip\%tor 2) +.i0 +.s1 +Einheit 5, 6 oder 0 in \*(FF darf dabei keiner +anderen Da\%tei zugewiesen wer\%den, +wie auch stdin, stdout oder stderr +bzw. Des\%krip\%tor 0, 1 oder 2 in C. +In C soll\%ten die Stan\%dard\%da\%tei\%en auch +nicht ge\%puf\%fert wer\%den (s. SETBUF(III)). +.s1 +.sh FELDER +In \*(FF beginnen Indizes von Fel\%der (Vek\%to\%ren) +immer mit 1, +in C dagegen mit 0. +.s1 +Beispiel +.lp +20 15 +\*(FF: array(n)\ \ \ hat die Indizes 1 .. n +.lp +20 15 +C array[n]\ \ \ hat die Indizes 0 .. (n \*- 1) +.i0 +.s1 +Pro\%ble\%me k\*on\%nen immer dann auftreten, +wenn \*uber Ar\%gumente ein Index \*ubermittelt wird, +der den Be\%ar\%bei\%tungs\%stand des Fel\%des aus\%dr\*ucken soll. +Die \*Uber\%mitt\%lung der Kar\%di\%na\%li\%t\*at +des Fel\%des (Anzahl der Feld\%ele\%men\%te) +bringt keine Pro\%ble\%me. +.br +In mehr\%di\%men\%siona\%len Fel\%dern hat in \*(FF +Spalte vor Zei\%le, +in C Zei\%le vor Spalte Vorrang. +.s1 +.nf +\*(FF + +\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-+ + a(2,3) | 1,1 | 1,2 | 1,3 | 2,1 | 2,2 | 2,3 | + a(3,2) | 1,1 | 1,2 | 2,1 | 2,2 | 3,1 | 3,2 | + a(6) | 1 | 2 | 3 | 4 | 5 | 6 | + +\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-+ +C + +\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-+ + a[6] | 0 | 1 | 2 | 3 | 4 | 5 | + a[2,3] | 0,0 | 1,0 | 0,1 | 1,1 | 0,2 | 1,2 | + a[3,2] | 0,0 | 1,0 | 2,0 | 0,1 | 1,1 | 2,1 | + +\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-\*-+ +.fi +.s1 +.sh "\*(FF KONVENTIONEN" +Der Ein\%tritts\%punkt in das +\*(FF\*-Pro\%gramm ist +.s1 +.in 15 +subroutine amx() +.i0 +.s2 +Damit wird eine ordnungsgem\*a\*se +Da\%ten\%bank\%ini\%tia\%li\%sie\%rung und +\*-beendigung gesichert. +.br +F\*ur \*(FF gibt es keine weiteren Konventionen +zu beachten, +fol\%gen\%de Hin\%wei\%se sol\%len die Ar\%beit etwas er\%leich\%tern: +.s1 +.lp +10 5 +\*- Ver\%meiden Sie die Ver\%wen\%dung von Funk\%tio\%nen, +die in C ge\%schrie\%ben sind +und von \*(FF aufgerufen wer\%den, +so\%lan\%ge Sie den Me\%cha\%nis\%mus der +Ar\%gu\%ment\*uber\%ga\%be nicht voll\%st\*an\%dig ver\%stan\%den haben. +.s1 +.lp +10 5 +\*- Stringvariablen in \*(FF, +die Zei\%chen\%ket\%ten\%dom\*anen aufnehmen sol\%len, +m\*ussen ein Zei\%chen l\*anger sein, +als die L\*ange der Zei\%chen\%ket\%ten\%dom\*ane +in der Da\%ten\%bank, +auch wenn \*(FF das Abschlu\*szeichen `\e0' +f\*ur die Zei\%chen\%ket\%te nicht ben\*otigt. +.s2 +.lp +10 5 +\*- Schon sehr kleine +\*(AA/\*(FF\*-Pro\%gram\%me belegen +den vol\%len Adre\*s\%raum. +Benutzen Sie von vorn\%he\%rein die +\*Uber\%la\%ge\%rungs\%struk\%tu\%ren. +.s2 +.lp +10 5 +\*- Be\%nutzen Sie f\*ur \*(AA/\*FF\*-Aus\%tausch\%ob\%jek\%te +vom Typ `integer' immer `integer*2' +bzw. `integer*4'. +.s1 +.sh "C KONVENTIONEN" +Vom C\*-Teil der C/\*(FF\*-Pro\%gram\%men +k\*on\%nen alle \*(FF\*-Objekte +(Rou\%ti\%nen, Da\%ten), +vom \*(FF\*-Teil k\*on\%nen nur bestimmte +C\*-Objekte benutzt wer\%den. +.s1 +.sh "NAMEN" +\*(FF\*-Namen (Symbole) +d\*urfen maximal 6 Zei\%chen lang sein. +In C mu\*s an den \*(FF\*-Namen +ein zu\%s\*atz\%lich\%er Unterstrich `_' +an\%ge\%h\*angt wer\%den, +um \*(FF\*-Objekte in C zu erreichen. +.s1 +.nf + z.B. \*(FF name string func + C name_ string_ func_ +.fi +.s1 +Normalerweise wird in \*(FF +Gro\*s\*- und Kleinschreibung +nicht unterschieden, +d.h. der \*(FF\*-Compiler \*uber\%setzt +alle Gro\*s\*- in Klein\%buch\%sta\%ben. +Das `f77'\*-Flag `\*-U' gestattet +die Ver\%wen\%dung von Gro\*s\*- und Klein\%buch\%sta\%ben. +.s1 +.sh TYPKONVERSIONEN +F\*ur die Typen in \*(FF und C +gel\%ten fol\%gen\%de Zu\%ord\%nun\%gen: +.s1 +.lp +30 25 +integer*2 short bzw. short int +.lp +30 25 +integer long bzw. long int +.br +oder +.br +short bzw. short int +.br +(siehe `f77'\*-Flag `\*-i2') +.lp +30 25 +integer*4 long bzw. long int +.lp +30 25 +logical long bzw. long int +.br +oder +.br +short bzw. short int +.br +(siehe `f77'\*-Flag `\*-i2') +.lp +30 25 +real float +.lp +30 25 +double precision double +.lp +30 25 +complex struct { float r, i; } +.lp +30 25 +double complex struct { double r, i; } +.lp +30 25 +character*n char [n] +.i0 +.s1 +.sh ARGUMENTKONVERSIONEN +In \*(FF wer\%den Pa\%ra\%me\%ter grund\%s\*atz\%lich +durch Adre\*sver\%weise +(Call By Reference) \*ubergeben, +einige Pa\%ra\%me\%ter +(Funk\%tio\%nen, Pa\%ra\%me\%ter vom Typ character*n) +er\%zeu\%gen einen zu\%s\*atz\%lichen L\*an\%gen\%pa\%ra\%me\%ter +vom Typ integer*4 bzw. long. +.s1 +.lp +30 30 +subroutine f(..., x, ...) f_(..., x, ...) +.lp +30 30 +integer*2 x short *x; +.s1 +.lp +30 30 +subroutine f(..., x, ...) f_(..., x, ...) +.lp +30 30 +integer x long *x; +.br +oder +.br +short *x; +.br +(siehe `f77'\*-Flag `\*-i2') +.s1 +.lp +30 30 +subroutine f(..., x, ...) f_(..., x, ...) +.lp +30 30 +integer*4 x long *x; +.s1 +.lp +30 30 +subroutine f(..., x, ...) f_(..., x, ...) +.lp +30 30 +logical x long *x; +.br +oder +.br +short *x; +.br +(siehe `f77'\*-Flag `\*-i2') +.s1 +.lp +30 30 +subroutine f(..., x, ...) f_(..., x, ...) +.lp +30 30 +real x float *x; +.s1 +.lp +30 30 +subroutine f(..., x, ...) f_(..., x, ...) +.lp +30 30 +double precision x double *x; +.s1 +.lp +30 30 +subroutine f(..., x, ...) f_(..., x, ...) +.lp +30 30 +complex x struct {float r, i; } *x; +.s1 +.lp +30 30 +subroutine f(..., x, ...) f_(..., x, ...) +.lp +30 30 +double complex x struct {double r, i; } *x; +.s1 +.lp +30 30 +subroutine f(..., x, ...) f_(..., x, ..., xlen) +.lp +30 30 +character*(*) x char x[]; +.br +long xlen; +.s1 +.lp +30 30 +subroutine f(..., x, ...) f_(..., x, ..., xnull) +.lp +30 30 +subroutine x int (*x)(); +.br +long xnull; /* == 0L */ +.s1 +.i0 +.s1 +.sh FUNKTIONSKONVERSIONEN +F\*ur die \*Uber\%ga\%be von Funk\%tions\%wer\%ten +an aufru\%fen\%de Rou\%ti\%nen +gel\%ten fol\%gen\%de Zu\%ord\%nungen: +.s1 +.lp +35 35 +integer*2 function f(...) short f_(...) +.s1 +.lp +35 35 +integer function f(...) long f_(...) +.br +oder +.br +short f_(...) +.br +(siehe `f77'\*-Flag `\*-i2') +.s1 +.lp +35 35 +integer*4 function f(...) long f_(...) +.s1 +.lp +35 35 +logical function f(...) long f_(...) +.br +oder +.br +short f_(...) +.br +(siehe `f77'\*-Flag `\*-i2') +.s1 +.lp +35 35 +real function f(...) nicht darstellbar, +weil float in Aus\%dr\*ucken immer in double +um\%ge\%wan\%delt wird +.s1 +.lp +35 35 +double precision function f(...) double f_(...) +.s1 +.lp +35 35 +complex function f(...) f_(r, ...) +.br +struct {float r, i;} *r; +.s1 +.lp +35 35 +double complex function f(...) f_(r, ...) +.br +struct {double r, i;} *r; +.s1 +.lp +35 35 +character*n function f(...) f_(r, l...) +.br +char r[]; +.br +long l; +.i0 +.s1