FORTRAN III
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGFORTRAN77/90/95/2003, HPF等、FORTRAN全般に関する話題を書き込んで下さい。
・前スレ
FORTRAN II
http://pc5.2ch.net/test/read.cgi/tech/1068351911/
Fortran
http://pc2.2ch.net/test/read.cgi/tech/1003214738/
0175デフォルトの名無しさん
2005/05/24(火) 08:23:00-fast -arch host -O5
ただ、これが最速とは限らない。
0176デフォルトの名無しさん
2005/05/24(火) 08:26:450177デフォルトの名無しさん
2005/05/24(火) 09:58:46ただマニュアルには
-O4 and -O5 have the same effect.
ってあるので、実質-O4まで。
0178デフォルトの名無しさん
2005/05/24(火) 19:22:55[k@localhost k]$ gedit test.f
[k@localhost k]$ g77 test.f
となって何もなりません。
a.outは作成されるのですが、クリックしてもなにもなりません。
よろしくお願いしします。
0179デフォルトの名無しさん
2005/05/24(火) 19:39:460180デフォルトの名無しさん
2005/05/24(火) 19:45:18出来ました!
学校のだと ./ 必要ないので分かりませんでした。
ありがとうございました。
0181デフォルトの名無しさん
2005/05/25(水) 09:12:10おやおや。その学校のマシンって結構危ないのではなかろうか。
0182デフォルトの名無しさん
2005/05/25(水) 10:55:23しかし、、「クリック」なのかぁ、、。
0183デフォルトの名無しさん
2005/05/25(水) 20:33:06すいません!
知りませんw
0184デフォルトの名無しさん
2005/05/26(木) 12:00:370185デフォルトの名無しさん
2005/05/26(木) 19:06:370186デフォルトの名無しさん
2005/05/26(木) 19:49:52NaNでそんなアフォなことを?
0187185
2005/05/26(木) 20:01:44いや、つい出来心でつ。
NaNをフラッグにして、条件分岐できるかなっと。
フラッグを -1 とか 999999 とかにすると、
いわゆる2000年問題的な問題がおきるしね。
フラッグの変数(boolean)をわざわざ作るのも面倒だし。
0188デフォルトの名無しさん
2005/05/26(木) 21:06:24character型は腐ってるということで、良いですかね。
0189デフォルトの名無しさん
2005/05/27(金) 01:07:05Cだとchar型の配列と変数は整合性があるけど、fortranの場合はそれが無い。
つまり、
character(len=10) choge
と
character(len=1) choge(10)
は全く違う内部構造になってるんだよね。
0190デフォルトの名無しさん
2005/05/27(金) 15:37:300191デフォルトの名無しさん
2005/05/27(金) 15:38:050192デフォルトの名無しさん
2005/05/27(金) 16:39:01open, read, write を勉強しる。
>>191
できない。f90からできる。
0193デフォルトの名無しさん
2005/05/27(金) 23:45:07出来たっけな。あくまでHPの独自拡張だけど。
0194デフォルトの名無しさん
2005/05/28(土) 19:07:44FortranのCHARACTERは長さの属性を持っている。
「文字型」と言っても実質的には文字列型になる。
高級言語という観点からすれば整数型 charの配列を文字列とする
Cの方が手抜きである、とも言える。
0195デフォルトの名無しさん
2005/05/30(月) 17:18:15使用してコンパイルしたいです。
どのコンパイラを使ったらよいですか?
0196デフォルトの名無しさん
2005/05/30(月) 23:43:52cygwin
0197sage
2005/06/01(水) 18:42:46ディレクトリを作成するにはどうしたらよいのでしょうか。
どなたかお教えくだされたまえ。
0198デフォルトの名無しさん
2005/06/01(水) 20:21:47call system('mkdir AAA')
0199デフォルトの名無しさん
2005/06/01(水) 20:26:180200デフォルトの名無しさん
2005/06/01(水) 21:04:20こんなツールでf90対応のソフトを知りませんか?
0201デフォルトの名無しさん
2005/06/02(木) 10:14:34ヘルプを参照したりググッてみたけどわかりませんでした。
使っているのは
Microsoft Developer Studio 97
Visual Fortran Professional Edition5.0A
というやつです。
0202デフォルトの名無しさん
2005/06/02(木) 15:42:060203197
2005/06/02(木) 17:56:170204デフォルトの名無しさん
2005/06/02(木) 22:30:20call systemを使わないやり方はありますか?
0205デフォルトの名無しさん
2005/06/03(金) 17:06:24LAPACK95を入れてテストしたらこんなエラーが出るんですけど
詳しい人おしえて
>g95 sample01.f90 -llapack95
In file sample01.f90:2
use la_precision, only: WP => SP
1
Fatal Error: Can't open module file 'la_precision.mod' at (1)
for reading: No such file or directory
ファイル la_precision.mod は c:\g95\lib にちゃんと存在するんですけど
0206デフォルトの名無しさん
2005/06/03(金) 20:55:43おそらくないと思うよ。
でも、たいがいのコンパイラで
call system('mkdir AAA')
または
ii=system('mkdir AAA')
のどちらかはサポートしてると思う(mkdirがない場合は知らんが)
0207デフォルトの名無しさん
2005/06/03(金) 23:22:27処理系依存のサブルーチンを使う。
Visual Fortran なら MAKEDIRQQ とか。
0208204
2005/06/03(金) 23:39:55どうもです。以前、中身の不明なディレクトリ内のファイルを全て読む
プログラムを作った時も、命令を見付けられなかったので仕方なく
call system("ls hoge/ > list")
open(io,file="list")
とかやっていました。lsが無いMS-DOSプロンプトだったら実行出来ない
ですね。
0209デフォルトの名無しさん
2005/06/04(土) 17:16:080210デフォルトの名無しさん
2005/06/04(土) 17:20:060211デフォルトの名無しさん
2005/06/10(金) 04:34:35基本は sh だろう。
0212デフォルトの名無しさん
2005/06/10(金) 22:54:19モジュールファイルのパスはライブラリとは別に指定します。
>g95 -Ic:\g95\lib sample01.f90 -llapack95
または
set G95_INCLUDE_PATH=c:\g95\lib
としてから
>g95 sample01.f90 -llapack95
0213デフォルトの名無しさん
2005/06/10(金) 23:08:21じゃあ、ディレクトリツリーを全て巡回しながらデータファイルを探し出し、それを読み込んでfortranで処理させるのshで作れよ。
0214デフォルトの名無しさん
2005/06/11(土) 10:29:31~/bin/getfilelist ~/dat > filelist.txt
~/bin/hoge filelist.txt
0215デフォルトの名無しさん
2005/06/11(土) 13:22:550216デフォルトの名無しさん
2005/06/11(土) 23:48:44例えばどんなスクリプトになるか
見せてちょ。
0217デフォルトの名無しさん
2005/06/11(土) 23:50:39211が言っているのはshのみを使うというよりは
sh+一般的にどこでも使えそうなコマンド(ls等)で作るという意味では。
0218デフォルトの名無しさん
2005/06/11(土) 23:55:23つまり、sh自体にディレクトリ巡回機能が付いてるのかどうかなんですが
0219デフォルトの名無しさん
2005/06/12(日) 00:42:03ものだと思うんだが。
ようは目的に合わせて自分の環境で使える道具を選択すればそれで良いんだよ。
0220デフォルトの名無しさん
2005/06/12(日) 00:46:55Fortran単体では柔軟な処理は不可能
ということです
0221デフォルトの名無しさん
2005/06/12(日) 01:06:28Fortranに限らず何でもかんでも単一の言語でやろうと余計な策を弄するのは本末転倒だし。
0222デフォルトの名無しさん
2005/06/12(日) 12:51:350223デフォルトの名無しさん
2005/06/12(日) 15:52:160224デフォルトの名無しさん
2005/06/12(日) 18:00:190225デフォルトの名無しさん
2005/06/12(日) 22:17:590226デフォルトの名無しさん
2005/06/12(日) 22:21:110227デフォルトの名無しさん
2005/06/12(日) 22:26:180228デフォルトの名無しさん
2005/06/12(日) 22:30:190229デフォルトの名無しさん
2005/06/12(日) 22:57:280230デフォルトの名無しさん
2005/06/12(日) 23:09:500231デフォルトの名無しさん
2005/06/12(日) 23:41:470232デフォルトの名無しさん
2005/06/13(月) 01:48:110233デフォルトの名無しさん
2005/06/13(月) 04:35:50だな。
ポータビリティーのことも考えると、
なるべく使いそうな計算環境にありふれた言語を使うことかな?
以前、Cで書いたコードをFortranからリンクしたら、
共同研究者から怒られた。Cが読めないんだって(笑)
そいうのは、例外的事例ってことで。
0234デフォルトの名無しさん
2005/06/13(月) 05:52:32事前にルールを決めとかないと…
0235デフォルトの名無しさん
2005/06/14(火) 02:20:33C言語はコンソールアプリケーション程度、しかもあまりできない。
Basicはアプリケーション開発をしばらくやってたけど理解できてるのかどうかわからなくてやめた。
何故やりたいのか
ちょいと興味があった。さわり程度に使ってみたい。
後はMs−Dosのシンプルな画面に惚れている。
0236デフォルトの名無しさん
2005/06/14(火) 11:08:18無謀じゃないよ。古臭い手続き型言語だから、本やWebでいくつか例題やればすぐ習得できる。
でも、あんまり面白い言語じゃないし、エレガントでもない。
0237デフォルトの名無しさん
2005/06/14(火) 20:29:50のでしょうか?ほぼ初心者です。
0238デフォルトの名無しさん
2005/06/14(火) 20:38:390239237
2005/06/14(火) 22:42:450240デフォルトの名無しさん
2005/06/14(火) 22:52:390241デフォルトの名無しさん
2005/06/14(火) 23:14:27ttp://www.intel.com/software/products/compilers/flin/flinux.htm
ttp://www.intel.com/software/products/compilers/fwin/fwindows.htm
0242デフォルトの名無しさん
2005/06/14(火) 23:36:200243デフォルトの名無しさん
2005/06/15(水) 03:08:56大学の卒研でFortran(今のところ77で十分)が必要になったんですが、インストールの段階で早くもつまづき、どうにも前へ進めません
gccが何のことかすらよくわかりません
Linuxユーザの方HELP ME
0244デフォルトの名無しさん
2005/06/15(水) 03:29:23いいと思うよ。
0245デフォルトの名無しさん
2005/06/15(水) 03:33:48つ http://www.google.co.jp/search?hl=ja&q=g77+linux&lr=lang_ja
0246デフォルトの名無しさん
2005/06/15(水) 19:19:23ヒロシです。
9.0 のリリースの件,ダイレクト電子メールで勤務中に知ったとです。
3月に 8.1 を買ったばかりだったので,ちかっぱショックだったとです。
ヒロシです‥‥
安値でアップグレードできるんだろうか?
今まではどうだったか,ご存じのかた教えて下さい。
0247デフォルトの名無しさん
2005/06/15(水) 20:08:44インテルにユーザー登録すれば、購入後1年間は無償で最新版をダウンロード出来ます。
2年目以降は保守ライセンス契約の更新(有償、新規価格の約半分)という形で
このサポートサービスを継続していくことが出来ます。
ttp://www.xlsoft.com/jp/products/intel/register.html
ttp://www.xlsoft.com/jp/products/intel/support/index.html
0248デフォルトの名無しさん
2005/06/15(水) 20:29:47あっ Σ( ̄□ ̄ ;
そういえばそうでした! そのことをすっかり忘れていました。
情報ありがとうございました。大感謝 m(_ _)m"
0249デフォルトの名無しさん
2005/06/16(木) 01:37:06exeでしか存在していない外部ソフトです。
自分で作ったプログラムならソースがあるから、include出来ました。
ソースが無くても可能なのでしょうか?
0250デフォルトの名無しさん
2005/06/16(木) 01:40:35dllをリンクとかで出来るでしょ
0251249
2005/06/16(木) 02:00:08返信ありがとうございます。でも、その方法がわかりません。
状況としては、
A(自作Fortranプログラム)とB(外部)があって、
Aで計算した結果を用いて、Bで計算をする。そしてBでの結果をまたAに返して計算。
Aは起動させたまま、ということを考えています。
dllはどうやればリンク出来るのか教えていただけますか?
0252デフォルトの名無しさん
2005/06/16(木) 08:34:24>Aで計算した結果を用いて、Bで計算をする。そしてBでの結果をまたAに返して計算。
>Aは起動させたまま、ということを考えています。
大抵の処理系では外部コマンドを起動するためのサブルーチンが用意されているので
それを使えば良い。
0253251
2005/06/16(木) 18:35:50ごめんなさい。VF6.6でオンラインヘルプとか見たのですが、わかりません。
普通のサブルーチンみたいに、
call (B.exe)
は無理ですよね?
どう記述するのですか?またコンパイル時に何かやるのですか?
0254デフォルトの名無しさん
2005/06/16(木) 19:41:51program test
use DFPORT
integer :: ios
integer(kind=4) :: r
character(len=80) :: str
r = system("dir > flist.txt")
print *, "終了コード = ", r
open(unit=1, file="flist.txt", status="OLD")
do
read(unit=1, fmt="(A)", iostat=ios) str
if (ios /= 0) exit
if (str(1:1) /= " ") print *, trim(str)
end do
close(1)
end program test
詳細はオンラインヘルプ等で「SYSTEM」または「SYSTEMQQ」を参照のこと。
0255デフォルトの名無しさん
2005/06/18(土) 05:25:02real x
integer l
do=1,5
call rand(x)
write(*,*) x
enddo
end
とすると、サブルーチンの使い方がおかしい!みたいなことを言われてしまいます。
よろしくお願いします!
0256デフォルトの名無しさん
2005/06/18(土) 05:45:06real x
integer l
call srand(1234)
do=1,5
call rand(x)
write(*,*) x
enddo
end
こんな感じであってますよね?
失礼しました
0257デフォルトの名無しさん
2005/06/18(土) 05:51:50real x
integer l
call srand(1234)
do=1,5
x= rand()
write(*,*) x
enddo
end
とするとできるのですが、普通のサブルーチンと扱いが違うのですかね?
あたふたしてすみません。
0258235
2005/06/18(土) 10:31:23このコンパイルの瞬間がC言語でも味わったけど、好きだ。
無機質にDos画面で表示されている瞬間なぜか技術者気分だ。
コード自体は入門サイトからのだからそんな難しいものではない。
だけどいつかは大学の言語解析ソフトくらいはつくれるようになりたい。
・・・というかプログラムか。
なんか英語辞書が組み込まれててテキストの中に入っている文書から英単語を読み出して、それの個数を読み出すソフト。
そしたらメモ帳に出力させてた。
一定のスペースをつけて読み出してるからエクセルでも処理可能。
それくらいは作ってみたい。
ただそのソフト、日本語はサポートされてないからひとつの文書にある文字ベースのエントロピーが求められん・・。
日本語入れた瞬間バグ起こしたもんで教授から大目玉とはこれいかに・・。
0259デフォルトの名無しさん
2005/06/18(土) 11:39:36do=1,5
のとこじゃない?
0260デフォルトの名無しさん
2005/06/21(火) 08:44:06もし分かる方いらっしゃったら確認お願いします。
以下コード
FUNCTION RAND(K)
INTEGER K, M, CONST1
REAL RAND, CONST2
PARAMETER (CONST1 = 2147483647, CONST2 = .4656613E-9)
SAVE
DATA M /0/
IF(M .EQ.0) M = K
M = M * 65539
IF(M .LT. 0) M = (M + 1) + CONST1
RAND = M*CONST2
END
以下私の理解している事: 参考にしたページ: http://www.g.dendai.ac.jp/lecture/fortran/fort12.html
任意のKが関数に渡される。
関数は K*65539*CONST2をいつも返す。
でもいくつか疑問点があります。
どうして型宣言が行われていないのでしょうか?
どうして関数は特定の値をいつも返すのに、IFの分岐が必要なのでしょうか?
困ってます。アドバイスをよろしくお願いしますm(__;)m
0261デフォルトの名無しさん
2005/06/21(火) 12:00:40関数が持ってるMという変数の値はSAVE宣言されてるから、関数から抜けても値が保存される。
呼び出されるごとに関数が返す値は違う。IF文は乱数発生アルゴリズムを理解すれば意味がわかる。
0262デフォルトの名無しさん
2005/06/22(水) 00:33:44・DATA 文による初期化は、プログラムの実行前(?)に1度しか実行されない
・SAVE 文があるので、関数内の変数はすべて static
(例外はあるが、FORTRANのローカル変数はSAVEがあろうが無かろうが
すべて static と考えたほうがよい)
0263デフォルトの名無しさん
2005/06/22(水) 16:09:12> すべて static と考えたほうがよい)
>
え−っ! すごい昔の話じゃないの?
0264デフォルトの名無しさん
2005/06/22(水) 17:32:08お願いします。
0265デフォルトの名無しさん
2005/06/22(水) 18:01:09OSやコンパイラの種類を教えてくれないと分らん。
0266デフォルトの名無しさん
2005/06/22(水) 18:55:480267デフォルトの名無しさん
2005/06/22(水) 18:58:080268デフォルトの名無しさん
2005/06/22(水) 19:04:57ウィンドウズです。
コンパイラは77だと思います。
0269デフォルトの名無しさん
2005/06/22(水) 19:18:360270デフォルトの名無しさん
2005/06/22(水) 19:20:06これらの情報から考えられる原因:
お前のプログラムがカスだから
0271デフォルトの名無しさん
2005/06/22(水) 22:09:40実行時に出るものなのか。address errorというだけで自明の
ことなのだろうか。
0272デフォルトの名無しさん
2005/06/22(水) 22:19:24http://science3.2ch.net/test/read.cgi/sim/1042715803/476
476 名前:名無しさん@3周年[] 投稿日:2005/06/22(水) 17:26:14
fortran使って作ったプログラムがコンパイルできるんだが
実行するとaddress errorって出るあるよ
どうしてあるか?
0273デフォルトの名無しさん
2005/06/22(水) 22:42:32たしかに、保証はされてないですね。
そのための save 属性だし。
0274デフォルトの名無しさん
2005/06/22(水) 23:18:30>>262
ありがとうございました!!周りに知ってる人がいなくて困ってました。
m(_ _)m 重ね重ねお礼申し上げます。。
■ このスレッドは過去ログ倉庫に格納されています