このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
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
297デフォルトの名無しさん
2014/01/01(水) 15:03:32.78 294ではないがプログラム板でフリーソフトのFitykを比較対象にするのは板違いでは?
「関数近似のFORTRANライブラリはありませんか?」ならわかるが
質問内容からすると自分でプログラムを作りたいのではなさそうだが
「関数近似のFORTRANライブラリはありませんか?」ならわかるが
質問内容からすると自分でプログラムを作りたいのではなさそうだが
298デフォルトの名無しさん
2014/01/03(金) 08:15:54.32 >>297
すんません、質問者です。
スレ違いなのはわかるんですが、学術的用途に精通してそうな人間が集まる板というかスレ住人が、フォートランスレに1番多いと考えたので質問しました。
今回は目をつむって、近似式出すソフトウェアってなんでしょうか?の質問に答えていただけたら幸いです
すんません、質問者です。
スレ違いなのはわかるんですが、学術的用途に精通してそうな人間が集まる板というかスレ住人が、フォートランスレに1番多いと考えたので質問しました。
今回は目をつむって、近似式出すソフトウェアってなんでしょうか?の質問に答えていただけたら幸いです
299デフォルトの名無しさん
2014/01/03(金) 11:47:30.77 君が欲しいソフトは無いよ
どの関数で近似するかは人間が決めること
ソフトが決めることではない
どの関数で近似するかは人間が決めること
ソフトが決めることではない
300デフォルトの名無しさん
2014/01/03(金) 15:49:36.03 Excelでやれば?あれで十分じゃない。
301デフォルトの名無しさん
2014/01/04(土) 13:39:47.75 gnuplot 使ってやったことありますがどうでしょう?私がやったのは多項式だけですが任意の関数に対してフィッティングできるようです。
302デフォルトの名無しさん
2014/01/04(土) 16:39:19.25 >301
gnuplotでは,splineとbezier補間してグラフを画く
機能がありますが,それ以外に任意の函数のフィッテイング
機能ってありますか?
gnuplotでは,splineとbezier補間してグラフを画く
機能がありますが,それ以外に任意の函数のフィッテイング
機能ってありますか?
303デフォルトの名無しさん
2014/01/04(土) 16:43:44.90304デフォルトの名無しさん
2014/01/10(金) 10:31:33.86 正月早々下層階級出身の発達障害みたいなのが湧いたなw
アスペ野郎は、よそのスレに行けよ、HaskellスレとかMLスレに行けば仲間がいっぱいいるぞ。
ここは毎年この時期は卒業研究で焦りまくった学生さんの駆け込み寺なんだからさ。
アスペ野郎は、よそのスレに行けよ、HaskellスレとかMLスレに行けば仲間がいっぱいいるぞ。
ここは毎年この時期は卒業研究で焦りまくった学生さんの駆け込み寺なんだからさ。
305デフォルトの名無しさん
2014/01/12(日) 15:17:29.69 だなwスレタイくらいは読めよと
306デフォルトの名無しさん
2014/01/14(火) 01:43:43.02 ちょっとお聞きしたいのですが、
読み込むファイルの数値データが"〜〜"のダブルクオーテーションで囲まれているのですが、
これを文字列でなく数値で読み込むことはできないでしょうか?
ファイルの"をすべて消すことも考えたのですが、文字列として読み込みたいところもあるので避けたいです
すいませんがよろしくお願いします。
読み込むファイルの数値データが"〜〜"のダブルクオーテーションで囲まれているのですが、
これを文字列でなく数値で読み込むことはできないでしょうか?
ファイルの"をすべて消すことも考えたのですが、文字列として読み込みたいところもあるので避けたいです
すいませんがよろしくお願いします。
307デフォルトの名無しさん
2014/01/14(火) 06:48:50.39 一度文字列として読み込んで、その文字列から数値として読み込む
例えばこんな感じ(valueが数値の変数、cvalueが文字列の変数)
read(*,*) cvalue
read(cvalue,*) value
例えばこんな感じ(valueが数値の変数、cvalueが文字列の変数)
read(*,*) cvalue
read(cvalue,*) value
308デフォルトの名無しさん
2014/01/14(火) 19:51:34.68309デフォルトの名無しさん
2014/01/18(土) 11:40:25.48 すいませんがご教示ください
integer,dimension(99999,20000000)::aaの配列でifortでコンパイルしようとすると
再配置がオーバーフローしないように切り詰められました
と出ます。配列の数を小さくするとコンパイルできます。
配列が大きいから出ているエラーと思うのですが、なにか対策はないでしょうか。よろしくお願いします。
integer,dimension(99999,20000000)::aaの配列でifortでコンパイルしようとすると
再配置がオーバーフローしないように切り詰められました
と出ます。配列の数を小さくするとコンパイルできます。
配列が大きいから出ているエラーと思うのですが、なにか対策はないでしょうか。よろしくお願いします。
310309
2014/01/18(土) 12:21:08.98 スレを読み直してallocatableを使うことでコンパイルはできました。
すいませんありがとうございました
すいませんありがとうございました
311デフォルトの名無しさん
2014/01/18(土) 13:05:10.95 乙 俺も勉強になった
312デフォルトの名無しさん
2014/01/20(月) 21:57:41.73 すみませんが、ちょっと教えてください。
Intel MKLのpardisoで、LU分解後のLとUを取り出すためにはどうしたらいいのでしょうか?
Intel MKLのpardisoで、LU分解後のLとUを取り出すためにはどうしたらいいのでしょうか?
313デフォルトの名無しさん
2014/01/21(火) 18:52:17.93 すみません。セグメンテーション違反って何ですか?
314デフォルトの名無しさん
2014/01/21(火) 21:15:53.71 OSがゴミってこと
315デフォルトの名無しさん
2014/01/30(木) 21:30:13.25 G95をダウンロードしたいのですが、
Windows版のFTPでは、
530 Login authentication failed
(認証に失敗)
とでるのですが、どこで認証を得られるのでしょうか。
Windows版のFTPでは、
530 Login authentication failed
(認証に失敗)
とでるのですが、どこで認証を得られるのでしょうか。
316デフォルトの名無しさん
2014/01/30(木) 22:40:27.48 httpじゃ何か問題あったの
317デフォルトの名無しさん
2014/01/31(金) 00:41:23.05 >316
httpではウンともスンとも言わないのです。
画面がフリーズしたままなので
httpではウンともスンとも言わないのです。
画面がフリーズしたままなので
318デフォルトの名無しさん
2014/01/31(金) 01:31:57.39 >>317
リンクが生きているのはcygwinとLinux系だけみたいだね
MinGW版がひつようなら
http://www.fortran.com/the-fortran-company-homepage/whats-new/g95-windows-download/
けど、このページでも言っているようにG95はメンテナンスが停止しているみたいだし
素直にgfortranを使った方が良い
リンクが生きているのはcygwinとLinux系だけみたいだね
MinGW版がひつようなら
http://www.fortran.com/the-fortran-company-homepage/whats-new/g95-windows-download/
けど、このページでも言っているようにG95はメンテナンスが停止しているみたいだし
素直にgfortranを使った方が良い
319デフォルトの名無しさん
2014/01/31(金) 08:17:46.37 >318
御教示ありがとうございます。
gfortranをダウンロードして使うことにします。
御教示ありがとうございます。
gfortranをダウンロードして使うことにします。
320デフォルトの名無しさん
2014/02/03(月) 00:35:08.25 上の方に無次元化の話が出ていましたが、これって数値計算の本ならちゃんと説明されているものですか?
ネットで検索してもあまりヒットしないし、あったとしてもやり方だけでそうする理由はあまり説明されていない気がします。
自分は先輩から教えてもらって初めて知りましたが、周りには知らない人が結構多いです。
伝統芸能の世界じゃないけど、「数値計算のテクニックは見て覚えろ」みたいな風潮を感じています。
とりあえず自分も「数値計算の常識」買ってみます。
ネットで検索してもあまりヒットしないし、あったとしてもやり方だけでそうする理由はあまり説明されていない気がします。
自分は先輩から教えてもらって初めて知りましたが、周りには知らない人が結構多いです。
伝統芸能の世界じゃないけど、「数値計算のテクニックは見て覚えろ」みたいな風潮を感じています。
とりあえず自分も「数値計算の常識」買ってみます。
321デフォルトの名無しさん
2014/02/03(月) 01:43:43.76 数値計算にかぎらず、適切なスケールで物理量を無次元化すると表式がすっきりするから、けっこう使われてるよ。
原子の議論をするときはオングストロームを使う、天文の議論をするときは光年を使う、つまり「対象に合わせた物差しを使いましょう」という程度の話だから、詳しく説明するほどのことではないかも。
「数値計算の常識」でも1ページくらいしか触れてなかった気がする。
原子の議論をするときはオングストロームを使う、天文の議論をするときは光年を使う、つまり「対象に合わせた物差しを使いましょう」という程度の話だから、詳しく説明するほどのことではないかも。
「数値計算の常識」でも1ページくらいしか触れてなかった気がする。
322デフォルトの名無しさん
2014/02/03(月) 02:32:24.50 でも、無次元化で数式を簡単にすることと、規格化をして数値誤差を防ぐことは別の話ではないのですか?
自分はこのへんの理解がまだ曖昧です。
数値計算系の研究室なので、無次元することが常識なのはよく知っていますが、
ちゃんと教えてもらったことは一度もないです。
自分で書いたコードをたまたま先輩が見る機会があって、そのときに指摘されて知りました。
他の人はどこでそういう常識を知っていったのかが気になります。
自分はこのへんの理解がまだ曖昧です。
数値計算系の研究室なので、無次元することが常識なのはよく知っていますが、
ちゃんと教えてもらったことは一度もないです。
自分で書いたコードをたまたま先輩が見る機会があって、そのときに指摘されて知りました。
他の人はどこでそういう常識を知っていったのかが気になります。
323デフォルトの名無しさん
2014/02/03(月) 02:41:03.77 他にも数値計算のデバッグテクニックとか先輩から教えてもらう機会はあるんですけど
ちゃんとした理論がよくわかってないのでとりあえずやってる状態なんですよね・・・
本でちゃんと勉強したいんですが、そういうのが書いてあるものが見つからないし。
愚痴ばっかですみません。スレ汚し失礼しました。
ちゃんとした理論がよくわかってないのでとりあえずやってる状態なんですよね・・・
本でちゃんと勉強したいんですが、そういうのが書いてあるものが見つからないし。
愚痴ばっかですみません。スレ汚し失礼しました。
324デフォルトの名無しさん
2014/02/03(月) 20:33:23.17 あ、ごめん。見なおしたら、「数値計算の常識」では6,7ページくらい使って説明されてたわ。
どこで学んだかと言われると、たしかによくわからない。
口伝かな。
どこで学んだかと言われると、たしかによくわからない。
口伝かな。
325デフォルトの名無しさん
2014/02/03(月) 22:40:36.33 そうですか!とりあえず買ってみます。
326デフォルトの名無しさん
2014/02/05(水) 01:20:23.89 物理の本では無次元化が必ず出てくるぞ。
量子力学とか割と基礎的なテキストで。
桁落ちのことを考えると、すべての量のオーダーがそろった方がいいしな。
量子力学とか割と基礎的なテキストで。
桁落ちのことを考えると、すべての量のオーダーがそろった方がいいしな。
327デフォルトの名無しさん
2014/02/23(日) 23:46:00.03 すみませんが教えていただけないでしょうか
うろ覚えのFORTRAN77思い出しながらプログラムを書きました。
で、gFortran 4.8.2で実行したら、エラーが出てプログラムが途中で止まってしまいました。
どの行が原因なのか調べたら、プリント文に問題がありそうなのです。
その部分を取り出しますと、
program checkdbl
double precision dx
dx = 2.0d0
print *,dx
end
これを実行すると
Program received signal SIGILL: Illegal instruction.
Backtrace for this error:
#0 ffffffff
とメッセージが出て、dxの値が表示されないのです。
(試しに変数dxをrealにして2.0を代入してもダメで、
でも整数にして、2を代入したらちゃんと表示されました)
倍精度の数値を表示させるにはどうしたらいいのでしょうか?
どうぞよろしくお願いいたします
うろ覚えのFORTRAN77思い出しながらプログラムを書きました。
で、gFortran 4.8.2で実行したら、エラーが出てプログラムが途中で止まってしまいました。
どの行が原因なのか調べたら、プリント文に問題がありそうなのです。
その部分を取り出しますと、
program checkdbl
double precision dx
dx = 2.0d0
print *,dx
end
これを実行すると
Program received signal SIGILL: Illegal instruction.
Backtrace for this error:
#0 ffffffff
とメッセージが出て、dxの値が表示されないのです。
(試しに変数dxをrealにして2.0を代入してもダメで、
でも整数にして、2を代入したらちゃんと表示されました)
倍精度の数値を表示させるにはどうしたらいいのでしょうか?
どうぞよろしくお願いいたします
328デフォルトの名無しさん
2014/02/24(月) 00:29:23.77 OSはLinuxか?
ライブラリかなんかの整合が取れていない気がする。
ライブラリかなんかの整合が取れていない気がする。
329デフォルトの名無しさん
2014/02/24(月) 01:05:53.35 プログラム自体の問題ではなく、実行ファイルが不正な命令を実行しようとしたのが原因。
それがコンパイラのバグなのか、コンパイラオプションや実行環境の問題なのかはわからん。
それがコンパイラのバグなのか、コンパイラオプションや実行環境の問題なのかはわからん。
330327
2014/02/24(月) 12:18:08.81 >>328-329
レスありがとうございます
OSはXPでコンパイラオプションは
-oだけ使ってます
文法の間違いでないと分かって
とりあえずひと安心しました
インストールしなおしとか旧バージョン
使うとかしてみます
たいへんどうもありがとうございました
レスありがとうございます
OSはXPでコンパイラオプションは
-oだけ使ってます
文法の間違いでないと分かって
とりあえずひと安心しました
インストールしなおしとか旧バージョン
使うとかしてみます
たいへんどうもありがとうございました
331デフォルトの名無しさん
2014/02/24(月) 12:46:33.66 >327
gfortranで実行したら、
2.0000000000000000
と結果がでてきましたよ
gfortranで実行したら、
2.0000000000000000
と結果がでてきましたよ
333デフォルトの名無しさん
2014/02/25(火) 00:34:40.34 >332
GNU Fortran 4.7.3
Windows 7 64bit
optionなし
です。
GNU Fortran 4.7.3
Windows 7 64bit
optionなし
です。
334332
2014/02/25(火) 01:16:16.64 >>333
ありがとうございます!
旧バージョンを使うと吉なのかもですね
こちらはその後、(再インストールの前に)プリント文を使わなくてもいいように
プログラムを改造してみたのですが……
ここで新たに、実はプリント文・ライト文に関係なく同じエラーが出ることがわかり、
ちょっとorzorzorz……な心境です
とりあえず、プログラムの作成と並行して、コンパイラの方もなんとかしてみたいです
ちなみに今回のエラーは、文法確認のために作った次のプログラムで出てきました
program checkpwr2
double precision dx, dxp2, dxp2d
dx = 2.0d0
dxp2 = dx**2
dxp2d = dx**2d0 ! ←ここでエラー発生
print *, dxp2, dxp2d
end
もう少しいろいろ調べてみます
長文失礼しました
ありがとうございます!
旧バージョンを使うと吉なのかもですね
こちらはその後、(再インストールの前に)プリント文を使わなくてもいいように
プログラムを改造してみたのですが……
ここで新たに、実はプリント文・ライト文に関係なく同じエラーが出ることがわかり、
ちょっとorzorzorz……な心境です
とりあえず、プログラムの作成と並行して、コンパイラの方もなんとかしてみたいです
ちなみに今回のエラーは、文法確認のために作った次のプログラムで出てきました
program checkpwr2
double precision dx, dxp2, dxp2d
dx = 2.0d0
dxp2 = dx**2
dxp2d = dx**2d0 ! ←ここでエラー発生
print *, dxp2, dxp2d
end
もう少しいろいろ調べてみます
長文失礼しました
335デフォルトの名無しさん
2014/02/25(火) 01:55:16.47 もうF77のプログラムに手を加える作業はいやだお・・・
今module内のSubroutineからLAPACKのZGEEV呼ぼうとしているんですが、
LAPACKのサブルーチンって外部副プログラムですよね?
毎回interface文を書くのが正しい書き方なんでしょうか?
使ってるのはintel fortran & MKLです。
module
...
contains
subroutien foo
implicit none
interface
subroutine ZGEEV(jobvl, jobvr, ...
...
みたいな感じに。
今module内のSubroutineからLAPACKのZGEEV呼ぼうとしているんですが、
LAPACKのサブルーチンって外部副プログラムですよね?
毎回interface文を書くのが正しい書き方なんでしょうか?
使ってるのはintel fortran & MKLです。
module
...
contains
subroutien foo
implicit none
interface
subroutine ZGEEV(jobvl, jobvr, ...
...
みたいな感じに。
336デフォルトの名無しさん
2014/02/25(火) 04:06:21.32 LAPACK用の95用 INTERFACE MODULEは公式であったろ。NETLIB無間地獄を探せw
337デフォルトの名無しさん
2014/02/25(火) 09:23:01.24 >334
こちらでは、正常にコンパイルし、
4.0000000000000000 4.0000000000000000
結果がでます。
ついでに、プログラムを
program checkpwr2
real(16) dx, dxp2, dxp2d
dx = 2.0d0
dxp2 = dx**2
dxp2d = dx**2d0 ! ←ここでエラー発生
print *, dxp2, dxp2d
end
とかえて、実行してみましたが、こちらも
4.00000000000000000000000000000000000 4.00000000000000000000000000000000000
と正常にコンパイルでき、結果もでてきました。
4倍長計算
こちらでは、正常にコンパイルし、
4.0000000000000000 4.0000000000000000
結果がでます。
ついでに、プログラムを
program checkpwr2
real(16) dx, dxp2, dxp2d
dx = 2.0d0
dxp2 = dx**2
dxp2d = dx**2d0 ! ←ここでエラー発生
print *, dxp2, dxp2d
end
とかえて、実行してみましたが、こちらも
4.00000000000000000000000000000000000 4.00000000000000000000000000000000000
と正常にコンパイルでき、結果もでてきました。
4倍長計算
338334
2014/02/26(水) 21:39:32.88 >>337
お手数おかけしてすみません
やっぱ私の環境がダメすぎってことみたいですねorz
あれから再インストールをしてみたのですが同じエラーがでてまして、
それで、インストール時の環境を変えてみるか、それかバージョンを落としてみるか
してみようと思ってます
うまく行ったらお礼がてら報告したいと思います
たいへんどうもありがとうございました
お手数おかけしてすみません
やっぱ私の環境がダメすぎってことみたいですねorz
あれから再インストールをしてみたのですが同じエラーがでてまして、
それで、インストール時の環境を変えてみるか、それかバージョンを落としてみるか
してみようと思ってます
うまく行ったらお礼がてら報告したいと思います
たいへんどうもありがとうございました
339デフォルトの名無しさん
2014/02/27(木) 00:16:02.97 MinGW-builds
Dual-target(32 & 64-bit) MinGW compilers for 32 and 64-bit windows
http://sourceforge.net/projects/mingwbuilds/
Download mingw-get-setup.exe (86.5 kB)
http://sourceforge.net/projects/mingw/files/
この辺使えば自動でダウンロードしてくれるぞ。
おれは上の奴で入れたかな。win8 64bit
Dual-target(32 & 64-bit) MinGW compilers for 32 and 64-bit windows
http://sourceforge.net/projects/mingwbuilds/
Download mingw-get-setup.exe (86.5 kB)
http://sourceforge.net/projects/mingw/files/
この辺使えば自動でダウンロードしてくれるぞ。
おれは上の奴で入れたかな。win8 64bit
340デフォルトの名無しさん
2014/02/27(木) 01:07:55.10 あー書き込みたい
341デフォルトの名無しさん
2014/02/27(木) 22:19:15.92 >>335
インテルなら use lapack95 を implicit none の前の行に足し
mkl_lapack95_lp64.lib をコンパイルに足したまえ
ぶっちゃけ interface 書かなくとも呼べる。引数チェックは無論効かないが
インテルなら use lapack95 を implicit none の前の行に足し
mkl_lapack95_lp64.lib をコンパイルに足したまえ
ぶっちゃけ interface 書かなくとも呼べる。引数チェックは無論効かないが
342デフォルトの名無しさん
2014/02/27(木) 22:23:14.15343338
2014/02/27(木) 23:05:41.71 >>339
レスdです
実は私もそこのを使ってエラってたのですが、でもおかげ様で
「他のサイトから落としたファイルならうまく行くかも」、
ってことに思いいたりました
で、探したところgcc wikiっていうところで非公式ながら
お手軽そうなインストーラを発見、さっそく落として
コンパイルしてみましたら
完動です!!!!
小数点のあとに0がいっぱい並んでるので、記念にスクショ撮りましたw
たいへんどうもありがとうございました
レスdです
実は私もそこのを使ってエラってたのですが、でもおかげ様で
「他のサイトから落としたファイルならうまく行くかも」、
ってことに思いいたりました
で、探したところgcc wikiっていうところで非公式ながら
お手軽そうなインストーラを発見、さっそく落として
コンパイルしてみましたら
完動です!!!!
小数点のあとに0がいっぱい並んでるので、記念にスクショ撮りましたw
たいへんどうもありがとうございました
344デフォルトの名無しさん
2014/02/28(金) 01:11:13.40 >343
無事出来てよかったですね!
それにしても、Fortran IVとか、Fortran 77では、せいぜい
2倍長演算しかできなかったのですが、いまでは、4倍長演算
がらくらくできるのですから、隔世の感があります。
無事出来てよかったですね!
それにしても、Fortran IVとか、Fortran 77では、せいぜい
2倍長演算しかできなかったのですが、いまでは、4倍長演算
がらくらくできるのですから、隔世の感があります。
345デフォルトの名無しさん
2014/02/28(金) 01:24:15.95 Debian 32bit版に gfortran 入れて数値計算してるんですが、配列って2gb までしか割り当てられないのでしょうか?
346デフォルトの名無しさん
2014/02/28(金) 20:13:18.20 >>345
32bit版ならできないと思いますよー
32bit版ならできないと思いますよー
347デフォルトの名無しさん
2014/02/28(金) 21:27:17.52348デフォルトの名無しさん
2014/03/01(土) 01:45:11.84 4倍長はソフトウェアで計算しているから10倍以上遅いから
むやみに初心者には教えんなw
むやみに初心者には教えんなw
349デフォルトの名無しさん
2014/03/01(土) 05:45:52.65 >336 >341->342
遅くなりましたがレスありがとうございます!
Intelさんの優しさが五臓六腑に染みますわあ
遅くなりましたがレスありがとうございます!
Intelさんの優しさが五臓六腑に染みますわあ
350デフォルトの名無しさん
2014/03/01(土) 17:12:18.11351デフォルトの名無しさん
2014/03/02(日) 15:54:25.99 OS&コンパイラ64bit版にしても、静的な配列は2Gまでだったりすることが多いから、
よく調べた方がいいぞ。むろん動的には2Gを超えて確保できるが。
これは手抜きではなく、まだ整数のデフォは32bitだし、単精度実数とデフォ整数
長さを合わせるという約束とかもあるから色々全体整合で仕方ない事情がある。
よく調べた方がいいぞ。むろん動的には2Gを超えて確保できるが。
これは手抜きではなく、まだ整数のデフォは32bitだし、単精度実数とデフォ整数
長さを合わせるという約束とかもあるから色々全体整合で仕方ない事情がある。
352デフォルトの名無しさん
2014/03/03(月) 02:46:29.22 >>351
うーん、難しい話ですね。
単純に64bitにしたからって載せてるメモリフルフルで使えるわけではないってことですね?
どうしても配列を一度に百万行ほど読み込ませて数値計算を行いたいのでほとほと困り果ててます。
和書だとあまりフォートランに関して詳しい解説本(オプションやらテクニック的なもの)が少ない気がするのですが、何かオススメありますか?
うーん、難しい話ですね。
単純に64bitにしたからって載せてるメモリフルフルで使えるわけではないってことですね?
どうしても配列を一度に百万行ほど読み込ませて数値計算を行いたいのでほとほと困り果ててます。
和書だとあまりフォートランに関して詳しい解説本(オプションやらテクニック的なもの)が少ない気がするのですが、何かオススメありますか?
353デフォルトの名無しさん
2014/03/04(火) 23:40:05.16 昔は西村恕彦が粘着していたが、その後は粘着いないね。
・66でJIS FORTRAN全釈―電子計算機プログラム用言語
・77で岩波FORTRAN辞典
・90ではMetcalf&Reid本訳者としてbit 別冊『詳解 Fortran 90』
Metcalf & Reid 本もF2003から Cohen が加わったが、これは東京に住んでるんだから
次世代匂い付き粘着野郎が生まれてもいいはずだ!w
とはいえアメリカ人も粘着ばばあのJ.C.Adamsが死んでからFortran Handbookが
でなくなったので寒い時代になってしまった。
・66でJIS FORTRAN全釈―電子計算機プログラム用言語
・77で岩波FORTRAN辞典
・90ではMetcalf&Reid本訳者としてbit 別冊『詳解 Fortran 90』
Metcalf & Reid 本もF2003から Cohen が加わったが、これは東京に住んでるんだから
次世代匂い付き粘着野郎が生まれてもいいはずだ!w
とはいえアメリカ人も粘着ばばあのJ.C.Adamsが死んでからFortran Handbookが
でなくなったので寒い時代になってしまった。
354デフォルトの名無しさん
2014/03/07(金) 00:23:39.85 >>350 プログラム終了までほっといていいなら deallocate 不要
サブルーチンで宣言した非 save の allocatable は
サブルーチン抜けると勝手に deallocate したかと
サブルーチンで宣言した非 save の allocatable は
サブルーチン抜けると勝手に deallocate したかと
355デフォルトの名無しさん
2014/03/07(金) 02:00:33.33356デフォルトの名無しさん
2014/03/08(土) 00:26:57.93 Fortran90 からずっと 6.3.3.1 Deallocation of allocatable arrays で述べてる
return または end で手続きの実行が終了したとき、その手続きの局所変数は deallocate されると
allocate 時の問題じゃないことは当然確認したね?コードうp
return または end で手続きの実行が終了したとき、その手続きの局所変数は deallocate されると
allocate 時の問題じゃないことは当然確認したね?コードうp
357デフォルトの名無しさん
2014/03/08(土) 00:46:31.22 >>356
むっちゃコード長いプラスモジュール化してるんでつけどOKでつか?
むっちゃコード長いプラスモジュール化してるんでつけどOKでつか?
358デフォルトの名無しさん
2014/03/08(土) 02:56:59.79359デフォルトの名無しさん
2014/03/09(日) 00:53:32.50 仕様にあるから…ってもベンダ依存はしゃーないか
http://www.nag.co.uk/sc22wg5/links.html
だがモジュール変数は解放されない
あとむしろそういうコード解析できる機会ないからくれるなら是非
公開したこと他の奴に怒られる事態になっても知らないけど
http://www.nag.co.uk/sc22wg5/links.html
だがモジュール変数は解放されない
あとむしろそういうコード解析できる機会ないからくれるなら是非
公開したこと他の奴に怒られる事態になっても知らないけど
360デフォルトの名無しさん
2014/03/09(日) 03:31:03.92 F90
>Any other allocatable array that is currently allocated becomes
>undefined and the allocation status becomes
>undefined at the execution of a RETURN or END statement.
>
>If an allocatable array has an undefined allocation status,
>the allocatable array must not be subsequently
>referenced, defined, allocated, or deallocated.
F95
>When the execution of a procedure is terminated by execution of
> a RETURN or END statement, an allocatable array that is a local
> variable of the procedure and is not included in the above
>categories has allocation status as follows:
> (1) If it is accessed by use association, its allocation status is processor dependent.
> (2) Otherwise, it is deallocated (as if by a DEALLOCATE statement).
規格を見ると、F90で明示的にDEALLOCATEしないでRETURNすると、ホントは二度といじって
いけないエンガチョになるんだな。F95は気を利かしてDEALLOCATEしてくれる。
>Any other allocatable array that is currently allocated becomes
>undefined and the allocation status becomes
>undefined at the execution of a RETURN or END statement.
>
>If an allocatable array has an undefined allocation status,
>the allocatable array must not be subsequently
>referenced, defined, allocated, or deallocated.
F95
>When the execution of a procedure is terminated by execution of
> a RETURN or END statement, an allocatable array that is a local
> variable of the procedure and is not included in the above
>categories has allocation status as follows:
> (1) If it is accessed by use association, its allocation status is processor dependent.
> (2) Otherwise, it is deallocated (as if by a DEALLOCATE statement).
規格を見ると、F90で明示的にDEALLOCATEしないでRETURNすると、ホントは二度といじって
いけないエンガチョになるんだな。F95は気を利かしてDEALLOCATEしてくれる。
361デフォルトの名無しさん
2014/03/24(月) 22:03:24.67ID:NcnrpLpF 保守
コンパイラ任せでなく、Fortran 言語の範疇で、まともに
高速化を考える人間ってどれくらいいるのだろうか
コンパイラ任せでなく、Fortran 言語の範疇で、まともに
高速化を考える人間ってどれくらいいるのだろうか
362デフォルトの名無しさん
2014/03/25(火) 07:28:56.11ID:mXzRLR6s363デフォルトの名無しさん
2014/03/25(火) 21:47:05.41ID:jjQiXJR+ とりあえず文法は ggれならぬ nagれ、だな。本は洋書しかないし
http://www.nag-j.co.jp/fortran/
一昔前のベクトル型計算機向けっぽい(最近のアクセラレータで見直されてる)
ループ変数固定とか仮引数の非エリアスとかの暗黙制約、
配列表現の柔軟さに ELEMENTAL & PURE 関数、
Fortran 直じゃないが OpenMP & MPI と割となんでも明示化できるが、
逆に言うと複雑かつこれやっとけばおk的な部分がないのと、
そこまで性能にシビアな世界はニッチかつ閉鎖的すぎる、特に国内事情で。
http://www.nag-j.co.jp/fortran/
一昔前のベクトル型計算機向けっぽい(最近のアクセラレータで見直されてる)
ループ変数固定とか仮引数の非エリアスとかの暗黙制約、
配列表現の柔軟さに ELEMENTAL & PURE 関数、
Fortran 直じゃないが OpenMP & MPI と割となんでも明示化できるが、
逆に言うと複雑かつこれやっとけばおk的な部分がないのと、
そこまで性能にシビアな世界はニッチかつ閉鎖的すぎる、特に国内事情で。
364デフォルトの名無しさん
2014/03/26(水) 21:12:26.41ID:OKU3OlE2 国内でFortran使ってる人口がそもそも少なそう
365デフォルトの名無しさん
2014/03/28(金) 02:08:30.32ID:OEPLP/0i 最近コンピュータというとWEBがらみでテキスト処理機みたいなノリが強いが、
本来の電子計算機としてはFortran不動だべ。
そして日本は結構Fortran市場/ユーザーでかいんでないかな。
Intel Fortranは英語以外には唯一日本語マニュアル等を出しているし。
アメリカ以外でハード・OS・コンパイラまともに作れるの日本ぐらいでね。
本来の電子計算機としてはFortran不動だべ。
そして日本は結構Fortran市場/ユーザーでかいんでないかな。
Intel Fortranは英語以外には唯一日本語マニュアル等を出しているし。
アメリカ以外でハード・OS・コンパイラまともに作れるの日本ぐらいでね。
366デフォルトの名無しさん
2014/03/28(金) 07:40:18.76ID:27mpC+N6 ちょいとスレチかもしれませんが、みなさん変数の命名法ってどうしてますか?
ん
ん
367デフォルトの名無しさん
2014/03/29(土) 14:26:34.57ID:iivY7v+4 商業利用は少ないし、研究機関での個人・少人数開発がほとんどだし、明文化されたコーディング規約ってなかなか見つからんよな。
C++も併用してるので、そっちの命名規約と統一してる。
変数大文字6文字縛りは勘弁な。
C++も併用してるので、そっちの命名規約と統一してる。
変数大文字6文字縛りは勘弁な。
368デフォルトの名無しさん
2014/03/30(日) 02:02:03.27ID:wC7BTSuT WEB世界の偉い人wでもFortranの知識が66や77時代のイメージ止まりで
とんちんかんな事を言っていて笑える。
アドバイスで数値計算はFortranじゃなくてもいいとか言って、
初心者たぶらかして冬山にTシャツ、サンダルで登山させるような
悪い奴多すぎで草不可避www
とんちんかんな事を言っていて笑える。
アドバイスで数値計算はFortranじゃなくてもいいとか言って、
初心者たぶらかして冬山にTシャツ、サンダルで登山させるような
悪い奴多すぎで草不可避www
369デフォルトの名無しさん
2014/04/12(土) 01:07:03.97ID:Ab832t2z fortran90なんだけど、
三次元配列に二次元配列の要素を代入したいんだけど、どうすればいいかな?
a(i,j)に時間軸tを追加して、
do t=1,100
b(i,j,t)=a(i,j)
end do
こういうイメージで、逐次のa(i,j)を代入したいっす。
三次元配列に二次元配列の要素を代入したいんだけど、どうすればいいかな?
a(i,j)に時間軸tを追加して、
do t=1,100
b(i,j,t)=a(i,j)
end do
こういうイメージで、逐次のa(i,j)を代入したいっす。
370デフォルトの名無しさん
2014/04/12(土) 02:03:40.35ID:7FV8vMmK b(:,:,t)=a
でおk?
でおk?
371デフォルトの名無しさん
2014/04/12(土) 02:56:42.37ID:7b7Ca2J/ え そんなシンプルでおk?
ありがとうございます
ありがとうございます
372デフォルトの名無しさん
2014/04/15(火) 10:35:48.57ID:nSLuXsCJ b(:,:,t)=a(i,j)ってやれば二次元配列に時間軸を追加したものができるのか
よくある:ってなんの意味なんです?
よくある:ってなんの意味なんです?
373デフォルトの名無しさん
2014/04/15(火) 19:04:08.61ID:2Visq3rw b(:,:,t)=a(i,j) だと駄目。
>>370 のとおりじゃないと。
部分配列を指定するのにコロンを使う。
たとえば配列 v の第2成分から第10成分までなら v(2:10)。
コロンの両脇に数字がないのは、成分あるだけ全部という意味。
>>370 のとおりじゃないと。
部分配列を指定するのにコロンを使う。
たとえば配列 v の第2成分から第10成分までなら v(2:10)。
コロンの両脇に数字がないのは、成分あるだけ全部という意味。
374デフォルトの名無しさん
2014/04/15(火) 19:11:45.41ID:0DdTk08m ちょうどいい解説があった
http://www.str.ce.akita-u.ac.jp/~gotou/zyouhou/f90/sec6.html#6.4.
http://www.str.ce.akita-u.ac.jp/~gotou/zyouhou/f90/sec6.html#6.4.
375デフォルトの名無しさん
2014/04/15(火) 21:45:58.64ID:y6pD2KFL376デフォルトの名無しさん
2014/04/15(火) 22:23:43.96ID:2Visq3rw >>375
373 で俺が言いたかったことは、配列 a について
「a」や「a(:, :)」と書くと配列全体を意味する。
「a(i, j)」と書くのは(前もって i, j に整数が代入されていれば)成分 a(i, j) つまりただひとつの数字を意味する。
ということ。
したがって b(:, :, t) = a と書けば配列全体の代入なので
b(1, 1, t) = a(1, 1)
b(1, 2, t) = a(1, 2) のように配列の対応する成分が代入されるが、b(:, :, t) = a(i, j) と書けば
b(1, 1, t) = a(i, j)
b(1, 2, t) = a(i, j)...
のように、ただひとつの同じ数字が代入される。
373 で俺が言いたかったことは、配列 a について
「a」や「a(:, :)」と書くと配列全体を意味する。
「a(i, j)」と書くのは(前もって i, j に整数が代入されていれば)成分 a(i, j) つまりただひとつの数字を意味する。
ということ。
したがって b(:, :, t) = a と書けば配列全体の代入なので
b(1, 1, t) = a(1, 1)
b(1, 2, t) = a(1, 2) のように配列の対応する成分が代入されるが、b(:, :, t) = a(i, j) と書けば
b(1, 1, t) = a(i, j)
b(1, 2, t) = a(i, j)...
のように、ただひとつの同じ数字が代入される。
377デフォルトの名無しさん
2014/04/15(火) 22:26:34.41ID:y6pD2KFL >>376
なるほど、よくわかりました。ありがとうございます。数日前にfortranをはじめましたがプログラミング自体がほぼ初なのでとても勉強になりました。
人の書いたプログラムのある一つのサブルーチンを修正したいのですが、変数の名前の設定の仕方も人それぞれだし、読むというのはとても大変ですね。
なるほど、よくわかりました。ありがとうございます。数日前にfortranをはじめましたがプログラミング自体がほぼ初なのでとても勉強になりました。
人の書いたプログラムのある一つのサブルーチンを修正したいのですが、変数の名前の設定の仕方も人それぞれだし、読むというのはとても大変ですね。
378デフォルトの名無しさん
2014/04/15(火) 22:33:12.92ID:pcXih3Yx >>377
追記の質問なのですが、bは三次元配列でaは二次元配列ですが、こちらが指示しなくても、aをbの:,:部分に入れるのですね。
これは次元の違うものを代入をするとき、どのように対応するのかは次元で決まるということでしょうか。
aは1次元、2次元成分をもつ配列だから、それを代入する先もbの1次元、2次元成分に代入するということですよね?
追記の質問なのですが、bは三次元配列でaは二次元配列ですが、こちらが指示しなくても、aをbの:,:部分に入れるのですね。
これは次元の違うものを代入をするとき、どのように対応するのかは次元で決まるということでしょうか。
aは1次元、2次元成分をもつ配列だから、それを代入する先もbの1次元、2次元成分に代入するということですよね?
379デフォルトの名無しさん
2014/04/15(火) 22:51:15.04ID:2Visq3rw b(:, :, t) と a(:, :) は同じ次元です。
>>369,370 のレスを踏まえて書いているので、
do t=1,100
b(:, :,t)=a
end do
のように使うことを想定しています。
b(:, :, :) は3次元配列だけど、b(:, :, 1), b(:, :, 2), ..., b(:, :, 100) はそれぞれ2次元配列です。
なので b(:, :, t) = a は2次元配列を2次元配列に代入していることになります。
>>369,370 のレスを踏まえて書いているので、
do t=1,100
b(:, :,t)=a
end do
のように使うことを想定しています。
b(:, :, :) は3次元配列だけど、b(:, :, 1), b(:, :, 2), ..., b(:, :, 100) はそれぞれ2次元配列です。
なので b(:, :, t) = a は2次元配列を2次元配列に代入していることになります。
380デフォルトの名無しさん
2014/04/16(水) 01:41:26.57ID:9gYQIu+P >>379
>b(:, :, :) は3次元配列だけど、b(:, :, 1), >b(:, :, 2), ..., b(:, :, 100) はそれぞれ2次元配>列です。
配列については調べましたが、意味がわかりませんでした。なぜ二次元配列なのでしょうか
integer a
dimension a(2,3,1)
私はこれは3次元の配列だと思っています。
配列の次元は,で区切った数で決まるのではないのですか
>b(:, :, :) は3次元配列だけど、b(:, :, 1), >b(:, :, 2), ..., b(:, :, 100) はそれぞれ2次元配>列です。
配列については調べましたが、意味がわかりませんでした。なぜ二次元配列なのでしょうか
integer a
dimension a(2,3,1)
私はこれは3次元の配列だと思っています。
配列の次元は,で区切った数で決まるのではないのですか
381勝手に横レス
2014/04/16(水) 03:26:06.14ID:k2nSQYfZ >>380
:は指定した配列の範囲を一度に指定する表記
配列の宣言を
real, dimension(1:5,1:5) :: a
real, dimension(1:5,1:5,1:10) :: b
としたとき
aと書いた場合は配列全体を指すので5×5の2次元配列を指す
a(1,1)は添え字を具体的な数で指定しているので一つの変数を指している
a(:,:)は添え字が全て:なので二つの添え字が全範囲を指定している
そのためaと書いた場合と同じ5×5の2次元配列を指す
a(:,1)と書いた場合は一つ目の添え字は全範囲を、
二つ目の添え字は具体的な数なので一つの成分を指定している
そのため5つの要素の1次元配列を指す
b(:,:,1)の場合bの最後の添え字は具体的な数なので
次元が一つ下がり、5×5の2次元配列となる
宣言の次元と計算途中で使われる次元は一致しなくて良い
NAGのサイトで部分配列で調べると良いよ
:は指定した配列の範囲を一度に指定する表記
配列の宣言を
real, dimension(1:5,1:5) :: a
real, dimension(1:5,1:5,1:10) :: b
としたとき
aと書いた場合は配列全体を指すので5×5の2次元配列を指す
a(1,1)は添え字を具体的な数で指定しているので一つの変数を指している
a(:,:)は添え字が全て:なので二つの添え字が全範囲を指定している
そのためaと書いた場合と同じ5×5の2次元配列を指す
a(:,1)と書いた場合は一つ目の添え字は全範囲を、
二つ目の添え字は具体的な数なので一つの成分を指定している
そのため5つの要素の1次元配列を指す
b(:,:,1)の場合bの最後の添え字は具体的な数なので
次元が一つ下がり、5×5の2次元配列となる
宣言の次元と計算途中で使われる次元は一致しなくて良い
NAGのサイトで部分配列で調べると良いよ
382デフォルトの名無しさん
2014/04/17(木) 22:25:20.75ID:TQr8bRVR >>381
遅くなりました。非常にわかりやすい解説ありがとうございます。NAGで少しずつ勉強しています
遅くなりました。非常にわかりやすい解説ありがとうございます。NAGで少しずつ勉強しています
383デフォルトの名無しさん
2014/04/20(日) 11:29:29.42ID:LM2YJqRp すみません
fortranを始めようと思ってるものですが
おすすめの開発環境を教えていただけないでしょうか?
今はgfortranとvimでプログラミングを始めようかと思っているのですが
いちいちvimで書いて保存してvimをぬけてコンパイルして実行するのが手間だなと感じています。
vimを抜けずに書いたプログラムをコンパイル、実行できればいいのですが。
そこでおすすめの開発環境を教えていただきたいのです。
fortranを始めようと思ってるものですが
おすすめの開発環境を教えていただけないでしょうか?
今はgfortranとvimでプログラミングを始めようかと思っているのですが
いちいちvimで書いて保存してvimをぬけてコンパイルして実行するのが手間だなと感じています。
vimを抜けずに書いたプログラムをコンパイル、実行できればいいのですが。
そこでおすすめの開発環境を教えていただきたいのです。
384デフォルトの名無しさん
2014/04/20(日) 11:40:02.65ID:rCakeQE3 小規模ならエディタ+コマンドラインでいいと思うけど
gfortranで統合開発環境ならeclipseが無難
https://www.eclipse.org/downloads/
ここからEclipse for Parallel Application Developersをダウンロード
gfortranで統合開発環境ならeclipseが無難
https://www.eclipse.org/downloads/
ここからEclipse for Parallel Application Developersをダウンロード
385デフォルトの名無しさん
2014/04/21(月) 08:18:52.31ID:9DEaCYEm >>384
小規模でもエクリプス使う利点ある?
小規模でもエクリプス使う利点ある?
386デフォルトの名無しさん
2014/04/21(月) 11:58:42.13ID:INTGmmt1 否定するだけじゃなく、代替案を示せよ!
サヨクちゃんかよw
サヨクちゃんかよw
387デフォルトの名無しさん
2014/04/21(月) 13:10:45.24ID:9DEaCYEm388デフォルトの名無しさん
2014/04/22(火) 18:21:36.11ID:i3jJvf/a Gfortran 使いです。
Cycle 文についての質問だけど、
do a = 1, 5
If ( a .ge. 3) then
a = a + 1
cycle
endif
enddo
とかだったら a = 12 になるのかな?
Cycle 文についての質問だけど、
do a = 1, 5
If ( a .ge. 3) then
a = a + 1
cycle
endif
enddo
とかだったら a = 12 になるのかな?
389デフォルトの名無しさん
2014/04/23(水) 00:33:33.39ID:cH3Ejolk do 変数をいじっちゃいけないはず。
自分のおちんちん/おまんこはいじってもいいよ。
自分のおちんちん/おまんこはいじってもいいよ。
390デフォルトの名無しさん
2014/04/23(水) 00:35:19.04ID:4m41LpoI ループ中でループ変数(この場合は a)は変更できない
391デフォルトの名無しさん
2014/04/23(水) 02:10:49.07ID:2MktZpH7 間違えた
a = {1, 3, 4, 6, 7}の配列として,
do i = 1, 5
If ( mod(a) .eq. 0) then
write(*,*) a
cycle
endif
enddo
とかだったらターミナルに
4
6
って表示されるのかな?
つまりはcycleってのはdo の文頭に戻るでOK?
a = {1, 3, 4, 6, 7}の配列として,
do i = 1, 5
If ( mod(a) .eq. 0) then
write(*,*) a
cycle
endif
enddo
とかだったらターミナルに
4
6
って表示されるのかな?
つまりはcycleってのはdo の文頭に戻るでOK?
392デフォルトの名無しさん
2014/04/23(水) 02:47:07.80ID:cH3Ejolk おじちゃん、少しは文法書読みなよw
4
6
って表示されるよ!
でも間違いありすぎ。
a = [1,3,4,6,7] !
または (/ 1,3,4,6,7 /) な。EBCDIC には [,] 記号がないから、
大かっこは最近まで使わなかったのよ。
do i = 1, 5
if (mod(a(i), 2) == 0) then
write(*, *) a(i)
cycle
end if
end do
まぁ、この場合CYCLEの意味ないけどw
4
6
って表示されるよ!
でも間違いありすぎ。
a = [1,3,4,6,7] !
または (/ 1,3,4,6,7 /) な。EBCDIC には [,] 記号がないから、
大かっこは最近まで使わなかったのよ。
do i = 1, 5
if (mod(a(i), 2) == 0) then
write(*, *) a(i)
cycle
end if
end do
まぁ、この場合CYCLEの意味ないけどw
393デフォルトの名無しさん
2014/04/23(水) 04:13:45.15ID:2MktZpH7394デフォルトの名無しさん
2014/04/24(木) 04:26:06.40ID:PfDx1Fno 試した奴いるかい?
登録がめんどくさいんですけど。
インテル ソフトウェア開発製品 バージョン 2015 ベータ版 提供開始
インテル Parallel Studio XE、Cluster Studio XE に含まれるインテル コンパイラーやライブラリー、チューニング・ツールの次期バージョンのベータ・プログラムがはじまりました。
新機能や強化された機能はこちら【ベータ期間: 7月 11日(金)まで】
HTTPS software.intel.com/en-us/articles/intel-software-development-tools-2015-beta
登録がめんどくさいんですけど。
インテル ソフトウェア開発製品 バージョン 2015 ベータ版 提供開始
インテル Parallel Studio XE、Cluster Studio XE に含まれるインテル コンパイラーやライブラリー、チューニング・ツールの次期バージョンのベータ・プログラムがはじまりました。
新機能や強化された機能はこちら【ベータ期間: 7月 11日(金)まで】
HTTPS software.intel.com/en-us/articles/intel-software-development-tools-2015-beta
395デフォルトの名無しさん
2014/04/25(金) 18:01:43.49ID:nDom0mhY ちょっとお聞きしたいのですが、
構造体の1成分だけfunctionで計算するような
書き方はできないでしょうか
たとえば
function aaa(i,j)%a
ーーー
end functionなど・・
構造体初めて使うのでまだよくわかっておらずすいません
よろしくおねがいします
構造体の1成分だけfunctionで計算するような
書き方はできないでしょうか
たとえば
function aaa(i,j)%a
ーーー
end functionなど・・
構造体初めて使うのでまだよくわかっておらずすいません
よろしくおねがいします
396デフォルトの名無しさん
2014/04/25(金) 19:31:14.66ID:9DVeZXXS 「構造体の1成分だけfunctionで計算する」っていうのがよくわからない。
(1)function の引数として構造体の1成分を使うのか、(2)function の戻り値として構造体の1成分を得たいのか。
いずれにせよ、関数定義では構造体をあらわに使う必要がなさそう。
たとえば構造体の1成分 aaa(i,j)%a が real のばあいなら、関数定義は
function f(x)
real f, x
f = x**2
end function
のようにして、(1)なら呼び出し時に
b = f(aaa(i, j)%a)
のようにすればいいし、(2)なら呼び出し時に
aaa(i, j)%a = f(c)
のようにすればいいのではないでしょうか。
(1)function の引数として構造体の1成分を使うのか、(2)function の戻り値として構造体の1成分を得たいのか。
いずれにせよ、関数定義では構造体をあらわに使う必要がなさそう。
たとえば構造体の1成分 aaa(i,j)%a が real のばあいなら、関数定義は
function f(x)
real f, x
f = x**2
end function
のようにして、(1)なら呼び出し時に
b = f(aaa(i, j)%a)
のようにすればいいし、(2)なら呼び出し時に
aaa(i, j)%a = f(c)
のようにすればいいのではないでしょうか。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否 [夜のけいちゃん★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★5 [ぐれ★]
- 映画「鬼滅の刃」の興行収入急減、日本行き航空券大量キャンセル…中国メディア報道 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 「タワマン天国」に飛びつく若者…SNSに転がる「成功体験」に続けるのか 湾岸エリアの業者が語った現実 [蚤の市★]
- ホテル業界、高市のせいで中国から大量キャンセル 「大変厳しい状態。一刻も早い収束を願います」 [271912485]
- 【正論】玉木雄一郎「高市さんの答弁は米軍が攻撃を受けた場合を前提としており、撤回するのは難しい」特定野党を完全論破 [519511584]
- ホリエモンが政治家達を呼んで台湾有事について議論する動画を公開したんだけどお前らはこれの内容についてどう思う [317527133]
- 麻生太郎氏、高市政権と距離を置きはじめる(´・ω・`) [399259198]
- んなり放題🍬のお🏡
- フランス「G7に習近平主席を呼びたい」ドイツ「良い考えだ」 高市さん...? [237216734]
