X



くだすれFORTRAN(超初心者用)その6

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2012/08/16(木) 20:58:00.31
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
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/
0586デフォルトの名無しさん
垢版 |
2014/09/02(火) 21:36:00.72ID:2O5G2v8m
>>584
0.4999999999を小数点以下3桁で切り捨て表示するために4桁で文字列化しても内部処理が丸めだと0.500になってしまうかもしれんぞ
素直に1000倍して切り捨てて1000で割るがよろしい
0587デフォルトの名無しさん
垢版 |
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の仕様をよく読んでくれ。
0588デフォルトの名無しさん
垢版 |
2014/09/03(水) 13:00:08.93ID:TB1UfkpT
昼休みに調べたら rd ru の類はF2003だった。
あと rp processor dependent という処理系依存型もあるようだ。
あとOPEN文で指定する方法もある。

しかし、正直いって>>580の基本的発想が間違っている。
他の人達のアドバイスにあるように、そもそも内部二進表現を十進表現に
直すときに丸めなどが入ってしまう。そのうえでさらに十進表現を
丸めようとするのが Fortran 的センスではおかしい。
だからみんな当惑した反応しか返さない。

とはいえ自然科学ではない商習慣等での丸め等もあるようだから
別にそれがいけないわけでなく、それに合った言語例えば
BCD演算できるCOBOLなどで計算すべきのみ。
0590デフォルトの名無しさん
垢版 |
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系

こんなとこか? 
0591デフォルトの名無しさん
垢版 |
2014/09/04(木) 02:51:19.67ID:Yy5o2rJg
Free系にOpen64と(一応)dragoneggがあるぞ
dragoneggはgcc4.8.3以降はサポートしてないしflangは開発止まってるし
この辺が活発化すれば若い人がたくさん来ると思うんだけどな
0592デフォルトの名無しさん
垢版 |
2014/09/05(金) 04:17:28.12ID:tI2mbO8v
GNUでFortranやAdaが熱心にサポートされているのは、米国防総省あたりからの
金が流れているからなのかな?

意識高いw進歩的wCS学科若年層には人気は全くないのに。
それともおっさん層しかやってないからなのか?
そのわりにGNU COBOLとかPL/IとかALGOL、PASCAL、Modula-2とかやらないし。
0594デフォルトの名無しさん
垢版 |
2014/09/07(日) 03:06:28.08ID:5kwVdIF1
Cray, IBM, PGI, Intel が F2003 完全対応したな。
NAGはあと一歩。
GFortranは進捗どうですか?

スパコンだと SXは90 Hitachiも90? Fujitsuは95? 
それぞれつまみ食い的に拡張してあるが。
0595デフォルトの名無しさん
垢版 |
2014/09/07(日) 04:28:58.48ID:+IELT+xO
日立のはコンパイルオプション-hf95で問題なく使えてたがあれ完全準拠じゃなかったのかな
まあ完全準拠だったらわざわざfortran90コンパイラとは名乗らないか
0596デフォルトの名無しさん
垢版 |
2014/09/10(水) 14:57:01.18ID:rySPmzVQ
そういや、fortranのデータの取り扱い方について詳しくかいせつしてる本てあまりないね。
0598デフォルトの名無しさん
垢版 |
2014/09/13(土) 20:59:58.06ID:1ASLKxa3
>>596
format read writeのことなら、コンパイラーの取扱説明書が(独自仕様拡張部分も含めて)もっとも詳しいよね。
0600デフォルトの名無しさん
垢版 |
2014/09/15(月) 02:35:29.49ID:0r1HU9OA
IMSLは会社が違うから無理だべ。
IntelはCPU売るためにソフトのコンパイラを撒き餌としてばら撒いてもペイするが、
IMSLの方としては特に得しないし。

富士通がLaheyにOEM供給した時にコンパイラにSSL2とかただでバンドルしていたが。
NECがASLをちょー高値で売っていたことを考えれば、ちょー太っ腹だった。

それはそうと日本の大学の大型計算機センターにたまっていたライブラリも、
NETLIBみたいにネットに公開して吐き出せばいいのに。
0601デフォルトの名無しさん
垢版 |
2014/09/15(月) 09:55:29.48ID:SmofGg9r
>>598
Gfortran なんやけど…(´・_・`)
もうやめようかな。

Gfortran で書いたプログラムをIntel fortran でもコンパイルすること出来ますか?
0603538
垢版 |
2014/09/16(火) 03:14:29.14ID:EYsbMZCB
>>538ですが、いまだに解決しません。
>>543の「数値が指定カラムからはみだしてないか」という意味がよくわかりません。
指定カラムというのはどこで見ることができるのでしょうか。
9.0と11.0ではビルドのUIが大きく変わっており、ビルドの条件が同じなのかどうか自信がありませんが、ほぼデフォルト状態でビルドしています。
0604デフォルトの名無しさん
垢版 |
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をオンにしてやれば
エラーで死んだところで行番号が出るはず。
0605デフォルトの名無しさん
垢版 |
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)とかどこまで記憶出来てるもんなんやろ?
0606デフォルトの名無しさん
垢版 |
2014/09/18(木) 21:41:43.06ID:16BBiZdw
eclipseである程度長いサブルーチンも何十個か呼び出しているプログラムで
call systemが通らくなるのですがなにか原因ありますか?
ブラウザソフト立ち上げながらでもダメだったのでメモリがらみと思うのですが


ざっくりしすぎですいませんがなにかヒントあればおねがいします・・
0607デフォルトの名無しさん
垢版 |
2014/09/19(金) 00:43:16.70ID:0+vn6Zlr
>>605
質問の意味が分からんよ???
Fortranじゃ宣言分はがっつり確保されとるよ。

>>606
タスクマネージャーとか ps コマンドとかでメモリーの使用状況を見てみたら?
call system が通らないのはメモリー満杯くさい。
0608デフォルトの名無しさん
垢版 |
2014/09/19(金) 01:31:53.81ID:3dCDoxc8
>>607
ありがとうございました
ps alxで見るとrssがまさに満杯でいっぱいのようでした
cat /proc/meminfoで見るとフリーが10Gぐらい残っていて
大丈夫と思っていたのですが違いが分かっておらず
違いを勉強しようと思います
もしご存知でしたらまた教えていただけると幸いです
0611デフォルトの名無しさん
垢版 |
2014/09/20(土) 20:11:45.61ID:onD5DKrz
>>610
ありがとうございます。べんきょうになりました。

メモリ節約のために可能な限りallocatableに変更したら余裕ができて解決しました。
個人利用のプログラムには必要ないと思っていましたが大事でした
ありがとうございました
0612デフォルトの名無しさん
垢版 |
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 (スカラー値)じゃなきゃいかんってことなんだろう
配列をスカラー値に戻す関数ってないのかね?
0614デフォルトの名無しさん
垢版 |
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行で済む。
0615デフォルトの名無しさん
垢版 |
2014/09/23(火) 02:10:29.02ID:UZWdIj2A
>>614
いやぁ助かります。
ここは参考書に載ってないテクを知ってる方がたくさんいるからやめられない…

このようなテクって自分で見出すもの?それとも何か参考書みたいのってあるのですか?

あと、科学数値計算やってる方に聞きたいのですが、最適な刻み幅ってどう決定してますか?
対数刻みやらなんやらありますが、結局自己流やらなんやらでしっくりしたものに出会えず時間を無駄にしてる感たっぷりなんです
0616デフォルトの名無しさん
垢版 |
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
0618デフォルトの名無しさん
垢版 |
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 ) を使えと言っている。
これは配列の要素を返す。普通は多次元配列に対して用いて、行や列の成分を
取りだすのに使う。
0619デフォルトの名無しさん
垢版 |
2014/09/28(日) 02:23:58.55ID:qwG5nd4I
>>618
1次元配列の特定の1つの値を返すのに、それは1次元の1要素の「配列」として返されるからdo文では使えないということですね。それが配列の次元(dimension)を1と言うと解決するあたりがしっくりきませんね・・・。
0620デフォルトの名無しさん
垢版 |
2014/09/28(日) 03:11:58.13ID:W6jZi88T
>>619
多次元配列を maxloc に渡すと、最大値の座標を (/ 1, 2, 3 /) みたいな感じで
一次元配列で返す。 この成分を取り出すのが dim 引数。
1要素配列でも成分取り出せる。
まぁしっくりくるまで文法書を舐めるように読んでくれprpr
0621デフォルトの名無しさん
垢版 |
2014/10/08(水) 00:58:36.59ID:9VdrGSON
x(100)があるとして、計算しているのになぜか例えばx(40)から値が0になってしまいます
考えられる原因ないでしょうか
無茶ぶりですいません
0625デフォルトの名無しさん
垢版 |
2014/10/08(水) 20:12:54.14ID:9VdrGSON
>>622-623
ありがとうございます
確かにひどかったです・・すいません

ただ、症状がなんとも表現できていないので
もう少しうまく表現できるよう考えてみようと思います
0626デフォルトの名無しさん
垢版 |
2014/10/09(木) 00:38:44.90ID:n00d9Wif
>>624
そんなこと言ったら今時fortran なんかねーよと言われるぞ。
そんなことないだろ?つまり逝ってよしもそんなことないのだ。
0627デフォルトの名無しさん
垢版 |
2014/10/09(木) 02:25:56.01ID:FBZt25be
>>625
xが途中で変わってしまうなら

xの代入文や計算式が間違ってないか探す(特に範囲指定)
途中で変数を書き出し、変数の変化を追う
デバッガを使って変数に代入されるタイミングを調べる

くらいしか思い付かない
実は0になる計算をしていたなんてことはないよね
0628デフォルトの名無しさん
垢版 |
2014/10/10(金) 03:19:01.38ID:OpKqoeIe
まぁ大方書き込んだつもりになっているが、ループが39までしか回ってないという
パターンだろう。
初期値に1e38とかNaNとか書いておけばいい。
0629デフォルトの名無しさん
垢版 |
2014/10/11(土) 16:00:47.58ID:C1s+VS97
>逝ってよし
逝ってよし ってフレーズ最後に見たの何年前だろう?10年くらい前?
ちょっとクスッと来てしまった。

悪くないよ〜
0630デフォルトの名無しさん
垢版 |
2014/10/12(日) 11:19:06.43ID:Zy5yf7AD
>>627
>>628
ありがとうございました
基本的なミスだろう、というご教示を参考に見なおしたところ解決しました
x(40)以降を計算するのに地味にyを使っていたのですが、
yを計算するサブルーチンをcallする前にxを計算するサブルーチンをcallしてしまっていただけでした・・
ズコーって感じかもしれませんが私としてはレスいただき大変助かりました
0631デフォルトの名無しさん
垢版 |
2014/10/12(日) 22:43:53.80ID:q3BSJrqr
gfortranで
call system(cd ..)
とやっても上のディレクトリに移動できません。

他のコマンドは動くのですが…

これは仕様なのでしょうか?
0632デフォルトの名無しさん
垢版 |
2014/10/13(月) 20:38:43.03ID:qvDo+/hC
>>631
systemからのcd実行なら仕様。
別のshellが起動してcdを実行して処理を終了するので、呼び出しもとのshellとは無関係。
GNUならディレクトリを変更したい場合はCHDIRが使える。
0633デフォルトの名無しさん
垢版 |
2014/10/13(月) 21:42:58.17ID:BJqw9Buj
>>632
ありがとうございます。
if文でCHDIRに置き換えれば良さそうですね。
仕組みもわかりました。
0634デフォルトの名無しさん
垢版 |
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のせいかと思いましたが違いました。
ご教示いただければ幸いです。
0635デフォルトの名無しさん
垢版 |
2014/10/14(火) 10:53:43.84ID:gGwwURe/
追加すると、cdコマンドは成功しています。でも、

sh: 1: ..: Permission denied

と怒られますw
0636デフォルトの名無しさん
垢版 |
2014/10/17(金) 08:36:55.32ID:/3IlFIL9
素朴な疑問なんですが
write( *,101) n
write(10,101) n

こういう式って一行にまとめられないんですか
0638デフォルトの名無しさん
垢版 |
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
0639デフォルトの名無しさん
垢版 |
2014/10/18(土) 04:32:28.37ID:pf8oYVZE
10,11だと外部ファイルか
それだと複数の装置番号に同時に出力する方法はない(0以上のスカラーでなければならない)

変数をまとめたいなら配列nにa-zを代入すればできる
0641デフォルトの名無しさん
垢版 |
2014/10/18(土) 07:53:57.67ID:py32Gd52
fortranからRを呼び出すようなことはできないでしょうか?
system call?からRを呼び出すぐらいしかないでしょうかね?
0642デフォルトの名無しさん
垢版 |
2014/10/18(土) 08:55:47.73ID:XNaq3m/i
gnuplotでもそうだが
Rのソースをfortranで生成するようにして
system callから実行させればいいだろ
0645デフォルトの名無しさん
垢版 |
2014/10/19(日) 01:11:43.08ID:66Dn4RCH
たしか coarray を使うとプロセスが複数走って、それぞれのプロセスで
別々にI/Oできるから形式上は1行でできるぞ。
まぁこれがやりたいことではないのは重々承知だがwww
0647デフォルトの名無しさん
垢版 |
2014/10/20(月) 00:32:03.39ID:w06RwgSj
配列内の最大最小を、区間指定でできませんか?
maxだとできなかったんですが
0648デフォルトの名無しさん
垢版 |
2014/10/20(月) 01:10:20.17ID:Q283dmtl
区間指定ってなんだよw 
maxlocのことか?それともmaxval(a(20:20))のことか?

他人に理解できる表現で頼むぜw
0650デフォルトの名無しさん
垢版 |
2014/10/21(火) 08:48:40.55ID:RmR2qSHy
>615
亀レスですが、最適な刻み幅については、

森口繁一『数値計算術』に
「題4章 刻み幅の自動調節」
という記述があります。
ご参考までに
0652デフォルトの名無しさん
垢版 |
2014/10/23(木) 00:20:38.34ID:uxreCuFc
>>650
ありがとうございますm(__)m
さっそく買わせて頂きました。
まだ手元に届いてないですが、その章は結構ページ割かれてますか?
0656ホモおじさん
垢版 |
2014/10/24(金) 00:54:53.39ID:vm5n6mmb
>>655
お安い御用さ。
おじさんに何でも聞いて呉れ玉へ!

>>652
ぼうず。
積分の自動刻み幅調節なら森正武の本に載ってるのがあるぞ。
岩波の77本にプログラムもある。
0657デフォルトの名無しさん
垢版 |
2014/10/24(金) 01:31:35.96ID:IV+qiUp4
>>654
ありがとうございますm(__)m

>>656
有益な情報ありがとうございますm(__)m

お叱りを受けるかも知れませんが、指数関数が入った数値計算で手を焼いております

具体的には
exp(x)/(exp(x)-1)
といった関数を考え, 1から20000くらいまでの数値を出力したいのですが, 桁落ちしてNan やら Inf やら出て困っております.

定石としてはx を何かに規格化するのかな?とは思うのですが, x の範囲が1から20000と幅広くなかなか思いつきません.
何か妙案はございますでしょうか?
0658ホモおじさん
垢版 |
2014/10/24(金) 03:18:53.64ID:vm5n6mmb
>>657
xが大きい方で計算したいなら通分して 1/(1-exp(-x)) の形で計算するのが定石だが、
どっちにしろ x=20〜30くらいでもう 1/1=1 でその先は無理に計算しなくてもいい。


この辺は数値計算術にいっぱい書いてある。
森口繁一の本は古いけど結構面白い。
数値計算術〜計算数学夜話<<数値計算工学の感じで真面目になる。

それにつけても蔵王のお釜が白濁液まみれというニュースが興味深いよね。
0659デフォルトの名無しさん
垢版 |
2014/10/28(火) 00:52:02.95ID:UO1zyFOr
Fortran で realloc に相当することをやりたんだけど、どうしたらいいでしょうぁ。
0660デフォルトの名無しさん
垢版 |
2014/10/28(火) 03:20:58.44ID:1iw7NGT6
>>659
宣言でallocatable
使う前にallocateで割り当て
大きさ変える前にdeallocateしてallocateで再割り当て
中身を確実に保存したかったらdeallocate前に別の変数にコピー
これで一応配列の大きさを変えれる
0661デフォルトの名無しさん
垢版 |
2014/10/28(火) 03:55:09.13ID:2ZNKkFIp
Fortran2003なら move_alloc を使う。
alloctae(tmp(new_size))
new_size(1:size(array)) = array
call move_alloc(tmp, array)
move_alloc は番地(ポインタ)を写すだけなのでメモリー内容のコピーは1回で済む。

modern fortran explained 15.5.3 Transferring an allocation 参照
0662デフォルトの名無しさん
垢版 |
2014/10/29(水) 00:46:52.02ID:RDb2D61y
ちょっとスレチかもしれませんが…
無限級数の和が1になるものうち、\Sigma^{\infty}_{0} (1/2)^n よりも収束速度がゆっくりなものって何かありますか?

刻み幅に使いたいんですが中々思いつかないですm(__)m
0664デフォルトの名無しさん
垢版 |
2014/10/30(木) 00:25:40.34ID:BI8qle6I
>>663
つまりは足し上げて1に収束するような数列を知りたいんです。

(1/2)+(1/2)^2+(1/2)^3+(1/2)^4+.....+(1/2)^n->1 ですよね?

これだと収束スピードが速すぎるので、もう少し緩めに収束する数列を知りたいんです
0665デフォルトの名無しさん
垢版 |
2014/10/30(木) 22:03:37.99ID:jLdY1ojF
intel fortran compilerが、非商用版があると聞いたんですけど
ホームページに行ってもありませんでした
もう非商用版は終了したんでしょうか
0668デフォルトの名無しさん
垢版 |
2014/10/30(木) 23:46:30.56ID:BI8qle6I
>>667
ttp://pen.agbi.tsukuba.ac.jp/~RStiger/hiki2/?Fortran+(Intel+Parallel+Studio+XE)+%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8

この辺参考にしましたよ(^^)
0669デフォルトの名無しさん
垢版 |
2014/10/31(金) 06:45:08.15ID:vB//dhHV
非商用ページにたどり着く方法, 頻繁に変わって不便だよなあ
ライセンス登録して.licファイルなりシリアルコードなり持ってるなら直接DLするって手もあるが

ttp://registrationcenter-download.intel.com/akdlm/irc_nas/4584/parallel_studio_xe_2015.tgz
0672デフォルトの名無しさん
垢版 |
2014/11/02(日) 10:01:51.45ID:P1O0Zm4b
>669
御呈示のアドレスはLinux版ですが、Windows版
について情報をおもちではないでしょうか
0677デフォルトの名無しさん
垢版 |
2014/11/16(日) 23:31:47.83ID:jtA73LXf
2つの実測値の相関係数を出したいのですが、
fortranでできないでしょうか
実測値は単純な直線傾向ではないです
エクセルで手動でやることも考えたのですが、
実測値が100ケースほどあって、
今後も増えることを考えるとプログラムで作りたいと思いました
もしよければアドバイスいただけないでしょうか
0678デフォルトの名無しさん
垢版 |
2014/11/17(月) 09:46:48.96ID:vGRlOVoS
>>677
Rを使用するのが一番手っ取り早いと思います。
Rを調べてみてあなたのやりたいことができそうなら、あえてプログラムを作る必要もないのでは。
0680デフォルトの名無しさん
垢版 |
2014/11/17(月) 18:52:41.93ID:yxNOhCMR
>>678,679
いろいろソフトがあるのですね。
調べて試してみようと思います。ありがとうございました。
0681デフォルトの名無しさん
垢版 |
2014/12/13(土) 01:43:27.96ID:IhMrPb/B
Fortranで書かれている遺伝的アルゴリズムのライブラリが
手に入るところはないでしょうか
0683デフォルトの名無しさん
垢版 |
2014/12/15(月) 00:30:38.37ID:+0+wnp46
MPICH または OPENMPI で Fortran2008 bindings を使う方法を教えろ下さい。
ドキュメントにはサポートと書いてあるが、インストールしても MPI_F08.MOD が
生成されない@Ubuntu

どうか助けろ下さい。こっちのスレへ行けという指示でもおk
0684デフォルトの名無しさん
垢版 |
2014/12/15(月) 19:55:14.30ID:oICLvczS
ランダム生成のコードのについて質問です。
ifortではコンパイルできたのですが、gfortranではエラーが出ました。
以下がエラーメッセージです。

""$ gfortran routine.f90
routine.f90:32.25:

call random_seed( put = (/c * 999/) )
Error: Size of 'put' argument of 'random_seed' intrinsic at (1) too small (1/12)""

putの大きさが本質的に小さすぎる、や(=c とした時)本質的に配列である。といったメッセージだと思い、いじってみたのですが解決方法が分かりません。よろしくお願いします。

あと / ~ / のスラッシュの意味もよろしければお願いします。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況