2012-05-19 12 views
13

Sono a conoscenza e ho utilizzato f2py2e per racchiudere il vecchio codice Fortran 77, ma la mia comprensione è che non funziona con il codice Fortran 95 più recente. Ho studiato cosa dovrei usare e ho trovato fwrap e G3 f2py, nessuno dei quali sembra dare alcuna spiegazione del loro stato attuale, o come usarli. Ho visto che la versione di f2py ha l'opzione di usare la f2py di terza generazione, ma viene commentata come non funzionale. Detto questo, non so quale progetto dovrei usare. Quale dovrei usare?Il metodo migliore per il wrapping del codice Fortran moderno con Python

Questa domanda ora è stato cross-postato a (e ha risposto a) sito di scambio di stack scienze computazionali come Which package should I use to wrap Modern Fortran Code with Python?

+2

forse chiamare le librerie fortran tramite 'ctypes' sarebbe un'opzione? – mata

+1

f2py (come incluso in scipy) sembra [claim] (http://www.scipy.org/F2py) per supportare Fortan95. L'hai provato? – Ken

+2

Si potrebbe anche provare a chiedere su scicomp.stackexchange poiché ci sono molte persone che lavorano con Python e Fortran. – Ken

risposta

6

ho usato SWIG per avvolgere po 'di codice C/C++ prima, ma non supportano Fortran . Essi link al seguente, anche se

Almeno FortWrap afferma che sostengono Fortran95, ma potrebbe essere necessario utilizzare FortWrap per ottenere Wrapper C/C++ e SWIG per i wrapper Python. f90wrap genererà automaticamente i wrapper Python basati sulle sorgenti f90 (e supporta i tipi derivati).

+3

Ho menzionato F2PY e preferirei evitare SWIG. Anche pyfortran è un vecchio codice che probabilmente non funzionerà con numpy (è progettato per Numeric) e FortWrap è progettato per C++, di nuovo privo dell'integrazione con numpy. –

+0

Ho appena scoperto f90wrap grazie a questa risposta. Mi hai salvato la giornata! – astrojuanlu