このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
FORTRAN使いが優しくコメントを返しますが、
お礼はFORTRANの布教と初心者の救済と次期Fortran2008規格でのCOMEFROM文採用をお願いします。
●注意事項
・質問する前にGoogle等の検索サイトで検索しましょう。
・回答者にわかりやすい様に、質問内容はできる限り詳しく書きましょう。
・エラーの場合は起きた状況、環境(OS・コンパイラ・バージョン)、エラーメッセージも詳しく書きましょう。
●前スレ
くだすれFORTRAN(超初心者用)その5
http://toro.2ch.net/test/read.cgi/tech/1269704830/
●過去スレ
くだすれFORTRAN(超初心者用)その4
http://pc12.2ch.net/test/read.cgi/tech/1232789521/
くだすれFORTRAN(超初心者用)その3
http://pc11.2ch.net/test/read.cgi/tech/1196384126/
くだすれFORTRAN(超初心者用)その2
http://pc11.2ch.net/test/read.cgi/tech/1164121236/
くだすれFORTRAN(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1138063703/
くだすれFORTRAN(超初心者用)その6
■ このスレッドは過去ログ倉庫に格納されています
2012/08/16(木) 20:58:00.31
554デフォルトの名無しさん
2014/07/11(金) 15:22:52.88ID:RyCozEJp >552
equivacenle(A, V1)
A(1)==V1 にはなるが、V2,V3,V4がV1の直後に連続的に配列されていなければ
A(2),A(3),A(4)とV2,V3,V4は全くの無関係となってしまいます。
MAPファイルを書かせてみれば、位置関係は分かります。
最近のコンパイラはかなりソース上の順番とは無関係に自由に
並べ替えるので、うまくいかない可能性大かと。
EQUIVALENCEはDeprecated Listに上がっていました。
この先廃止の見込みが高いので避けた方がいいリストかな?
deprecated -> obsolescent -> deleted の三弾活用の1段目。
equivacenle(A, V1)
A(1)==V1 にはなるが、V2,V3,V4がV1の直後に連続的に配列されていなければ
A(2),A(3),A(4)とV2,V3,V4は全くの無関係となってしまいます。
MAPファイルを書かせてみれば、位置関係は分かります。
最近のコンパイラはかなりソース上の順番とは無関係に自由に
並べ替えるので、うまくいかない可能性大かと。
EQUIVALENCEはDeprecated Listに上がっていました。
この先廃止の見込みが高いので避けた方がいいリストかな?
deprecated -> obsolescent -> deleted の三弾活用の1段目。
555デフォルトの名無しさん
2014/07/12(土) 03:13:21.15ID:hZ9DjkyP 555
556デフォルトの名無しさん
2014/07/12(土) 11:23:27.92ID:Rc8WL8IV >>555
ダミアンもどき
ダミアンもどき
557デフォルトの名無しさん
2014/07/13(日) 00:10:07.50ID:+Eo/x1ZD サブルーチンの内部ではうまく計算されているのに、
メインでwriteするとよくわからない大きな数値になってしまっているのですが、
なにか解決のヒントないでしょうか?
断片的で申し訳ありません
メインでwriteするとよくわからない大きな数値になってしまっているのですが、
なにか解決のヒントないでしょうか?
断片的で申し訳ありません
558デフォルトの名無しさん
2014/07/13(日) 00:31:08.73ID:+Eo/x1ZD すいません自己解決しました
配列宣言の量が少なかったボンミスです
allocatable使わないとこういうことになるんでしょうか
お騒がせしました
配列宣言の量が少なかったボンミスです
allocatable使わないとこういうことになるんでしょうか
お騒がせしました
559デフォルトの名無しさん
2014/07/19(土) 14:16:39.37ID:BjGmX3Lx 2014年になってもFORTRANが選ばれる理由
ttp://developers.slashdot.jp/story/14/05/12/0410259/2014%E5%B9%B4%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%82%82FORTRAN%E3%81%8C%E9%81%B8%E3%81%B0%E3%82%8C%E3%82%8B%E7%90%86%E7%94%B1
まだ残っていきそうな感じだね
ttp://developers.slashdot.jp/story/14/05/12/0410259/2014%E5%B9%B4%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%82%82FORTRAN%E3%81%8C%E9%81%B8%E3%81%B0%E3%82%8C%E3%82%8B%E7%90%86%E7%94%B1
まだ残っていきそうな感じだね
560デフォルトの名無しさん
2014/07/20(日) 02:33:05.33ID:RXdcC8ex FORTRANで書かれたBLAS/LAPACKをライブラリとして呼び出しているLLが
FORTRANと同等のスピードが出ることを大々的に喧伝すると、
それに釣られて、もうFORTRANは要らないのだ!とか言い出す人が、
情強を誇るネットの有名人にも多いので草不可避w
FORTRANと同等のスピードが出ることを大々的に喧伝すると、
それに釣られて、もうFORTRANは要らないのだ!とか言い出す人が、
情強を誇るネットの有名人にも多いので草不可避w
561デフォルトの名無しさん
2014/07/27(日) 19:42:35.57ID:fTZkfzZt >>553の問題は解決したのかいな?
562デフォルトの名無しさん
2014/08/04(月) 11:41:31.29ID:IXwYtmhs バイナリ出力をするときにOPEN文に指定する
form='binary'はFortranの標準ではなく、独自拡張みたいですが、
標準のコーディングだけで'binary'と完全に等価なバイナリ出力をする方法はありますか?
form='unformatted'を指定すると、write文を書くたびに
データの最初と最後に4バイトのレコード長がつき、
form='binary'を指定すると前後4バイトがつかないみたいです。
form='binary'はFortranの標準ではなく、独自拡張みたいですが、
標準のコーディングだけで'binary'と完全に等価なバイナリ出力をする方法はありますか?
form='unformatted'を指定すると、write文を書くたびに
データの最初と最後に4バイトのレコード長がつき、
form='binary'を指定すると前後4バイトがつかないみたいです。
563デフォルトの名無しさん
2014/08/04(月) 17:53:28.34ID:fzuw5J0Z Fortran2003以降ならストリームが使える
http://www.nag-j.co.jp/fortran/fortran2003/Fortran2003_7_1.html#AUTOTOC_7_1
http://www.nag-j.co.jp/fortran/fortran2003/Fortran2003_7_1.html#AUTOTOC_7_1
565デフォルトの名無しさん
2014/08/05(火) 02:23:56.59ID:BDydvxMf directファイルを使うテクニックもある。
確実ではないが、大抵の処理系では、バイトまたはワード単位でべた書き
しているので、binaryの代わりに使える。
バイトかワードかは処理系によるが、コンパイラのオプションでどっちにも
できることが多い。
まぁ今の時代は素直に stream だろうが。
確実ではないが、大抵の処理系では、バイトまたはワード単位でべた書き
しているので、binaryの代わりに使える。
バイトかワードかは処理系によるが、コンパイラのオプションでどっちにも
できることが多い。
まぁ今の時代は素直に stream だろうが。
566562
2014/08/07(木) 21:48:00.99ID:ZvlX+BXk >>565
またまたありがとうございます。今日、会社でstreamを試してみたら、
コンパイラが古いためか(Windows版Intel Fortran 9.1)、
コンパイル時に「streamなんて知らないよ」って言われました。
directで試してみることにします。
またまたありがとうございます。今日、会社でstreamを試してみたら、
コンパイラが古いためか(Windows版Intel Fortran 9.1)、
コンパイル時に「streamなんて知らないよ」って言われました。
directで試してみることにします。
567デフォルトの名無しさん
2014/08/13(水) 10:42:21.52ID:KHi6ZJrR 構造型にSave属性つけられないんですけど
構造型をModuleに入れてグローバル変数として使いまわすのは危険(未定義になる可能性があるん)でしょうか
あとFortranの質問じゃないかもしれませんが
Intel MKLのBLAS/Lapack95はpure procedureであるとInterface定義に明記されてるけど
BLAS/Lapack77はPureなんでしょうか
構造型をModuleに入れてグローバル変数として使いまわすのは危険(未定義になる可能性があるん)でしょうか
あとFortranの質問じゃないかもしれませんが
Intel MKLのBLAS/Lapack95はpure procedureであるとInterface定義に明記されてるけど
BLAS/Lapack77はPureなんでしょうか
568デフォルトの名無しさん
2014/08/13(水) 11:45:31.24ID:KHi6ZJrR ↑すみません 多分自己解決しました
構造体の定義のあと変数宣言したものにはsave属性つけられますね(定義しかしてなかった)
BLAS77は間違った引数渡すと標準出力(か標準エラー出力)になんか表示されるのでpureじゃないってことでしょうかね
構造体の定義のあと変数宣言したものにはsave属性つけられますね(定義しかしてなかった)
BLAS77は間違った引数渡すと標準出力(か標準エラー出力)になんか表示されるのでpureじゃないってことでしょうかね
569デフォルトの名無しさん
2014/08/13(水) 12:55:08.27ID:RBRmoRtS >>568
そもそもFORTRAN77には言語仕様上pureは存在しない。
Lapack95はFortran95以降のプログラムからLAPACKのprocedureを
利用し易くするためのラッパーライブラリに過ぎない。
そもそもFORTRAN77には言語仕様上pureは存在しない。
Lapack95はFortran95以降のプログラムからLAPACKのprocedureを
利用し易くするためのラッパーライブラリに過ぎない。
570デフォルトの名無しさん
2014/08/13(水) 22:38:10.66ID:/aB3oPfT (コンパイル済みの)外部サブルーチンが真にpureかどうかは開発者/提供者の責任かと
例外処理は pure 要件から外していいと判断し、
pure と明記しておくことで最適化を妨げないようにしたのだろう
例外処理は pure 要件から外していいと判断し、
pure と明記しておくことで最適化を妨げないようにしたのだろう
571デフォルトの名無しさん
2014/08/14(木) 02:43:06.91ID:EFpyKW9s Fortranの組み込みサブルーチンで、乱数がサブルーチンで関数になっていないから
他言語に比べて使いにくいなと思っていたが、FORTRAN は PURE じゃないものは
関数にしない方針で一貫していて、乱数はPURE(参照透明)じゃないから
関数にしなかったんだと分かって、なんか納得した。時刻サブルーチンとかも。
最近関数型、関数型うるさいけど、他言語は意外にその辺一貫してないよな。
まぁFORTRANの場合、依存性があると最適化の邪魔になるから、
依存性を嫌っているだけだけどw 結果的にはより徹底している。
他言語に比べて使いにくいなと思っていたが、FORTRAN は PURE じゃないものは
関数にしない方針で一貫していて、乱数はPURE(参照透明)じゃないから
関数にしなかったんだと分かって、なんか納得した。時刻サブルーチンとかも。
最近関数型、関数型うるさいけど、他言語は意外にその辺一貫してないよな。
まぁFORTRANの場合、依存性があると最適化の邪魔になるから、
依存性を嫌っているだけだけどw 結果的にはより徹底している。
572デフォルトの名無しさん
2014/08/21(木) 12:25:07.46ID:J2kSTdr3 マットラボてどうなん?フォートランと比べて何か秀でた点ある?
573デフォルトの名無しさん
2014/08/21(木) 22:20:31.76ID:f+zPplkQ そんなん解決したい問題,実装したい理論によりけりやろ
まあ計算規模が小さくて使いたいライブラリがMATLABにあるならそっち使ったほうが幸せになれるぞきっと
まあ計算規模が小さくて使いたいライブラリがMATLABにあるならそっち使ったほうが幸せになれるぞきっと
574デフォルトの名無しさん
2014/08/23(土) 12:29:18.39ID:r0lW6Kse575デフォルトの名無しさん
2014/08/24(日) 20:56:38.40ID:JVJfgdMr MINUIT使えば
576デフォルトの名無しさん
2014/08/28(木) 13:13:31.88ID:G1Zq4e11 MATLABって個人使用なら五千円に値下げになってなかったけ?
577デフォルトの名無しさん
2014/08/30(土) 13:35:28.03ID:SJevJ5zH578デフォルトの名無しさん
2014/08/31(日) 23:33:34.12ID:ChHwlQ4k 興味でお聞きしたいのですがfortranで株の発注のようなことはできたりしませんか?
例えば証券ホームページににログインし発注操作するなど・・
そういう言語じゃないのかもしれませんが・・
例えば証券ホームページににログインし発注操作するなど・・
そういう言語じゃないのかもしれませんが・・
579デフォルトの名無しさん
2014/08/31(日) 23:49:50.53ID:lawRyb1w fortranからC言語の関数呼び出せるので...
それじゃ邪道ですかw
まあHFTも金勘定も数値計算だしいいんじゃないでしょうかね
それじゃ邪道ですかw
まあHFTも金勘定も数値計算だしいいんじゃないでしょうかね
580デフォルトの名無しさん
2014/09/01(月) 03:24:17.76ID:xOVRhMZQ そう言えば、Fortranって少数第n位以下を切り捨てみたいな関数ないんだね…
Excelで言うrounddownみたいなやつ。
今、ファイル書き出すのに一々四捨五入されちまって困りマクリングでつ、はい(´・_・`)
Excelで言うrounddownみたいなやつ。
今、ファイル書き出すのに一々四捨五入されちまって困りマクリングでつ、はい(´・_・`)
581デフォルトの名無しさん
2014/09/01(月) 13:00:12.21ID:3fk/vRi5 >>580
簡単だし自作したら良いじゃない?
簡単だし自作したら良いじゃない?
582デフォルトの名無しさん
2014/09/01(月) 22:10:23.80ID:wdLC/vQV583デフォルトの名無しさん
2014/09/02(火) 07:37:26.28ID:ADLMggi1584デフォルトの名無しさん
2014/09/02(火) 08:58:57.02ID:wSUV6Pdf そんなに端数が気になるならもうひと桁増やして丸めればよかろうに
585デフォルトの名無しさん
2014/09/02(火) 20:48:24.61ID:vngmZpQR むしろ、簡単に実装できるのにわざわざ関数がある言語のが珍しいかと
586デフォルトの名無しさん
2014/09/02(火) 21:36:00.72ID:2O5G2v8m >>584
0.4999999999を小数点以下3桁で切り捨て表示するために4桁で文字列化しても内部処理が丸めだと0.500になってしまうかもしれんぞ
素直に1000倍して切り捨てて1000で割るがよろしい
0.4999999999を小数点以下3桁で切り捨て表示するために4桁で文字列化しても内部処理が丸めだと0.500になってしまうかもしれんぞ
素直に1000倍して切り捨てて1000で割るがよろしい
587デフォルトの名無しさん
2014/09/03(水) 02:46:13.39ID:TB1UfkpT >>580
なぬ?途中の計算の話じゃなくて、I/O 時の話か?
それならあるぞ。F2003もしくはF2008の機能だと思うが。
write(*, '(rd, f15.1)') 1.45 ! 1.4
write(*, '(ru, f15.1)') 1.45 ! 1.5
このほか rz, rn, rc もある。
それぞれ round up, round down, round to zero, round to nearest, round to compatible
最後の二つは最近接への丸めだが、等距離の時に、偶数への丸めかゼロから遠い方への丸めかだと思う
まぁ詳しくはマニュアルとIEEE754-2008の仕様をよく読んでくれ。
なぬ?途中の計算の話じゃなくて、I/O 時の話か?
それならあるぞ。F2003もしくはF2008の機能だと思うが。
write(*, '(rd, f15.1)') 1.45 ! 1.4
write(*, '(ru, f15.1)') 1.45 ! 1.5
このほか rz, rn, rc もある。
それぞれ round up, round down, round to zero, round to nearest, round to compatible
最後の二つは最近接への丸めだが、等距離の時に、偶数への丸めかゼロから遠い方への丸めかだと思う
まぁ詳しくはマニュアルとIEEE754-2008の仕様をよく読んでくれ。
588デフォルトの名無しさん
2014/09/03(水) 13:00:08.93ID:TB1UfkpT 昼休みに調べたら rd ru の類はF2003だった。
あと rp processor dependent という処理系依存型もあるようだ。
あとOPEN文で指定する方法もある。
しかし、正直いって>>580の基本的発想が間違っている。
他の人達のアドバイスにあるように、そもそも内部二進表現を十進表現に
直すときに丸めなどが入ってしまう。そのうえでさらに十進表現を
丸めようとするのが Fortran 的センスではおかしい。
だからみんな当惑した反応しか返さない。
とはいえ自然科学ではない商習慣等での丸め等もあるようだから
別にそれがいけないわけでなく、それに合った言語例えば
BCD演算できるCOBOLなどで計算すべきのみ。
あと rp processor dependent という処理系依存型もあるようだ。
あとOPEN文で指定する方法もある。
しかし、正直いって>>580の基本的発想が間違っている。
他の人達のアドバイスにあるように、そもそも内部二進表現を十進表現に
直すときに丸めなどが入ってしまう。そのうえでさらに十進表現を
丸めようとするのが Fortran 的センスではおかしい。
だからみんな当惑した反応しか返さない。
とはいえ自然科学ではない商習慣等での丸め等もあるようだから
別にそれがいけないわけでなく、それに合った言語例えば
BCD演算できるCOBOLなどで計算すべきのみ。
589デフォルトの名無しさん
2014/09/03(水) 22:10:06.94ID:aKlULROR 2015出たんだね
590デフォルトの名無しさん
2014/09/04(木) 02:18:06.97ID:dS3FSElc Fortran コンパイラメーカ
Intel PGI Pathscale (Intel NVidia AMD/ATI) アクセレレータ御三家
Absoft NAG 独自色
Lahey/Fujitsu Silverfrost 斜陽族
GFortran g95 GNU Free系
こんなとこか?
Intel PGI Pathscale (Intel NVidia AMD/ATI) アクセレレータ御三家
Absoft NAG 独自色
Lahey/Fujitsu Silverfrost 斜陽族
GFortran g95 GNU Free系
こんなとこか?
591デフォルトの名無しさん
2014/09/04(木) 02:51:19.67ID:Yy5o2rJg Free系にOpen64と(一応)dragoneggがあるぞ
dragoneggはgcc4.8.3以降はサポートしてないしflangは開発止まってるし
この辺が活発化すれば若い人がたくさん来ると思うんだけどな
dragoneggはgcc4.8.3以降はサポートしてないしflangは開発止まってるし
この辺が活発化すれば若い人がたくさん来ると思うんだけどな
592デフォルトの名無しさん
2014/09/05(金) 04:17:28.12ID:tI2mbO8v GNUでFortranやAdaが熱心にサポートされているのは、米国防総省あたりからの
金が流れているからなのかな?
意識高いw進歩的wCS学科若年層には人気は全くないのに。
それともおっさん層しかやってないからなのか?
そのわりにGNU COBOLとかPL/IとかALGOL、PASCAL、Modula-2とかやらないし。
金が流れているからなのかな?
意識高いw進歩的wCS学科若年層には人気は全くないのに。
それともおっさん層しかやってないからなのか?
そのわりにGNU COBOLとかPL/IとかALGOL、PASCAL、Modula-2とかやらないし。
593デフォルトの名無しさん
2014/09/05(金) 08:06:03.87ID:DENIJuH5 >>587
でもfortran95でしょ、ほとんどサポしてるのは
でもfortran95でしょ、ほとんどサポしてるのは
594デフォルトの名無しさん
2014/09/07(日) 03:06:28.08ID:5kwVdIF1 Cray, IBM, PGI, Intel が F2003 完全対応したな。
NAGはあと一歩。
GFortranは進捗どうですか?
スパコンだと SXは90 Hitachiも90? Fujitsuは95?
それぞれつまみ食い的に拡張してあるが。
NAGはあと一歩。
GFortranは進捗どうですか?
スパコンだと SXは90 Hitachiも90? Fujitsuは95?
それぞれつまみ食い的に拡張してあるが。
595デフォルトの名無しさん
2014/09/07(日) 04:28:58.48ID:+IELT+xO 日立のはコンパイルオプション-hf95で問題なく使えてたがあれ完全準拠じゃなかったのかな
まあ完全準拠だったらわざわざfortran90コンパイラとは名乗らないか
まあ完全準拠だったらわざわざfortran90コンパイラとは名乗らないか
596デフォルトの名無しさん
2014/09/10(水) 14:57:01.18ID:rySPmzVQ そういや、fortranのデータの取り扱い方について詳しくかいせつしてる本てあまりないね。
597デフォルトの名無しさん
2014/09/13(土) 13:38:42.01ID:xbN/YUGu fortranのデータってなんじゃい?ファイルのことか?
598デフォルトの名無しさん
2014/09/13(土) 20:59:58.06ID:1ASLKxa3 >>596
format read writeのことなら、コンパイラーの取扱説明書が(独自仕様拡張部分も含めて)もっとも詳しいよね。
format read writeのことなら、コンパイラーの取扱説明書が(独自仕様拡張部分も含めて)もっとも詳しいよね。
599デフォルトの名無しさん
2014/09/14(日) 15:27:09.67ID:aEQdUpNg intel fortranはIMSLも非商用は無償にしてくれないかな・・
600デフォルトの名無しさん
2014/09/15(月) 02:35:29.49ID:0r1HU9OA IMSLは会社が違うから無理だべ。
IntelはCPU売るためにソフトのコンパイラを撒き餌としてばら撒いてもペイするが、
IMSLの方としては特に得しないし。
富士通がLaheyにOEM供給した時にコンパイラにSSL2とかただでバンドルしていたが。
NECがASLをちょー高値で売っていたことを考えれば、ちょー太っ腹だった。
それはそうと日本の大学の大型計算機センターにたまっていたライブラリも、
NETLIBみたいにネットに公開して吐き出せばいいのに。
IntelはCPU売るためにソフトのコンパイラを撒き餌としてばら撒いてもペイするが、
IMSLの方としては特に得しないし。
富士通がLaheyにOEM供給した時にコンパイラにSSL2とかただでバンドルしていたが。
NECがASLをちょー高値で売っていたことを考えれば、ちょー太っ腹だった。
それはそうと日本の大学の大型計算機センターにたまっていたライブラリも、
NETLIBみたいにネットに公開して吐き出せばいいのに。
601デフォルトの名無しさん
2014/09/15(月) 09:55:29.48ID:SmofGg9r602デフォルトの名無しさん
2014/09/15(月) 11:07:29.74ID:WIy8nvhC GForce思い出したわ
603538
2014/09/16(火) 03:14:29.14ID:EYsbMZCB604デフォルトの名無しさん
2014/09/17(水) 01:15:32.64ID:OkbA3cQE >>603
当該 READ 文の FORMAT 文を見ると分かる。
たぶん昔のプログラムだから READ(99, 1000) N,B,C... みたいになっているだろう。
その場合行番号付で 1000 FORMAT(1H , 云々) となっている FORMAT文を見ればいい。
その行と引用しているREAD文を2chにコピペすればいい。
どの行かわからんというならDEBUGオプションでtracebackをオンにしてやれば
エラーで死んだところで行番号が出るはず。
当該 READ 文の FORMAT 文を見ると分かる。
たぶん昔のプログラムだから READ(99, 1000) N,B,C... みたいになっているだろう。
その場合行番号付で 1000 FORMAT(1H , 云々) となっている FORMAT文を見ればいい。
その行と引用しているREAD文を2chにコピペすればいい。
どの行かわからんというならDEBUGオプションでtracebackをオンにしてやれば
エラーで死んだところで行番号が出るはず。
605デフォルトの名無しさん
2014/09/18(木) 00:30:49.37ID:+0AmgyUa Fortranってどの程度配列メモリに記憶出来てるのかな?
例えば
do i = 1, 100
Read(20,*) (a(i,j),j=1,20
End do
で write(*,*) a(99,15)とかどこまで記憶出来てるもんなんやろ?
例えば
do i = 1, 100
Read(20,*) (a(i,j),j=1,20
End do
で write(*,*) a(99,15)とかどこまで記憶出来てるもんなんやろ?
606デフォルトの名無しさん
2014/09/18(木) 21:41:43.06ID:16BBiZdw eclipseである程度長いサブルーチンも何十個か呼び出しているプログラムで
call systemが通らくなるのですがなにか原因ありますか?
ブラウザソフト立ち上げながらでもダメだったのでメモリがらみと思うのですが
ざっくりしすぎですいませんがなにかヒントあればおねがいします・・
call systemが通らくなるのですがなにか原因ありますか?
ブラウザソフト立ち上げながらでもダメだったのでメモリがらみと思うのですが
ざっくりしすぎですいませんがなにかヒントあればおねがいします・・
607デフォルトの名無しさん
2014/09/19(金) 00:43:16.70ID:0+vn6Zlr608デフォルトの名無しさん
2014/09/19(金) 01:31:53.81ID:3dCDoxc8 >>607
ありがとうございました
ps alxで見るとrssがまさに満杯でいっぱいのようでした
cat /proc/meminfoで見るとフリーが10Gぐらい残っていて
大丈夫と思っていたのですが違いが分かっておらず
違いを勉強しようと思います
もしご存知でしたらまた教えていただけると幸いです
ありがとうございました
ps alxで見るとrssがまさに満杯でいっぱいのようでした
cat /proc/meminfoで見るとフリーが10Gぐらい残っていて
大丈夫と思っていたのですが違いが分かっておらず
違いを勉強しようと思います
もしご存知でしたらまた教えていただけると幸いです
609デフォルトの名無しさん
2014/09/19(金) 03:08:40.00ID:f7fTMqdH >>607
そうなの?
そうなの?
610デフォルトの名無しさん
2014/09/19(金) 22:55:20.41ID:0+vn6Zlr611デフォルトの名無しさん
2014/09/20(土) 20:11:45.61ID:onD5DKrz >>610
ありがとうございます。べんきょうになりました。
メモリ節約のために可能な限りallocatableに変更したら余裕ができて解決しました。
個人利用のプログラムには必要ないと思っていましたが大事でした
ありがとうございました
ありがとうございます。べんきょうになりました。
メモリ節約のために可能な限りallocatableに変更したら余裕ができて解決しました。
個人利用のプログラムには必要ないと思っていましたが大事でした
ありがとうございました
612デフォルトの名無しさん
2014/09/22(月) 04:03:57.88ID:Huxb6fEK 配列a=/2,3,4,5,8,5,4......./みないなのがあったとして, 最大値の8すなわち,a(5)までをファイルに書き込みたいんだけど…
do i = 1, maxloc(a)
write(20,*) a(i)
Enddo
ではエラーになるよね。おそらくmaxloc(a)がrank 1 でdo loop にはrank 0 (スカラー値)じゃなきゃいかんってことなんだろう
配列をスカラー値に戻す関数ってないのかね?
do i = 1, maxloc(a)
write(20,*) a(i)
Enddo
ではエラーになるよね。おそらくmaxloc(a)がrank 1 でdo loop にはrank 0 (スカラー値)じゃなきゃいかんってことなんだろう
配列をスカラー値に戻す関数ってないのかね?
613デフォルトの名無しさん
2014/09/22(月) 08:08:38.00ID:/rW2WBkU 配列は要素を指定すればスカラーになるだろ
614デフォルトの名無しさん
2014/09/23(火) 00:55:12.38ID:07zJk+Gd >>612
次元を指定すればおk。1次元でもあえて1を指定すればスカラーで返してくれる。
do i = 1, maxloc(a, 1)
1要素配列を返す奴らに使える、基本的なテクニックですぞい。
改行要らなければ
write(20,*) a(:maxloc(a, 1))
で1行で済む。
次元を指定すればおk。1次元でもあえて1を指定すればスカラーで返してくれる。
do i = 1, maxloc(a, 1)
1要素配列を返す奴らに使える、基本的なテクニックですぞい。
改行要らなければ
write(20,*) a(:maxloc(a, 1))
で1行で済む。
615デフォルトの名無しさん
2014/09/23(火) 02:10:29.02ID:UZWdIj2A >>614
いやぁ助かります。
ここは参考書に載ってないテクを知ってる方がたくさんいるからやめられない…
このようなテクって自分で見出すもの?それとも何か参考書みたいのってあるのですか?
あと、科学数値計算やってる方に聞きたいのですが、最適な刻み幅ってどう決定してますか?
対数刻みやらなんやらありますが、結局自己流やらなんやらでしっくりしたものに出会えず時間を無駄にしてる感たっぷりなんです
いやぁ助かります。
ここは参考書に載ってないテクを知ってる方がたくさんいるからやめられない…
このようなテクって自分で見出すもの?それとも何か参考書みたいのってあるのですか?
あと、科学数値計算やってる方に聞きたいのですが、最適な刻み幅ってどう決定してますか?
対数刻みやらなんやらありますが、結局自己流やらなんやらでしっくりしたものに出会えず時間を無駄にしてる感たっぷりなんです
616デフォルトの名無しさん
2014/09/23(火) 12:59:19.57ID:07zJk+Gd >>615
maxloc とかに dim 引数が入ったのは F95 以降で、
F90 時代は要素1個の配列を返されて誰もが窮していた。
Numerical Recipes の F90 版では、SUM(MAXLOC(a)) みたいな形でこの問題を
避けていたが、俺的にはこれは無いなって感じだった。(元々あんまいい本じゃなかったし)
仕方ないから律儀に要素1個の配列を宣言して使っていて、もう解決策はないと諦めていた。
なので f95 が出てからも、この方法に全く気付かずにいた。
ある日、他人のソース眺めていて、1次元配列なのに maxloc の類で dim
引数指定していたのがあって、こいつ馬鹿じゃねーのwwwと思ってよく見たら
このスカラー返しのテクニックだった。馬鹿なのは私でした。
たぶん10年以上無駄な1要素配列のプログラム書いていたwww
maxloc とかに dim 引数が入ったのは F95 以降で、
F90 時代は要素1個の配列を返されて誰もが窮していた。
Numerical Recipes の F90 版では、SUM(MAXLOC(a)) みたいな形でこの問題を
避けていたが、俺的にはこれは無いなって感じだった。(元々あんまいい本じゃなかったし)
仕方ないから律儀に要素1個の配列を宣言して使っていて、もう解決策はないと諦めていた。
なので f95 が出てからも、この方法に全く気付かずにいた。
ある日、他人のソース眺めていて、1次元配列なのに maxloc の類で dim
引数指定していたのがあって、こいつ馬鹿じゃねーのwwwと思ってよく見たら
このスカラー返しのテクニックだった。馬鹿なのは私でした。
たぶん10年以上無駄な1要素配列のプログラム書いていたwww
617デフォルトの名無しさん
2014/09/26(金) 01:28:02.38ID:sHXJvEEg618デフォルトの名無しさん
2014/09/26(金) 02:38:03.65ID:jeu5JnPX >>617
配列 a(7) = (/ 2,3,4,5,8,5,4 )/ があるとする。
最大値の位置を返す組み込み関数 maxloc に a を渡すと maxloc(a) は
1次元で1要素の配列 (/5/) を返す。
これを左辺で取るには integer :: m(1) が必要。スカラー変数では受け取れない。
m = maxloc( a ) !ok ; integer :: n ; n = maxloc(a) !error
要するに do i = 1, maxloc(a) は、do i = 1, m(:) と同じ意味になり文法エラーが出る。
>>612 の質問は、do i = 1, m(1) に当たる事を実行したいので、
配列をスカラー値に戻す方法はないか?と質問している。
それに対する>>614の答えは、maxloc( a, dim = 1 ) を使えと言っている。
これは配列の要素を返す。普通は多次元配列に対して用いて、行や列の成分を
取りだすのに使う。
配列 a(7) = (/ 2,3,4,5,8,5,4 )/ があるとする。
最大値の位置を返す組み込み関数 maxloc に a を渡すと maxloc(a) は
1次元で1要素の配列 (/5/) を返す。
これを左辺で取るには integer :: m(1) が必要。スカラー変数では受け取れない。
m = maxloc( a ) !ok ; integer :: n ; n = maxloc(a) !error
要するに do i = 1, maxloc(a) は、do i = 1, m(:) と同じ意味になり文法エラーが出る。
>>612 の質問は、do i = 1, m(1) に当たる事を実行したいので、
配列をスカラー値に戻す方法はないか?と質問している。
それに対する>>614の答えは、maxloc( a, dim = 1 ) を使えと言っている。
これは配列の要素を返す。普通は多次元配列に対して用いて、行や列の成分を
取りだすのに使う。
619デフォルトの名無しさん
2014/09/28(日) 02:23:58.55ID:qwG5nd4I >>618
1次元配列の特定の1つの値を返すのに、それは1次元の1要素の「配列」として返されるからdo文では使えないということですね。それが配列の次元(dimension)を1と言うと解決するあたりがしっくりきませんね・・・。
1次元配列の特定の1つの値を返すのに、それは1次元の1要素の「配列」として返されるからdo文では使えないということですね。それが配列の次元(dimension)を1と言うと解決するあたりがしっくりきませんね・・・。
620デフォルトの名無しさん
2014/09/28(日) 03:11:58.13ID:W6jZi88T >>619
多次元配列を maxloc に渡すと、最大値の座標を (/ 1, 2, 3 /) みたいな感じで
一次元配列で返す。 この成分を取り出すのが dim 引数。
1要素配列でも成分取り出せる。
まぁしっくりくるまで文法書を舐めるように読んでくれprpr
多次元配列を maxloc に渡すと、最大値の座標を (/ 1, 2, 3 /) みたいな感じで
一次元配列で返す。 この成分を取り出すのが dim 引数。
1要素配列でも成分取り出せる。
まぁしっくりくるまで文法書を舐めるように読んでくれprpr
621デフォルトの名無しさん
2014/10/08(水) 00:58:36.59ID:9VdrGSON x(100)があるとして、計算しているのになぜか例えばx(40)から値が0になってしまいます
考えられる原因ないでしょうか
無茶ぶりですいません
考えられる原因ないでしょうか
無茶ぶりですいません
622デフォルトの名無しさん
2014/10/08(水) 01:09:28.89ID:fqHZeb8H さすがに無理
もう少しヒントをくれ玉へ
もう少しヒントをくれ玉へ
623デフォルトの名無しさん
2014/10/08(水) 07:15:04.02ID:90i0u9P7624デフォルトの名無しさん
2014/10/08(水) 08:00:58.16ID:99q9svOz 今時逝ってよしとかねえよ
625デフォルトの名無しさん
2014/10/08(水) 20:12:54.14ID:9VdrGSON626デフォルトの名無しさん
2014/10/09(木) 00:38:44.90ID:n00d9Wif627デフォルトの名無しさん
2014/10/09(木) 02:25:56.01ID:FBZt25be >>625
xが途中で変わってしまうなら
xの代入文や計算式が間違ってないか探す(特に範囲指定)
途中で変数を書き出し、変数の変化を追う
デバッガを使って変数に代入されるタイミングを調べる
くらいしか思い付かない
実は0になる計算をしていたなんてことはないよね
xが途中で変わってしまうなら
xの代入文や計算式が間違ってないか探す(特に範囲指定)
途中で変数を書き出し、変数の変化を追う
デバッガを使って変数に代入されるタイミングを調べる
くらいしか思い付かない
実は0になる計算をしていたなんてことはないよね
628デフォルトの名無しさん
2014/10/10(金) 03:19:01.38ID:OpKqoeIe まぁ大方書き込んだつもりになっているが、ループが39までしか回ってないという
パターンだろう。
初期値に1e38とかNaNとか書いておけばいい。
パターンだろう。
初期値に1e38とかNaNとか書いておけばいい。
629デフォルトの名無しさん
2014/10/11(土) 16:00:47.58ID:C1s+VS97 >逝ってよし
逝ってよし ってフレーズ最後に見たの何年前だろう?10年くらい前?
ちょっとクスッと来てしまった。
悪くないよ〜
逝ってよし ってフレーズ最後に見たの何年前だろう?10年くらい前?
ちょっとクスッと来てしまった。
悪くないよ〜
630デフォルトの名無しさん
2014/10/12(日) 11:19:06.43ID:Zy5yf7AD631デフォルトの名無しさん
2014/10/12(日) 22:43:53.80ID:q3BSJrqr gfortranで
call system(cd ..)
とやっても上のディレクトリに移動できません。
他のコマンドは動くのですが…
これは仕様なのでしょうか?
call system(cd ..)
とやっても上のディレクトリに移動できません。
他のコマンドは動くのですが…
これは仕様なのでしょうか?
632デフォルトの名無しさん
2014/10/13(月) 20:38:43.03ID:qvDo+/hC >>631
systemからのcd実行なら仕様。
別のshellが起動してcdを実行して処理を終了するので、呼び出しもとのshellとは無関係。
GNUならディレクトリを変更したい場合はCHDIRが使える。
systemからのcd実行なら仕様。
別のshellが起動してcdを実行して処理を終了するので、呼び出しもとのshellとは無関係。
GNUならディレクトリを変更したい場合はCHDIRが使える。
633デフォルトの名無しさん
2014/10/13(月) 21:42:58.17ID:BJqw9Buj634デフォルトの名無しさん
2014/10/14(火) 10:25:49.65ID:gGwwURe/ とか言って失敗しましたw CHDIRをつかうとshからpremission deniedと怒られます。
if (IPTCMD(1:3).eq.'cd ') then
DSTDIR=IPTCMD(4:)
call CHDIR(DSTDIR)
end if
のようなコードです。SELinuxのせいかと思いましたが違いました。
ご教示いただければ幸いです。
if (IPTCMD(1:3).eq.'cd ') then
DSTDIR=IPTCMD(4:)
call CHDIR(DSTDIR)
end if
のようなコードです。SELinuxのせいかと思いましたが違いました。
ご教示いただければ幸いです。
635デフォルトの名無しさん
2014/10/14(火) 10:53:43.84ID:gGwwURe/ 追加すると、cdコマンドは成功しています。でも、
sh: 1: ..: Permission denied
と怒られますw
sh: 1: ..: Permission denied
と怒られますw
636デフォルトの名無しさん
2014/10/17(金) 08:36:55.32ID:/3IlFIL9 素朴な疑問なんですが
write( *,101) n
write(10,101) n
こういう式って一行にまとめられないんですか
write( *,101) n
write(10,101) n
こういう式って一行にまとめられないんですか
637デフォルトの名無しさん
2014/10/17(金) 14:01:54.72ID:5NvG3gNF >>636
write ... ; write ,,,
write ... ; write ,,,
638デフォルトの名無しさん
2014/10/18(土) 03:21:07.25ID:1z7UQB1P 言い換えます
write( *,101) a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
write( 10,101) a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
write( 11,101) a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
みたいな文を一行でまとめたいのです
write(10,101) n
write( *,101) a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
write( 10,101) a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
write( 11,101) a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
みたいな文を一行でまとめたいのです
write(10,101) n
639デフォルトの名無しさん
2014/10/18(土) 04:32:28.37ID:pf8oYVZE 10,11だと外部ファイルか
それだと複数の装置番号に同時に出力する方法はない(0以上のスカラーでなければならない)
変数をまとめたいなら配列nにa-zを代入すればできる
それだと複数の装置番号に同時に出力する方法はない(0以上のスカラーでなければならない)
変数をまとめたいなら配列nにa-zを代入すればできる
640デフォルトの名無しさん
2014/10/18(土) 06:08:15.41ID:5RvmRbo5 >>638
出力するユニットが同じならサブルーチンでまとめれば良いんじゃない?
出力するユニットが同じならサブルーチンでまとめれば良いんじゃない?
641デフォルトの名無しさん
2014/10/18(土) 07:53:57.67ID:py32Gd52 fortranからRを呼び出すようなことはできないでしょうか?
system call?からRを呼び出すぐらいしかないでしょうかね?
system call?からRを呼び出すぐらいしかないでしょうかね?
642デフォルトの名無しさん
2014/10/18(土) 08:55:47.73ID:XNaq3m/i gnuplotでもそうだが
Rのソースをfortranで生成するようにして
system callから実行させればいいだろ
Rのソースをfortranで生成するようにして
system callから実行させればいいだろ
643デフォルトの名無しさん
2014/10/18(土) 09:10:45.91ID:XNaq3m/i644デフォルトの名無しさん
2014/10/18(土) 09:18:33.82ID:XNaq3m/i 考えてみれば四行に増えたなwwwwwww
645デフォルトの名無しさん
2014/10/19(日) 01:11:43.08ID:66Dn4RCH たしか coarray を使うとプロセスが複数走って、それぞれのプロセスで
別々にI/Oできるから形式上は1行でできるぞ。
まぁこれがやりたいことではないのは重々承知だがwww
別々にI/Oできるから形式上は1行でできるぞ。
まぁこれがやりたいことではないのは重々承知だがwww
646デフォルトの名無しさん
2014/10/19(日) 13:24:38.74ID:jrAJRFBN647デフォルトの名無しさん
2014/10/20(月) 00:32:03.39ID:w06RwgSj 配列内の最大最小を、区間指定でできませんか?
maxだとできなかったんですが
maxだとできなかったんですが
648デフォルトの名無しさん
2014/10/20(月) 01:10:20.17ID:Q283dmtl 区間指定ってなんだよw
maxlocのことか?それともmaxval(a(20:20))のことか?
他人に理解できる表現で頼むぜw
maxlocのことか?それともmaxval(a(20:20))のことか?
他人に理解できる表現で頼むぜw
649デフォルトの名無しさん
2014/10/21(火) 04:04:46.35ID:dBWrLa1J >>647
部分配列に代入して、maxを使うという意味?
部分配列に代入して、maxを使うという意味?
650デフォルトの名無しさん
2014/10/21(火) 08:48:40.55ID:RmR2qSHy >615
亀レスですが、最適な刻み幅については、
森口繁一『数値計算術』に
「題4章 刻み幅の自動調節」
という記述があります。
ご参考までに
亀レスですが、最適な刻み幅については、
森口繁一『数値計算術』に
「題4章 刻み幅の自動調節」
という記述があります。
ご参考までに
651デフォルトの名無しさん
2014/10/22(水) 21:06:47.85ID:ZWb1Adxr652デフォルトの名無しさん
2014/10/23(木) 00:20:38.34ID:uxreCuFc653デフォルトの名無しさん
2014/10/23(木) 00:27:54.57ID:ULvaqeb6 ならば MAXVAL(a(10:20)) だ。
654デフォルトの名無しさん
2014/10/23(木) 08:52:15.53ID:afuBwKUi >652
p.195〜206
なおプログラムはpascalで書かれています
p.195〜206
なおプログラムはpascalで書かれています
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★8 [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- 1,000万円のBMWに擦ってしまった札幌のガキ、捕らえられてガチで詰む [329329848]
- 俺の代わりに中国がバカウヨを倒してくれる [805596214]
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- 高市が首相になってから進次郎の評価が爆上がりしてる件について
- ウンコシュタイナー
