この付録では、 Fortran 95 の実行時入出力ライブラリおよびオペレーティングシステムが生成するエラーメッセージについて説明します。
オペレーティングシステムのエラーメッセージには、システムコールの失敗、C ライブラリのエラー、シェルの診断などがあります。システムコールのエラーメッセージは、intro(2) に記載されています。Fortran ライブラリを介して行われたシステムコールから、直接エラーメッセージが生成されることはありません。Fortran ライブラリの中にある次に示すシステムルーチンが、C のライブラリルーチンを呼び出し、それがエラーメッセージを生成します。
integer system, status status = system("cp afile bfile") print*, "status = ", status end |
このようにすると、次のメッセージが表示されます。
cp: cannot access afile status = 512 |
f95 入出力ライブラリは、実行時にエラーを検出すると、診断メッセージを出力します。Fortran95 でコンパイルおよび実行したプログラムの例を次に示します。
demo% cat wf.f WRITE( 6 ) 1 END demo% f95 -o wf wf.f demo% wf ****** FORTRAN RUN-TIME SYSTEM ****** Error 1003: unformatted I/O on formatted unit (書式付き装置に対する書式なし入出力) Location: the WRITE statement at line 1 of "wf.f" Unit: 6 File: standard output Abort |
f95 メッセージにエラーの生じたソースコードのファイル名と行番号が示されていることから、アプリケーション開発者は、入出力文に ERR= 句を使用して実行時入出力エラーを検出することを検討すべきです。
表 A–1 に f95 で出力される実行時入出力メッセージの一部の日本語訳を示します。
表 A–1 f95 の実行時入出力メッセージ
エラー |
メッセージ |
---|---|
1000 |
書式エラー (format error) |
1001 |
不正な装置番号 (illegal unit number) |
1002 |
書式なし装置に対する書式付き入出力 (formatted I/O on unformatted unit) |
1003 |
書式付き装置に対する書式なし入出力 (unformatted I/O on formatted unit) |
1004 |
順番探査装置に対する直接探査入出力 (direct-access I/O on sequential-access unit) |
1005 |
直接探査装置に対する順番探査入出力 (sequential-access I/O on direct-access unit) |
1006 |
装置は BACKSPACE をサポートしません (device does not support BACKSPACE) |
1007 |
レコードの先頭を超えています (off beginning of record) |
1008 |
ファイルの stat ができません (can't stat file) |
1009 |
反復数のあとに * がありません (no * after repeat count) |
1010 |
長すぎる記録 (record too long) |
1011 |
切り捨てエラー (truncation failed) |
1012 |
不完全な並び入力 (incomprehensible list input) |
1013 |
空き領域の不足 (out of free space) |
1014 |
接続されていない装置 (unit not connected) |
1015 |
予期しない文字の読み取り (read unexpected character) |
1016 |
不正な論理入力コード (illegal logical input field) |
1017 |
'new' ファイルが存在します ('new' file exists) |
1018 |
'old' ファイルが見つかりません (can't find 'old' file) |
1019 |
認識できないシステムエラー (unknown system error) |
1020 |
シーク可能な条件が必要です (requires seek ability) |
1021 |
不正な引数 (illegal argument) |
1022 |
負数の反復数 (negative repeat count) |
1023 |
チャネルやデバイスに対する不正な操作 (illegal operation for channel or device) |
1024 |
再入可能入出力 (reentrant I/O) |
1025 |
オープン時の指定子が矛盾している (incompatible specifiers in open) |
1026 |
namelist への不正な入力 (illegal input for namelist) |
1027 |
FILEOPT パラメータのエラー (error in FILEOPT parameter) |
1028 |
許可されない書き出し (writing not allowed) |
1029 |
許可されない読み取り (reading not allowed) |
1030 |
入力での整数オーバーフロー (integer overflow on input) |
1031 |
入力での浮動小数点オーバーフロー (floating-point overflow on input) |
1032 |
入力での浮動小数点アンダーフロー (floating-point underflow on input) |
1051 |
閉じたデフォルト入力装置 (default input unit closed) |
1052 |
閉じたデフォルト出力装置 (default output unit closed) |
1053 |
接続されていない装置からの直接探査の READ (direct-access READ from unconnected unit) |
1054 |
接続されていない装置への直接探査の WRITE (direct-access WRITE to unconnected unit) |
1055 |
結合していない内部装置 (unassociated internal unit) |
1056 |
内部装置の無効な引用 (null reference to internal unit) |
1057 |
空の内部ファイル (empty internal file) |
1058 |
書式なし装置に対する並び入出力 (list-directed I/O on unformatted unit) |
1059 |
書式なし装置に対する変数群入出力 (namelist I/O on unformatted unit) |
1060 |
内部ファイルの終端を超えて書き出ししようとしました (tried to write past end of internal file) |
1061 |
結合していない ADVANCE 指定子 (unassociated ADVANCE specifier) |
1062 |
ADVANCE 指定子が 'YES' または 'NO' ではありません (ADVANCE specifier is not 'YES' or 'NO') |
1063 |
EOR 指定子が前進入力に対して指定されています (EOR specifier present for advancing input) |
1064 |
SIZE 指定子が前進入力に対して指定されています (SIZE specifier present for advancing input) |
1065 |
負数またはゼロの記録番号 (negative or zero record number) |
1066 |
ファイルに存在しない記録 (record not in file) |
1067 |
破壊された書式 (corrupted format) |
1068 |
結合していない入力変数 (unassociated input variable) |
1069 |
データ編集記述子より多い入出力項目 (more I/O-list items than data edit descriptors) |
1070 |
添字三つ組にゼロの刻み幅 (zero stride in subscript triplet) |
1071 |
DO 形ループにゼロの増分値 (zero step in implied DO-loop) |
1072 |
負数の欄幅 (negative field width) |
1073 |
ゼロ幅の欄 (zero-width field) |
1074 |
文字列編集記述子が入力に用いられています (character string edit descriptor reached on input) |
1075 |
ホレリス編集記述子が入力に用いられています (Hollerith edit descriptor reached on input) |
1076 |
数字列に数字がありません (no digits found in digit string) |
1077 |
指数に数字がありません (no digits found in exponent) |
1078 |
範囲外の桁移動数 (scale factor out of range) |
1079 |
数字が基数と等しいか、または基数を超えています (digit equals or exceeds radix) |
1080 |
整数欄に予期しない文字 (unexpected character in integer field) |
1081 |
実数欄に予期しない文字 (unexpected character in real field) |
1082 |
論理欄に予期しない文字 (unexpected character in logical field) |
1083 |
整数値に予期しない文字 (unexpected character in integer value) |
1084 |
実数値に予期しない文字 (unexpected character in real value) |
1085 |
複素数値に予期しない文字 (unexpected character in complex value) |
1086 |
論理値に予期しない文字 (unexpected character in logical value) |
1087 |
文字値に予期しない文字 (unexpected character in character value) |
1088 |
変数群名の前に予期しない文字 (unexpected character before NAMELIST group name) |
1089 |
変数群名がプログラム中の名前と一致しません (NAMELIST group name does not match the name in the program) |
1090 |
変数群の項目に予期しない文字 (unexpected character in NAMELIST item) |
1091 |
変数群の項目名に不揃いの括弧 (unmatched parenthesis in NAMELIST item name) |
1092 |
変数群に存在しない変数 (variable not in NAMELIST group) |
1093 |
変数群の実体名に多すぎる添字 (too many subscripts in NAMELIST object name |
1094 |
変数群の実体名に不十分な添字 (not enough subscripts in NAMELIST object name) |
1095 |
変数群の実体名にゼロの刻み幅 (zero stride in NAMELIST object name) |
1096 |
変数群の実体名に空の文字配列添字 (empty section subscript in NAMELIST object name) |
1097 |
変数群の実体名に範囲外の添字 (subscript out of bounds in NAMELIST object name) |
1098 |
変数群の実体名に空の文字列 (empty substring in NAMELIST object name) |
1099 |
変数群の実体名に範囲外の部分列 (substring out of range in NAMELIST object name) |
1100 |
変数群の実体名に予期しない成分 (unexpected component name in NAMELIST object name) |
1111 |
結合していない ACCESS 指定子 (unassociated ACCESS specifier) |
1112 |
結合していない ACTION 指定子 (unassociated ACTION specifier) |
1113 |
結合していない BINARY 指定子 (unassociated BINARY specifier) |
1114 |
結合していない BLANK 指定子 (unassociated BLANK specifier) |
1115 |
結合していない DELIM 指定子 (unassociated DELIM specifier) |
1116 |
結合していない DIRECT 指定子 (unassociated DIRECT specifier) |
1117 |
結合していない FILE 指定子 (unassociated FILE specifier) |
1118 |
結合していない FMT 指定子 (unassociated FMT specifier) |
1119 |
結合していない FORM 指定子 (unassociated FORM specifier) |
1120 |
結合していない FORMATTED 指定子 (unassociated FORMATTED specifier) |
1121 |
結合していない NAME 指定子 (unassociated NAME specifier) |
1122 |
結合していない PAD 指定子 (unassociated PAD specifier) |
1123 |
結合していない POSITION 指定子 (unassociated POSITION specifier) |
1124 |
結合していない READ 指定子 (unassociated READ specifier) |
1125 |
結合していない READWRITE 指定子 (unassociated READWRITE specifier) |
1126 |
結合していない SEQUENTIAL 指定子 (unassociated SEQUENTIAL specifier) |
1127 |
結合していない STATUS 指定子 (unassociated STATUS specifier) |
1128 |
結合していない UNFORMATTED 指定子 (unassociated UNFORMATTED specifier) |
1129 |
結合していない WRITE 指定子 (unassociated WRITE specifier) |
1130 |
長さゼロのファイル名 (zero length file name) |
1131 |
ACCESS 指定子が 'SEQUENTIAL' または 'DIRECT' ではありません (ACCESS specifier is not 'SEQUENTIAL' or 'DIRECT') |
1132 |
ACTION 指定子が 'READ', 'WRITE' または 'READWRITE' ではありません (ACTION specifier is not 'READ', 'WRITE' or 'READWRITE') |
1133 |
BLANK 指定子が 'ZERO' または 'NULL' ではありません (BLANK specifier is not 'ZERO' or 'NULL') |
1134 |
DELIM 指定子が 'APOSTROPHE'、'QUOTE'、または 'NONE' ではありません (DELIM specifier is not 'APOSTROPHE', 'QUOTE' or 'NONE') |
1135 |
予期しない FORM 指定子 (unexpected FORM specifier) |
1136 |
PAD 指定子が 'YES' または 'NO' ではありません (PAD specifier is not 'YES' or 'NO') |
1137 |
POSITION 指定子が 'APPEND'、'ASIS'、または 'REWIND' ではありません (POSITION specifier is not 'APPEND', 'ASIS' or 'REWIND') |
1138 |
RECL 指定子がゼロまたは負数です (RECL specifier is zero or negative) |
1139 |
直接探査ファイルに対して記録長が指定されていません (no record length specified for direct-access file) |
1140 |
予期しない STATUS 指定子 (unexpected STATUS specifier) |
1141 |
接続されている装置に対して 'OLD' でない status が指定されています (status is specified and not 'OLD' for connected unit) |
1142 |
STATUS 指定子が 'KEEP' または 'DELETE' ではありません (STATUS specifier is not 'KEEP' or 'DELETE') |
1143 |
一時ファイルに対して指定された status 'KEEP' (status 'KEEP' specified for a scratch file) |
1144 |
不当な status の値 (impossible status value) |
1145 |
一時ファイルに対してファイル名が指定されました (a file name has been specified for a scratch file) |
1146 |
読み取り中または書き出し中の装置を開こうとしています (attempting to open a unit that is being read from or written to) |
1147 |
読み取り中または書き出し中の装置を閉じようとしています (attempting to close a unit that is being read from or written to) |
1148 |
ディレクトリを開こうとしています (attempting to open a directory) |
1149 |
ファイルはシンボリックリンクで、status が 'OLD' です (status is 'OLD' and the file is a dangling symbolic link) |
1150 |
ファイルはシンボリックリンクで、status が 'NEW' です (status is 'NEW' and the file is a symbolic link) |
1151 |
使用できる一時ファイル名がありません (no free scratch file names) |
1152 |
デフォルト装置に対する指定子 ACCESS='STREAM' (specifier ACCESS='STREAM' for default unit) |
1153 |
デフォルト装置へのストリーム探査 (stream-access to default unit) |
1161 |
装置は REWIND をサポートしません (device does not support REWIND) |
1162 |
BACKSPACE には読み取り権が必要です (read permission required for BACKSPACE) |
1163 |
直接探査装置に対する BACKSPACE (BACKSPACE on direct-access unit) |
1164 |
バイナリ装置に対する BACKSPACE (BACKSPACE on binary unit) |
1165 |
backspace 中にファイルの終わりになりました (end-of-file seen while backspacing) |
1166 |
ENDFILE には書き込み権が必要です (write permission required for ENDFILE) |
1167 |
直接探査装置に対する ENDFILE (ENDFILE on direct-access unit) |
1168 |
順番捜査装置または直接探査装置へのストリーム探査 (stream-access to sequential or direct-access unit) |
1169 |
接続されていない装置へのストリーム探査 (stream-access to unconnected unit) |
1170 |
ストリーム探査装置に対する直接探査 (direct-access to stream-access unit) |
1171 |
POS 指定子の不正な値 (incorrect value of POS specifier) |
1172 |
結合していない ASYNCHRONOUS 指定子 (unassociated ASYNCHRONOUS specifier) |
1173 |
結合していない DECIMAL 指定子 (unassociated DECIMAL specifier) |
1174 |
結合していない IOMSG 指定子 (unassociated IOMSG specifier) |
1175 |
結合していない ROUND 指定子 (unassociated ROUND specifier) |
1176 |
結合していない STREAM 指定子 (unassociated STREAM specifier) |
1177 |
ASYNCHRONOUS 指定子が 'YES' または 'NO' ではありません (ASYNCHRONOUS specifier is not 'YES' or 'NO') |
1178 |
ROUND 指定子が 'UP'、'DOWN'、'ZERO'、'NEAREST'、'COMPATIBLE' または 'PROCESSOR-DEFINED' ではありません (ROUND specifier is not 'UP', 'DOWN', 'ZERO', 'NEAREST', 'COMPATIBLE' or 'PROCESSOR-DEFINED') |
1179 |
DECIMAL 指定子が 'POINT' または 'COMMA' ではありません (DECIMAL specifier is not 'POINT' or 'COMMA') |
1180 |
ストリーム探査装置に対する OPEN 文では RECL 指定子を使用できません (RECL specifier is not allowed in OPEN statement for stream-access unit) |
1181 |
割り付けされている配列を割り付けしようとしています (attempting to allocate an allocated array) |
1182 |
結合していないポインタの解放 (deallocating an unassociated pointer) |
1183 |
結合していない割り付け配列の解放 (deallocating an unallocated allocatable array) |
1184 |
ポインタを通して割り付け配列の解放 (deallocating an allocatable array through a pointer) |
1185 |
ALLOCATE 文により割り付けされていない実体の解放 (deallocating an object not allocated by an ALLOCATE statement) |
1186 |
実体の一部の解放 (deallocating a part of an object) |
1187 |
割り付けより大きな実体の解放 (deallocating a larger object than was allocated) |
1191 |
配列組み込み関数に渡された割り付けされていない配列 (unallocated array passed to array intrinsic function) |
1192 |
不正な次元数 (illegal rank) |
1193 |
小さなソースサイズ (small source size) |
1194 |
ゼロの配列サイズ (zero array size) |
1195 |
形状に負の要素 (negative elements in shape) |
1196 |
不正な種別 (illegal kind) |
1197 |
形状不適合の配列 (nonconformable array) |
1213 |
接続されていない装置に対する非同期入出力 (asynchronous I/O on unconnected unit) |
1214 |
同期装置に対する非同期入出力 (asynchronous I/O on synchronous unit) |
1215 |
データ編集記述子と入出力リスト項目の型に互換性がありません (a data edit descriptor and I/O list item type are incompatible) |
1216 |
現在の入出力リスト項目はデータ編集記述子と一致しません (current I/O list item doesn’t match with any data edit descriptor) |
2001 |
無効な定数、構造体、または名前 (invalid constant, structure, or component name) |
2002 |
生成されていないハンドル (handle not created) |
2003 |
短か過ぎる文字引数 (character argument too short) |
2004 |
長過ぎる、または短か過ぎる配列引数 (array argument too long or too short) |
2005 |
ファイル、記録、またはディレクトリストリームの終わり (end of file, record, or directory stream) |
2021 |
初期化されていないロック (lock not initialized) (OpenMP) |
2122 |
ロック変数の使用におけるデッドロック (deadlock in using lock variable) (OpenMP) |
2123 |
設定されていないロック (lock not set) (OpenMP) |