教えて下さい。お願いします。
あるFrotranプログラムをコンパイルし、実行すると次のエラーが帰ってきました。

*** FORTRAN I/O ERROR 915: READ UNEXPECTED CHARACTER
FILE: ., UNIT: 99
( 0) 0xc11c1ad0 __io_ded + 0x408 [/usr/lib//libcl.2]
( 1) 0xc11b7744 ____F90_END_IO + 0x99c [/usr/lib//libcl.2]
( 2) 0x00004120 _start + 0x1e0 [././test-new]

このエラーの内容がわかりません。わかる方教えてください。

A 回答 (2件)

> しかし、fortranに全くふれたことがないので、ユニット99がどこをさすのか


> わかりません。
> ちなみにこのプログラムも自分で作ったものでないため、具体的に
> どのような動作をするものなのか把握してないのです。

FORTRAN は、入出力がユニット番号と言う数値に結びついてます。実際の
ファイルやプリンタをユニット番号に結び付けるやり方は、いろいろあり、
OS によっても違ったりします。

一番簡単なのは OPEN を使うことです。きっと、そのソースには、こんな行が
あるはずなんで、探してみて下さい。

   OPEN(99, 'オープンされるファイル名', 何かのオプション)

こんな感じになっているかも。

   OPEN(UNIT=99, FILE='オープンされるファイル名', 何かのオプション)

また、ファイル名が変数に入っているかもしれません。

HP の FORTRAN は、使ったことがないんで詳しくは分からないんですが、

> FILE: ., UNIT: 99

というエラーメッセージが出ていると言うことは、ファイル名に "." つまり、
カレントディレクトリが割り当てられており、そこから READ しようとして
エラーになっている、ということなのかも。

# ソースが分からんので、あくまでも想像の範囲で、の回答です (^^;
    • good
    • 0

HP の FORTRAN でしょうか?



その「あるプログラム」に、ユニット99に対して、READ をしているところが有る
と思うんですが、その READ で失敗してます。

例えば、整数型の読み込みにしているのに、整数とは思えない文字が入っていると
こんなエラーが出ます。例えば、

READ(99,'(I6)') III

という読み込みに対し、

XYZ

という入力を与えると、このエラーが出ると思います。

# 試したわけじゃないんで、一応「自信無し」にしておきますが


ちなみに、FORTRAN のマニュアルはないんですか?
エラー番号で引くと、原因は一発で分かりますよ。

参考URL:http://lithos.gat.com/docview/hp_fortran_errors. …

この回答への補足

ありがとうございます。

しかし、fortranに全くふれたことがないので、ユニット99がどこをさすのか
わかりません。
ちなみにこのプログラムも自分で作ったものでないため、具体的に
どのような動作をするものなのか把握してないのです。

初歩的な事ですが、ユニット99の探し方教えていただけますか?

補足日時:2001/10/30 17:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QTexで[0:0]を文頭でつかいたいのですが。

pLatex2εを使っています。文頭で[0:0]と言う記述を書きたいのですが、どのような設定が必要なのでしょうか。\[0:0\]としてしまうと[ ]が表示されず、0:0となりそれに続く文字が改行されてしまいます。文頭に[0:0]と書いてしまうとIllegal unit of measure (pt inserted)
とエラーが出てしまいます。文中ではちゃんと表示されるのですが。

Aベストアンサー

$[0:0]$
とか書くと大丈夫なんじゃないでしょうか。
ちなみに、\[[0:0]\]でも表示されます。
$とか\[\]で囲んでやると数式モードに移行するのですね。
後者の場合は独立した行になります。

Q自分のPCにIISを入れたときの、配布CGIの !/usr/bin/perl って?

よく無料で配布されている、
掲示板とかの初めの行に !/usr/bin/perl 
をプロバイダにあわせて直してくださいと
記述がありますが、、

自分のPCにIISをインストールして
運用したいとき、自分のPCがプロバイダ(?)
なわけで、どのように設定すればよいのでしょうか?

Aベストアンサー

何でもいいです。
!/usr/bin/perl 
でも
!/usr/local/bin/perl 
でも。
元々これはLinuxサーバ上での法則のようで、Windows上では無視されるようですよ。

参考URL:http://www.lira.co.jp/t-room/xp_server/

QGASの.align 4,0x90の0x90の意味

Cソースをアセンブリしたとき、.align 4,0x90とでるのですが、.align 4,0x90の0x90はどういう意味ですか。align 4+NOPという意味ですか。それとも4Bを0x90で埋めろと意味ですか。どちらでしょう。

Aベストアンサー

困ったときはまずマニュアルを読む.

参考URL:https://sourceware.org/binutils/docs-2.24/as/Align.html#Align

QPL/SQL での[CURSOR]の記述について

CURSORを使用する際に、以下のようなことが実現できるものか分からないもので、
ご質問させていただきました。

以下のような記述で、where条件を別の変数(wk_where)に格納しておいて、
それを連結させることが可能なのかお教えいただきたいです。
もしも可能であればどのように連結させるのでしょうか?

CURSORcur出力データIS
SELECT
AAA,
BBB
FROM
AAAテーブル
;

イメージとしては以下のように考えていました。
CURSORcur出力データIS
SELECT
AAA,
BBB
FROM
AAAテーブル & wk_where
;


以上ですが、宜しくおねがいいたします。

Aベストアンサー

検索条件となる項目は決まっていて値のみを変えたい、というのであればカーソルにパラメータを渡すようにすれば可能です。
検索条件まるごと動的に変えたい、ということであれば明示カーソルでは出来ないと思いますが、動的SQLを使えば可能です。

以下、参考になれば。

DROP TABLE TEST_TAB PURGE;
CREATE TABLE TEST_TAB AS
SELECT 1 COL1, 100 COL2 FROM DUAL
UNION ALL SELECT 1 COL1, 101 COL2 FROM DUAL
UNION ALL SELECT 2 COL1, 200 COL2 FROM DUAL
UNION ALL SELECT 2 COL1, 201 COL2 FROM DUAL
UNION ALL SELECT 2 COL1, 202 COL2 FROM DUAL
UNION ALL SELECT 3 COL1, 300 COL3 FROM DUAL
UNION ALL SELECT 3 COL1, 301 COL3 FROM DUAL
UNION ALL SELECT 3 COL1, 302 COL3 FROM DUAL
UNION ALL SELECT 3 COL1, 303 COL3 FROM DUAL;

SET SERVEROUTPUT ON
DECLARE
--カーソルにパラメータを渡せるように定義
CURSOR C1(I_COL1 TEST_TAB.COL1%TYPE) IS
SELECT *
FROM TEST_TAB
WHERE COL1 = I_COL1; --パラメータを検索条件に使用

--カーソル変数
W_RCUR_TEST_TAB SYS_REFCURSOR;
--レコード変数
W_REC_TEST_TAB TEST_TAB%ROWTYPE;
--基本となるSQL
C_SQL CONSTANT VARCHAR2(100) := 'select * from TEST_TAB';
--WHERE句
W_WHERE VARCHAR2(100);
BEGIN
--パラメータを設定してカーソルオープン
FOR R1 IN C1(1) LOOP
DBMS_OUTPUT.PUT_LINE(R1.COL2); --100, 101
END LOOP;
FOR R1 IN C1(2) LOOP
DBMS_OUTPUT.PUT_LINE(R1.COL2); --200, 201, 202
END LOOP;

--WEHRE句部分を生成
W_WHERE := ' where col1 = 3';
--動的SQLのカーソルオープン
OPEN W_RCUR_TEST_TAB FOR C_SQL || W_WHERE;
LOOP
--1行分のデータをフェッチ
FETCH W_RCUR_TEST_TAB INTO W_REC_TEST_TAB;
--データがなくなったら終了
EXIT WHEN W_RCUR_TEST_TAB%NOTFOUND;

DBMS_OUTPUT.PUT_LINE(W_REC_TEST_TAB.COL2); --300, 301, 302, 303
END LOOP;
CLOSE W_RCUR_TEST_TAB;

END;
/
SET SERVEROUTPUT OFF

詳しくはORACLEのリファレンスを参照してください。
http://docs.oracle.com/cd/E16338_01/appdev.112/b56260/toc.htm

検索条件となる項目は決まっていて値のみを変えたい、というのであればカーソルにパラメータを渡すようにすれば可能です。
検索条件まるごと動的に変えたい、ということであれば明示カーソルでは出来ないと思いますが、動的SQLを使えば可能です。

以下、参考になれば。

DROP TABLE TEST_TAB PURGE;
CREATE TABLE TEST_TAB AS
SELECT 1 COL1, 100 COL2 FROM DUAL
UNION ALL SELECT 1 COL1, 101 COL2 FROM DUAL
UNION ALL SELECT 2 COL1, 200 COL2 FROM DUAL
UNION ALL SELECT 2 COL1, 201 COL2 FROM DUAL
UNION A...続きを読む

Q[PL/SQL]REFCURSORが戻り値のプロシージャについて

[PL/SQL]REFCURSORが戻り値のプロシージャについて

お世話になってます
タイトルの内容について、親プロシージャより引数を受け取り
子プロシージャでカーソルをオープンして、そのカーソルを親に戻す。
というプロシージャなのですが、親から実行した場合には問題ないのですが
子をSI ObjectBrowserから実行すると[実行][デバッグ]共に
押した瞬間に止まってしまいます。

下記にソースを記述します


--カーソル変数の定義
CREATE OR REPLACE PACKAGE LC7BDEV.PKG_TEST_CURSOR
IS
 TYPE TEST_TYPE IS RECORD
 (COL1 TABLE1.COL1%TYPE ,
  COL2 TABLE1.COL2%TYPE
);
TYPE CUR_TEST IS REF CURSOR RETURN TEST_TYPE;
END;

--親プロシージャ
CREATE OR REPLACE PROCEDURE PD_TEST
 (
  in_COL_KEY IN TABLE1.COL_KEY%TYPE
 )
IS
 TEST_REC  PKG_TEST_CURSOR.CUR_TEST;
 TEMP_COL1 TABLE1.COL1%TYPE;
 TEMP_COL2  TABLE1.COL1%TYPE;
BEGIN
 PD_TEST_KO(in_COL_KEY,TEST_REC);

 loop
  fetch TEST_REC into TEMP_COL1,TEMP_COL2;
  exit when TEST_REC%notfound;
  dbms_output.put_line(TEMP_COL1 || ',' || TEMP_COL2);
 end loop;
 
 close TEST_REC;

END;

--子プロシージャ
CREATE OR REPLACE PROCEDURE PD_TEST_KO
 (
  in_COL_KEY  IN  TABLE1.COL_KEY%TYPE ,
  in_TEST_REC OUT PKG_TEST_CURSOR.CUR_TEST ,
 )
IS
BEGIN

 OPEN in_TEST_REC FOR
  SELECT COL1,COL2
  FROM TABLE1
  WHERE COL_KEY = in_COL_KEY

END;

[PL/SQL]REFCURSORが戻り値のプロシージャについて

お世話になってます
タイトルの内容について、親プロシージャより引数を受け取り
子プロシージャでカーソルをオープンして、そのカーソルを親に戻す。
というプロシージャなのですが、親から実行した場合には問題ないのですが
子をSI ObjectBrowserから実行すると[実行][デバッグ]共に
押した瞬間に止まってしまいます。

下記にソースを記述します


--カーソル変数の定義
CREATE OR REPLACE PACKAGE LC7BDEV.PKG_TEST_CURSOR
IS
 TYPE TEST_TYPE IS RECORD
...続きを読む

Aベストアンサー

ObjectBrowser掲示板の投稿No.4734によると、ref cursor型のパラメータには対応していないようですよ。
ですので、ご自身でSQLを書いて実行すればいいのではないでしょうか。


人気Q&Aランキング

おすすめ情報