dポイントプレゼントキャンペーン実施中!

初めまして。インテルfortranを使っているのですが、ソースのwrite文をコメントにするだけで処理結果が変わってしまうという現象に遭遇しています。
環境は以下です。
OS:Fedora Core 6
コンパイラ:インテルfortran 10.0.023

具体的には、下記のソースで45行目の

ccc write(*,*) ians,sn

write(*,*) ians,sn

とするだけで、コンパイルは正常にできるのですが処理結果が変わってしまうのです。
      
43 j4=ians+ifix(wind_p*samp)
44 if(j4.gt.nnn) j4=nnn
45 ccc write(*,*) ians,sn
46 cc write(*,*) 'pick plib ',stnw(kst),ians,sn
47 if(sn.lt.aic_pmin_repic.or.ians.lt.1) go to 5
48 jjans=jj1+ians

原因が全くわからず困り果てております。
解決方法や原因の心あたりがありましたら、是非教えてください。

A 回答 (2件)

この文面だけで回答できるほど超能力のある人はそうそういないと思いますが....


出てくる変数や関数, そして「どのように変わったのか」くらいは書けませんか?
    • good
    • 0
この回答へのお礼

回答有難うございます。
解決しました。
上記に書いていなかった部分の41行目のjj1(Integer)の値がwrite文の有無で変わっていました。

41 call pick_p_arrival(ibuf4,jj1,jj2,ians,j1,jk3,j4,sn)
42 nnn=jj2-jj1+1

jj1の値を定義していなかったため、writeの有無で参照するポインタの値が変わってしまったのではないかと思われます。jj1の値をきちんと定義したところ、write文がなくても期待とおりの結果がでるようになりました。

前提条件の記述不備な質問にもお付き合い頂き有難うございました。

お礼日時:2008/07/30 17:26

書かれている部分におかしな所はなさそうなので、書かれていない部分にバグがあるはずです。

プログラム全体を見直しましょう。

もしくは、「ソースのwrite文をコメントにするだけ」というのが勘違いなのかもしれません。
    • good
    • 0
この回答へのお礼

ご指摘の通り、プログラム全体の見直しは必要ですよね。
遅くなりましたがアドバイス有難うございました。

お礼日時:2008/08/06 14:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!