Aceasta este comanda fortc care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
fortc - utilitar Unidata pentru a genera cod C compatibil cu fortran
REZUMAT
fortc [-L LibDir] [-O OpSys] fişier
DESCRIERE
fortc Citește codul C din `fişier', îl transformă în cod compatibil FORTRAN și apoi
scrie rezultatul la ieșirea standard. Transformarea depinde de sistemul de operare
pentru că nu există standarde în această chestiune.
Sistemul de operare țintă poate fi specificat în mai multe moduri. Dacă `-Oopțiunea este
dat, atunci se folosește sistemul de operare specificat de argumentul său; în caz contrar, dacă
variabila de mediu `OS' există, atunci sistemul de operare specificat de valoarea sa este
folosit; în caz contrar, sistemul de operare implicit -- determinat în momentul instalării -- este
folosit.
Nume globale care nu sunt definiții de funcție, dar care trebuie să fie accesibile din ambele C
iar FORTRAN ar trebui să fie închis de `FC_NAME()' macro:
extern int FC_NAME(foo)(void); /* Funcția FORTRAN */
extern struct {
plutitor f;
int i;
} FC_NAME(comblk); /* Bloc comun FORTRAN */
cfoo()
{
returnează FC_NAME(foo)(); /* apelează funcția FORTRAN */
}
Funcțiile C care urmează să fie apelate din FORTRAN sunt scrise după cum urmează:
int
/*FORTRAN*/
prost(
calea caracterului, /* numele fișierului noului fișier */
sumă reală, /* suma de înghețat cu */
doubleprecision dbl, /* se ridică cu */
void funcția errf, /* rutină de eroare */
integer rcode /* a returnat codul de eroare */)
{
...
sau, echivalent,
int
/*FORTRAN*/
foo(char* nume cale, float* cantitate, double* dbl,
void (*errf)(), int* rcode)
{
...
Punctele de remarcat în scrierea funcțiilor compatibile cu FORTRAN sunt:
1. Funcțiile care urmează să fie transformate sunt marcate printr-o procedură `/*FORTRAN*/' comentariu, care
trebuie să apară pe linia anterioară numelui funcției. Orice declarații de tip retur trebuie
continua comentariul.
2. Parametrii formali trebuie declarați între paranteze ale funcției și separați prin
virgule.
3. Parametrii formali sunt restricționați la următoarele tipuri:
caracter or char*
Pentru caractere-variabile Fortran.
precizie dubla or dubla*"
Pentru valori cu virgulă mobilă cu precizie dublă.
real or pluti*
Pentru valori cu virgulă mobilă cu precizie unică.
întreg or int *
Pentru valori întregi.
tip funcţie nume or tip (*nume)()
Pentru funcțiile care returnează tastați `tip'.
4. Nu trebuie să existe nimic important după bretele de deschidere, `{', și pe aceeași linie.
Funcțiile trebuie scrise folosind variabile cu aceleași nume ca și cele formale
parametri, și cu aceeași semantică. În cazul parametrilor formali de tip
`caracter' (adică variabile de caractere Fortran), va exista o variabilă cu același nume
și va fi de tip `char*'. În plus, pentru fiecare argument caracter-variabilă, un local
va fi creată o variabilă de tip integral și valoarea acesteia va fi dimensiunea asociată
caracter-variabilă. Numele acestei variabile va fi numele asociatului
variabila caracter cu "_len" atașat (ex. "calea_len"). Aceste variabile de lungime pot
să fie utilizat în funcție la fel ca orice altă variabilă.
De exemplu, sub SunOS, funcția anterioară ar deveni (dacă este conținută în
fisierul `foo.src'):
#linia 1 „foo.src”
nesemnat int
#linia 2 „foo.src”
foo_(pathname, amount, errf, rcode, pathname_len)
char *nume cale;
int calea_len;
float *cantitate;
void (*errf)();
int *rcode;
{
#linia 9 „foo.src”
Rețineți că 1) au fost adăugate directive de linie de preprocesor; 2) numele funcției a fost
sufixat cu un caracter de subliniere; și 3) un parametru formal, `calea_len', a fost creat.
Sub UNICOS, același fișier ar deveni
#include
#linia 1 „foo.src”
nesemnat int
#linia 2 „foo.src”
FOO(denumit cale, cantitate, errf, rcode)
calea _fcd;
float *cantitate;
void (*errf)();
int *rcode;
{
char *pathname = _fcdtocp (denumit cale);
unsigned pathname_len = _fcdlen (pathnamed);
#linia 9 „foo.src”
Rețineți, în special, `#include suplimentar ' și creația și
initializarea variabilelor locale `caii de acces' și `calea_len'.
Acest utilitar este implementat ca un script și utilizează utilitarele furnizate de sistem sete(1) și
m4(1).
OPŢIUNI
-L LibDir"
Definește directorul care conține fișierele bibliotecii „fortc”. Valoarea implicită este
determinat la momentul instalării.
-O OpSys
Definește sistemul de operare ca OpSys. Valorile cunoscute includ „aix”, „convexos”,
„domainos”, „hpux”, „irix”, „msoft”, „next-absoft”, „newsos”, „sunos”, „ultrix”,
„unicos” și „vms”. Pentru a permite o mai mare flexibilitate, valorile cunoscute pot avea
orice sufix (de exemplu, `sunos_4.1').
MEDIUL
OS Definește sistemul de operare dacă nu este specificată opțiunea „-O”. Valori cunoscute
sunt la fel ca -O opțiune.
Utilizați Fortc online folosind serviciile onworks.net