
No.2ベストアンサー
- 回答日時:
FORTRAN 懐かしいですね.
FORMULA TRANSLATOR でしたっけ?
フォートランにもいろいろなバージョンがあるので,
何とも言えませんが,
conversion とは 変換という意味なので,
入力しているファイルのデータ型と入力している変数の方であわなくて変換できないと言うことでしょうか.
たとえば,数値に対して,文字列がきたとか.
どのバージョンかわかりませんが,
きょうび,2Mや3M程度の大きさの配列でエラーをだす処理系というのも無いと思います.
昔は,リージョンサイズが4M程度しか無かったので
エラーは出ましたが,サイズがおおきすぎて出るのは,
「Invalid Memory Access」とかそれっぽいものです.
サイズがもしも,処理系が派許容していないくらい大きいとしたら,コンパイル時にでるか,
実行ファイルをロードしたときに出ると思います.
ランタイム時にでるということは,プログラムミスで
おもったよりも大きなものを読み込もうとしている場合などが考えられます.
用意している配列が1Mなのに,読み込もうとしているデータが2Mある場合などです.
#1さまご指摘のように,ソースコードの一部や処理系を示さないとなんとも言えないと思います.
この回答への補足
早速のご返答有難うございます。
誠に申し訳ありません。#1様のおっしゃる通り、OSならびにソース等示す必要がありますね。
あまりの不備をお許しください。
ご指摘にお答えしますと、
OS:Windows xp
FORTRAN:Compaq Visual Fortran version 6.1
source:
--main--
OPEN(UNIT=28,FILE='D:\rslt_face\'//NRFILE//'.dat',
& ACCESS='SEQUENTIAL',STATUS='OLD')
CALL FLINFACE(IFACE,IEND,MODULUS,JMARK,FRSTR,FREFFST,
& FRDFEFFST,FRSTN,FRSUMEPSTN)
CLOSE(UNIT=28)
--subroutine--
SUBROUTINE FLINFACE(IFACE,IEND,MODULUS,JMARK,FRSTR,FREFFST,
& FRDFEFFST,FRSTN,FRSUMEPSTN)
IMPLICIT REAL*8(A-H,O-Z)
COMMON /D/ MODE
COMMON /ELTYPGS/ ICLAS,NODE,NGAUS,IPLAN,ISTR,NSTR
CHARACTER*120 D120
DIMENSION JMARK(IFACE,IEND)
DIMENSION FRSTR(6,4,IFACE,IEND)
DIMENSION FREFFST(4,IFACE,IEND),FRDFEFFST(4,IFACE,IEND)
DIMENSION FRSTN(6,4,IFACE,IEND),FRSUMEPSTN(4,IFACE,IEND)
c
READ(28,'(5X,I5)') MODE
READ(28,'(8X,I2)') MODULUS
C
DO 60 L=1,IEND
READ(28,'(A120)') D120
READ(28,'(A120)') D120
*
*
*
上に示しますオープン文、もしくはその直後のサブルーチンあたりでこけてるようです。
ご指摘に十分添えているか分かりませんが、お願いします。新たなご指摘があれば逐次対応させていただきます。
No.5
- 回答日時:
#1です。
#3さんの書いているあたりが怪しそうですね。OPEN(UNIT=28,FILE='D:\rslt_face\testfile.dat',
& ACCESS='SEQUENTIAL',STATUS='NEW')
WRITE(28,'(5X,I5)') 12345
WRITE(28,'(8X,I2)') 67
CLOSE(UNIT=28)
END
というプログラムで作られるtestfile.datと、
読もうとしているファイルの先頭2行を比べてみてください。
数字の値以外の文字数などは同じになってないとおかしいですが、違っているんじゃないでしょうか?改行文字とかが違うのかも。
もしそうならマニュアルをよく読んでください。
No.4
- 回答日時:
#2です.
Visual Fortran というものがあるのですか.
知りませんでした.
私的には,fortran77で止まってます.(^-^;)
入力データはどんなものでしょうか.
ループの
最初からエラーをだしているのでしょうか.
それても,ファイル終端まで行っているのでしょうか.
IENDは,パラメータ文か何かで与えているようですが,値はちゃんと入ってますか?
ディスプレイかファイルに書き出してみて,チェックしてみましょう.
異常終了させると,ただしく出力しないケースがあるので,STOP文で強制的に終了させれば,その時点までの入出力は正しく反映されます.
デバッグ環境でやられているのであればブレークポイントを設定しても良いですし.
>DO 60 L=1,IEND
>READ(28,'(A120)') D120
>READ(28,'(A120)') D120
>*
このループに入る前にSTOP分などを入れて
プログラムを止めたときに,
MODE
や
MODULUS
には正しい値がはいっていますか?
また,このループでは,同じ変数に続けて値を入れています.行をスキップするためのようですが,
ファイルには120列の固定長データが書かれているのでしょうか.
FORTRANで文字列操作した経験は少ないので,あまりお力になれないかもしれません.
それでは.
No.3
- 回答日時:
昔,SunOSだかirixだかで使ったFORTRANだと、
READ,WRITEで特殊なエミュレーションモードみたいな形式と通常のテキストファイルを読み書きするようなモードがありました。
で、エミュレーションモードで通常のテキストファイルを読み込むと、変換エラーになったかも知れません。
なぜこんな物があるかというと、元々カード形式とか、固定長レコードのファイルを扱うものだったので、
通常のテキストファイルだと同じ様な動作をさせることが原理的に無理だったためだと思います。
これかどうかは、試しにFORMAT文付きでWRITEしたファイルの中身を見ればわかります。
もしそうなら、多分OPENのパラメタになにか指定があると思います。
No.1
- 回答日時:
エラーメッセージはコンパイラの種類によって違いますから正確な意味はマニュアルを読まないとわかりません。
conversion error(変換エラー) ということですから、ファイル内データ形式とREAD文での書式とが合ってないんじゃないでしょうか?
ただ、severe(重大なエラー)と出てるので、もっと根本的なところで間違っているのかも知れません。
少なくとも、OS名称、FORTRANの種類、データの形式、READ文周辺のプログラムを示さないと誰もこれ以上の返答は無理と思います。私の使ったことの無いFORTRANのようなので私はこれ以上返答できませんが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Returnに対するGoSubがありません
-
batファイルでレジストリキーの...
-
access テキストボックスの値取得
-
Excel 2003 のエラーメッセージ
-
PowerShellを使って関連付けら...
-
NAS上のファイルの使用中が解除...
-
エクセルマクロでエラーの原因...
-
VB6 Dir関数で52エラー発生
-
FTPの送信結果を検知したい
-
【関数】同じ関数なのに、エラ...
-
エクセルで質問です。 ハイパー...
-
アクセスのクエリでコンパイル...
-
ExcelVBAで既に開いてるwordを...
-
fgets関数のEOFの扱い方について
-
Excel2013 VBAでAccess2013に接...
-
VBから参照できないCのDLLを使...
-
【COBOL】read文でエラー
-
DOCUMENT行の書き出しについて-...
-
ネットワーク上でのファイル操...
-
fcloseで発生するエラーについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【関数】同じ関数なのに、エラ...
-
access テキストボックスの値取得
-
エクセルで質問です。 ハイパー...
-
「パス名が無効です」の発生原因
-
PowerShellを使って関連付けら...
-
NAS上のファイルの使用中が解除...
-
gccを行ってもexeファイルが生...
-
アクセスのクエリでコンパイル...
-
ExcelVBAで既に開いてるwordを...
-
Returnに対するGoSubがありません
-
VB6 Dir関数で52エラー発生
-
VBでファイルが開かれているか...
-
データベースソフトのアクセス2...
-
エクセルマクロでエラーの原因...
-
fcloseで発生するエラーについて。
-
batファイルでレジストリキーの...
-
FORTRANの実行エラーについて
-
VBから参照できないCのDLLを使...
-
【COBOL】read文でエラー
-
DisplayAlertsブロパティで ”実...
おすすめ情報