Fortran77とか90とか

先日、数値計算用に、学内の計算サーバのアカウントを教えてもらいました。
ローカルのPen4HT2.8Gで計算実行すれば別にいいんですが・・・そして既に使用した人の話によると、計算機サーバ使った方が遅いという噂もありますが・・・ひたすら興味本位で使ってみることにしました。


スクリプト書いて、サーバのテストキューにぽいっちょ!と放り込むことしばし。
エラー出力発生するわ発生するわ・・・。勿論、ローカルでコンパイル完了は確かめています。
主な原因は、Fortranのバージョンの違いから来るもののようです。


ローカルのPen4に入れてあるFortranは、先日書いたようにIntelの最新と思われるやつ。Fortran**の**が何かは知りません
動けばおk!多分おk!

で、計算サーバのFortranは・・・日立最適化FORTRAN77と日立最適化FORTRAN90らしいです。
こっちのが古いから、新しいFortran記述で書いたもののコンパイルが失敗するんだな、ということで。今回出たエラーについて覚書します。

  • 制御がなんたら等号直前のなんたらオペランドがなんたら、というエラー

これは、open分の書式の違いから来るものでした。新しいのは
open(unit=10,name='filename.dat',type='new')
とか書いていたのですが、これを
open(10,file='filename.dat',type='TEXT')
と直したらエラーは消えました。なんか、typeの指定に使えるのは、「FORTRAN,TEXT,ES,BUFLESS」らしいです。エラー文によると。

  • 19行の限界エラー

一つの数式を、/とかで区切って数行に書く「継続行」とかいう書き方があるらしいですが、新しいFortranにはこの制限がないようです。今回は古い方に合わせる必要があったので、19行を超えていた数式を、和の形で分割する必要がありました。

  • ctimeやtimeが使えない

これは、バージョンがどう、という問題かどうかは分かりません。何か、使う方法があるのかもしれませんが、とりあえず消したらエラーは消えました。

  • 使わない変数を放置できない

使用しないのに作っておいた変数とかあると、古い方はコンパイル失敗するみたいです。これももしかしたら、バージョンの問題ではなくて、メモリを食わせないためのシステムの制限かもしれない・・・。


こんなとこです。
正直言って、進んでは使いたくないです・・・。
プログラムを修正して(特に19行制限に引っかからないようにするための式分割がメンドイ)、ftpで転送して、ジョブをキューにのせて・・・と毎回やるかと思うと、気が遠くなります。