2011-06-08 353 views
5

有很多FORTRAN 77編寫的代碼。我想用c#開始使用該代碼開發。我該怎麼辦?從C調用fortran代碼#

  1. 導入FORTRAN的DLL到託管代碼
  2. 轉換代碼

對於每一個選項,你能告訴我該怎麼做。第一個是否有任何性能問題?

謝謝。

回答

2

如果您有很多非託管代碼,而您沒有時間遷移,則選項1很不錯。如果你走這條路線,確保儘可能少地調用非託管方法,即使這些調用涉及發送更大的參數/結果,因爲託管/非託管世界之間的編組可能會損害性能。

選項2沒問題,您最終會將所有內容都轉換爲託管代碼。假設這段代碼編寫得當,它的執行速度至少與非託管代碼一樣快。

3

有商業的Fortran .NET編譯

+0

哇,這可能是有用的,我在哪裏可以找到它? – 2011-06-08 22:26:48

+0

http://www.lahey.com/lf71/lf71.htm我懷疑$$$雖然 – pm100 2011-06-08 22:56:50

3

我與Achim同在。例如,AMD正在開發並支持用FORTRAN 90編寫的linear algebra toolkit,並提供C風格的界面。隨着FORTRAN 77 YMMV