
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も見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
intel fortranのエラーで困ってます.
その他(プログラミング・Web制作)
-
フォートランのエラーについて(forrtl)
その他(プログラミング・Web制作)
-
Segmentation Fault (メモリ制限?)
その他(プログラミング・Web制作)
-
4
FORTRANの出力データの左寄せができません。
その他(プログラミング・Web制作)
-
5
fortranでプログラムを実行するとEnd of fileと表示されてしまいます
その他(プログラミング・Web制作)
-
6
fortranでNAのあるデータを読み込みたいです
その他(プログラミング・Web制作)
-
7
[FORTRAN77]WRITE文で同じ行に継ぎ足したい
その他(プログラミング・Web制作)
-
8
fortranでのcsvファイルを出力する方法
その他(プログラミング・Web制作)
-
9
fortranでのNaNについて
その他(プログラミング・Web制作)
-
10
fortran if文
その他(プログラミング・Web制作)
-
11
テキストファイル(英語&日本語)を読む時に文字化けいたします
Visual Basic(VBA)
-
12
Fortran:列数の分からないデータの読み込み
その他(プログラミング・Web制作)
-
13
fortranでプログラムをつくったのですが
その他(プログラミング・Web制作)
-
14
フォートラン(fortran)のエラーメッセージについて
その他(プログラミング・Web制作)
-
15
FORTRAN で出力した文字の 左寄せについて
その他(プログラミング・Web制作)
-
16
Makefile作成時の拡張子.oとは?
C言語・C++・C#
-
17
FORTRAN95の改行について
その他(プログラミング・Web制作)
-
18
奇数・偶数の区別をプログラミング
その他(プログラミング・Web制作)
-
19
fortranでデータの抜き出しをしたい
その他(プログラミング・Web制作)
-
20
Fortran77で多次元配列を並び替え(ソート)する方法
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
Returnに対するGoSubがありません
-
5
「パス名が無効です」の発生原因
-
6
access テキストボックスの値取得
-
7
すでにファイルが開かれている...
-
8
FTPの送信結果を検知したい
-
9
batファイルでレジストリキーの...
-
10
ASPからACCESSのOPENどうしても...
-
11
VBから参照できないCのDLLを使...
-
12
ファイルクローズ(fclose)でエ...
-
13
ACCESS VBAでのインポート
-
14
アクセスのクエリでコンパイル...
-
15
エクセルマクロでエラーの原因...
-
16
ADOのMoveNextでアプリケーショ...
-
17
fcloseで発生するエラーについて。
-
18
NAS上のファイルの使用中が解除...
-
19
EXCELVBAでONEDRIVE上への保管...
-
20
Excelファイルのマクロによる排...
おすすめ情報
公式facebook
公式twitter