- 1 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 09:55:26 ]
- このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 FORTRAN使いが優しくコメントを返しますが、 お礼はFORTRANの布教と初心者の救済と次期Fortran2008規格でのCOMEFROM文採用をお願いします。 ●注意事項 ・質問する前にGoogle等の検索サイトで検索しましょう。 ・回答者にわかりやすい様に、質問内容はできる限り詳しく書きましょう。 ・エラーの場合は起きた状況、環境(OS・コンパイラ・バージョン)、エラーメッセージも詳しく書きましょう。 ●前スレ くだすれFORTRAN(超初心者用) pc8.2ch.net/test/read.cgi/tech/1138063703/ くだすれFORTRAN(超初心者用)その2 pc11.2ch.net/test/read.cgi/tech/1164121236/ ●関連スレ FORTRAN W pc8.2ch.net/test/read.cgi/tech/1163319215/
- 503 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 01:22:52 ]
- Intel Fortran の次期バージョンベータテストが始まっている。
V.11が来年一月までの期限付きだが、無条件に配布されている。 Windows版はVisualStudio(Fortran 専用)つきで。 気になる人はチェキラ!w ここの右下に入り口あり。 ttp://www.intel.com/cd/software/products/asmo-na/eng/399359.htm めーる登録でライセンスキー送られてくる。 Fortran2003対応の模様。インストールにXP以降が必要。 仕事マシンWin2kの俺様涙目w
- 504 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 01:53:15 ]
- 配列について伺います。
以下のような配列を宣言することはできるのでしょうか? 1 2 3 a = 4 5 6 7 8 9 言葉にすると、「i成分ごとに異なる数のj成分が存在するような配列を宣言できるか?」 ということになります。 不要な成分に0を入れて(3,4)成分の配列をつくるのが素直なのかもしれませんが、メモリの関係でそのような配列の宣言ができませんでした。 #実際の問題設定は、三次元の多相流の計算です。 #計算領域がいくつかのゾーンに分かれており、 #それらの領域すべての物理量をひとつの配列で取り扱おうとしています。 #従って、座標3成分、相の種類1成分、物理量の種類1成分、ゾーン1成分 #の計6成分の配列を取り扱います。 #ゾーンの大きさがマチマチなので最大のものに合わせて配列を宣言すると #メモリが足りなくなってしまいます。
- 505 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 08:51:02 ]
- >>503
つかってみよっと
- 506 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 11:28:03 ]
- >>504
F90以降なら構造型を使う。 F77なら、確かEQUIVALENCEで部分配列に別名を付ければ、そのようなことが出来なくもなかったはず。 ただ、諦めて複数の配列変数に分割する方か、見通しがよくなるかもしれない。 F77では、まともにコーディングしたことない、つーか、したくないので、他に定石があるかもしれんが…
- 507 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 13:59:21 ]
- >>504
配列の持たせ方を変える方法はどうかな? 上記の例の場合、 実際にデータのあるa(9)に値を入れ、 参照配列b(3)にa中の各行の値の入る先頭番号を入れる。 b(1)=1,b(2)=4,b(3)=6 各行の先頭の値は例えば下記のように取り出す do i = 1, 3 print *, a(b(i)) enddo
- 508 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 15:07:44 ]
- 90なら ALLOCATALE で配列を宣言して、必要なだけそのときに
ALLOCATEすればいいかな。
- 509 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 17:03:26 ]
- 窓用gfortran試してるんだけど、a.exeじゃなくてコンパイル後のファイル名を指定してコンパイルする方法ってある?
- 510 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 17:39:30 ]
- いつもどおり-oでいいとおもった
ためしてない
- 511 名前:デフォルトの名無しさん [2008/09/06(土) 18:24:23 ]
- CompaqのFortranV6.6からIntelFortranV10.1に乗り換えました
付属のVisualStudio環境ではF90の作業用の前提となっているのか そのエディタは6カラム目の素敵な継続行カラムなどに配慮されていません そのあたりF77の固定カラムに便利なように設定は変更できないでしょうか?
- 512 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 19:25:04 ]
- >>511
ツール>オプション>フォントおよび色 で変えられたはず。 のであったが、>>503の新版入れたらなんかおかしくなったwww
- 513 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 21:29:47 ]
- 固定形式は廃止予定事項だから、新機能の実装を優先して、後回しにしたんじゃw
- 514 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 01:00:56 ]
- >>506-508
ありがとうございます。 構造体を使うことも検討したのですが、ゾーンを指す変数nzでdo文を回したいと考えていたので、今回は用いませんでした。 割付け配列についても、ゾーン間で補完を行う必要があり、同時にすべてのゾーンのデータを保持する必要があるため、今回の用途には適さないのではないかと考えています。 >>507さんのアドバイスを検討してみます。
- 515 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 21:38:02 ]
- >>509
gfortran -o xxx.exe 2ch.f90でおkですよ。 でも、同じくgfortranで自作ライブラリのリンクの仕方が分からない・・・ どうやってコマンドを入力すればいいんだろう・・・。
- 516 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 22:16:59 ]
- >>515
gfortran hage.f90 -lmytoupee または gfortran hage.f90 libmytoupee.a モジュールとライブラリのパスはそれぞれ -I, -L で適時指定すること。
- 517 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 03:10:45 ]
- というかGCCってコンパイラオプション統一してんの?
- 518 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:58:22 ]
- >>516
ありがとうございます。 でも、自分がものすごく初歩的な勘違いをしているかもしれませんが、 ネット上のライブラリはOKでしたが、自作ライブラリがうまく使えないんです。 ライブラリってサブルーチンやモジュールをいろいろなプログラムで使えるようにしたもの、 という認識でいいのでしょうか?
- 519 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 00:35:44 ]
- gfortran -c subroutine.f90
ar cr module.a *.o ranlib module.a gfortran main.f90 ./module.a ./a.out でダメか?作った静的ライブラリをパスの通っている場所にコピーして使ってもおk
- 520 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 21:00:58 ]
- プログラムをつい最近始めたばかりの超初心者です。
微妙にスレチですみませんが・・・ intel fortran compiler10.1をknoppix(5.3.1)の環境でインストールしようと思い、 ttp://www.obihiro.ac.jp/~suzukim/masuda/ifc101_install.html の手順にそって行っていました。 しかし、ライセンス文を読み進めたあとに Where do you want to install to? Specify directory starting with '/'. [/opt/intel/fc/10.1.015] : でそのままEnterを押し、インストールが開始され、 Installing... という文字が出るのですが、そのままPCがフリーズしてしまいます。 何度か再起動しやり直しましたが同じでした。 これはkoppixそのままの環境ではインストールできない ということでしょうか? 初歩の初歩だと思うのですが、 どなたかご教授お願いいたします。
- 521 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 00:14:12 ]
- knoppix を LiveCD で使っているとか?
- 522 名前:520 mailto:sage [2008/09/12(金) 01:17:25 ]
- CD-Rに焼きこんでそのまま起動させて使っています。
他で少し調べたのですが、 HDDにknoppixをインストールして使うべきなのでしょうか・・・。
- 523 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:26:51 ]
- 容量が足りんとかかなぁ
knoppixのハードディスクインストールって、普通のディストロのインストールと 比べて簡単かなぁ
- 524 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 00:30:43 ]
- >>519
ありがとうございます。うまくできました。 こうして作ると、modファイルも生成されるのですが、 このmodファイルもライブラリ配布の時に必須なのでしょうか? modファイルが無いとコンパイルに失敗するので・・・。
- 525 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 02:17:51 ]
- >>522
/opt が CD-R にあるから書き込めないんだと思う knoppix を HDD にインストールして使えば大丈夫でしょ >>524 モジュールを使ったライブラリ配布するならモジュールが記述されたソースファイルを配布すればいい それ以前に、ライブラリを配布するなら全てのソースファイルを配布してくれるのが一番ありがたい どうしてもソースの公開がいやならば、静的ライブラリだけでなく、動的ライブラリも付けたほうがいい
- 526 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 11:02:26 ]
- fortran77を使っているのですがファイルをopen分で読み込むプログラムを作成した際
attempt to read past end-of-failというエラーメッセージが表示されます。 この原因と対策について教えていただければありがたいです。
- 527 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 11:36:35 ]
- >>526
>attempt to read past end-of-fail end of file じゃないの? ファイルを読み込んでいるうちに、まだ読まねばならないはずなのに、おしまいまで 来てしまったというエラーだと思う。
- 528 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 21:56:24 ]
- Windows用gFortranに対応しているIDEって何かある?
あと>>503に登録したけどメール来ない(´・ω・`)
- 529 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 23:05:08 ]
- 524です。
>>525 ありがとうございます。確かに、ソースファイルを渡すのが手っ取り早いですね。 静的、動的ライブラリがいいんですね。覚えておきます。 何度も質問で申し訳ありません。Fortran90形式でplplotを使いたいと思うのですが、 CMAKEを使って処理をすればよいとのことでしたが、f90コンパイルをONにしてもエラーになって C++とF77形式のみでしかmakeができません・・・。 できたファイルを見てもほとんどがC++の形式で、VS2005で開いてコンパイルも失敗してしまいます。 どうしたらFortran90形式でライブラリを読み出して使えるようになるでしょうか。
- 530 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 19:37:35 ]
- >>528
eclipse + Photran で大丈夫だと思う。Windows版は使ったことないから保証できんが。 >>529 plplot は使ったことないからわからんな。すまんこ。 おいらはグラフィックは gnuplot に描かせている。system 関数で端末のコマンド打てるから それ使えば自動でグラフ表示できるよ。
- 531 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:01:39 ]
- >>528
Sign Up Now! のところではなく、右下のLINKを踏んで登録だぜ!
- 532 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 02:48:38 ]
- もしかすると基本的なことなのかもしれないのですが調べてもわからなかったので・・・
以下のようなファイルに収められた数値を順番(?)に読み込むことは可能でしょうか 200709150 左から4文字までが年、そこから2文字で月、さらに3文字でガソリンの価格 200710151 最近30年を対象に年ごとのガソリン価格の平均を求めるプログラムを作りたいのですが 200711153 とりあえずデータを年・月・ガソリン価格に分けて読ませたいのですが 200712151 なにかいいアイデアはございませんでしょうか? 200801149 (以下同様に続く)
- 533 名前:532 mailto:sage [2008/09/25(木) 02:50:20 ]
- 書き忘れましたがfortran77を使ってます
- 534 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 08:08:25 ]
- format指定すれば簡単に読めるけど、
「調べてもわからなかったので・・・」の内容を詳しくよろしく
- 535 名前:532 mailto:sage [2008/09/25(木) 09:04:20 ]
- 詳しくいうといくつかのfortran関連サイトや教科書を見たけどわからなかった ということです
- 536 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 09:19:49 ]
- >>535
だれが"調べる"の定義を詳しく言えといったんだ…
- 537 名前:532 mailto:sage [2008/09/25(木) 09:28:28 ]
- といいますと・・・
- 538 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 18:01:49 ]
- 質問者が主に3種類
1) 自分で調べる気がないので神が答えを書いてくれることを期待した丸投げ 2) 丸投げだと印象が悪いかと思い、調べてもいないくせに「調べてもわかりません」 3) ちゃんと調べたけどわからない勤勉な人 回答: a) 質3なら回答してあげたい b) 質2なら遠まわしに回答 c) 質1なら放置 532が教科書等で何を調べたのかどう調べたのかで 教えてあげるかどうか決めたいってことでしょ
- 539 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 18:21:17 ]
- fortranのことで調べてもわからなかったような奴のどこが勤勉なんだよ
こんなもん調べてもわからないような奴の方がカス
- 540 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 22:08:54 ]
- >>532
READ(10, '(I4, I2, I3)') IYEAR, IMONTH, IPRICE これで読め!
- 541 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 17:31:14 ]
- read文は終わった後に次の行に改行しますが、改行しないで今の位置を保持する方法ってありますか?
- 542 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 18:46:24 ]
- >>541
do i=1, 3 read(unit=10, fmt='(I5)', advance='NO') n(i) end do
- 543 名前:541 mailto:sage [2008/09/27(土) 19:09:10 ]
- >>542さん
advanceってreadでも使えるんですか!ありがとうございました。
- 544 名前:デフォルトの名無しさん [2008/09/29(月) 14:28:56 ]
- 実行時にエラーメッセージ「invalid character in field」が表示されます
原因として何が考えられますでしょうか
- 545 名前:544 mailto:sage [2008/09/29(月) 15:35:53 ]
- 自己解決しました。単純なミスでした・・・
一息ついて後でみると以外とすぐミスがわかったりしますよね
- 546 名前:デフォルトの名無しさん [2008/09/29(月) 16:42:11 ]
- FORTRANってやったことないんだけど
なんかこのスレ見てるぶんには PL/Iに文法が似てますねえ
- 547 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 18:28:02 ]
- そりゃ大昔の言語という仲間だからな
- 548 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 23:08:21 ]
- >>546
FORTRANの方が先祖だけどな。 PL/I=FORTRAN+COBOL かな。 昔はIBMに勤めると嫌でもならわされていたような。
- 549 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 00:48:45 ]
- >>530
ありがとうございます。 gnuplotをダウンロードして、早速使ってみました。 うまく工夫すれば直接Fortran計算結果をグラフにできるようなので、いろいろと試してみます。
|

|