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

レス数が1000を超えています。これ以上書き込みはできません。
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/
970デフォルトの名無しさん
垢版 |
2019/09/20(金) 07:30:20.40ID:TGCjU1pt
Moduleで継承みたいなことってできないんでしょうか?

module mod1
integer,parameter :: val1 = 20
end

module mod2
use mod1
end

program main
use mod2

print *, val1
end

みたいな
このままだとエラーですけど
2019/09/20(金) 09:23:13.89ID:Y6O3yJb6
>>970
gfortran8.1で試したけど普通に動くよ
972デフォルトの名無しさん
垢版 |
2019/09/20(金) 11:49:11.89ID:TGCjU1pt
>>971
まじですか。
やってみます!
2019/12/05(木) 20:26:57.24ID:5HmbMnOR
今更fortran使う必要が出たんですけど宣言全部冒頭でやらなきゃいけないとか読みにくいにもほどがあるなこの言語……
ただdllでもない生のCファイル普通に使えるのちょっと強すぎじゃない。何これ
974デフォルトの名無しさん
垢版 |
2019/12/06(金) 10:25:38.93ID:uUae0oO6
JULIAやれ
2019/12/09(月) 23:37:38.73ID:PezMDr0C
C++に移植する作業をしてるんだが、fortranは配列が1スタートなのと行優先なのまじで糞だと思う
2019/12/10(火) 06:15:05.25ID:ehgh8Gwn
配列の下限もレイアウトも両方オプションで変更できるっしょ
977デフォルトの名無しさん
垢版 |
2019/12/10(火) 13:53:20.70ID:48kVELqA
openglも行優先だっけ
2019/12/14(土) 01:16:23.48ID:llZnx091
read/writeの装置番号というのに衝撃を受けたんだけど
いや整数を振るって……えぇ……他の言語でこんなん見たことねぇよ……
2019/12/14(土) 02:29:00.89ID:U3Y+OMfv
ここで言語仕様に文句言ってもどうしようもないだろ……
整数型の変数も使えるから自分で値を付けれるハンドルと考えれば良い
980デフォルトの名無しさん
垢版 |
2019/12/14(土) 10:56:06.61ID:oHNLq8G6
Cでもstdin=0,stdout=1,stderr=2とかやってるやん?
2019/12/14(土) 19:35:25.64ID:ygJNOGBg
ハンドルを整数値で管理するなんて普通だろ。
2019/12/15(日) 02:31:50.39ID:XiowEuWl
subroutineとfunctionの使い分けってどうしてます?FORTRANのコード規約みたいなのがあまり見当たらなくてわかんなくて
たとえばnameとageを持ったpersonタイプを作るとしてsubroutine getperson(name, age, person) intent(in)name, age intent(out)person
なのかgetname(name, age)ファンクションを定義してperson = getPerson(name, age)みたいなのがいいのか
他の言語の言い方になるけど前者は参照渡し的というか。今いじってるのがほぼ全部subroutineで処理してるからこういうのがfortranの書き方なのかなぁって
個人的には後者の方がいいのではと思うんですよね
2019/12/15(日) 08:10:55.00ID:ZURMU7Y0
副作用が無いならfunction、あるならsubroutine
例えばsinやcosはfunctionだけどrandom_numberは内部状態を書き換えるのでsubroutine
984デフォルトの名無しさん
垢版 |
2019/12/15(日) 12:59:16.65ID:o9m7qUoD
戻り値の有無やろ
2019/12/15(日) 13:03:16.56ID:PY/OteEv
返り値が複数かどうかだろ
2019/12/15(日) 20:36:28.41ID:AalVXpZd
副作用はpure修飾で区別するのでは
2019/12/15(日) 23:49:42.99ID:BpbcQxvZ
前提として初心者がどちらにするか迷った時の話で
非pure関数を同じ文中で複数呼んだら評価順の影響を受けて悩みの種になるというのがあるから
副作用があれば全部subroutineぐらいの割り切りでいいと思う
2019/12/16(月) 08:12:12.88ID:CEJg7/0A
>985
複数の返り値を構造体にすれば、関数でいけるのではないでしょうかね
2020/01/09(木) 14:06:43.45ID:Rw5gLjBx
cigwin64ターミナルでコンパイルしようとすると
Winmain関数への定義がされてないって言われるんだけどどうしたらいいですか?
2020/01/10(金) 22:03:41.01ID:odrNzs9Z
Winmain関数を定義したらよいのでは。
991mac
垢版 |
2020/02/01(土) 22:13:14.55ID:Q+QKuWIk
macのOSをCatalinaにしてからfortranでコンパイルできなくなりました。
大学の宿題ができなくて困っています。助けてくだいさい!
gfortran main.f90 でコンパイル後のエラー文は以下です。

dyld: Library not loaded: /usr/local/opt/isl/lib/libisl.21.dylib
Referenced from: /usr/local/Cellar/gcc/9.1.0/libexec/gcc/x86_64-apple-darwin18/9.1.0/f951
Reason: image not found
gfortran: internal compiler error: Abort trap: 6 signal terminated program f951
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://github.com/Homebrew/homebrew-core/issues>; for instructions.
2020/02/02(日) 14:51:51.31ID:5oKX1F3M
>>991
エラーログよく読めよカスガキ
993mac
垢版 |
2020/02/03(月) 06:48:44.07ID:lEGOKPCQ
読んでみました。
libisl.21.dylib を読み込もうとしているのですが、
libisl.22.dylib におそらく対応ファイルが変わってしまったようです。
読み込み先を libisl.21.dylib → libisl.22.dylib に変更するにはどうしたら良いのでしょうか? 
994デフォルトの名無しさん
垢版 |
2020/02/03(月) 11:41:24.71ID:62FLJlST
libisl.22.dylib を libisl.21.dylib に rename
995mac
垢版 |
2020/02/04(火) 13:54:57.85ID:5KrL780U
コンパイルできるようになりました!
ありがとうございます!
2020/02/05(水) 02:53:14.67ID:hA2ZuT5R
並列計算のコマンドを do loop 内に入れると,配列ごとに計算できないのね。。。
なんか妙案あるのかな
2020/02/27(木) 21:39:58.16ID:LK+QpBx6
ifortで-ipoを指定すると謎のセグフォが発生する
2020/04/06(月) 04:39:32.64ID:D5KfSo1y
うめ
2020/04/06(月) 04:39:41.11ID:D5KfSo1y
うめ
2020/04/06(月) 04:39:53.59ID:D5KfSo1y
うめ
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 2789日 7時間 41分 53秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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