くだすれFORTRAN(超初心者用)その7 (27レス)
1-

1
(1): デフォルトの名無しさん [] 2021/04/05(月) 11:39:10.69 ID:i9PX2oQn(1/4) AAS
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです.
FORTRAN使いが優しくコメントを返します.

●注意事項
・質問する前にGoogle等の検索サイトで検索しましょう。
・回答者にわかりやすい様に、質問内容はできる限り詳しく書きましょう。
・エラーの場合は起きた状況、環境(OS・コンパイラ・バージョン)、エラーメッセージも詳しく書きましょう。

●前スレ
くだすれFORTRAN(超初心者用)その6
2chスレ:tech

●過去スレ
くだすれFORTRAN(超初心者用)その5
2chスレ:tech
くだすれFORTRAN(超初心者用)その4
2chスレ:tech
くだすれFORTRAN(超初心者用)その3
2chスレ:tech
くだすれFORTRAN(超初心者用)その2
2chスレ:tech
くだすれFORTRAN(超初心者用)
2chスレ:tech
2: デフォルトの名無しさん [] 2021/04/05(月) 11:47:00.47 ID:i9PX2oQn(2/4) AAS
前スレが落ちて久しく,誰も立てないようなので勇気を持って立ててみました
結構お世話になってたので,需要はあるはず!と個人的経験による独断で
無ければまあ,落ちるでしょう...
>>1も情報が古いので手を入れました.
後ほど適当な参考リンクを拾ってきます.

ところで,パート7,で良かったでしょうかね?
3
(1): デフォルトの名無しさん [] 2021/04/05(月) 13:02:46.02 ID:i9PX2oQn(3/4) AAS
とりあえず公式(チュートリアルあるよ)
https://fortran-lang.org/

処理系は?
PC向けでフリーだとifort(個人使用に限る)が高品質で有名です.
何でも揃ったmklも付いてきます.
自由なソフトウェアではgfortran, g95が有名です
95と名乗っていますが,2003/2008の機能も結構使えます.
学習には十二分でしょう.
CUDAをフルパワーで使えるnvfortran方言が熱いです.

どのバージョンを使えばいいの?
*77は教養として後々読めるようになればいいと思います.
*90/95が広く使われていますが,Obsoleteな機能も沢山残しているので,
初学では戸惑う事が多いでしょう.
*2003は90/95の範囲内で書くとしてもよりよいでしょう.
あと公式に準拠表明していなくても拡張として大体使えます.
リファレンスは2003を参照しましょう.
*2008/2018ではCoarrayFortranやdo concurrent文を取り入れ,構文レベルで並列実行をサポートします.
綺麗なコードで非常に高レベルなプログラミングが可能に.
必要/興味のある人は次のステップとしてどうぞ.
*CUDAFortran
NVIDIAによる方言です.おうちでも分野によってはHPCができる時代です!
95以降の経験があれば大丈夫です.活発でサポートもよいです.

未熟者なので,おかしいところなどツッコミよろしくおねがいします
4: デフォルトの名無しさん [sage] 2021/04/05(月) 13:17:17.59 ID:4V2ikFBU(1) AAS
とりあえず熱意に乙
5
(1): デフォルトの名無しさん [sage] 2021/04/05(月) 14:00:28.66 ID:i9PX2oQn(4/4) AAS
親しみやすそうなリソースを探し中、途中経過を早漏…

python(numpy)/fortran90 rosetta stone
https://www.fortran90.org/src/rosetta.html

numpyはfortranのラッパとして始まったので、まあロゼッタストーンと言えるんだろうかね
ちと文法が古いが…

俺はpython/scipyからステップアップ目指して始めた層なんで、そういう人は眺めるだけで掴めそう
ということで推薦
6: デフォルトの名無しさん [sage] 2021/04/18(日) 02:56:59.39 ID:3afvYK1h(1/2) AAS
数値の書式についての質問です
A = 0.01
とした時、変数Aをファイル名にしようとすると
hoge0.1E-03.dat
のように書き込まれますが、
hoge1.0E-02.dat
とすることは可能でしょうか?
と出力されますが,これを
ans = 0.1E-03
と表記させる方法ありますか?
7
(1): デフォルトの名無しさん [sage] 2021/04/18(日) 07:05:09.54 ID:wBSiSi/h(1) AAS
書式指定でeの代わりにesを指定すると1≦仮数部<10になる
Fortranの入出力書式はいろいろあるから、後は自分で調べてくれ
8: デフォルトの名無しさん [sage] 2021/04/18(日) 12:53:46.45 ID:3afvYK1h(2/2) AAS
>>7
ありがとうございます😊
9
(1): デフォルトの名無しさん [sage] 2021/05/03(月) 02:23:13.56 ID:PQP1mUBv(1) AAS
Do loop 中に

if (hoge) then
処理1
exit
elseif (hogehoge)
処理2
cycle
Endif

と言った同じ処理内容が100近くいくつもあるので、if -endif部分をサブルーチン化したいなと思ったのですが、exit やcycleが入ってると怒られます。
何か他にいい方法がありますか?
10: デフォルトの名無しさん [sage] 2021/05/05(水) 21:06:18.24 ID:rM/wxxFC(1) AAS
>>9
そんなことはできないので諦めろ
むしろfortran使うなよ…
11: デフォルトの名無しさん [sage] 2021/05/27(木) 10:06:05.89 ID:Or53VG180(1) AAS
やったぁ!!フォルトランスレだぁ!!!
12: デフォルトの名無しさん [sage] 2021/05/27(木) 14:13:13.27 ID:4Ku5ffLZ(1/2) AAS
>>5
whereとかall/someとかmaskとかめっちゃ便利そう!
学部教養用に広く使われているであろう某90/95数値解析本やってるけど、普通にループで回してやがる
まあアルゴリズムの理解のため、意図的にそうしてるんだろうと思うけど
13
(1): デフォルトの名無しさん [sage] 2021/05/27(木) 14:28:23.78 ID:4Ku5ffLZ(2/2) AAS
isoやcの型を一貫性なくuseしてたり、構造体を共有するなら必要なら型モジュールが必要なのは分かるけど
ひたすらdp=kind(0.d0)みたいな基本型かつ命名慣習のあるもので数値計算しててモジュールに集めてuseするべきなのかな?
14: デフォルトの名無しさん [] 2021/05/31(月) 18:02:38.35 ID:FQcGffaz(1) AAS
あげ
15: デフォルトの名無しさん [sage] 2021/06/01(火) 21:25:00.31 ID:wVQRTwyv(1) AAS
Fortran の詳しい参考書で何かあります?
森北出版の青本が一番良さげだけど、細かい機能解説載ってないのよね。
一体どこ見ればええんやろ
16: デフォルトの名無しさん [sage] 2021/06/02(水) 00:41:35.33 ID:oD2js2W4(1) AAS
ろくな書籍がないのでメーカー製コンパイラのマニュアルを見るのが無難(探せばネット上で見つかる)
洋書を買う気があるならModern Fortran explainedとか
17: デフォルトの名無しさん [sage] 2021/06/02(水) 08:58:33.23 ID:UfLjqhXv(1) AAS
2008以降でAmazon検索した事あるけど30冊〜くらい英書は引っかかったと思う
だいたい学術出版社なので万超えるが
あとcoarrayとかcuda fortranとか狙い撃ちしてるので教科書的でないのが多いかと

日本語でも数冊引っかかったと思う、見送ったのであんまりよろしくない感じかもしれん

遠い記憶なので気になったら調べ直してね
18: デフォルトの名無しさん [sage] 2021/06/02(水) 09:22:05.07 ID:Mf/lUWk3(1) AAS
>>13
基本型までモジュールにまとめる利点は一斉に精度切り替えられるくらいじゃない
そんなケースでこそサフィックスが_dpなのにdpじゃないとか紛らわしいし

ポータビリティ的には0.0d0から環境ローカルの型を取得するのは望ましいかもしれんが、個人的には環境によって変な結果が出る方が恐ろしい

どうせuseするなら明示的にiso_fortran_envのrealnn型を使いたい、対応してないなら落ちてくれた方がマシ

もしかして桁落ちするかもってところに_wp(wideのつもり)とか書いてseleted_real_kindのパラメータ振って検証したり、もしかして桁落ちするかもってところに_wp(wideのつもり)とか書いて定義を変えるとかはありじゃないかな
19: デフォルトの名無しさん [sage] 2021/11/02(火) 16:00:24.11 ID:9/G4G7ym(1) AAS
module変数を保存したい場合はsaveを使うけどtype::クラス名のメンバ変数にはsave使用不可
fortranでメンバ変数の値を保存したい(あるインスタンスで行った変更が次に生成したインスタンスにも初期値的に引き継がれるようにしたい)時ってどうすればいいんでしょう?
20: デフォルトの名無しさん [] 2021/12/20(月) 10:18:50.61 ID:T4fBefUM(1) AAS
スレタイの大文字に恐怖を覚えて、見にきました。
21: デフォルトの名無しさん [sage] 2021/12/23(木) 03:31:36.47 ID:PGj8Lcl5(1) AAS
Fortranなら怖くないのにね
22: デフォルトの名無しさん [] 2021/12/25(土) 04:13:49.31 ID:FaMYGA75(1) AAS
fortranでインラインアセンブラみたいに振る舞いたいのですがどうすればいいのです?
初心者ですいません
ネットにあるようでしたら調べに行きます
23: デフォルトの名無しさん [] 2023/10/23(月) 14:43:03.92 ID:vgQZUP0x(1) AAS
flang ってもうメンテされてないんですか?
24: デフォルトの名無しさん [sage] 2023/10/23(月) 21:17:24.53 ID:5q3FeFHZ(1) AAS
今開発が継続してるのはLLVM Flang
現時点ではWindowsに対応してない模様
https://flang.llvm.org/docs/

ちなみにIntelもオープン化してLLVMベースのFortranコンパイラに開発を移行してる(今までのは"Classic")
https://www.intel.com/content/www/us/en/developer/tools/oneapi/fortran-compiler.html
25: デフォルトの名無しさん [] 2024/02/09(金) 01:32:22.21 ID:3xoFjMsa(1) AAS
ヤッホー!、Fortran,ラン, ラン♪ ヤッホ, フォートー ランのラン, ヤッホホ!
26: デフォルトの名無しさん [sage] 2024/08/13(火) 20:46:53.99 ID:cgmyZnx+(1/2) AAS
大学の研究でfortranを使用することになりました
fortran+openaccの環境構築まで3日かけてやっと終わったんですが、そもそもfortranってどのバージョンを使うのが安牌なんでしょうか…
f90で良いんでしょうか?それともどれを使ってもあまり変わりませんか?
バージョンの説明はあってもどれを使うのがメジャーかは分かりませんでした…

プログラミング自体を講義でしか学んだことがなくて困惑中です
27: デフォルトの名無しさん [sage] 2024/08/13(火) 21:11:58.79 ID:cgmyZnx+(2/2) AAS
>>3読んでませんでした…
解決しましたすみませんでした
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.376s*