2010-07-12 15 views
5

Ho una subroutine enorme scritta in Fortran che devo usare in un programma Java. Come posso chiamarlo? Sto usando Ubuntu 10.04.Chiamare una subroutine Fortran da Java

+1

Questo dipende dalla piattaforma. Potresti voler aggiungere ulteriori informazioni alla tua domanda. –

risposta

4

Dai un'occhiata a this document, dettaglia il processo di integrazione del codice nativo (fortran/c) con Java. Il risultato, ovviamente, dipenderà dalla piattaforma.

4

La carta a cui @extraneon si riferisce è il modo in cui ho integrato una subroutine Fortran in un programma Java un paio di anni fa. Tuttavia, se provassi a farlo di nuovo oggi, esaminerei l'interoperabilità con le funzioni C definite nello standard Fortran 2003 e implementate dalle versioni recenti di alcuni compilatori. Spero di poter compilare la subroutine di Fortran per guardare, per JNI, come se fosse scritta in C. In questo modo è possibile ritagliare il wrapper C.

E se il compilatore non implementa l'interoperabilità con le funzionalità di C, fuggi e ottieni quello che fa.

EDIT: un altro pensiero mi viene in mente: Se la subroutine Fortran è enorme nel suo tempo di esecuzione si dovrebbe pensare di integrazione con Java avendo Java messo alcuni dati di input in un file, e modificando il Fortran per ottenere il suo input dal file. Quindi il programma Java potrebbe effettuare una chiamata al sistema per avviare Fortran. Passa i risultati allo stesso modo. Questo è un vero e proprio kludge, ma probabilmente lo troverai più facile da implementare che passare per JNI. Inoltre, è possibile implementarlo come uno stop-gap mentre si combatte con JNI e interoperabilità, ecc.

Problemi correlati