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/
0685お願いします;;
2006/01/27(金) 00:09:07すみません
まったくわかりません・・・わかろうとしてないかも・・・
意味不明なんです・・・
UNIXが、フォートランが・・・
0686デフォルトの名無しさん
2006/01/27(金) 00:24:220687お願いします;;
2006/01/27(金) 00:31:500689デフォルトの名無しさん
2006/01/27(金) 00:41:37なんでそのガッコにいったの?
0690お願いします;;
2006/01/27(金) 00:44:03ごめんなさい、卒業したいです;;
0691デフォルトの名無しさん
2006/01/27(金) 01:03:34お願いですからもう一年がんばって下さい。
0692お願いします;;
2006/01/27(金) 01:10:510693デフォルトの名無しさん
2006/01/27(金) 01:25:24くだすれFORTRAN(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1138063703/
いきなり閑古鳥が鳴いてるけど…
0694デフォルトの名無しさん
2006/01/27(金) 21:35:47マジレスすると、今すぐ大学やめて違う専門に入り直した方がいい
進路の修正は早い方がいいからな
0695デフォルトの名無しさん
2006/01/28(土) 00:49:56大学では壁にぶつかった後、立ち止まって進みも退きもせずに
引きこもりになるより2chで答えを得るほうがよっぽどいい。
カンコー学生服は丸洗いOK! VIPPERなら丸写しOKwwww
0696デフォルトの名無しさん
2006/01/30(月) 14:25:330697デフォルトの名無しさん
2006/01/30(月) 21:24:28それなーに?kwsk
0698デフォルトの名無しさん
2006/01/30(月) 23:11:42program Calculation of Response
implicit none
integer i,j,n1,n2,neq,hnda,nda,odd,st,p1,p2,p3
real*8 h
parameter(n1=4096,n2=8,neq=2,h=4.d-3)
real*8 x(n2),y(n2),yd(n2),a(n1,n2),b(n1,n2),k1(n2),k2(n2),
&k3(n2),k4(n2),f(n2),m,c,k
character*20 infile,outfile
c
write(6,*)'input >> input file name'
read(5,*) infile
write(6,*)'input >> output file name'
read(5,*) outfile
write(6,*)'input m,c,k'
read(5,*) m,c,k
open(1,file=infile,status='unknown')
read(1,*) nda
read(1,*) p1,p2,p3
do 10 i=1,nda
read(1,*) (a(i,j),j=1,2)
10 continue
close(1)
で始まるプログラムをコンパイルしようとすると下のようなエラーが出てしまいます。
Undefined first referenced
symbol in file
rk4_ /var/tmp//ccMMIE6P.o
ld: fatal: Symbol referencing errors. No output written to shuuron2.exe
collect2: ld returned 1 exit status
infileの名前はちゃんとcharacterで定義しているので何が悪いのか分かりません。
どなたか宜しくお願いいたします。
0699デフォルトの名無しさん
2006/01/30(月) 23:21:26ローダーのエラーなので、ファイル名の問題ではないだろう。
>symbol in file
これが正しいならinfilefはない。エラーメッセージがこれ全部なのだろうか?
未定義変数でも使っているんだろう。
こまぎれでわかんねが rk4 か first の問題でね?
0700デフォルトの名無しさん
2006/01/30(月) 23:31:580701デフォルトの名無しさん
2006/01/31(火) 01:18:58なかなかチェックが厳しい。
中間報告(春の学会発表とか)でがんばっているM1 だろう。
0702デフォルトの名無しさん
2006/01/31(火) 01:40:49F77形式の上に、暗黙の型宣言を守っていないので、bugは中々とれず
周囲の経験者やプログラム相談員からは相手にされず、苦労するだろう。
要約すれば・・・・・・
『地獄に落ちる!』
0703デフォルトの名無しさん
2006/01/31(火) 01:43:18/ _..-‐―- 、 .ヽ
/ /-‐―-..__..ヽ _..、ヽ
.!三三三´ `´ : i
|.!三三 __  ̄ _,. .;. i 暗黙の型宣言を守らない
|ii i!" ´ ェェ` l´rェ、 i..! >>698は地獄へ逝く
!i、 i!:::..... - ̄r ヽ .!
!ii!.|::::::: / `−´ヽ /
_,,.. ===="/%;;;::::. '∠ニニ」 /、 _ -‐‐-、
/´ | .% :::;;;;: ,,,.,,,:. ⌒: ./´  ̄==-- _,,.. -‐‐'"´ _,..-‐ ´
| % ::::::;;;;;;;;;:.""%./ r" (<二 ̄ ̄>
.| %。゚+。 。+% / `ヽiノ<二. ̄ ̄>
| %+*゚+。*゚%/ ( <二 ̄ ̄>
0704デフォルトの名無しさん
2006/01/31(火) 07:03:17デジャブかな?どっかで同じような光景が…
0705デフォルトの名無しさん
2006/01/31(火) 10:05:26implicit none をつけたとしても、暗黙の型宣言は守ったほうがいいな。
FORTRANの場合、型の宣言がルーチンの頭部に限定されているので、
いちいちそこを参照するのが面倒くさい。つまりローカルに解決しない。
C言語みたいに捨て変数を{}の単位内でローカルに宣言できるなら、
まあいいかもしれないが・・・
0706デフォルトの名無しさん
2006/01/31(火) 19:00:210707デフォルトの名無しさん
2006/01/31(火) 19:05:490708デフォルトの名無しさん
2006/01/31(火) 19:12:24http://spike.scu.edu.au/~barry/RealProgrammers1.html
0709デフォルトの名無しさん
2006/01/31(火) 22:02:19フォートランはブロンズセイントなの?
0710デフォルトの名無しさん
2006/01/31(火) 23:45:41が、その使用者は向上心がないからな。
ももしきや 古き軒端にしのぶれど なほあまりある 昔なりけりw
0711621
2006/02/02(木) 11:50:44Salford FTN77のコンパイラでInvalid character in field
というエラーが出ます。原因はなんでしょうか。
少し状況をいうと、READ文でINTEGERの数値をテキストから読むときに、
入力値を1〜7の数値にするとエラーになり、8以上だと普通に動きます。
0712デフォルトの名無しさん
2006/02/02(木) 12:56:51ファイルからのデータ読み込みで、実行時エラーが起きている状況でおk?
たぶんデータの並びと、FORMAT文がずれている。
もしくは1〜7の数字が全角になっているかwww または空白が実はTabとか00hとかwww
そのread文のformatとエラーのでるファイルの行を見せてくれ。
0713711
2006/02/02(木) 13:34:09そのとおりです。問題となるREAD文は
READ (4,112) NSYM,NSYMS,ASTEP,VSTEP
で、この文のフォーマットは、
112 FORMAT (2I3,2F7.4)
で、読みこみファイルは
1 5 0.02 0.20 NSYM NSYMS STEP VSTEP
です。2番目のNSYMSを7以下の数値にすると
実行時にRUN−TIME ERRORとなります。
はじめ、ウインドウズのワードパッドで入力をつくっていたのですが、
空白がタブの可能性を疑ってメモ帳で保存しなおしたりもしましたが。
うまくいきませんでしたorz。
0714デフォルトの名無しさん
2006/02/02(木) 13:40:022chの特性で空白が飛ばされているせいかもしれないが、入力のフォ-マットおかしくね?
3桁整数 3桁整数 7桁実数 7桁実数になってないとヤヴァス
..1..5...0.02...0.02
( . はスペースのつもり)
のようにしないとマズス
0715714
2006/02/02(木) 13:43:51ごめwwカラムはだいじょぶそうかなwww
READ文の次に
PRINT *, NSYM,NSYMS,ASTEP,VSTEP
を入れて何が読み込まれているか見て味噌
0716711
2006/02/02(木) 13:59:58>PRINT *, NSYM,NSYMS,ASTEP,VSTEP
やってみましたところ、入力した通りの数値が
そのとおりDOS窓に表示されました。
1 5 2.000000E-02 0.200000 等
しかし、数字が7より小さい場合に限り、そのあとやはり同じエラーがでます。
エラーのダイアログには、
00424588 READPL [+0799]
00401000 (プログラム名) [+1244]
と表示されます。READPLは今問題になっているのとは別のサブルーチンです。
0717711
2006/02/02(木) 14:09:41読むルーチンなので、そこでINVALID CHARACTERがあるのかも
と思いつきました。READ文を教わった方法で一つづつ調べてみようと思います。
おかげさまで解決のとっかかりができました。ありがとうございます。
0719711
2006/02/02(木) 14:23:19READPLは9000行くらいに本体があり、呼び出しは517行めでした。
0720デフォルトの名無しさん
2006/02/02(木) 14:24:270721714
2006/02/02(木) 14:25:0100424588 READPL [+0799]
00401000 (プログラム名) [+1244]
(これが普通のトレースバック情報だとしたらの話だが)
これの意味は1244行にあるメインルーチンのCALL文で呼ばれた
サブルーチンREADPLの中の799行にある文でエラーが起きているということだ。
多分そこのREAD文のデータとフォーマットが合っていないのだろう。
0722714
2006/02/02(木) 14:27:41ただ、コンパイラーのオプションでソース行を表示させることが出来るかもしれない。
たとえばCompaqのVisualFORTRANではオプションつけないと
トレースバック情報でソース行を吐き出さない。
0723711
2006/02/02(木) 14:33:18問題のREADPLをcallしている前と後で
PRINT*,'行番号'
をしたら、前は出力されましたが後ろは出ませんでした。
やはりREADPLの中のようです。もう少し調べてみます。ありがとうございます。
0724711
2006/02/02(木) 14:38:01見なおしましたが数字はすべて半角のはずです。
しかし、ワードパッドで打ったので空白などが
へんなのかもと思っています。
0725711
2006/02/02(木) 15:46:18NSYMSによって、READPLの中でREADする行数が変化する部分が
あったため、FORMATが一致したりしなかったりするのが原因でした。
ありがとうございました。m(_ _)m
0726デフォルトの名無しさん
2006/02/02(木) 21:26:04乙!
中々バグが取れないときは、発生箇所や原因を勘違いして決め付けているときだからなw
犬や猫と心が通じるように、エラーメッセージの読み方を学ぶとFORTRANとも心が通じる。
相手(コンパイラー)を理解する気持ちが大切だw
0727711
2006/02/03(金) 06:45:13バグとりの質問ばかりですがどうか許してください。
上で尋ねたのとは別のプログラムを実行するときに、
まったく同じエラー「Invalid character in field」
が出て困っています。コンパイラはFTN77で、エラーダイアログは、
00436b78 READE [+0552]
0042d818 EXPAN [+0273]
00401000 (プログラム名) [+1345]
です。READEはファイル読みこみのサブルーチン。
EXPANは計算のサブルーチンです。
教わったように、PRINT*,'(行番号)'などをDOSに
出力すると、プログラムのごく最初の方にあるOPEN文の前まで
しかPRINTの出力ができません。そのOPEN文は
OPEN (UNIT=2,FILE='search.s')
というものです。このserch.sというファイルは入力値を入れるものではなく、
プログラム自身が生成し、値を書き込むためのものです。
この文の前にはREAD文はないため、原因個所がわかりませんでした。
そこで、OPTIONのことを教えてもらいましたので、マニュアルをみて、
/check というオプションをつけてみたところ、こんどは、
Integer arithmetic overflow
というエラー表示に変わり、
LOOKUP2 - in file tleed2.for at line 2307 [+0203]
(プログラム名) - in file tleed2.for at line 376 [+13f7]
と表示されました。LOOKUP2は計算サブルーチンです。
2307行は、そのLOOKUP2の前に記述してある別のサブルーチンのEND行
(そのENDのあと、コメントがあり、そのあとLOOKUP2の記述が始まる)
です。行376は、そのLOOKUP2のCALL行で
CALL LOOKUP2(CPVPOS,ILOOK,ILKBD,NLAY2,NST1,NSTEF,NSYM,
& NLTOT2,NSHIFT,NCL,NLMAX,IROT,IMIR,1,FPOS,POSS,POSS2)
というものです。
原因個所を探がすのに、どのようなことを試みるとよいでしょうか。
0728711
2006/02/03(金) 06:48:150729デフォルトの名無しさん
2006/02/03(金) 09:04:23難しいな。コンパイラは奇妙な反応を返しているし。
FTN95に慣れていないと、コンパイラの息遣いを感じることも出来ないw
風の息づかいを感じていればのガイドライン
http://ex13.2ch.net/test/read.cgi/gline/1135748314/
配列のはみ出しか、引数の不整合が、起きている。もしくは配列のはみ出しで
引数の不整合が起きているw
check で argment check や subscript check も見ていると思うが、option調べて味噌。
inputが間違っているので配列のはみだしが起きているのだと思うがw
CALLの直前直後、および呼ばれたサブルーチンの先頭で、大きな配列でない引数の値を
printしてみるくらいしかないかな。このパターンではCALLの直前しか書かないと思うが。
0730711
2006/02/03(金) 09:45:33周りに頼れる人がいないため、レスが大変ありがたいです。
未解決ですが過程を報告します。
あれから、マニュアルでオプションをもう少し調べて
/UNDEFと/BREAKというのをためしてみました。
/UNDEFでは初期値が与えられていない部分を指摘されました。
しかしこの部分は、オプションをつけなければそのままでも初期値0として
動いてくれるようでした。(言い忘れてましたが、サンプルのインプットがあって、
それでは問題なく動く)
/BREAKでは、デバッガが起動してびっくりしました。無手勝流ですが、
今、これを使って変数に入ってる数値を調べているところです。
>CALLの直前直後、および呼ばれたサブルーチンの先頭で、大きな配列でない引数の値を
なぜか始めの方のOPEN文より後の部分に、print文を書いても出力が出ないんですorz.
>inputが間違っているので配列のはみだしが起きているのだと思うがw
まったくその通りです。ルーチンは動く保証は一応あって、
INPUTで四苦八苦してるんです。
バグとりの質問などは面白くないと思いますが、また進展があれば報告させて
いただきます。
0731711
2006/02/03(金) 12:02:23デバッガで入力変数をまえから順に調べていったところ、
前述のREADEというルーチンの中のあるところから先が値が入ってなかった
ので、そのFORMATをしらべたところ、入力とのズレを修正することができました。
それで、現在、プログラム動差中(たぶん)なのですか、前述の通り、
なぜか、プログラム中のあちこちに書いたはずのPRINT文が、
途中から出力されません。(そのため、本当に動いてるのか不安です)
数十分動かしてプログラムも終了する気配が無いし、なんだか悪い予感がします。
PRINTが出力されないのはいったいなぜなんだろう。。
0732デフォルトの名無しさん
2006/02/03(金) 12:11:32反応が返ってこないのは暴走。
最後にprintされたところと、次のprint文の間でどっかへ行っている。
print文の範囲を縮めていって、問題箇所を特定する。
OPEN文に関しては、status=unknownを入れておくといいかも。
あと、暴走を途中で止めた場合ゴミファイルが残っているかもしれないので
消して置くといいかもしれない。
0733デフォルトの名無しさん
2006/02/03(金) 12:26:03レスありがとうございます。
>最後にprintされたところと、次のprint文の間でどっかへ行っている。
>print文の範囲を縮めていって、問題箇所を特定する。
ご指摘で、どうやら不具合がわかったっぽいです。PRINTが無効になる
境目だけを別プログラムとして実行してみました(以下)
PRINT*,'263'
OPEN (UNIT=2,FILE='search.s')
OPEN (UNIT=15,FILE='prdir.d')
PRINT*,'265'
OPEN (UNIT=10,FILE='restart.d')
PRINT*,'267'
END
すると、263だけがDOSに出力され、なぜかsearch.sの中に265 267が書かれていましたOTL....
もしかして、UNIT「2」と「*」って重複なんでしょうか。
ともかく、PRINTは使いたいので、UNIT番号を書きかえてやってみます。
今日は午後は予定があるのでしばらく2ちゃんを離れます。
重ね重ねご助言ありがとうございます。
0734デフォルトの名無しさん
2006/02/03(金) 12:36:13思いがけない展開だが、たまにあるパターンだw
>>もしかして、UNIT「2」と「*」って重複なんでしょうか。
*は普通は6番だと思うのだが、STDOUTとSTDERRで分けていたりするのかもしれない。
1桁や90番台のUNITはコンパイラーによって予約されていたりする。
これは、コンパイラーの息遣いを感じる以外ないwww
安直には2番を22番とかに書き換えることだろう。
0735デフォルトの名無しさん
2006/02/03(金) 17:51:27> by preconnection; the standard input and output are preconnected to units 1 and 2
> respectively (units 5 and 6 are respective alternatives).
息遣いを感じるのも悪くはないが、処理系の取説もよく読んだ方がいい。
0736デフォルトの名無しさん
2006/02/03(金) 20:38:20x=0.1 , 0.2 , 0.3 , 0.4 , 0.5
y=1.228 , 1.005 , 0.823 , 0.674 , 0.552
近似式 y=a*exp(bx)
上の関数とデータで最小自乗法で近似した式を求めよ。
この問題のプログラムがわかりません・・・。お願いします。
0737デフォルトの名無しさん
2006/02/03(金) 20:42:06こっちで頼んでみろ
くだすれFORTRAN(超初心者用)
ttp://pc8.2ch.net/test/read.cgi/tech/1138063703/l50
0738デフォルトの名無しさん
2006/02/03(金) 20:53:19どのような方法を使うのが一般的?
自分は、ベタに
1. 配列A(N)を確保
2. 同じ大きさの配列B(N)を確保
3. B(1:N) =A(1:N)
4. A解放
5. Aを新規に大きめに確保
くらいしか思いつかないのですが。
できればポインタ使わない方法が嬉しいのですが。
0739デフォルトの名無しさん
2006/02/03(金) 22:45:46オマエが考えなきゃいけない問題なんでは?
ここで宿題しても身にならんだろ。
0740デフォルトの名無しさん
2006/02/03(金) 23:09:43どうすればaとbを求められると考えているの?プログラムを作るのはそれから
0741デフォルトの名無しさん
2006/02/03(金) 23:18:29基本的にはそれしかないだろう。
ただし、ちょっと増えるたびにその操作をすると時間がかかるから、あらかじめ増やす単位を大目に取っておく。
その単位は問題によるけど
0742デフォルトの名無しさん
2006/02/03(金) 23:27:16確保&解放繰り返すと、断片化が起きそうで怖いんですよね・・。
0743デフォルトの名無しさん
2006/02/03(金) 23:48:42FORTRAN2003では、その辺がやや改良されていたはず。
1. 大きめの配列B(M)を確保 (M>N)
2. B=A
3. A=B
4. B解放
少なくともこれでいけるようになった。
サブルーチンでやればBは自動解放できるので4は略できる。
どっちにしろ断片化は避けられないがw
0744736
2006/02/04(土) 00:45:01ありがとうございます。
行ってみます♪
0745デフォルトの名無しさん
2006/02/04(土) 01:56:33解いといたw
0746711
2006/02/04(土) 17:42:11助言を下さった方々、本当にありがとうございました。
0747デフォルトの名無しさん
2006/02/04(土) 20:46:06乙カレー!
0748デフォルトの名無しさん
2006/02/05(日) 06:52:31それでできなきゃ、アセンブリ言語でする。
それでもできなきゃ、それはやる価値が無いのだ。
0749デフォルトの名無しさん
2006/02/05(日) 12:05:340750デフォルトの名無しさん
2006/02/05(日) 13:12:21Fortran は白靴下を履いた臆病者のエンジニアや、パイプ圧フリークや、
結晶解析のチビどもが使うものだ。
奴らは有限要素解析と核反応炉シミュレーションで喜ぶ。
0751デフォルトの名無しさん
2006/02/06(月) 21:24:050752デフォルトの名無しさん
2006/02/06(月) 23:46:46そのうえ、これらの文は GOTO 指定で必要に応じて代替可能である。
>>751
http://www.genpaku.org/realprogrammerj.html
http://www.geocities.co.jp/WallStreet/6351/real.html
0753デフォルトの名無しさん
2006/02/07(火) 00:14:060754デフォルトの名無しさん
2006/02/07(火) 23:50:200755デフォルトの名無しさん
2006/02/08(水) 00:42:120756デフォルトの名無しさん
2006/02/08(水) 07:15:140757デフォルトの名無しさん
2006/02/08(水) 17:16:56計算センターも汎用機はItaniumだし。
IBM信者はハードからソフトまでIBMで固めないと気がすまないがw
0758デフォルトの名無しさん
2006/02/08(水) 20:00:160759デフォルトの名無しさん
2006/02/09(木) 15:18:010760デフォルトの名無しさん
2006/02/09(木) 16:36:16バグの種類にもよる。
結果が何故かNaNになってしまうようなバグなら、どこでNaNが発生するかデバッガで探せばいい。
NaNではなく、結果がちょっと変だというようなバグは特定が一番難しい。その場合は、人間の手でも解けるような
トリビアルな問題を解かせてみるか、コードを単純化するのが効果的だと思う。
暗黙の型宣言とcommon(もし使ってるなら)を無くすだけでも効果的だよ。
0761デフォルトの名無しさん
2006/02/09(木) 19:18:080762デフォルトの名無しさん
2006/02/09(木) 22:52:23・subchk argchk をかける。
・数値パラメータを巨大にする。
(誤差が有効桁の誤差か、バグによるものか区別できることがある。)
・長引くとき、必ず頭を切り替えるような休息を入れる。
(長引くのは勘違いして無関係なところを探していることが多いから。)
0763デフォルトの名無しさん
2006/02/10(金) 10:13:48配列まわりを疑う。
バグの過半数は配列まわり。
0764デフォルトの名無しさん
2006/02/14(火) 06:11:000765デフォルトの名無しさん
2006/02/14(火) 17:49:04メインのプログラムで
common /abc/ abc
とし、別のソースファイルのサブルーチンで
!DEC$ ATTRIBUTES EXTERN :: abc
呼び出してるんですけど、大体の変数はうまく行くのですが、
integer, dimension(:), allocatable::abc;
このような動的に割り付けられる配列の場合、以下のようなエラーとなります。
Error: Conflicting attributes or multiple declaration of name. [ABC]
どうやったら、回避できるでしょうか?
環境は、WindowsXP, Visual Studio, Intel Fortran Compiler Version 7.0
です。よろしくお願いします。
0766デフォルトの名無しさん
2006/02/14(火) 17:51:190768デフォルトの名無しさん
2006/02/15(水) 20:13:19計算速度は速くなるかおそくなるかどっち?
0769デフォルトの名無しさん
2006/02/15(水) 20:15:230770デフォルトの名無しさん
2006/02/15(水) 20:17:310771デフォルトの名無しさん
2006/02/15(水) 20:23:49メモリには、記憶する領域と計算するための領域があるとも聞きました.
そこで、教えて欲しいんですが、ALLOCATEした場合に、メモリのどこに確保されるのかって
ことです。
ALLOCATEで確保されるメモリ領域は、静的に割り付けたものを確保する領域なのか
あるいは、計算するための領域なのか、はたまた別の領域なのか。。どこ?
0772デフォルトの名無しさん
2006/02/15(水) 20:27:50あえてALLOCATEする必要はないのか。あるいは、ALLOCATEした方が
DIMENNSIONで宣言するよりも計算スピードは速くなるのか?ということです.
0773デフォルトの名無しさん
2006/02/15(水) 21:54:09環境によりけりだろうから。
0774デフォルトの名無しさん
2006/02/15(水) 22:05:130775デフォルトの名無しさん
2006/02/15(水) 22:45:12とられたような気がする。AUTOMATICの法は確実にヒープ領域。
静的に宣言されたものとALLOCATE型で宣言されたもので違いが有るとしたら、
コンパイル時の、配列サイズに基づく最適化が静的に宣言されたほうが効きやすい
事くらいか?
POINTER型よりはALLOCATE型のほうが自由度が少ない分最適化は効きやすい
はずでは有るが。
ま調べたらここで報告してくれw
0776デフォルトの名無しさん
2006/02/15(水) 23:24:110777デフォルトの名無しさん
2006/02/16(木) 07:55:04他の配列との相対位置よっては、バンク競合や
キャッシュラインの競合が起こりやすくなったりとかかな。
昔のスパコンじゃ無ければ領域によってページサイズを
変えてない気がする。
バンク競合が気になるなら、配列を大きめにとって
先頭をずらして計測してみれば、変化がみられる場合も。
0778デフォルトの名無しさん
2006/02/17(金) 19:36:35予算がないので >>3 のどれかでいきたいのですが・・環境は WinXP Home SP2 です.
3 名前: デフォルトの名無しさん 投稿日: 05/01/03 12:50:32
・フリー/無料評価版のコンパイラ
The G95 project (Fortran95)
http://www.g95.org/
GCC (g77) (今のところ FORTRAN77)
http://gcc.gnu.org/
Salford FTN77/95 Personal Edition (Fortran77/95, Windows, 要登録)
http://www.salfordsoftware.co.uk/software/downloads/compilers.html
FTN77/95のインストール方法
http://www.coastal-env.k.u-tokyo.ac.jp/koibuchi/fortran.htm
the F Programming Language (Fortran90のサブセット, Win/Linux/Solaris)
http://www.fortran.com/F/compilers.html
Open Watcom Fortran Compiler (FORTRAN77)
http://www.openwatcom.org/
Intel Fortran Compiler (Fortran95, 無料評価版(Win)/非商用バージョン(Linux), 要登録)
http://www.xlsoft.com/jp/products/download/download.html
Lahey/Fujitsu Fortran (期限付きトライアル版, Win/Linux, 要登録)
http://www.lahey.com/downloads.htm
0779778
2006/02/17(金) 19:42:26あと,みなさんはどちらのコンパイラを使用していますか?
よかったら教えてください m(..)m
0780デフォルトの名無しさん
2006/02/17(金) 22:38:02商用コンパイラならDVF/CVFの後継ということで Intel が一般的なのだろうが
試用版は期限があるからゆっくり勉強する人には不向きだ。VS.NETも必要だし。
Salfordのはエラーチェックが厳しいので学習用には向いてるかも。
私もチェック用に使っている。
ただ、FTN95は実行時に毎回待たされるのがなんとも・・・
gcc4が普及すれば必然的に gfortran (GNU Fortran 95)が
一番一般的なコンパイラになるのだろうけど、
まだ機能・安定性共にg95の方が上のようだ。
ttp://gcc.gnu.org/fortran/
ttp://gcc.gnu.org/wiki/GFortranBinaries
0781デフォルトの名無しさん
2006/02/18(土) 00:22:42GNUのFORTRANってどうなの?
糞だと思ってるから使ったことないんだけど。
g77が出来る前にf2c+gccは試したことがあるけど、gccが糞で動かなかった。
gccもその後倒産企業からフロントエンドもらったりしてようやくまともになったようだけど。
0782デフォルトの名無しさん
2006/02/18(土) 00:27:170783デフォルトの名無しさん
2006/02/18(土) 01:25:19インターフェースが複雑すぎて使いこなせず、挫折してFortran嫌いになって、
結局しょうがないのでC++で毎度のように車輪の再発明を繰り返している私が懺悔に参りましたよ。
0784デフォルトの名無しさん
2006/02/18(土) 01:38:56環境変数でエンディアンが変えられたりするのでなかなか便利だ。
まあ、どっちも中身がGCCなんで最適化は期待できんが。
■ このスレッドは過去ログ倉庫に格納されています