EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

fortc – Online in der Cloud

Führen Sie fortc im kostenlosen OnWorks-Hosting-Anbieter über Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator aus

Dies ist der Befehl fortc, der im kostenlosen OnWorks-Hosting-Provider mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


fortc - Unidata-Dienstprogramm zum Generieren von Fortran-kompatiblem C-Code

ZUSAMMENFASSUNG


fortc [-L LibDir] [-Ö OpSys] Datei

BESCHREIBUNG


fortc Liest C-Code von `Datei', wandelt ihn in FORTRAN-kompatiblen Code um und dann
schreibt das Ergebnis in die Standardausgabe. Die Transformation ist betriebssystemabhängig
weil es in dieser Angelegenheit keine Standards gibt.

Das Zielbetriebssystem kann auf verschiedene Weise angegeben werden. Wenn das `-O'Option ist
gegeben, dann wird das durch sein Argument angegebene Betriebssystem verwendet; andernfalls, wenn die
Umgebungsvariable `OS' existiert, dann ist das durch seinen Wert angegebene Betriebssystem
Gebraucht; andernfalls ist das Standardbetriebssystem -- das bei der Installation festgelegt wird --
benutzt.

Globale Namen, die keine Funktionsdefinitionen sind, aber von beiden aus zugänglich sein sollen C
und FORTRAN sollten von ` . eingeschlossen werdenFC_NAME()' Makro:

extern int FC_NAME(foo)(void); /* FORTRAN-Funktion */

externe Struktur {
Schwimmer f;
int i;
} FC_NAME(comblk); /* Gemeinsamer FORTRAN-Block */

cfoo()
{
Rückgabe FC_NAME(foo)(); /* FORTRAN-Funktion aufrufen */
}

C-Funktionen, die aus FORTRAN aufgerufen werden sollen, werden wie folgt geschrieben:

int
/*FORTRAN*/
foo (
Zeichen Pfadname, /* Dateiname der neuen Datei */
realer Betrag, /* Betrag, der bis zu frobdizieren */
doubleprecision dbl, /* Betrag zu Tizzle um */
void-Funktion errf, /* Fehlerroutine */
ganzzahliger rcode /* zurückgegebener Fehlercode */)
{
...

oder gleichwertig,

int
/*FORTRAN*/
foo(char* Pfadname, float* Betrag, double* dbl,
void (*errf)(), int* rcode)
{
...

Beim Schreiben von FORTRAN-kompatiblen Funktionen sind folgende Punkte zu beachten:

1. Umzuwandelnde Funktionen sind mit einem ` . gekennzeichnet/*FORTRAN*/' Kommentar, der
muss in der Zeile vor dem Funktionsnamen stehen. Alle Rückgabetyp-Deklarationen müssen
fahren Sie mit dem Kommentar fort.

2. Die Formalparameter müssen in Funktionsklammern deklariert und durch getrennt werden
Kommas.

3. Die Formalparameter sind auf folgende Typen beschränkt:

Charakter or char *
Für Fortran-Zeichenvariablen.

Doppelte Genauigkeit or doppelt*"
Für Gleitkommawerte mit doppelter Genauigkeit.

echt or schweben*
Für Gleitkommawerte mit einfacher Genauigkeit.

ganze Zahl or int *
Für ganzzahlige Werte.

tippe Funktion Name or tippe (*Name)()
Für Funktionen, die den Typ ` . zurückgebentippe'.

4. Nach der einleitenden Klammer `{' und in derselben Zeile darf nichts Wichtiges stehen.

Die Funktionen sollten mit Variablen geschrieben werden, die denselben Namen wie die formalen
Parameter und mit der gleichen Semantik. Bei Formalparametern vom Typ
`Charakter' (zB Fortran-Zeichen-Variablen) existiert eine Variable mit demselben Namen
und wird vom Typ ` . seinchar *'. Außerdem wird für jedes zeichenvariable Argument ein local
Variable vom ganzzahligen Typ wird erstellt und ihr Wert hat die Größe des zugehörigen
Zeichenvariable. Der Name dieser Variablen ist der Name des zugehörigen
Zeichenvariable mit "_len" angehängt (zB "Pfadname_len"). Diese Längenvariablen können
in der Funktion wie jede andere Variable verwendet werden.

Unter SunOS würde beispielsweise die vorherige Funktion (wenn sie in der
Datei `foo.src'):

#Zeile 1 "foo.src"
Unsigned int
#Zeile 2 "foo.src"
foo_(Pfadname, Betrag, Fehler, Rcode, Pfadname_len)
char *Pfadname;
int Pfadname_len;
Float *Betrag;
void (*errf)();
int *rcode;
{
#Zeile 9 "foo.src"

Beachten Sie, dass 1) Präprozessor-Zeilendirektiven hinzugefügt wurden; 2) der Funktionsname war
mit einem Unterstrich versehen; und 3) ein formaler Parameter, `Pfadname_len', wurde erschaffen.

Unter UNICOS würde die gleiche Datei zu

#enthalten
#Zeile 1 "foo.src"
Unsigned int
#Zeile 2 "foo.src"
FOO(Pfadname, Betrag, Fehler, Rcode)
_fcd Pfadname;
Float *Betrag;
void (*errf)();
int *rcode;
{
char *Pfadname = _fcdtocp (Pfadname);
unsigned pathname_len = _fcdlen (pathnamed);
#Zeile 9 "foo.src"

Beachten Sie insbesondere das zusätzliche `#include ' und die Schöpfung und
Initialisierung der lokalen Variablen `Pfadname' und `Pfadname_len'.

Dieses Dienstprogramm ist als Skript implementiert und verwendet die vom System bereitgestellten Dienstprogramme Durst(1) und
m4(1).

OPTIONAL


-L LibDir"
Definiert das Verzeichnis, das die `fortc'-Bibliotheksdateien enthält. Die Standardeinstellung ist
zum Zeitpunkt der Installation bestimmt.

-O OpSys
Definiert das Betriebssystem als OpSys. Bekannte Werte sind 'aix', 'convexos',
`domainos', `hpux', `irix', `msoft', `next-absoft', `newsos', `sunos', `ultrix',
`unicos' und `vms'. Um eine größere Flexibilität zu ermöglichen, können die bekannten Werte
ein beliebiges Suffix (zB `sunos_4.1').


OS Definiert das Betriebssystem, wenn die Option `-O' nicht angegeben ist. Bekannte Werte
sind die gleichen wie die -O .

Verwenden Sie fortc online mit den onworks.net-Diensten


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad