
Fortran90で書かれた、又はこれから書く、プログラム実行したく
GCCのgfortranをインストールしました。OSは、Windows XPです。
ところが、コンパイルのところで、つまずいてなかなか進みません。
(gfortranは動いてますので、インストールに問題はないと思います。)
そこで、gfortranについて(オプション等)、解説しているサイトや文献を教えて頂きたいと思います。
英語力があまり無いので、日本語のものを紹介いただけると助かります。
また、十数年ぶりのフォートランですので(現在はVBAしか触っていません)、初学者向けだと、なお助かります。
どうか、よろしくお願いします。
No.6ベストアンサー
- 回答日時:
#3です。
確認しました。確かに Fortran 95コンパイラのようですね。ただ、GNU Fortran 95 (GCC) 4.2.0 20060504 (experimental)
Copyright (C) 2006 Free Software Foundation, Inc.
とありますし、webページを見てもまだ開発段階の初期のものとみなされて
いるようなので誰もが問題なく使えるものではなく、ドキュメントも整備されている途上ですから、この時点で日本語に訳したものとか初学者向けを期待するのは少々無理があるかと。
ただ、他の f95という名のコンパイラと同じように使えるようなのでそれ向けの解説を見たりすると良いかもしれません。
ところでgfortran はコンパイル対象のファイルの拡張子が .for だと、それは Fortran 77で書かれたものとしてみなすようですがそれは大丈夫なのですか?
COMMONブロックが、includeされる方のファイル(f2.fi)に記述されているのなら、include自体はできているようです。
コンパイルしようとしているのが無償公開されているものとのことですので、エラーを起こしている最初の部分のソース数行を貼り付たりファイルの場所を教えてもらうとかは可能ですか?
参考URL:http://www.scl.kyoto-u.ac.jp/scl/appli/appli_man …
ありがとうございます!お手数をお掛けしております。大変参考になります。
>GNU Fortran 95 (GCC) 4.2.0 20060504 (experimental)
>Copyright (C) 2006 Free Software Foundation, Inc.
>
>とありますし、webページを見てもまだ開発段階の初期のものとみなされて
そうなんですか。コンパイラの選択から考えたほうがいいかもしれませんね。あまり英語得意じゃないもので・・・、(experimental)を見逃していました。
#2様の
>GCC の gfortran って, Fortran90 もコンパイルできたんでしたっけ?
で、少し、いや~な予感がしたのですが。。。そういう問題もあるのですね。
>COMMONブロックが、includeされる方のファイル(f2.fi)に記述されているのなら、include自体はできているようです。
はい、COMMONがf2.fiに記述されています。#5様からお示しいただいたサンプルプログラムでも、includeを確認できました。
>コンパイルしようとしているのが無償公開されているものとのことですので、エラーを起こしている最初の部分のソース数行を貼り付たりファイルの場所を教えてもらうとかは可能ですか?
プログラムの説明には、「公開(無料)」「プログラムの書き換え自由」と書いているのですが・・・、入手窓口が公開されていませんので、申し訳ございませんが、私の判断でお知らせする訳にはいかないと思います。恐れ入ります。
No.8
- 回答日時:
「-x f95 って付けると Fortran95 だと思ってくれる」って書いてありますね....
ありがとうございます。
またまた、読み落としてしまったようです。
http://gcc.gnu.org/wiki/GFortranUsage
の
>When gfortran is run on a file whose name ends ・・・・(省略)
>・・・・For Fortran 95 this is f95.
は、コンパイル時に明示的に言語を指定するためのやり方だったんですね。よく分からなくて読み飛ばしてしまっていました。ご忠告ありがとうございます。(^_^;)助かります。
No.7
- 回答日時:
拡張子 .f でも Fortran77形式(固定書式)のソースとしてみなされます。
Fortran95形式(自由書式)のソースとして認識させたいなら、 .f95 という拡張子を使います(.f90でもよいかもしれませんが試してません)。
ありがとうございます。
今回調べてみて、フォートランの自由書式というのをはじめて知りました。
ただ、現在動かそうとしているプログラムは、「6カラム+コード」という、私が知っているf77の書き方と同じです。
そして、GCCのgfortranのホームページ
http://gcc.gnu.org/wiki/GFortranUsage
にて
>Since Fortran 95 allows for two different kinds of input source forms ・・・
とあって、
>1.Files whose name ends in .f or .for are assumed to be fixed form
>2.Files whose name end in .f90 or .f95 are assumed to to be free form
なるコメントを見つけましたので、今回のプログラムの場合では「.f」または「.for」でも良いのかなぁと解釈しました。(私の英語力では、またまた見逃しがあるかもしれませんが・・・)
No.5
- 回答日時:
>「f1.for」ソースコード内のサブルーチンごとに「include 'f2.fi'」が書かれています。
>そして、「f1.for」と「f2.FI」は同じフォルダにあります。
>・・・・ということでした。
「サブルーチンごとに」と言うのがちょっと気になりますが、includeしているのであれば、
gfortran f1.for
でよいです。
gfortran f1.for f2.FI
ではいけません。
エラーなしに何かコンパイル成功したことはないのでしょうか?
ためしにやってみてください。ただしこのBBSは頭のスペースが取れてしまいますので、7カラムのスペースを頭につけてください。
まず、includeされるテストファイルincl.f(1行のみ)
write(*,*)'include ok'
次にincludeする側のテストファイルtest.f
include 'incl.f'
write(*,*)'hello, world!'
end
これで、
gfortran test.f
とやってみてください。
エラーが出るようなら、そのまま全部返信してください。
この回答への補足
さてさて、
おかげ様で、ひとつ可能性を潰すことができましたが・・・
gfortran f1.for
をたたいてみました。
それから、#6様のご指摘も踏まえまして、ファイルの拡張子を換えて、
gfortran f1.f
をたたいてみましたが、
やっぱり、滝のようなエラーが流れていきます。
つまり、
ソースコードがエラー、又は、gfortranと合わない
ということでしょうか?
ちょっと気になったのは、
f2.FI
のコードが、
「6カラム空白+コード」ではなく、
「タブ+コード」となっていたことです。
そこで「タブ」を「6カラム空白」に置換してコンパイルしてみたのですが、結果は同じエラーの滝です。
ここからは、ソースコードとのニラメッコになるのでしょうか?
一難さって、また一難です。
お手数ですが、ご助言いただけると幸いです。よろしくお願いします。
ありがとうございます!
ご教示いただいたサンプルプログラム、無事動きましたっ!
つまり、includeを使った、複数ファイルのコンパイルは、
お示しいただいた、コマンド
gfortran test.f
のパターンで行うということですね。
おかげ様で、ひとつ、可能性を潰すことができました。
No.4
- 回答日時:
>ファイルが2つありまして、f1.for と f2.FI
f1.for で f2.FI をinclude しています。
>そこで、
>> gfortran -Wall s1.for s2.FI
includeしているのだったら、
gfortran f1.for -o f1
だけでよいのではないでしょうか?
この回答への補足
ご回答ありがとうございます。
さてさて、
>gfortran f1.for -o f1
>だけでよいのではないでしょうか?
たたいてみましたが、滝のようなエラーは変わらずです。
もしかして、
「f1.for で f2.FI をinclude しています。」
という私の表現がまずかったかもしれません。
正確には・・・・
「f1.for」ソースコード内のサブルーチンごとに「include 'f2.fi'」が書かれています。
そして、「f1.for」と「f2.FI」は同じフォルダにあります。
・・・・ということでした。
ひょっとして、includeがうまくできていないのでしょうか?
私、includeの動きがよく分かっていません。
私の理解レベルは、ファイルが複数あるときは、
「そういえば、コンパイラとかリンカとか使っていたような・・・でもどうやって使ってたかなぁ?」位しか覚えておりません。
この現象もそうですが、コマンドのオプションや使い方等について、良い情報(できるだけ日本語)があれば、それも教えていただけると助かるのですが・・・
すみません、欲張りで。どうか、よろしくお願いします。
No.3
- 回答日時:
Windows XP 上で使われているとのことですが、具体的にどのパッケージのバイナリを使われていますか?
ダウンロード元の場所などを教えてください。
この回答への補足
>ダウンロード元の場所などを教えてください。
はい、
http://gcc.gnu.org/wiki/GFortranBinaries
からダウンロードしました。
ここで2種類ありますが、
mingw/"native Windows"
のほうです。
(2006-05-04)
とカッコ書きされたインストーラをダウンロードしました。
理由は、
「mingw/"native Windows"」と「Cygwin」の2つのうち、どっちを選んだら良いか分からない人は、「mingw/"native Windows"」がよいと書かれているようでしたので。どっちがいいか分からない私は、コッチにしました。
よろしく、お願いします。
No.1
- 回答日時:
>ところが、コンパイルのところで、つまずいてなかなか進みません。
具体的にどう躓いているのでしょうか?
g77 test.f
と打つだけなので、正しくInstallされているなら、躓きようがない様に思いますが。
この回答への補足
>具体的にどう躓いているのでしょうか?
はい、実は・・・
ファイルが2つありまして、f1.for と f2.FI
f1.for で f2.FI をinclude しています。
そこで、
> gfortran -Wall s1.for s2.FI
とか
> gfortran -o test s1.for s2.FI
とか
たたきました。すると、
>Error: Syntax error in COMMON statement at (1)
とか
>Error: Expected another dimension in array declaration at (1)
とか
>Unexpected STATEMENT FUNCTION statement at (1)
等などのエラーが大量に、滝のように流れます。
ソースのコードがエラーなのか?
ソースが他のfortran仕様なのか?(Fortran90とは書いてます。無償公開プログラムです。)
gfortranの操作ミスなのか?
見当がつきませんでしたので、質問しました。
この際ですので、じっくり勉強したいとも思っておりますので、
この問題に限らずに、初学者が理解できそうな、できれば日本語で書かれたよい情報があれば、教えていただきたいと思っております。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 VirtualBox からWindows XP を起動すると画面が真っ暗になってしまいました 4 2023/07/09 16:19
- 英語 ”be”<動詞>と<助動詞>混同の誤り ― 形式主義文法論の混迷 12 2022/05/17 11:09
- その他(パソコン・スマホ・電化製品) windows 2000の再インストールの件 2 2022/09/07 10:05
- 英語 英語のレポートとして、世界遺産についてまとめることになり、イギリスのウェストミンスター宮殿の歴史と現 2 2022/11/05 22:35
- 大学受験 関西外国語大学の国際共生学科、英米語学科(Super IESプログラム)、大阪外語専門学校、同志社大 1 2023/03/29 22:34
- 大学・短大 日本語で論文・レポートを書く際に英語の文献から引用する方法を教えてください。できればそれが説明されて 2 2022/07/29 08:15
- 大学受験 娘の大学受験勉強 6 2022/06/30 19:58
- Windows 10 VirtualBox 6.1.36 インストール時にエラーが表示されます 2 2023/07/09 11:34
- フリーソフト HyperCam2 1 2023/08/05 22:59
- Windows 10 explorerをedgeで開く方法 2 2022/06/05 14:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C/C++
-
実行?
-
bccでwinmm.libをリンクする方...
-
便利なライブラリorテクニック
-
C言語のコンパイルができません
-
コンパイル エラーについて
-
math.h
-
Win7 64bit のPCが'X86'と誤認識?
-
” OS ビルド ” の意味が分か...
-
LinuxC++ファイルWindowsでのmake
-
エラーに関する質問
-
clでのコンパイル結果を取得
-
PDBファイルが作成されないよう...
-
C++ リンクについて
-
初心者の質問
-
コンパイルができない!?
-
emacsの生産性について
-
C++のデフォルトinclude文?
-
関数形式マクロ
-
Pythonリリースコンパイル(app...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
” OS ビルド ” の意味が分か...
-
VBAを何回も作り直して、容量が...
-
エクセルVBAではRound...
-
C言語でヘッダファイルにグロー...
-
1 つ以上の複数回定義されてい...
-
「fatal error C1189」を回避す...
-
Makefile作成時の拡張子.oとは?
-
外部シンボル "_main"は未解決です
-
<math.h>があるのにsqrtが・...
-
ILSpyで、デコンパイルできない。
-
クリティカルエラー Expressio...
-
【VC++6.0(MFC)】警告「LINK : ...
-
マクロ コンパイルがグレーバック
-
セミコロンについて
-
複数のサブディレクトリを一緒...
-
C言語のコンパイルができません
-
PRO*C コンパイルエラー
-
ExcelVBAで『ByRef 引数の型が...
-
コンパイルエラー:ユーザ定義...
-
プリコンパイルエラーについて
おすすめ情報