1 名前:デフォルトの名無しさん [2006/11/12(日) 17:13:35 ] FORTRAN総合スレッドです。 FORTRAN77/90/95/2003, HPF等、FORTRAN全般に関する話題を書き込んで下さい。 ・FORTRAN関連情報 お約束だが、まずは自分で調べよう www.google.co.jp/ x86で動作するFortranコンパイラ www.nminoru.jp/~nminoru/programming/x86-fortran.html The Fortran Company www.fortran.com/ Polyhedron Software www.polyhedron.co.uk/ Google Directory - Fortran directory.google.com/Top/Computers/Programming/Languages/Fortran/ ・前スレ FORTRAN III pc8.2ch.net/test/read.cgi/tech/1104724162/ FORTRAN II pc5.2ch.net/test/read.cgi/tech/1068351911/ Fortran pc2.2ch.net/test/read.cgi/tech/1003214738/
255 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 23:23:03 ] まあ、バッカスさん自身はあまりFORTRANを好きじゃなかったみたいだしな。
256 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 08:28:32 ] writeをつかってバイナリデータを書き出しているのですが、 マシンによって出力されるバイナリが微妙に違い、 互換性のないバイナリファイルができてしまいます。 どのマシンでも共通のバイナリファイルを読み書きできるようにするには どのようにしたらよいのでしょうか?
257 名前:デフォルトの名無しさん [2007/04/10(火) 10:59:24 ] >>256 無理言うなw どうしてもやりたければ、自分でビット列を生成して、それを1文字にして書け。 それでもあわせるのは不可能。 テキスト文字で出してIBM単密度形式の磁気テープでやり取りするのが一番確実だ。 大体、マシン毎にワード数(バイト数)が異なる場合がある。 昔のACOSは9ビット、CDCも妙なワード長だった。 文字コードにしても、IBM互換のEBCDIC系と(ただしメーカー毎に微妙に違う)、 DECやACOSのASCII系などが入り乱れている。 数値のフォーマットは会社毎にマシン毎にコンパイラ毎に異なるのが普通だ。 さらにはIBM、モトローラ系列BigEndianビット列LittleEndian、DEC、Intel系のLittleEndian系に 分かれている。これらもビット並びでさらに分裂するらしい。 とはいえ、明るい話もある。数値計算の世界では、もはやACOSもCDCもほとんど使われていない。 EBCDICもめったに見なくなった。ワード長は32ビットが普通だし、1バイトは8ビットに統一された。 数値のフォーマットもIEEE754にほぼ統一された。 残る問題はエンディアンだけだ。そのエンディアンすらコンパイラのオプションで大抵は、マシンの 自然体に関わらず、Big/Littleのどちらでも読み書きできるのが普通だ。 ゆえに、『エンディアン』をマニュアルで調べれば、チミの問題は解決する。
258 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 19:09:47 ] インテルのフォートランコンパイラifortを使ってコンパイルしています。 CPUはOpteronなのですが、-xWオプションをつけないとSSEやSSE2は全く使用されないのでしょうか?
259 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 00:11:39 ] >>258 デフォでは使用されなかったと思う。詳しくはHelpで確かめよ。 SSEは厳格にはIEEE754の規約を満たしていないせいか、 あるいは全バイナリー対応のためか?w
260 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 00:22:30 ] Mac用は-xPがデフォルトの様だから互換性のためなんでしょうね。
261 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 13:06:13 ] FORTRANで書き出したバイナリファイルの読み出し方は分かるのですが、 実験機器がはき出したバイナリファイルを読み込むにはどうしたらよいのでしょうか? なお、FORTRANで書き出すと、今使っているマシンでは先頭に4バイトほどの識別データが付加されますが、 実験機器がはき出したバイナリファイルにはこれがついていません。
262 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 17:43:14 ] >>261 ファイルをOPENするときに form="binary" としたり (処理系依存) access="stream" としたり (Fortran 2003)
263 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 02:58:02 ] >>261 DIRECT形式を使って書くという裏技がある。昔のコンパイラでやるにはこれか。 ただ今は>>262 の書くように、F2003拡張の先取りでSTREAMモードが大抵あるのでそれを使うがよろしい。
264 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 21:39:29 ] 面倒なのでCで読み込む。
265 名前:デフォルトの名無しさん [2007/04/25(水) 16:57:37 ] STDCALL の関数を g95 から呼びたいのですが、どうするのがよいでしょうか。
266 名前:デフォルトの名無しさん [2007/04/25(水) 21:35:56 ] >>257 >1バイトは8ビットに統一された。 以前は統一されてなかったの?
267 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 22:37:47 ] >>266 あらゆるものが統一されていなかった。
268 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 14:36:07 ] 今は統一されているといっていいのか?
269 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 16:02:16 ] まあ昔に比べれば
270 名前:デフォルトの名無しさん [2007/05/07(月) 06:10:19 ] fortranで webの結果を得ることできる? get www.hoge.com を行い 結果をファイルに残す あるいは、戻り値 403 not found かどうかの判定とか。 Linux *g77 です
271 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 06:15:37 ] できなくはないだろうけど、 別の言語を使った方がいいと思う。
272 名前:デフォルトの名無しさん [2007/05/07(月) 08:01:53 ] うわ、返事はや! ありがとう。 自由自在に書ける言語がFortranとVB系以外のbasicなんです。 検討してみます
273 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 10:14:30 ] >>270 表示するだけならこんなので動くと思うけど web2console.py ---------------------------- #!/usr/bin/env python import urllib conn = urllib.urlopen("www.yahoo.co.jp/" ) data = conn.read() print data ---------------------------- F2PY - Numerical Analysis with Python scipy.dip.jp/index.php?F2PY nihongo.homeip.net/word/scipy/ じぶんは fortran は使ったことないからよくわからないけど fortran ともそれなりに相性も良いみたいだね…(正直よくわからん)
274 名前:デフォルトの名無しさん [2007/05/07(月) 11:18:23 ] >>270 外人がg77でのやり方を解説しているページがある。 環境変数を使って変数のやり取りをしていた。 LINKがみつかんねーw fortran cgi でググルと色々引っかかる。
275 名前:274 mailto:sage [2007/05/07(月) 11:24:19 ] >>270 ああごめん。 FORTRANでサーバー側のCGIを書くのかと思ったが逆か。 クライアントを書きたいのか。 Windows なら WinInet.Lib+Intel Visual Fortranでなら出来る。 Linuxでもその類のDLLをFortranから呼び出せば何とかなるのではないか?
276 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 13:33:07 ] 【科学技術計算】C言語とFortran どっちがいい? science6.2ch.net/test/read.cgi/sim/1042715803/ 629 名前:名無しさん@5周年[] 投稿日:2007/05/08(火) 07:49:36 FortranかCかなんて議論は馬鹿げているよ。 Fortranなんてもはや化石言語。 だから消去法でCを選ぶ他ない。 しかし君たち。 実はもっとも身近で簡単な科学計算用言語があるのだ。 それがExcelVBA。 答えは案外足元にあったわけだ。 いわゆる青い鳥ってやつだね。 (#^ω^)
277 名前:デフォルトの名無しさん [2007/05/08(火) 21:42:56 ] fortranプログラムの作成依頼はこのスレでできますか?
278 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:37:48 ] >>277 くだすれFORTRAN(超初心者用)その2 pc11.2ch.net/test/read.cgi/tech/1164121236/ どちらかというと、こっちの方がやさしくしてくれるお
279 名前:270 [2007/05/09(水) 23:38:08 ] 皆さんありがとう。 >>273 始め、pythonで「????」でしたが見ると便利ですね。 でもpythonのファイルIO知らないので調べてみます。 >>274 ええ、見る方です。でもcgi検索して見るとfortranでもcgi出来ますね。 FORTRAN(超初心者用)その2 でも聞いてみて良いのかな?
280 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 23:30:44 ] Visual Fortran 9 を使用されている方いますか? 購入を検討しているのですが,アクティベーションあるんかな?
281 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 00:48:26 ] >>280 ネット経由の認証も出来るし、ローカルでのライセンスファイルでの認証も出来る。 どちらかというとネット経由の認証へ移行したいと思っている節がある。 あと1年でライセンスは切れる。切れた後はインストールできない。再インストールも出来ない。 実行には問題ない。ただしバグフィックスは再インストールになるので出来ない。 うっかり消してしまうと、再インストールできない。
282 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 01:03:43 ] ライセンスって単年契約なんですか?恒久権利だと思ってた・・・やっぱり今のVisual Fortran 6使い続けようかなあ.
283 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 08:28:45 ] > 切れた後はインストールできない。再インストールも出来ない。 そんなことはない。 購入後、1年間の間にリリースされたマイナーバージョンアップまでは自由に使えるよ。 使えないのは、それ以降にリリースされた最新版とか、プレミアサポートとか。
284 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 13:01:56 ] ネット経由の認証がいるってことは,複数台のPCにインスコして同時に計算走らせるとかできないわけですよね? (認証なくてもやっちゃだめなんだろうが) 結局この理由でofficeも2000,visual studioも6のまま・・・ Fortranも6でいいかー
285 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 14:30:29 ] >>284 契約したライセンス数を超えて(または契約した使用者以外が)「コンパイラ」を使うのはいけないが コンパイルして出来た実行プログラムの方は配布が可能。 (評価版や非商用ライセンスの場合は別だが) またそのプログラムの実行にIntelが定めた再配布可能ファイルが必要なら、それも含めて配布可能。 ちなみにシングル・ユーザー・ライセンスの場合、契約者個人が同時に1つしか使用しないのであれば コンパイラを複数のPCにインストールすることも可能。 www.intel.com/cd/software/products/asmo-na/eng/compilers/295825.htm
286 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 23:06:03 ] 誰かeclipseを使ってフォートランのコンパイルしている人いませんか? photranの使い方がわからなくて..
287 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 13:33:53 ] >>286 それをやろうとして、諦めたw 設定いろいろいじろうと思うとeclipseまで勉強しなきゃならなくて時間の無駄だと感じた。 設定できたら報告よろ!
288 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 00:09:26 ] 空気読まずに言うけどフリーのリンク先にある FTN77/95のインストール方法 www.coastal-env.k.u-tokyo.ac.jp/koibuchi/fortran.htm 95のインストール先とマニュアルの画面が全然違うのは仕様?
289 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 02:12:36 ] 通りすがりの者だが・・・・ >>288 提供先がSalfortから関連会社のSilverFrostに移行したときに変わってしまったのさ。
290 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 17:02:26 ] >>286 fortranでeclipse使ってるとこってあるんかな? fortranって科学技術系が多いし、他の一般業界の言語やコードに比べたらシンプルだからね・・ 中にはviでガシガシの人もいるし
291 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 19:33:49 ] >>289 サンクス。 じゃあ、あの状態でFortran95をダウンロードするにはどうすれば……? 本来なら説明しているサイトに報告すべきだと思うけど、 SilverFrostでのダウンロード方法を知っている人がいたら教えてください。
292 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 19:55:34 ] >>291 >>141
293 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 10:43:46 ] >>292 サンクス。 上段のページからダウンロードして後、VisualStugio2003をインストールしてたから同じく2003でインストールしました。 あとは複数あるシステムの中で、Fortran教科書に載ってるプログラムを書いて実行するのに選ぶべきシステムとその方法さえわかれば……
294 名前:デフォルトの名無しさん [2007/06/13(水) 22:07:13 ] Fortressについてどう思うよ?
295 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 23:23:23 ] オワタ
296 名前:デフォルトの名無しさん [2007/06/14(木) 00:49:28 ] すいませんが、FORTRAN77で、二階非線形常微分方程式をルンゲ・クッタ法を使ってプログラムを組みたいのですが、 一階なら分かったのですが、高階になるとよくわかりませんorz
297 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 00:54:41 ] >>296 それはプログラムがわからないの? それとも数学がわからないの?
298 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 23:34:11 ] >>296 ルンゲ喰ったなんて、数値計算の本の、頻出事項じゃんか。 図書館に行ったほうが2chに来るより効率的。
299 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 00:09:50 ] ルンゲ警部を喰っちゃうなんて・・・
300 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 10:39:29 ] ペッパーランチでペッパー警部に食われました(正笑
301 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 13:00:52 ] >>300 アッー?
302 名前:デフォルトの名無しさん [2007/07/07(土) 05:25:58 ] FortranからLinuxのsystem関数を利用して出力したモノを 変数に納めたいのですが、どうすればよいのでしょうか? 例えば call system('echo 2') でa.outを実行すると正常に2が出力されるのですが、 その2を変数に代入しようと。 integer var call system('echo 2',var) のようにしてみたのですが、エラーになりました。 character型も試してみたのですが、やはりエラーになりました。
303 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 12:43:32 ] >>302 コンパイラなによ。 ま、マニュアル読んだほうが早いと思うけど。
304 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 13:22:12 ] >>302 call system('echo 2 > hoge.txt') open(10, file='hoge.txt', status='OLD') read(10,*) var close(10,status='DELETE') write(*,*) var
305 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 14:54:26 ] >>303 pgiコンパイラだそうです。 ちょっとマニュアル探してみます。 >>304 コンパイラの問題なのかDELETEのところがちょっとエラーでできなかったのですが。 close(10)としたら変数に2を入れることができました。 ありがとうございました
306 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 14:57:11 ] あ、すみません。 >>304 でできました。
307 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 15:06:41 ] あと、System関数を利用せずに外部ファイルの行数を取得する方法ってありますか? 例えばhoge.txtの中身が ---------- apple 123 456 pie ---------- であれば、そのファイルの行数を読み取りinteger型の変数に3を 代入するという操作を行いたいのです。 もちろんSystem関数の利用でできたのですが、それだとプラットフォームが Linuxに限られてしまうので、Fortranでファイルの処理を行うようにすれば 各種プラットフォーム上でも使えるソースになって便利だなと思いました。 この操作に限らず、Fortranでファイルを編集するための勉強はどのような ところで勉強すればいいのでしょうか?
308 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 17:41:38 ] >>307 普通に空readでend of file が出るまでまわして、変数に一足していけばいい。
309 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 08:19:26 ] >>308 できました。 [Fortran]$ cat num_of_tmp sfejoiwa seflkew sfepo pweko wsefk sefpowe posef sdf s;ef [Fortran]$ ./a.out x = 8 ありがとうございました(><)
310 名前:TESTちゅう [2007/07/12(木) 17:03:55 ] フィボナッチのプログラムが急ぎで必要です。だれか教えてください!!!
311 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 21:18:17 ] WRITE(*,*) 'N=' READ (*,*) N DO 10 I=1,N IF0=IF1 IF1=IF2 IF ( I.GT.2 ) THEN IF2=IF1+IF0 ELSE IF2 = 1 END IF 10 WRITE(*,*) I,IF2 STOP END
312 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:54:57 ] Numerical Recipes の第3版が出るらしいな。
313 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 03:14:53 ] 確かに本家の看板に出てるね www.nr.com/ 情報さんくす
314 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 03:17:27 ] ↑ってC++がメインになってないか(笑) 微妙にスレちがいかも
315 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 23:37:05 ] >>314 ホントだ 裏切られた!www 怪しからん奈!
316 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 03:17:16 ] >>314 FORTRAN版は出す気あるのかな? 初版の非Fortran版はトランスレータにかけただけのような gotoバリバリコードで出版していたのだから、無茶なFortranコードでも 著者は別に気にしないよなw
317 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 04:09:06 ] >>316 どうだろ?C++の機能をつかって実装しているようだから、 以前の FORTRAN -> それ以外の言語 の移植とは訳が違いそう NRの2nd(1992)から3rd(2007)への以降に15年掛かっているね たぶん3rdに取り組み始めた頃は、まだC++が輝いてたんだろ 複素数の取り扱いが、クソややこしいテンプレートになっていたり、 整合配列に問題があったりと、C++は数値計算に向いてない c99の方がずっとマシ(ただし、こっちは対応コンパイラがPGIぐらいしか無い) Fortran90かFORTRAN77のまま、アルゴリズムだけ進歩させた方が良かったと思うよ NRのメリットは安い値段とソースコード付きってとこだったが、 C++のみになると、あんまりメリット感じないね C言語だとGSLとかあるしね どうせ自由に配布できないんだったら NAG, IMSLの方がいいんじゃないか? 少なくとも漏れはNR 3rdイラネ
318 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 13:01:52 ] >>317 あれれ2版からも15年たってるのかよw しかしアルゴリズムの進歩版とかのってはいないのかね? 第2版では、初版に無かったnon-numerical algorisms の章が一番役に立ったw CRC16とかHuffman符号化とか、情報工学的なアルゴリズムが、数値計算との垣根を乗り越えてきた タイミングだったのか。
319 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:48:31 ] 今日本屋に行ったらこんな本があった。 Fortress言語―マルチコア時代の並列化プログラミング言語 もう出すのかよw ざっと見た感じ糞本だったがw
320 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 12:21:50 ] まったく話を聞かないしなぁ>Fortress スラドでも議論があったけど、将来も普及する見込みは厳しそうね
321 名前:デフォルトの名無しさん [2007/07/23(月) 01:55:57 ] >>320 よく知らんが、SUNのマルチコアCPUに大量のスレッドをばら撒いて並列計算させるという コンセプトの言語なんだろ? アイデアとしては面白いんで内科医? Haskellっぽい仕様も入れているらしいし、次世代の踏み台にwww
322 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 10:15:40 ] >>321 オープンにしたからSUNの石専用ってわけじゃないのでは? 確かに踏み台ぽいなw
323 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:44:19 ] Thoughts on Language Design New challenges require new solutions Guy L. Steele Jr. ttp://www.ddj.com/dept/architect/184406382 まぁ、それなりに考えがあってFortressを作っているようだ。 Sunがアメリカのスパコン助成から脱落したので、さいさきは暗いだろう。 日本(富士通)で拾う振りをして、アメリカに疑心暗鬼を起こさせるのが吉だと思うwwww
324 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 09:34:34 ] >日本(富士通)で拾う振りをして、アメリカに疑心暗鬼を起こさせる スゲーwwww 策士っすねw
325 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:35:12 ] >>324 最近の最速スパコン競争は、なんか土建屋の既得権争いっぽいから、 釣りに走って遊ぶほうが、たしかにいい気がするw
326 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 22:19:24 ] 「スカラ型とベクトル型を両輪に」,次世代スパコン構成の狙いを語る ttp://techon.nikkeibp.co.jp/article/NEWS/20070808/137619/
327 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 21:56:30 ] >>326 53. 次世代、ペタスケール、T2K (2007/8/12) ttp://grape.mtk.nao.ac.jp/~makino/articles/future_sc/note054.html#rdocsect59 すっぱいぶどうの更新w
328 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 02:10:13 ] Cygwin上で動くfortran90コンパイラってありませんか? すみませんが どなたか情報をお持ちでしたら教えて下さい。
329 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 18:45:37 ] >>328 以前 g95.sourceforge.net/ を試したら動いた
330 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 19:08:37 ] >>328 ttp://g95.sourceforge.net/ でも、なんでパッケージに入ってないんだろう?
331 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 20:03:47 ] CygwinのGCCが4.x.xになったらこっちが入るからじゃないかな ttp://gcc.gnu.org/wiki/GFortran
332 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 20:17:52 ] >>329 - 330 ありがとうございまs。試してみます!
333 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 23:01:43 ] Steve Lionel のコラムで、FORTRANで書かれた(多分)世界初のアドベンチャーゲームネタが出ている。 softwareblogs.intel.com/2007/08/22/you-are-in-a-maze-of-twisty-little-passages-all-alike/
334 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 23:11:05 ] マジカヨ
335 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 23:10:18 ] Intel fortranて、バージョン10になってから、MKLがおまけで付いてくるようになったな。 MKL買った人カワイソス=おれ
336 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 23:28:08 ] おまけと言ってもMKL有りとなしじゃ、けっこう価格差が…
337 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 00:31:24 ] >>335 忘れたがMKLのライセンスからをコンパイラのライセンスに転換できて2個分になったんじゃ中田ッけ? ガセだったら酢マンコw
338 名前:335 mailto:sage [2007/08/31(金) 01:05:11 ] 9→10へのバージョンアップのときに、スタンダード版からプロフェッショナル版への変更が 安く(1万円くらい)できただけだった。いずれにしても、MKL単体で買って損した気分だ。
339 名前:デフォルトの名無しさん [2007/09/07(金) 13:02:07 ] www.nag-j.co.jp/fortran_compiler.htm NAGのcompiler IntelMac版登場 トライアルができる
340 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 21:10:14 ] intel fortran compiler for windows 9.0 を使用していて icl.cs.utk.edu/lapack-for-windows/nmake_install.html の手順に従いlapackとblasを導入しようとしてますが 1. C:\Program Files\LAPACK_3.1.1_for_Windows\LAPACK 3.1.1 for Windows\ に移動 2. set_environment.bat x86 Intel と入力(Blasはデフォルトを使用) 4. nmake /nologo all とすると xilib.exe /OUT:"C:\Program Files\LAPACK_3.1.1_for_Windows\LAPACK 3.1.1 for Windows\blas.lib" *.obj が実行されているときに次の旨の表示がでてうまくいきません。 "lib"を実行しています "lib"がみつかりません >>197 の slim に相当する形でxilibが使われているものだと思うんだけど、どう使用すればうまくいくのかわかりません。 ちなみにxilib に代えて xilink /lib を使っても同じです。 blas.lib lapack.lib を作るにはどうすればよいでしょうか?
341 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 13:51:43 ] 質問です。 fortran95を使っているのですが do i=1, size(A) A(i) = hoge + i * fuga end do みたいのを A = hoge + [なにか] * fuga のようにして添字を配列演算に用いて一行にまとめられないのでしょうか? それと do i=1, size(A) hoge = 複雑な式 A(i) = hoge * fuga B(i) = hoge * piyo end do のような場合、 A = 複雑な式 * fuga B = 複雑な式 * piyo と書く事で二度計算されてしまうのは無駄ですし 式が長くなって読みづらいのですが、配列演算に対する一時変数のようなものは無いのでしょうか。
342 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 21:33:40 ] >>340 Visual Studioに含まれているlib.exe/link.exeへのパスが通ってない。 通常はset_environment.batから呼ばれている "%IFORT_COMPILER91%\IA32\Bin\ifortVars.bat" の中でVSへの設定も行われるはずだが 環境変数 IFORT_COMPILER91 はIVF9.1用の設定なので IVF9.0なら IFORT_COMPILER90、10.0なら IFORT_COMPILER10 に変更する必要がある。 ifortVars.bat を実行してもlib.exe/link.exeが使えない場合は ifortVars.bat を修正するか、予めVS中の VSVars32.bat か VCVars32.bat を実行しておく必要がある。
343 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 23:48:01 ] >>341 A = hoge + (/(i,i=1,size(A))/) * fuga
344 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 17:01:44 ] >>343 ありがとうございます。こんな素直な方法があったんですね。 後者については今のところ難しいでしょうか。 あと配列演算に使える関数が作れるといいのですが、これも難しいですかね。 配列をもらって配列を返すようなタイプだと一次的に戻り値用の配列を確保しなくてはいけないので現実的ではないんです。
345 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 19:36:29 ] >>344 しかし>>343 のようにやると、いったん暗黙のテンポラリ配列が生成されて それから積が取られることになるので、DO LOOPの展開式とは等価ではない。 >あと配列演算に使える関数が作れるといいのですが、これも難しいですかね。 elementalだったかpureオプションつければ可能だった気がする。 調べてくれw
346 名前:345 mailto:sage [2007/09/11(火) 01:37:16 ] >>344 MODULE m_elemental CONTAINS ELEMENTAL REAL FUNCTION watson(x) IMPLICIT NONE REAL, INTENT(IN) :: x watson = x**2 RETURN END FUNCTION watson END MODULE m_elemental ! PROGRAM holmes USE m_elemental IMPLICIT NONE INTEGER :: i REAL :: x(10), y(10) DO i = 1, 10 x(i) = REAL(i) END DO y = watson(x) PRINT '(10f7.1)', x PRINT '(10f7.1)', y STOP END PROGRAM holmes 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 1.0 4.0 9.0 16.0 25.0 36.0 49.0 64.0 81.0 100.0 Press any key to continue . . . elemental ⊂ pure だったw
347 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 12:33:44 ] >>345 試してみましたが確かにテンポラリ配列作られてますね。 elementalは便利ですね。ありがとうございました。
348 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 19:16:35 ] >>347 a(1:n) とか部分配列の類もテンポラリを作ることが多いので、 ソースコードが短くなるからと調子に乗って、DO LOOPの代わりに乱用すると、 思わぬところでスタックオーバーフローとかで憤死する。 ベクトル機の場合は一旦テンポラリ配列に展開したほうが早くなるだろうが、 パイプラインのスカラー機の場合はDO LOOPのままの方が早いのではないかと思う。 まぁ勝手に最適化するかも知れんし、トレードオフが色々あるので、なんとも胃炎が。
349 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 15:26:34 ] age
350 名前:デフォルトの名無しさん [2007/09/18(火) 22:17:04 ] ageも満足にできんのか!!
351 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 00:26:58 ] intel Visual fortran 10.0 日本語版 発売
352 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 01:08:09 ] 「日本語版」つーてもFortranの場合、コンパイラのメッセージは英語のままだからありがたみがないなぁ。 日本語マニュアルは別途ダウンロードできるし。
353 名前:デフォルトの名無しさん [2007/09/21(金) 23:56:06 ] 質問です。 fortran77を使っているのですが、コンパイラ時にはノーエラーで、実行のときランタイムエラーと表示されるのですが、 WARNING - Label 170 has not been referenced NO ERRORS,1 WARNINGS [<MAIN@>FTN77 Ver 4.03] Creating executable: sinchouryuu.exe *** Unable to create executable file: sinchouryuu.exe 実行可能なファイルの作り方を教えて下さい。 あと、実行時のエラーの 00401000 MAIN# [+174f] て書いてあるのですが、どういう意味でしょうか? 因みに170行は 166:* cnbの転置行列 167: 168: do 70 j=1,10 169: do 80 i=1,6 170: 171: cbn(j,i)=cnb(i,j) 172: 173: 80 continue 174: 70 continue こんなんなんです。
354 名前:デフォルトの名無しさん [2007/09/22(土) 00:01:51 ] ヤコビアン行列がつくれません!! どういった風に作るのか、作り方をどなたかおしえてください!
355 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 21:55:29 ] >>353 >fortran77を使っているのですが それは「規格の種類」であってこの場合、それよりも使用しているコンパイラや OSの名前を書いてくれた方がありがたい。 > WARNING - Label 170 has not been referenced 「170行」ではなく文番号の170が参照されていない。 > *** Unable to create executable file: sinchouryuu.exe > 実行可能なファイルの作り方を教えて下さい。 おそらくsinchouryuu.exeを実行中で書き換えられないのだろう。 すべてのsinchouryuu.exeを終了させてからコンパイルするのだ。 > 00401000 MAIN# [+174f] > て書いてあるのですが、どういう意味でしょうか? MAIN#(プログラムの開始位置)から 5919バイト目の位置でエラーが発生した。 エラーの種類はFTN77の場合、ダイアログの上の方に書いてある。 >>354 つ google