January 11, 2005
Lahey FortranからフリーソフトとなったOpen Watcom Fortranに移行したときにちょっとしたトラブルをもらたした両者の相違について、個人的な備忘録として書いておきます。運良くアウトプットの何かがおかしいと気付いても、こういうちょっとした意外な相違まで辿り着くのはそうとうな時間がとられますし、また自分自身しばらくすると忘れてしまいますので備忘のために。
インストール時、オプションでFORTRAN/77 Compilerのところをチェックしておく。コンパイルとリンクの実行はwfl386。Cではwcl386。
Fortranからの出力データで、レコード長(record length)が長いと、(Lehey Fortranでは問題なかったけれでも)Watcom Fortranではレコード長に関しての制約があり改行されてしまう。(本来、レコード長が長すぎるのは問題なのであろうが・・)有効桁数の多い計算結果をexcelなどで読み込むことを想定したとき、まずいことになるので、その際はopen文の中でrecl=5000(整数)などとして設定する。
CSVファイルでのカンマ区切りのデータをフリーフォーマットで読み込むとき、もしデータファイルの最後に","(カンマ)のみの行が(2行以上)入ったままであると、おかしなことになる。たとえば、
・
(データ)
・
846312,215
465732,461
というデータファイルであれば問題ないものの、(excelからの出力ではよくあるように)最後の行のあとにカンマのみの行が2行入っていた場合、つまり
465732,461
,
,
となっていると、
465732,461
465732,0
として読み込むことになる。カンマのみの行が3つのときも同上であるが、4つになると「465732,0」という行をもう一行追加して読んでいる。つまるところ、csvのときは余分なカンマのみの行が無いよう注意。