2

他の誰かが開発した完全なFortranコードをコンパイルしようとしています。makefileは、CC、F77、およびF90を参照します。私たちのサーバーにはF90が搭載されていませんが、実際に必要であることが判明した場合は、おそらくF90を要求できます。

とにかく、環境変数が適切に設定されていると思うので(正しい行のコメントを外すだけでした)、ファイルをmakefileにcpし、makeと入力すると、次のエラーが発生しました。

make[1]: Entering directory `/imageseer/Scripts/PGE03_V5.2.6/PGE03/MOD_PR35' 
f77 -c -n32 -fullwarn -u -bytereclen -extend_source -woff 2271,2272,2274 -O2 -c -u -bytereclen -col120 -woff 2271,2272,2274 -I -I -I -I -I/shared_src/atmos_src/src_UW -I/shared_src/atmos_src/src_L2 Antarctic_day.f  
f77: 2271,2272,2274: No such file or directory  
f77: 2271,2272,2274: No such file or directory  
f77: unrecognized option `-n32'  
f77: unrecognized option `-woff'  
f77: unrecognized option `-col120'  
f77: unrecognized option `-woff'  
f771: error: unrecognized command line option "-fullwarn"  
make[1]: *** [Antarctic_day.o] Error 1  
make[1]: Leaving directory `/imageseer/Scripts/PGE03_V5.2.6/PGE03/MOD_PR35'  
make: *** [target] Error 2  

皆さんがお手伝いできるかどうかはわかりませんが、残念ながら、ライセンスの問題により、ここにコードをコピーするのは適切ではないと思います。とにかく、認識されないオプションが開発チームのシステムに固有であるかどうか、またはそれらが私のシステムの何らかの欠点によるものであるかどうか(つまり、高貴なシステム管理者にf90をインストールするように依頼する必要がある)を判断する方法がわかりません。他の問題。また、Fortranについてはほとんど何も知らず、ccでmakeを使用したことがあるだけなので、3番目の可能性は、他の誰かにお金を渡す必要があることですが、私のチームの誰もがFortranを知っているとは思いません。 。いつものように、あなたの助けに感謝します!

4

1 に答える 1

3

知っているかどうかに関係なく、ほとんどの場合、Fortran 90 コンパイラを持っている (または持っている可能性がある) でしょう。最近の適切な fortran コンパイラは、少なくとも F90/95 をサポートしています。f77 は g77 へのリンクですか? gfortran はインストールされていますか?

オプションは古い SGI コンパイラ用のように見えます。その場合、新しくオープンソース化された Pathscale コンパイラを使用して、「箱から出して」動作させることができる可能性があります。しかし、ほとんどのオプションは他のコンパイラに類似していると思います。

一部のオプションはここにリストされているようです。-fullwarn はすべての警告をオンにします。gfortran では -Wall になります。-woff はいくつかの警告をオフにします - ここでは警告 2271、2272、および 2274 です。すべての警告をオンのままにして、その結果を確認します。

-col120 は、f77 の 72 列制限を解除し、行を 120 列幅にできるようにします。g77/gfortran では -ffixed-line-length-120 になります。-extend_source は同様のことを行い、おそらく無視できます。

-n32 は、私が 32 ビット オブジェクトと見なすものを生成します。-m32 も同じことを行う必要がありますが、これを行うために 32 ビットにする必要がある理由を見つけるのを待ちます。

于 2011-07-13T19:59:38.327 に答える