Fortran コードを Power Station から Fortran コンパイラ (2003) に移植する際に注意する必要がある条件は何ですか?
Fortran Powerstation は単なるコンパイラです。Intel の Visual Fortran も同様です。
Fortranは言語ですが。上記の両方に非標準のベンダー拡張機能がいくつかありましたが、標準に固執している限り、移植に問題はありません (fortran77 標準コンパイラは、今日の最新のコンパイラでエラーなしでコンパイルする必要があります)。
したがって、問題は、非標準の MS 固有のものを使用した場合にのみ発生します。実際のコードを見ない限り、誰もあなたを助けることはできません。
私が観察したのは、発電所ではすべての変数がグローバル変数として扱われることです(ローカル変数も)。intel fortran(2003) のように、ローカルとグローバルに別々のスコープがあります。したがって、すべてのローカル変数をグローバルにする必要があります。
うーん、いいえ。つまり、Fortran には "グローバル" 変数と "ローカル" 変数がある (そのように呼び出されるわけではありませんが) と言えますが、これらは両方のコンパイラで正しく処理されることを保証します。私は両方のFPSをごく最近使用しました(まだどこかにインストールしているかもしれません)が、本来あるべきように扱われています。
Fortran 2003 ですべてのローカル変数をグローバルにする (プロパティからの) オプションはありますか。私のコードには何百もの変数があるためです。すべてのローカル変数をグローバルに割り当てる代わりに (COMMON ブロックを意味します)、誰かがそれに対する良い解決策を提案できますか?
個人的には、可能であれば、COMMON ブロックの使用は避けたいと思います。それらは素晴らしいものですが、ほとんどの状況では避けることができます。
これとは別に、powerstation から intel fortran コンパイラにコードを移植する際に、他の問題に対処する必要がありますか (11/2003)?
ライブラリとモジュールの名前変更。
Intel の一連のコンパイラは MS の子孫であるため、実際には「自然な」方法です。ただし、実際のデータを見ないと、このように推測して一般的なアドバイスを与えることは困難です。
ps いくつかの「一般的なアドバイス」は、 Intel のソフトウェア フォーラムで見つけることができます。他の多くのユーザーも同様です。彼らは主に CVF から IVF への移行に関心がありますが、時々 FPS ユーザーを見つけることができると思います. 繰り返しますが、fortran は非常に標準化された言語です。そのため、非常にポータブルです。あるコンパイラから別のコンパイラにジャンプすることは、すでに述べたことを考慮に入れると、困難をもたらすべきではありません。