Eseguire file c in fortran

stuzzi1
Ciao a tutti!
sono nuova del forum ed ho iniziato ad avvicinarmi al linguaggio di programmazione fortran pochi mesi fa, quindi non sono ancora molto brava.
Ho un problema che non riesco a risolvere:
ho un programma scritto in c e lo devo eseguire in fortran...
Mi sapete aiutare? io ho letto manuali ma non mi sono stati di aiuto...qualcuno mi sa dire come si fa?
Grazie a tutti per le riposte
:D

Risposte
VINX89

apatriarca
Prima di tutto una domanda: che versione di Fortran stai utilizzando? Nelle ultime versioni di Fortran questa interoperabilità tra C e Fortran è infatti stata migliorata/standardizzata. In generale consiglio di dare una occhiata alla documentazione del proprio compilatore.

Che intendi dire comunque con "ho un programma scritto in C e lo devo eseguire in Fortran"? Hai un eseguibile e vuoi leggere i risultati in Fortran? Hai un sorgente in C che vuoi linkare al tuo programma Fortran in modo da usarne alcune funzioni? Altro?

stuzzi1
Grazie per la tua risposta apatriarca .
Sto utilizzando la versione di Fortran 90.
In pratica ho un file nome_file.c (fatto da una terza persona), io devo compilare ed eseguire tale file .c come se fosse un file .f90.
Mi è stato detto che devo usare "system", ma io non ho idea di che cosa significhi...
ho trovato un esempio in rete, dove mi dicono di creare un file cosi:
"
f90 prova

OPEN(99,file='prova.c',form='system')

DO i=1,number
READ(99) tempnumber
Array(i)=tempnumber
END DO

CLOSE(99)
end
"
Ma non so come utilizzarlo nel mio caso.
Grazie mille!

apatriarca
Non vedo il legame tra quel codice e quello che mi sembra tu voglia fare.. Oltretutto non ho trovato "system" tra i possibili valori di form nel reference del mio compilatore. Continua a non essermi chiaro cosa tu debba fare comunque, un file C può essere compilato ed eseguito esattamente come un file Fortran, semplicemente usando un diverso compilatore.

stuzzi1
E' una cosa abbastanza complessa...provo ad essere più chiara.
Devo utilizzare 2 programmi : uno scritto in c e l'altro scritto in fortran. Dal primo programma (quello scritto in c) devo ottenere in output ciò che andrò ad inserire nel secondo programma (scritto in fortran) come input. Quindi devo ottenere dei file .f90 in output dal primo programma. Inoltre, il primo file una volta compilato ed eseguito mi chiederà di definire l'input che io ho gia ed è un file .f90...Quindi devo compilare ed eseguire il file scritto in c in fortran altrimenti non riesco ad inserire l'input.
L'unico modo per far ciò è trovare un modo per compilare ed eseguire il file scritto in c in fortran, in modo che in input ed output ho file.f90...Non so se riesco a spiegarmi...
Grazie mille per il tuo tempo!

apatriarca
No, non mi è chiaro. Sarebbe utile chiarissi per prima cosa che cosa intendi con "programma", "input" e "output". La frase "Quindi devo ottenere dei file .f90 in output dal primo programma." significa infatti per me che il tuo programma in C (una volta che il tuo codice sorgente in C è stato compilato da un normalissimo compilatore C) produce come risultato della sua esecuzione un codice sorgente in fortran. Per quanto sia perfettamente legittimo, non sono sicuro sia quello che intendi anche tu. Non mi è infatti poi chiaro il secondo punto della tua richiesta..

stuzzi1
ok, scusami, provo a spiegarmi meglio.
Io devo fare un mini-programma ( in fortran ) in cui chiamo un programma precedentemente compilato ed eseguito in c. Non so se è più chiaro...
Grazie per il tuo tempo!

apatriarca
Prova a dare una occhiata a questa subroutine/function.

stuzzi1
Grande!!!
Il comando che mi serve è prorpio: CALL SYSTEM(COMMAND [, STATUS])
STATUS = SYSTEM(COMMAND)

Grazie mille :)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.