[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 12:09 / Filesize : 350 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2006/11/22(水) 00:00:36 ]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
FORTRAN使いが優しくコメントを返しますが、
お礼はFORTRANの布教と初心者の救済と次期Fortran2008規格でのCOMEFROM文採用をお願いします。

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


●前スレ
くだすれFORTRAN(超初心者用)
pc8.2ch.net/test/read.cgi/tech/1138063703/

●関連スレ
FORTRAN W
pc8.2ch.net/test/read.cgi/tech/1163319215/


610 名前:デフォルトの名無しさん [2007/06/20(水) 11:28:28 ]
質問させていただきます。
以下のプログラムで、y1とy3は答えとともにオープンしてくれるのですが、y2のオープンしたファイルが何も表示されません。
サブルーチン文はy1y2y3ともに引数は表示してくれてます。何か問題がありましたら教えて下さい。
お願いします。
program IFFT
implicit real*8(a-h,o-z)
dimension y1(1000000),y2(1000000),y3(1000000)
complex*8 w1(1000000),w2(1000000),w3(1000000)
dimension H(1000000),f(1000000)
c
open(114,file='d.dat')
open(115,file='e.dat')
open(116,file='f.dat')
c
m=15.d0
dt=0.01
n=2.0**m
tp=n*dt
df=1.0/tp
c
call SPECFILT(w1,w2,w3)
do 21 j=n/2+2,n
w1(j)=conjg(w1(n-j+2))
w2(j)=conjg(w2(n-j+2))
w3(j)=conjg(w3(n-j+2))
21 continue
c


611 名前:デフォルトの名無しさん [2007/06/20(水) 11:30:38 ]
call nlogn(m,w1,1.0)
do 24 k=1,n
y1(k)=real(w1(k))/dt
t=dt*(k-1)
write(114,*) y1(k)
24 continue
call nlogn(m,w2,1.0)
do 25 k=1,n
y2(k)=real(w2(k))/dt
t=dt*(k-1)
write(115,*) y2(k)
25 continue
call nlogn(m,w3,1.0)
do 26 k=1,n
y3(k)=real(w3(k))/dt
t=dt*(k-1)
write(116,*) y3(k)
26 continue
c
stop
end

612 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 12:01:49 ]
>>610-611
入力ファイルが空なんだろう。

だいたい3つのファイルが同じ処理をしているなら、一つ用のサブルーチンを作って
それを3回呼ぶようにすれば、このような疑問は生じない。

どうせ同じことだと横着して、同じ処理を3回書くから、どこかで間違ったかもと余計な時間を食う。

反省しろ! Fortranの神様に謝罪と賠償しろ!


613 名前:デフォルトの名無しさん [2007/06/20(水) 12:31:11 ]
612>
それが入力ファイルもオープンしたらちゃんと値が表示されていたんですよ。

614 名前:デフォルトの名無しさん [2007/06/20(水) 12:54:58 ]
>>610
質問と関係ないけど、

m=15.d0
dt=0.01
n=2.0**m
tp=n*dt
df=1.0/tp

これ気持ち悪い。整数と倍精度実数はっきり区別して書く。

      m  = 15
      n  = 2**m
      dt = 1.0d-2
      tp = dble(n) * dt
      df = 1.0d0 / tp

f77も複素数型も使うことないので、あやふやだけど、
complex*8 は、実部と虚部の合計で8バイトで、実部と虚部それぞれは4バイト(単精度実数)、
complex*16は、実部と虚部の合計で16バイトで、実部と虚部それぞれは8バイト(倍精度実数)じゃなかったっけ?
y1-y3 は real*8 なんだから、complex*16 のが良い気がする。

ちなみに、F90 以降の complex(8) みたいな宣言の方法だと、
実部・虚部それぞれが8バイトだったような気がする。

615 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 20:11:02 ]
Microsoft PowerstationをWindowsXpにインストールしてFortranを使おう
と思ったのですが、コンパイル時に
Error executing fl32.exe.
Text1.obj - 1 error(s), 0 warning(s)
とエラーが出て先に進めません。
どうすれば解決するのでしょうか
よろしくお願いします

616 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 00:04:58 ]
>>615
どの文でエラーが起こったか分からないと
答えようがないんで…
文法間違いでないならサンプルで試してみたら
良いのでは?

617 名前:デフォルトの名無しさん [2007/06/21(木) 03:44:49 ]
>>611

do 25 k=1,n
の直前にnの値が何か書くように汁。

618 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 12:12:35 ]
>>615
PowerStationはバグがあるから、新しいコンパイラ買え。




619 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 21:06:33 ]
DO 100 L = 1 , 5
READ(IOT)
& (((FTR(I,J,K,L),I=1,A),J=1,B),K=1,C)
100 CONTINUE

というプログラムで、値は全てファイルから読み込ませます。
予めAとBとCは読み込みをさせています。
それでこのプログラムを実行させようとすると

input statement requires too much data, unit200, file "ファイル名"

と表示されて実行出来ません。どうやらデータの読みすぎのようなのですが、
心当たりがありません。
考えられる原因は何があるのでしょうか。

A,B,Cは200×100×50くらいの値です。

620 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 22:43:44 ]
>>619

ttp://www.xlsoft.com/jp/products/intel/cvf/docs/vf-html/em/em01_03.htm

>evere (67): Input statement requires too much data
>FOR$IOS_INPSTAREQ。書式なし READ 文または PAD='NO' で開かれたファイルからの書式付き順番 READ 文で既存の記録以上のデータを読み取ろうとしました。


621 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 23:23:17 ]
>>619
A*B*C〜1,000,000〜1M
単精度なら4倍して4M

データファイルの大きさがこれくらいあるか?

まぁファイルの読み取りが、ここだけとしての話だがw


622 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 10:04:04 ]
ありがとうございました

623 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 13:50:59 ]
ハードウェアで4倍精度演算をサポートしてないと劇遅だよな

624 名前:デフォルトの名無しさん [2007/06/22(金) 15:10:51 ]
end file premeture
で終わるタイプと違う?ただのエラー表示の違い?

625 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 23:55:05 ]
>>623
当然だろw
コプロが無かった時代のパソコンでの計算を思い出せw

626 名前:デフォルトの名無しさん [2007/06/24(日) 22:37:16 ]
初歩的な質問でしたら申し訳ないのですが、調べてもわからないので質問させて下さい。
fortranで作ったプログラムを実行ファイル(EXE形式)にするにはどうすればいいのでしょうか。
(プログラムを実行するたびにfortranを起動して[コンパイル]→[ビルド]→[実行]するのは面倒なので、
 .exeをダブルクリックするだけにしたいのです)

627 名前:デフォルトの名無しさん [2007/06/24(日) 22:46:43 ]
>>626
一度、ビルドしてたら、実行ファイルできてないですか?
フォルダが作成されてたらその中とかに。

628 名前:626 mailto:sage [2007/06/24(日) 23:03:43 ]
>>627
「Debug」フォルダの中に実行ファイルできてました。
どうやらアホな質問をしてしまったようで申し訳ないです。
どうもありがとうございました。



629 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 01:36:53 ]
>>628
練習用の短いプログラムならいいけど、本番用や他のマシンに持って行くプログラムは
ちゃんと「Release」でビルドして使え。

630 名前:デフォルトの名無しさん [2007/06/26(火) 16:32:17 ]
質問させてください。
OPEN文の中にDO文を適用するのは可能でしょうか?
例えば、
OPEN(10,FILE='TEST1.TXT',STATUS='UNKNOWN')という文章の中の
↑ ↑
矢印で指した数値にDO文を適用して、たくさんのデータを
開きたいと考えています。
例えば
DO 1 I=1,N
OPEN(I,FILE='TESTI.TXT',STATUS='UNKNOWN')
1 CONTINUE
というような感じです。エロい人、宜しくお願いします。


631 名前:デフォルトの名無しさん [2007/06/26(火) 17:20:17 ]
>>630
>>587-590

632 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:31:31 ]
>>630
もう千回くらい既出。


633 名前:デフォルトの名無しさん [2007/06/27(水) 01:04:35 ]
エクセルから数値を読み込んで処理させようとしたのですが、
うまく読み込んでくれません。ちなみに2次元ベクトルです。
ファイル形式は.csvでいいのでしょうか?

open(10,file='〜.csv')
do i=1,10
read(10,*) (A(i,j),j=1,10)
end do
close(10)

という感じでしました。
よろしくお願いします。

634 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:24:01 ]
>>633
どう「うまく読み込んでくれ」ないのか詳しく。
全く読めないのか、特定のデータが来ると読めないのか、ランタイムエラーで止まるのか・・・


635 名前:デフォルトの名無しさん [2007/06/27(水) 01:47:00 ]
>>634
write文のように数字が表示され、止まってしまうんです。
同じ形式であと3つほど書いたので、たぶん1つ目と同じで止まると思います。

636 名前:デフォルトの名無しさん [2007/06/27(水) 02:43:22 ]
おまえの頭では分かっていても他人に説明できてないのを理解しろ

A(i,j)は2次元ベクトルでないと言うのはOKか?

>>633では数値データは100個分だけだよな?
i,jの成分で200個有るとかじゃないよな?

エラーメッセージ書け

637 名前:633 [2007/06/27(水) 09:12:30 ]
今から学校に行ってまた送ります。

638 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 12:06:30 ]
>>635
EXCELのCVS形式の読み書きの話はここレスがあったから、まず探して鯉!




639 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 13:05:13 ]
>>635
EXCELのCVS形式の読み書きの話はここレスがあったから、まず探して鯉!


640 名前:635 [2007/06/27(水) 16:55:17 ]
was detected (unit=10).id decimal character
(the relative position causing an error in a record = 96 )
3,3,3,5,4,5,4,5,6,4,5,5,6,8,6,6,9,12,6,6,7,10,13,7,10,13,8,9,12,15,12,15,19,12,1
5,15,20,25,25,35

?
error occurs at MAIN__ line 10 loc 00010690 offset 0000004c
MAIN__ at loc 00010644 called from o.s.
taken to (standard) corrective action, execution continuing.
was detected (unit=10).id decimal character
(the relative position causing an error in a record = 230 )
 略
?
error occurs at MAIN__ line 16 loc 000106cc offset 00000088
MAIN__ at loc 00010644 called from o.s.
taken to (standard) corrective action, execution continuing.

という長大なエラー文が出てしまいました。
プログラムは
open(10,file='danmenseki.csv',status='old') !表1.1を読み込む
do ii=1,3
read(10,*) (A(ii,ij),ij=1,40)
end do
close(10)
で、line10はread文のところです。
ご教授お願いします。

641 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 17:30:22 ]
うーん。まず問題の切り分けをしていこう。

とりあえず、こいつは動くか?

      program test
      integer a(3,40)
      integer i, j

      open(10, file='danmenseki.csv', status='old')
      do i = 1, 3
        read(10, *) (a(i, j), j = 1, 40)
      end do
      close(10)

      do i = 1, 3
        write(*, *) (a(i, j), j = 1, 40)
      end do

      stop
      end

642 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 17:31:36 ]
む。nbsp はエディタがどう認識するんだろう?
ちょっと心配になったから、
先頭の空白は自分で入れて貰った方がいいかもしんない。

643 名前:デフォルトの名無しさん [2007/06/27(水) 17:48:46 ]
>>640
手元で試したら、↓のような感じで csv カンマ区切りデータを読み込めたけど、
こんな感じではダメでしょうか。

OPEN(1,file="test.csv")
  DO i=1,imax
    READ(1,*) a(i, 1:jmax)
  END DO
CLOSE(1)

644 名前:635 [2007/06/27(水) 17:56:47 ]
was detected (unit=10).d decimal character
(the relative position causing an error in a record = 96 )
3,3,3,5,4,5,4,5,6,4,5,5,6,8,6,6,9,12,6,6,7,10,13,7,10,13,8,9,12,15,12,15,19,12,1
5,15,20,25,25,35

?
error occurs at MAIN__ line 7 loc 00010688 offset 00000044
MAIN__ at loc 00010644 called from o.s.
taken to (standard) corrective action, execution continuing.
jwe0173i-w line 7 Invalid decimal character . was detected (unit=10).
(the relative position causing an error in a record = 1 )
1.427,1.727,2.336,3.755,3.492,4.302,3.892,4.802,5.644,4.692,5.802,6.367,7.527,9.
761,8.127,8.727,12.69,16.56,9.327,10.55,12.22,17,21.71,13.62,19,24.31,18.76,22.7
4,29.76,36.75,34.77,42.74,53.38,40.52,50.21,57.75,76,93.75,119.4,162.6

という感じでエラーメッセージが出ます。
エクセルの保存元がいけないのでしょうか?

645 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 18:00:23 ]
danmenseki.csv の中身はどんな感じなの?

646 名前:635 [2007/06/27(水) 18:02:51 ]
>>643
ありがとうございます。
jwd2005i-w "keisan.f90", line 14: この変数'imax'は,値を設定せずに引用されてい
ます.
jwd2005i-w "keisan.f90", line 15: この変数'jmax'は,値を設定せずに引用されてい
ます.
となってしまいます。うまく読み込んでもらいたいのですが…

647 名前:635 [2007/06/27(水) 18:05:26 ]
>>645
3 3 3 5 4 5 4 5 6 4
1.427 1.727 2.336 3.755 3.492 4.302 3.892 4.802 5.644 4.692
0.747 0.908 1.23 1.2 1.36 1.36 1.53 1.52 1.5 1.85
です。(右側は略)

648 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 18:07:03 ]
csv になってないけど、本当にそうなってるの?
何かさっきから勝手に略しすぎてて、
どこに問題があるのか分からんよ。



649 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 18:12:49 ]
よし。こうなったら、これが動くかどうか確認してみて。
ttp://www.hsjp.net/upload/src/up1068.zip

650 名前:635 [2007/06/27(水) 18:13:01 ]
>>648
3 3 3 5 4 5 4 5 6 4 5 5 6 8 6 6 9 12 6 6 7 10 13 7 10 13 8 9 12 15 12 15 19 12 15 15 20 25 25 35
1.427 1.727 2.336 3.755 3.492 4.302 3.892 4.802 5.644 4.692 5.802 6.367 7.527 9.761 8.127 8.727 12.69 16.56 9.327 10.55 12.22 17 21.71 13.62 19 24.31 18.76 22.74 29.76 36.75 34.77 42.74 53.38 40.52 50.21 57.75 76 93.75 119.4 162.6
0.747 0.908 1.23 1.2 1.36 1.36 1.53 1.52 1.5 1.85 1.84 1.99 1.98 1.94 2.14 2.3 2.25 2.22 2.46 2.77 2.76 2.71 2.68 3.08 3.04 3 3.71 4.01 3.96 3.93 4.61 4.56 4.52 5.38 5.35 6.14 6.09 6.04 7.63 7.49
エクセルのセルにそのままデータを入力したのですが、だめでしょうか?
友達は.datで成功したらしいのですが…

651 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 18:15:12 ]
こっちだとそのデータでうまく行くね。
何が悪いんだろう?

OS とコンパイラは何?

652 名前:635 [2007/06/27(水) 18:19:46 ]
OSはWindowsXP
コンパイラはUNIXです。
コンパイラ、UNIXの意味がわからないので違うかもしれませんが

653 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 18:21:13 ]
Cygwin の gcc を使ってるの?

654 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 18:22:19 ]
あいや、g77 か。

コンパイラってのは、大雑把に言えばプログラムを実行ファイルなどに変換するもの。

655 名前:635 [2007/06/27(水) 18:23:48 ]
f90 〜.f90 -o 〜
というやりかたでコンパイルします。
たぶんCygwinではないとおもいます。先生は勧めていましたが、それを使えばうまくいくのでしょうか?


656 名前:635 [2007/06/27(水) 18:32:48 ]
わかりました。
Tera Term ah.〜
です。

657 名前:デフォルトの名無しさん [2007/06/27(水) 19:19:25 ]
gfortranで、xx.fというファイルをコンパイルしてみたのですが、

> gfortran xx.f
で、文法上のエラーは無いものの、下のメッセージが出ます。
ググってはみたんですが、対処法が分からず困っています。
助けてください。


xx.f: In function 'MAIN__':
xx.f:342: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:gcc.gnu.org/bugs.html> for instructions.

658 名前:デフォルトの名無しさん [2007/06/27(水) 19:20:48 ]
あ、OSはXP sp2です。



659 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 20:53:56 ]
>>655
む、Fortran90 か。
困ったな。こっちにゃコンパイラがないや。

660 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 20:55:03 ]
>>657
コンパイラのバグで落ちてるように見える。

同じことを実現する別のコードに書き換えると
回避できる可能性はある。

661 名前:デフォルトの名無しさん [2007/06/27(水) 21:34:07 ]
>>660
俺は配列が間違ってる希ガス

ソースだせ。該当ラインの前後10行くらい

662 名前:643 [2007/06/27(水) 22:26:26 ]
>>646
それくらい、察してくださいよ。

663 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 22:46:15 ]
>>656
いやそれ、全然わかってないから。

>>644
>jwe0173i-w line 7 Invalid decimal character . was detected (unit=10).
富士通のコンパイラか?
ttp://ccinfo.ims.ac.jp/vpp/manhtml/html/japan/lang/Fort/html/japan/langFortMSG/fmej03/fmej0025.htm

入力ファイル中の"."が10進数値ではない不正な文字だ、と出ているが
配列Aを整数型で宣言しているとか、入力ファイル中に数値以外の文字が混ざっているとかしてないか?

いずれにせよ、いきなり本番用のでかいデータを読み込ませたりせずに
まずは>>643のプログラムの頭にimax, jmaxを適当な小さい値で追加して、
test.csv もそれに合わせて手入力で作ってテストしてみろ。

664 名前:633 [2007/06/27(水) 23:00:27 ]
>>663
ありがとうございます。
実のところ、入力ファイルを.datに変換してtestの方を実行すると、うまく(?)いきました。
また、write文で','を使って.csvを出力することはできました。
1×96行列になってしまいましたが…
多次元配列は扱えないのかもしれません。

665 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 23:01:12 ]
扱えないわけが無いと思うんだが。

666 名前:633 [2007/06/27(水) 23:11:30 ]
>>665
エクセルの隣の列に移す記号を教えてもらえませんか?
','はわかるんですけど、「改行」のようなものを意味する記号は何ですか?

667 名前:デフォルトの名無しさん [2007/06/27(水) 23:12:15 ]
色んなことが、ごっちゃになって理解できてないな。

エクセルの、読みこむ側のファイルってタブ区切りか?

668 名前:633 [2007/06/27(水) 23:36:08 ]
読み込む側はエクセルのファイルをTera Termにコピペしたものを.datで保存したものです。
なので区切りとかはないと思います。



669 名前:667 [2007/06/27(水) 23:48:18 ]
エクセルのファイルは普通のエクセルか?と言っても668には何を言いたいか
わからないだろうな。
 エクセル開いてドラッグで範囲決めてコピペしてるのか?

vista側のエディタは何だ?秀丸とかか?

制御文字を表示させると区切り分かるけど。

670 名前:633 [2007/06/28(木) 00:03:58 ]
MicrosoftのOffice2003のエクセルです。
コピペはその通りです。

ちなみにXPです。
エディターはよくわかりませんが「emacs -nw 〜」コマンドでテキストウィンドウを開きます。

671 名前:643 [2007/06/28(木) 00:25:07 ]
>>633
OpenOffice.org Calc しかないから、Excel だと若干違うかもだけど、
csv 形式で保存するときに、区切り文字していできるでそ。
そこで、区切り文字カンマ(,)で保存すると、
----------ここから----------
1,2,4,8,16,32
-1,-3,-9,-27,-81,-243
10,100,10,100,10,100
0,0,1,0,0,1
----------ここまで----------
こんなファイルできる。
で、↓のような Fortran90 プログラムで読み込みと表示の確認ができると思う。
----------ここから----------
PROGRAM read_csv
IMPLICIT NONE
INTEGER,PARAMETER :: imax=4, jmax=6
REAL(8),DIMENSION(imax,jmax) :: a
INTEGER :: i

OPEN(1,file="test.csv")
  DO i=1,imax
    READ(1,*) a(i,:)
  END DO
CLOSE(1)

DO i=1,imax
  WRITE(*,*) a(i,:)
END DO

END PROGRAM read_csv
----------ここまで----------

672 名前:633 [2007/06/28(木) 00:41:05 ]
>>671
ありがとうございます。
うちではできないので、学校に行って実際にやってみようと思います。

一応エクセルでは.csv形式で保存できるのですが、保存する際に警告みたいなメッセージが出るので
原因はそれなのかな?と思いはします。

673 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 00:56:22 ]
>>672
それは
「csv(テキスト)で保存するとExcelの計算式やセルの装飾などの情報が失われるよ」
という警告だがら、関係ない。

674 名前:667 [2007/06/28(木) 12:04:28 ]
コピペするとタブ区切りで持っていくはずだけどね

675 名前:657 [2007/06/28(木) 12:33:54 ]
メッセージのxx.f:342は、342行目ということだったんですね。

342,343行目は、
STOP
END
なんですが。。

676 名前:661 [2007/06/28(木) 14:39:50 ]
だから前後て書いてるでしょ

サブルーチンあるのか?配列の引渡しは、うまくやってるか?

677 名前:672 [2007/06/28(木) 14:56:13 ]
>>671
やはり、
was detected (unit=10).id decimal character
(the relative position causing an error in a record = 13 )
3,1.427,0.747
?
error occurs at MAIN__ line 15 loc 000106ec offset 00000044
MAIN__ at loc 000106a8 called from o.s.
taken to (standard) corrective action, execution continuing.
というエラーになります。
プログラムは
implicit none
integer,parameter :: imax=24,jmax=4,iimax=3,ijmax=40
real(8),dimension(imax,jmax) :: N,L,M
real,dimension(24,4) :: X
integer,dimension(24,4) :: K
real,dimension(iimax,ijmax) :: A
real(8),dimension(3,40) :: B
real :: f
real(8) :: lambda,omega
integer :: i,j,ii,ij

open(10,file='danmenseki.csv',status='old') !表1.1を読み込む
do ii=1,iimax
read(10,*) (A(ii,ij),ij=1,ijmax)
end do
close(10)
です。
>>673
ソフトの問題ではないわけですね。ありがとうございます。



678 名前:657 [2007/06/28(木) 19:45:34 ]
>676
ありがとうございます。
全部で546行のソースで、342行目にSTOP、343行目にENDがあります。
その後ろに4つのSUBROUTINEがあります。
配列の引渡しについては、引数を確認しましたが、型・サイズは同じでした。




679 名前:661 [2007/06/28(木) 20:25:40 ]
>>678
デバッグモードで確認するかだね。gfortranはできるのかな?
gnuだからできると思うけど

680 名前:657 [2007/06/28(木) 21:24:58 ]
>>679
ありがとうございます。

コンパイラのデバッグモードって、このオプションのことですか?
わけのわからないメッセージが出まくったのですが。困りました。
-fdump-parse-tree
Output the internal parse tree before starting code generation. Only really
useful for debugging the GNU Fortran compiler itself.

これ以外の Options for Debugging Your Program or GNU Fortranは、
runtime用のもののようです。

681 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 21:29:04 ]
>>677
どうもこちらで再現できないから、
うまくいった友達とやらに見てもらった方がいいかもしれん。

682 名前:661 mailto:sage [2007/06/28(木) 21:37:17 ]
デバッグは「-g」のはず。
gdb使ってね。

一通りミリ
ttp://www.k.mei.titech.ac.jp/~stamura/NumericalComputation-Tips.html

"-fbounds-check"でこけたりして

683 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 23:21:15 ]
まだCVSファイルの問題が解決してないのかw

たしか富士通のコンパイラはレコード長の絡みでうるさいので、それかも試練。
入力データの1行の長さはどれくらいだ?
すごく長いなら、OPEN文でレコード長を大きくしておけ。

富士通のコンパイラは10年くらい使ってないから、保障しないがw


684 名前:677 [2007/06/30(土) 00:30:41 ]
結局.datファイルで入力することにしました…
出力の方は24×4のはずが96×1で出てしまいますが手作業で直しました。
月曜にまた学校でいろいろ試してみますね。

685 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 14:21:05 ]
>>684
>出力の方は24×4のはずが96×1で出てしまいますが
つ 改行コード

Windows側で LFのみの改行に対応したエディタか変換ツールを使うヨロシ。

686 名前:デフォルトの名無しさん [2007/06/30(土) 16:58:07 ]
>>685

ftpソフトでwin-unix
lf-cr+lf対応を使った方が早いと思う。

687 名前:デフォルトの名無しさん [2007/07/01(日) 22:28:27 ]
フォートラン初心者です.
BLASを使っていろいろ計算しようとしたんですが,内積で何故か良く分からない数値がでます.

PARAMETER ( N = 4)
REAL*8 e(N)/N*1.0/
inc = 1
WRITE(6,*) DDOT(N,e,inc,e,inc)
END

実行結果が 2.25000000
1,1,1,1と1,1,1,1の内積だから4になってほしいんですが・・・

C言語なら少しは分かります.
だれかぼすけて

688 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 01:09:45 ]
>>687
適当なので気休めまでに。

REAL*8 e(N)/N*1.0/
これを
REAL*8 e(N)/N*1.0d0/
にしてみそ。
コンパイラによっては、単精度4バイト4つ分を頭から詰めているのかもしれない。

別に考えられるのは、関数を直接WRITE文で書き出しているが、一旦変数に入れるのもよろし。
Cと違ってValueでは返さないので、関数をサブルーチンの引数にしたりすると
コンパイラによって受け付けたり、受け付けなかったり、暴走したりすることがある。
ただ、Write文だから大丈夫だと思うが。あとf90になってからは、おkのことが多い気が駿河。





689 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 01:55:33 ]
>>687
Intel Fortran Ver.10.026 + MKL 9,1 では、ちゃんと4が出たwww

おぬしのコンパイラ環境等は何ぞや。

690 名前:687 [2007/07/02(月) 06:56:16 ]
>>688
>REAL*8 e(N)/N*1.0d0/
変化無しOrz
初期化は上手く行ってるみたいです.
それといったん変数に入れても同じ.
ここでさらに気になるのは,DDOTの戻りが単精度っぽいところ・・・

>>689
よくわからないんですが適当にHPを漁ってみると
本体:FUJITSU PRIMEPOWER HPC2500
OS:Solaris 8
コンパイラFortran JIS X3001-1:1998 (Fortran95)
マニュアルとかのリンクが富士通なので,コンパイラも富士通だと思います
コンパイル時は,
%frt test.f90 -SSL2 -O0
でやってます

スパコンでベクトルの内積一本とか,なにやってんだ俺\(^o^)/

691 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 11:29:11 ]
>>690
%frt -SSL2 -O0 test.f90

こうとかwwwww

>ここでさらに気になるのは,DDOTの戻りが単精度っぽいところ・・・
これが気になるな。症状的にはサブルーチンの単精度倍精度の割り当て違いっぽいので。
 
DDOTにもDOUBLE指定が必要な仕様かw
IMPLICIT REAL*8 (a-h,o-z)
もつけてみるかw


692 名前:デフォルトの名無しさん [2007/07/02(月) 14:26:52 ]
pgf90のコンパイルで困っています。
makeを実行すると

PGF90-W-0119-Redundant specification for name_size (Size_Class.f90: 101)

のようなエラーがでてきます。
これはコンパイルオプションでなんとかできるものなのでしょうか?
教えてください。

693 名前:デフォルトの名無しさん [2007/07/02(月) 16:34:13 ]
>IMPLICIT REAL*8 (a-h,o-z)
かもね。

ただ、最適化するな。それで答えはどうなる?
最適化の問題か

694 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 23:12:58 ]
>>693
オプション -O0 使ってるから、最適化はして無いだろう。
多分DDOTもdble宣言しておかないと駄目なんだろ。EXTERNALと合わせて。
前にも似たような症状がスレに出ていた希ガス。

この辺は、NEC<<<Fujitsu<Hitachi の順でコンパイラのケツの穴が狭いという
昔の言い伝えにあるように、Fujitsuはコンパイラが宣言にうるさいんだろ。

NECはゆるすぎて、ホモの尻穴のごとく何でもホイホイ容れてしまうのだがwww



ところで、おまいら 京速コンピュータがNEC、日立、富士通の三社合同になったことをどう思う?
完全に破滅コースに入ったと思うんだがwwwwwwww

695 名前:デフォルトの名無しさん [2007/07/03(火) 00:16:01 ]
>>694
最適化しないというオプションは効いてない場合もある。-Oは書かない。

京速?北海、九州コンピュータに頑張ってもらおう。

696 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 23:44:22 ]
>>695
>北海、九州コンピュータに頑張ってもらおう。
意味分からん。解説よろ。

697 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 04:54:07 ]
linpackのMPI版はありませんか?

698 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 23:07:37 ]
>>697
あるべ。




699 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 02:02:05 ]
最近WINDOWS版g95をインストールし問題なく動いていたのですが、
突然エラーが出るようになってしまいました。

g95: installation problem, cannot exec 'as': No such file or directry

とでて、コンパイルができなくなっている状態です。
pathは通っていますし、インストールもうまくいったはずなのですが・・・
なにより最近まできちんど動いていたので、全く原因がつかめません。

700 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 12:03:12 ]
>>699
動いていたときと動かなくなった間に、何をしたのかを書かなければ誰にも分からん。
何もしていないというのは無し。

XPだったら復帰ポイントで戻れw

701 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 16:24:12 ]
自宅でfortran77を使うために、CPad for FTN77をダウンロードしたんですが
コンパイルして実行すると

コンパイルに失敗しました。
ファイル"〜〜test.exe”は存在しません。

と言われるのですがどうすれば解決できますか?

702 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 20:25:56 ]
>>701
バグ取りすれば解決できます。

703 名前:701 mailto:sage [2007/07/06(金) 21:35:33 ]
>>702
度々すみません
具体的にどういうことをすればいいんでしょうか?

704 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 22:38:10 ]
>>703
自分の入力したプログラムをじっくり眺めて間違ってるところを直せばいいだけだよ。

705 名前:701 mailto:sage [2007/07/06(金) 23:49:35 ]
>>704
学校ではコンパイルも実行もできたやつなんですが…
といっても間違いがないとは限らないということでしょうか

簡単なもので試したんですが
write(*,*)'test'
end
でもできませんでした。


下のメッセージに

■C:\〜〜〜〜〜〜〜〜〜\data> ftn77 /link test.f
Cannot open authorisation file c:\〜〜〜\ftn77.ser:   (文字化けしてる)
System error (3): 指定されたパスが見つかりません。

と出てました。
ftn77.exeにつなげてるんですが…。

706 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 00:03:08 ]
>>705
FTN77は日本語の入っていないパスにインストールしろ。

707 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 03:10:21 ]
>>701
同じ質問がこのスレだけですでに2,3回出ているw
>>65あたりみろ


708 名前:701 mailto:sage [2007/07/07(土) 12:56:23 ]
できましたー!
一番の原因は>>706さんが言ってることでした
答えてくれた方々、本当にありがとうございました



709 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 13:45:18 ]
今度質問することがあったら、最初からエラーメッセージをコピペしような。

710 名前:デフォルトの名無しさん [2007/07/08(日) 13:09:06 ]
粘IN/1-T
の式をTを0から3まで0.5刻みでとって
さらにN=1、2、3、4、5について別々に求めたいのですが、わかりませんどなたかよろしくお願いします






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<350KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef