• ベストアンサー

g77でのエラー

 私は、主にMS-DOSでwatcom fortranを用いてコンパイルしています。  OPENファイル名をパソコンの画面から読みとるとき、今までは、例えば次のように書いてきました。 character*20 filename write(*,100) read(*,200) filename 100 format(/,'input filename='\) 200 format(A)  すると、画面上に、 input filename= が出て、改行しなくてもその横にファイル名を書くことができました。  しかし、最近Cygwinでg77でコンパイルするようになり、上記の例の場合、\のところでエラーが出ます(Missing close-parenthese(s)~、Unrecognized character~など)。 g77を用いて、改行せずに’input filename=ファイル名’というふうにプログラムを組みたいのですが、上記の例の場合、どうすればいいんですか?教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.2

私の環境(Win98SE+Cygwin最新版)では動いたのですが。 結果はどうなったのでしょう?(エラーが出た。改行されてしまった等) ちなみに私が試してみたのは以下のようなソースです。 character*20 filename write(*,100) read(*,200) filename 100 format(/,'input filename=',$) 200 format(A) write(*,*) filename stop end 改行抑止の記述子はコンパイラ毎の独自拡張なので、対応はまちまちですが、g77は$でいけると思うのですが。 http://www.ip.media.kyoto-u.ac.jp/htomita/sec5.html#5.2.1.

yoo7660
質問者

お礼

ご返事どうも有り難うございます。私の間違いでした。$でできました。

その他の回答 (1)

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.1

\の代わりに$を使えませんか? format(/,'input filename=',$)

yoo7660
質問者

お礼

ご返事どうも有り難うございます。ためでした。

関連する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)で問題なく動いていました。 どなたか,想定されることがありましたら,ご教授ください。

  • g77(fortran77)でのエラー

    http://www.eq.db.shibaura-it.ac.jp/fortran/ex.html#install  このサイトの通りに従い、g77コンパイラをインストールして、fortran77のソースをコンパイルしようとしたのですが、 “g77: installation problem, cannot exec 'f771': No such file or directory” というメッセージが出てうまくできません。なぜなのか、どうすればうまくいくのか、ご教授をお願い致します。  Windows Vista sp2です。

  • g77でコンパイルできない

    cygwinをgcc関連のパッケージだけインストールし、パスも通したのですが、command prompt 上においてg77でコンパイルしようとしても、 'g77'は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません とでてしまい、コンパイルできません。 パスを通したc:\cygwin\bin の中を見ると、g77.exeはあるのですが・・・ 初心者なので、アドバイスよろしくお願い致します

  • エラーでg95のコンパイルが出来ません.

    仮想PC上にUbuntu(Ubuntu 14.04)をインストールして,fortran(g95)を使用したいのですが以下のようなエラーが出てしまいコンパイルできません. ld: crt1.o が見つかりません: そのようなファイルやディレクトリはありません ld: crti.o が見つかりません: そのようなファイルやディレクトリはありません libc6-devは最新版をインストールしてあります. crt1.o・crti.oにシンボリックリンクを張ればよいのかと思い,Ubuntu内を探したのですが見つけることが出来ませんでした. インストールしたバージョンは Ubuntu 14.04 の64bit版 g95-x86_64-64-linux です. どなたかわかる方がいらっしゃいましたらよろしくお願いいたします.

  • ftn77のコンパイルエラー

    ftn77でfortranのプログラムをコンパイルしたところ、 文字情報のみでテストしたらコンパイルに成功したのですが、 数値計算の入ったものをコンパイルしたら、 実行時に以下のようなエラーが起こりました。 ーーーーーーーーーーーーーーーーーーーーーーーー RUN-TIME ERROR 00401000 main [+00c5] [recur= 1] メッセージ WARNING the following symbols are missing: IMAG C:\fortran\(ファイル名).obj (C:\FORTRAN\(ファイル名).FOR) ーーーーーーーーーーーーーーーーーーーーーーーーー 元々別のパソコンでコンパイルが成功したものを、 まったく書き換えずにftn77でコンパイルしてみたのにもかかわず、 UNTIME EROORと表示されました。 原因が何か分からないので、どなたか教えてください。 ちなみに10行程度の単純なプログラムなら、数値計算をしてもエラーは怒りませんでした。

  • 実行して画面に表示されたデータの取り出しかた

    cygwinでfortranのプログラムをコンパイルして計算結果を100個ぐらい表示させました。 このデータをエクセルなどに貼り付けて使いたいのですがどうしたらよいでしょうか。 実行された結果をファイルにする方法もあるのだと思いますが、まだよくわかりません。

  • Fortran コンパイルエラー

    Cygwin上でFortranを用いて流体の数値解析を行っています。 先輩から引き継いだシミュレーションコードなのでプログラムをいじらなくても実行できるだろうと思ったのですが、コンパイル時に以下のエラーが出てしまい、いろいろ試行錯誤しましたが自力では解決できませんでした。 エラーは次のとおりです。何かご存知の方アドバイス頂けたらありがたいです。○はスペースです。カンマの下に1があります。 op.f:13.21: ○101 format(i,4e) ○○○○○○1      Error:Nonnegative width reqired in format string at (1)

  • コンパイル時に見たことないエラーが出ました

    Cygwinを使ってコンパイルしたんですが ============================ /cygdrive/c/DOCUME~1/(コンパイルしたファイルのパス).c:(.text+0x187): undefi ned reference to `_(関数名)' ============================ というメッセージがでてきてコンパイルできません。 原因は何なのでしょうか?

  • 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です.何か打開策があれば助言お願いします.

  • Fortran(コンパイラG95)のfile処理

     現在テキストエディターに秀丸・コンパイラにg95という環境でFortranのプログラムを書いています。  プログラムは地震波を作成するためのもので、インプットファイル・アウトプットファイル共に千を超えるオーダーになります。そのような状況なので実行の度にファイル名を書き換えるのではなく ”あらかじめ用意したインプットファイルからのデータの読み込み・それに応じたアウトプットファイルの出力” という処理を自動化したいと考えています。  また、現在学生という事もありできれば現在の環境で解決したいのですが、数万円で済むレベルなら有料の環境を整える事も考えています。  進捗具合としては、まずフォルダ内のインプットファイル名の取得を以下の内容のバッチファイル、 dir /b * > file1.txt 、にて行いました。そして、  1.txt  2.txt  3.txt  ・・・・(以下省略) 上記ようにインプットファイル名が羅列されたテキストファイルfile1.txtを作成し、それをgetarg等の内部関数・サブルーチンを用いて処理できないかと考えました。 そこでg95のマニュアルの読解やgetarg等のネット検索を試みたのですが、プログラミング初心者という事もあり今ひとつどうすればよいかわかりません。 どなたか解決策をご存じの方はいらっしゃらないでしょうか(処理にかかる時間・手間が現実的なレベルであれば手法にはこだわりません)。 ちなみにg95でのgetargの引数使用は以下のようになっております。 subroutine getarg(pos, value)  integer,     intent(in)  :: pos  character(len=*), intent(out) :: value end subroutine 解説:pos 番目のコマンドライン引数を value に格納する    参照元: http://ftp.g95.org/G95Manual.jp.pdf 回答に必要な情報がもれている場合はご指摘いただけると幸いです。 面倒な質問で恐縮ですが、よろしくお願いいたします。

専門家に質問してみよう