Frotranプログラムのエラー914について

このQ&Aのポイント
  • あるFrotranプログラムの実行時にエラー914が発生しました。
  • エラーメッセージには「FORTRAN I/O ERROR 915: READ UNEXPECTED CHARACTER」と表示されています。
  • このエラーの原因や解決策について詳しく教えてください。
回答を見る
  • ベストアンサー

frotranプログラムについて

教えて下さい。お願いします。 ある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-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

> しかし、fortranに全くふれたことがないので、ユニット99がどこをさすのか > わかりません。 > ちなみにこのプログラムも自分で作ったものでないため、具体的に > どのような動作をするものなのか把握してないのです。 FORTRAN は、入出力がユニット番号と言う数値に結びついてます。実際の ファイルやプリンタをユニット番号に結び付けるやり方は、いろいろあり、 OS によっても違ったりします。 一番簡単なのは OPEN を使うことです。きっと、そのソースには、こんな行が あるはずなんで、探してみて下さい。    OPEN(99, 'オープンされるファイル名', 何かのオプション) こんな感じになっているかも。    OPEN(UNIT=99, FILE='オープンされるファイル名', 何かのオプション) また、ファイル名が変数に入っているかもしれません。 HP の FORTRAN は、使ったことがないんで詳しくは分からないんですが、 > FILE: ., UNIT: 99 というエラーメッセージが出ていると言うことは、ファイル名に "." つまり、 カレントディレクトリが割り当てられており、そこから READ しようとして エラーになっている、ということなのかも。 # ソースが分からんので、あくまでも想像の範囲で、の回答です (^^;

その他の回答 (1)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

HP の FORTRAN でしょうか? その「あるプログラム」に、ユニット99に対して、READ をしているところが有る と思うんですが、その READ で失敗してます。 例えば、整数型の読み込みにしているのに、整数とは思えない文字が入っていると こんなエラーが出ます。例えば、 READ(99,'(I6)') III という読み込みに対し、 XYZ という入力を与えると、このエラーが出ると思います。 # 試したわけじゃないんで、一応「自信無し」にしておきますが ちなみに、FORTRAN のマニュアルはないんですか? エラー番号で引くと、原因は一発で分かりますよ。

参考URL:
http://lithos.gat.com/docview/hp_fortran_errors.html
chibitotoro
質問者

補足

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

関連するQ&A

  • g77でのエラーメッセージ

    g77でコンパイルし,計算すると以下のようなメッセージがでました。 fmt:read unexpected character apparent state :unit5 named test.dat last format:(4i5,4f10.0,a20) lately reading sequential formatted external IO アポートしました。 本プログラムは,別コンピュータと別コンパイラー(compaq fortran)で問題なく動いていました。 どなたか,想定されることがありましたら,ご教授ください。

  • fortranについて

    fortranでコンパイルしようとすると、 READ(1,FILE='syoki.txt') X0(I),Y0(I) ^ Invalid form for READ statement at (^) とエラー?が出てしまうのですが、原因としてどのようなことが考えられるでしょうか。 どなたかお願いします。

  • MPIを用いたFortranプログラムのコンパイル エラー

    前回(http://okwave.jp/kotaeru.php3?q=2361804)に続いてエラーで困っています。 バンド構造などをシミュレーションできるソフトPHASE ver. 4.00を下のサイトからダウンロードし、makeしようとしたのですが出来ません。 http://www.fsis.iis.u-tokyo.ac.jp/result/software/? OS Fedora Core 5 Linux Fortranコンパイラ intel Fortran Compiler 9.0 for Linux Cコンパイラ gcc MPI mpich-1.2.7 PHASEはMPIを使ったFortranのプログラムで、オブジェクトファイルは作られたのですが、最後のリンクのところで下のようなエラーが出てしまいます。 /opt/intel/fc/9.0/lib/libifcore.a(for_open_proc.o): In function `for__compute_filename.':./src/libfor/for_open_proc.c:(.text+0xc14): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /opt/intel/mpich/lib/libmpich.a(p4_secure.o): In function `start_slave':p4_secure.c:(.text+0x80): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking この後に次のような/usr/lib/libc.a ... undefined reference to ...という形のエラーが43行あります。 /usr/lib/libc.a(iofclose.o):(.eh_frame+0x121): undefined reference to `__gcc_personality_v0' /usr/lib/libc.a(iofflush.o): In function `fflush': undefined reference to `_Unwind_Resume' どうやらglibcが関係しているような気がするのですが、自分ではどうすればよいのか分かりません。 エラーの意味とその対処法をお願いします。

  • g95プログラムからg++関数を呼び出したい。

    g95プログラムからg++関数を呼び出したい。 いつもお世話になっています。 Fortran(g95)プログラムからg++関数を呼び出したいのですが、 実行できません。 どのようにすればよいか、教えて頂けませんでしょうか。 (ちなみにg77からC++を呼ぶことはできました。) ===環境設定=== OS:WindowsXP(pro) C++コンパイラ :MinGW g++ (gcc version 3.4.5) Fortranコンパイラ:MinGW g95 (gcc version 4.1.2) Fortranコンパイラ:MinGW g77 (gcc version 3.4.5) ===使用したソース=== <Fortran> ファイル名:f.f    write(*,*) "Hello Fortran World."    call funchelloc()    end ※実際には、各行先頭に半角スペース6個が入ります。 <C++> ファイル名:funcC.cpp #include <stdio.h> #include <iostream> int main(void) {   printf("hello C world!\n");   return 0; } ※見やすくするため、全角スペースでインデントしています。 ===実行手順=== >g++ -c funcC.cpp >g95 -c f.f >g95 f.o funcC.o -lstdc++ c:/mingw/lib///libstdc++.a(eh_throw.o):eh_throw.cc:(.text+0x7b): undefined reference to `_ _w32_sharedptr_unexpected' c:/mingw/lib///libstdc++.a(eh_throw.o):eh_throw.cc:(.text+0x8c): undefined reference to `_ _w32_sharedptr_terminate' c:/mingw/lib///libstdc++.a(eh_globals.o):eh_globals.cc:(.text+0x4e): undefined reference t o `__w32_sharedptr' c:/mingw/lib///libstdc++.a(eh_globals.o):eh_globals.cc:(.text+0xb9): undefined reference t o `__w32_sharedptr' c:/mingw/lib///libstdc++.a(eh_globals.o):eh_globals.cc:(.text+0x179): undefined reference to `__w32_sharedptr' c:/mingw/lib///libstdc++.a(eh_globals.o):eh_globals.cc:(.text+0x186): undefined reference to `__w32_sharedptr' c:/mingw/lib///libstdc++.a(eh_globals.o):eh_globals.cc:(.text+0x1e3): undefined reference to `__w32_sharedptr' c:/mingw/lib///libstdc++.a(eh_globals.o):eh_globals.cc:(.text+0x1ef): more undefined refer ences to `__w32_sharedptr' follow c:/mingw/lib///libstdc++.a(eh_terminate.o):eh_terminate.cc:(.text+0x67): undefined referen ce to `__w32_sharedptr_terminate' c:/mingw/lib///libstdc++.a(eh_terminate.o):eh_terminate.cc:(.text+0x97): undefined referen ce to `__w32_sharedptr_unexpected' c:/mingw/lib///libstdc++.a(eh_terminate.o):eh_terminate.cc:(.text+0xb3): undefined referen ce to `__w32_sharedptr_terminate' c:/mingw/lib///libstdc++.a(eh_terminate.o):eh_terminate.cc:(.text

  • FORTRANのプログラムです。

    FORTRANのプログラムです。 下に記載したプログラムを、行列値の計算にするプログラムに改良するにはどうすればよいでしょうか? アドバイスお願いします。 c *************************** if(root.LT.x0) GOTO 11 x0=root; x1=xs0; x2=xs1 GOTO 99 11 x0=root; x1=xs0; x2=xs2 GOTO 99 c c *************************** OPEN(6,FILE='sum.dat') 1002 FORMAT(E12.5,3x,4(E12.5,4x)) CLOSE(6) STOP 100 END c ************************* SUBROUTINE FRES(x,F) DOUBLE PRECISION x,F c f=3.*x+DSIN(x)-DEXP(x) f=(x-1.)*(x-2.)*(x-3.)*(x-4.)*(x-5.)*(x-6.) RETURN END よろしくお願いいたします。

  • 64bitのRedHatでlibSSH2がmakeできません。。

    RedHatEnterprise3で、libsslをmakeすると、 下記のエラーとなり検索しても原因がわからず困っています。 ■libssh2の最新(2-0.14) gcc -o channel.o channel.c -c -g -O2 /usr/include -I/usr/include -Wall -I../include/ -fPIC gcc: -c や -S と一緒に -o を指定すると、複数コンパイルできません make[1]: *** [channel.o] エラー 1 ■libssh2(2-0.13) /usr/bin/ld: /usr/local/lib/libcrypto.a(md5_dgst.o): 再配置 R_X86_64_32 は共有オブジェクトを作成したときには使えません -- -fPIC を付けて再コンパイルしてください /usr/local/lib/libcrypto.a: could not read symbols: 不正な値です collect2: ld はステータス 1 で終了しました Makefileを開き、CFLAGSに-fPICを付けてmakeしましたが 同じエラーメッセージでした(><)どうすれば良いでしょうか? 日本語でGoogleで検索しても見つからないので、 とりあえずコマンドエラーのメッセージだけでも 英語に変える方法だけでも知りたいです。 libsslはRPMもないようで・・手詰まりです。

  • Fortranについて,fatal error LNK1181

    Fortranをインストールしてプログラムをコンパイルしようとすると,以下のエラーが出ます. LINK : fatal error LNK1181: cannot open input file "C:\DOCUME~1\dfor.lib" 正常に作動させるにはどうしたらいいでしょうか.何か足らないものがあるのでしょうか.以下のフォルダに, インストールCDに入っているLIBファイルをすべてコピペしてみたのですが,変わりなしです. C:\Program Files\Microsoft Visual Studio\DF98\LIB OSはXP,今回インストールをしたFortran及びプログラム作成をしたFortranは,共にVisual Fortran 6.0です.何か打開策があれば助言お願いします.

  • AVRのC言語について幾つか教えてください。

    AVRにCでプロプラムしてみようと思い、プログラムしてみています。 検索しても良くわからない事が幾つか有ったので質問させて下さい。 利用しているマイコンは2313です。 io.h内で各ペリフェラルのアドレスのような物を関連付けしている「_SFR_IO8()」っていうのと「_SFR_IO16()」っていう関数?の働きが良くわかりません。 printf()関数とか使えれば試せますが… #define  PORTD  _SFR_IO8(0x12) 等となっているので、 _SFR_IO8(0x11) = 0x7f; _SFR_IO8(0x12) = 0x7f; と書けばエラーを出さずにコンパイル出来ますし実行できます。 ですが関数ですとこういった使い方が出来ないように思うのですが… AVRに限らずC言語の機能の一部なのかも知れませんが今まで使った事が無い物なので無知でして、何方か知恵を貸していただけませんか?

  • JAVAのプログラムについての質問です。

    JAVAのプログラムについての質問です。 技術系の学生です。今、卒業研究でJAVAで音声を再生するプログラムを作成しているのですが、調べても解決できないエラーがあったため質問させていただきました。以下にソースコードを示します。 package Sound; import javax.media.*; import java.io.File; import java.net.URL; import java.io.FileNotFoundException; public class Soundonly { public static void main(final String[] args) { try { File f = new File(args[0]); URL url = f.toURL(); Player p = Manager.createRealizedPlayer(url); p.start(); } catch (FileNotFoundException e) { // エラー処理 } } } これをコンパイルしようとすると、 この行に複数マーカーがあります - アクセス制限: 型 Player は必須ライブラリー C:\Program Files\Java\jre6\lib\ext \jmf.jar で制限されているためアクセスできません - アクセス制限: 型 Manager は必須ライブラリー C:\Program Files\Java\jre6\lib\ext \jmf.jar で制限されているためアクセスできません - アクセス制限: 型 Manager のメソッド createRealizedPlayer(URL) は必須ライブラリー C: \Program Files\Java\jre6\lib\ext\jmf.jar で制限されているためアクセスできません アクセス制限: 型 Player のメソッド start() は必須ライブラリー C:\Program Files\Java\jre6\lib\ext \jmf.jar で制限されているためアクセスできません とエラーが出て、コンパイルが通りません。JMFはインストール済みです。 どなたか解決法を教えていただけないでしょうか。よろしくお願いします。

    • ベストアンサー
    • Java
  • fortranでプログラムを実行するとEnd of fileと表示されてしまいます

    fortran初心者です。 以下のプログラムのコンパイルは出来るのですが、実行すると At line 9 of file ./rennsyu1.f90 Fortran runtime error: End of file というエラーがでてしまいます。 End of fileが何を意味するのか解からず対処が出来ません。 一つ言えることは、open文を使用すると必ずこのエラーが出てしまうということです。 どなたか、End of fileの意味と対処法を教えてください。 プログラム  既存のファイルxx.txtからx1とx2の値を読み取り、画面に出力させる。 program rennsyu1 implicit none real :: x(2) integer :: i open (17 , file = ' xx.txt ' ) do i = 1 , 2 read (17 , *) , x(i) write (6 , *) " x = " , x(i) end do close(17) stop end program rennsyu1