2017-05-30 16 views
2

私は自分の研究に必要なFortran77コードをたくさん持っていますが、私はMacBook上でコンパイルするのに問題があり、Juliaに目を向けると思います。私はこの言葉に慣れていませんが、私の人生ではJuliaでFortranスクリプトを直接実行する方法を理解できません。私が望むのは、F77スクリプトを実行し、Fortranに直接制御を渡すプログラムを持つことだけです。私はJuliaやNumpyに書き直すだけですが、約10,000行のコードと200行未満のコメントがあり、そのための時間はありません。Fortran77をJuliaでコンパイルする

+2

juliaが呼び出す前にコンパイルする必要があります。 'ccall'を使う[docs](https://docs.julialang.org/en/stable/manual/calling-c-and-fortran-code/)を見てください。fortranのためにctrl + fを実行してください。 も参照してください。https://stackoverflow.com/questions/27498755/examples-of-integrating-fortran-code-in-julia およびhttps://stackoverflow.com/questions/28373693/calling-a-fortran- julia-return-array-unknown-function-seg –

+5

[JuliaでのFortranコードの統合の例](https://stackoverflow.com/questions/27498755/examples-of-integrating-fortran)の重複している可能性があります-code-in-julia) –

+6

Fortranプログラムは*スクリプトではありません*コンパイラをコンパイルする必要があります –

答えて

4

ジュリアを使用してFortranの "スクリプト"を直接呼び出したいと思うようです - おそらくFortran .fのソースファイル - 正確ですか?

他の人がコメントに示したように、Fortranはスクリプト言語ではありません。Fortranソースファイルを直接実行することはできません。 Fortranプログラムをネイティブライブラリまたはプログラムを実行するシステムの実行可能ファイルに変換するには、Fortranコンパイラ(例:gfortranifort)を使用する必要があります。 JuliaはFortranのインタプリタやコンパイラではなく、Fortranのコードを直接実行することも、Fortranのソースファイルを実行可能ファイル/ライブラリに変換することもできません。

、しかし、あなたはすでに(Windows上.dll、MacOSの上.dylib、Linux上.soファイル)をコンパイルしたFortranの共有ライブラリを使用している場合はIntegrating Fortran code in Juliaで説明したように、あなたは、ジュリアから簡単に呼び出すことができますが。 Fortranのソースコードを(共有ライブラリではなく)実行ファイルにコンパイルできれば、それを実行するために他のものは必要ありません - 実行可能ファイルは、定義上スタンドアロンです。

FortranやC/C++などのコンパイル言語のほとんどのプロジェクトには、Makefilesや、適切なバイナリ成果物(実行可能ファイルやライブラリ)を生成するためにコンパイラを呼び出すためのその他のメカニズムが付属しています。

+0

ありがとう、スクリプトの単語との混乱について申し訳ありません。物理学では、私たちはしばしば「スクリプト」と「プログラム」を同じ意味で使用します。 正しいですか。私は '.f'のFortran77プログラムを持っています。一般的なコンパイラをコンパイルするのに問題があります。私はgfortranを無駄にしようとした。技術的に私は実行可能ファイルを持っていますが、SunOS上で動作する古いSunワークステーション用にコンパイルされていて、私はMac上にあります。 –

+1

右。これらの実行可能ファイルはMacで動作しませんが、JuliaはFortranをコンパイルするのに役立ちません。コードをコンパイルするためにgfortranを呼び出す方法を理解したり、コードを翻訳したりすることができます。 10k LOCはそれほどではありません。特に、冗長な静的言語からJuliaのような動的なものへの移行には、コードが10倍に縮小することは珍しくありません。いずれにせよ、幸運! – StefanKarpinski

+0

@BobCaddy:あなたの問題に対処しているように思われるので、この回答を受け入れるのですか? – StefanKarpinski

関連する問題