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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- 画像編集・動画編集・音楽編集 DVD Styler トラブル解決方法 6 2022/10/29 16:00
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
intel fortranのエラーで困ってます.
その他(プログラミング・Web制作)
-
フォートランのエラーについて(forrtl)
その他(プログラミング・Web制作)
-
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
-
4
fortranでプログラムを実行するとEnd of fileと表示されてしまいます
その他(プログラミング・Web制作)
-
5
フォートラン(fortran)のエラーメッセージについて
その他(プログラミング・Web制作)
-
6
fortranでのcsvファイルを出力する方法
その他(プログラミング・Web制作)
-
7
Fortranで1行飛ばして読み込む方法
その他(プログラミング・Web制作)
-
8
エクセル2010 グラフの軸の最大値最小値をセル参照する
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FTPの送信結果を検知したい
-
VB6 Dir関数で52エラー発生
-
Returnに対するGoSubがありません
-
ACCESS VBAでのインポート
-
batファイルでレジストリキーの...
-
アクセスのクエリでコンパイル...
-
freadでデータがない場合の読込...
-
【VB6.0】ファイルからサイズの...
-
EXCELでのXMLファイルのインポ...
-
DisplayAlertsブロパティで ”実...
-
DOCUMENT行の書き出しについて-...
-
エクセル Fill.UserPictureで...
-
すでにファイルが開かれている...
-
ファイルの有無を確認した際の...
-
Adobeのプレミアプロの書き出し...
-
Excelファイルのマクロによる排...
-
Access2010 コンパイルエラー...
-
OUTLOOK VBA 指定フォルダ内の...
-
PowerShellを使って関連付けら...
-
Excel 2003 のエラーメッセージ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBでファイルが開かれているか...
-
batファイルでレジストリキーの...
-
Returnに対するGoSubがありません
-
VBから参照できないCのDLLを使...
-
「パス名が無効です」の発生原因
-
access テキストボックスの値取得
-
アクセスのクエリでコンパイル...
-
PowerShellを使って関連付けら...
-
freadでデータがない場合の読込...
-
【COBOL】read文でエラー
-
gccを行ってもexeファイルが生...
-
ファイルクローズ(fclose)でエ...
-
VB6 Dir関数で52エラー発生
-
ACCESS VBAでのインポート
-
NAS上のファイルの使用中が解除...
-
FTPの送信結果を検知したい
-
エクセルマクロでエラーの原因...
-
Access2013にてドラッグ&ドロ...
-
EXCELのVBAでWORDが開いてある...
-
fcloseで発生するエラーについて。
おすすめ情報