.SUFFIXES:
.SUFFIXES:.f .c .o
を頭のほうにいれてみるとかどう?
953 :
950:2006/11/08(水) 20:14:06
>>952 どうもありがとう。やってみましたが、うまくいきませんでした。
main.o:main.c
main.c:main.f
subr.o:subr.c
subr.c:subr.f
を加えればうまくいくのですが、実際に全部加えるのは大変。。。
>>950のだと*.oと*.f間に依存関係が記述されてないからなんじゃない?
>>953みたいに依存関係を記述するのが正解だと思うけど。
そうしないとすると*.fから*.oをつくるようにするとか。
確認していないけど、こんなイメージ。
.f.o:
$(F2C) $(F2CFLAGS) $< -o hoge.c
$(CC) $(INCLUDES) $(CFLAGS) hoge.c -o $@
多分もっといいやり方があると思う。
955 :
デフォルトの名無しさん:2006/11/09(木) 02:17:20
newmann条件の熱方程式を差分法を使って解きたいんですけど、うまくできません。
(du/dt) = (d^2u)/ (dx^2) (0≦x≦1)
du/dx=0 in x=0,1
u=cos(pi*x) in t=0
どなたかご教授お願いします。
program sabunhou
parameter (ndim=101)
dimension u(ndim)
write(*,*) 'INPUT : nfunc='
read(*,*) nfunc
write(*,*) 'INPUT : n='
read(*,*) n
write(*,*) 'INPUT : dt='
read(*,*) dt
write(*,*) 'INPUT : tmax='
read(*,*) tmax
h=1.0/float(n)
flam=dt/h**2
do 1 i=1,n+1
fi=i-1
u(i)=f(fi*h,nfunc)
1 continue
write(*,100) 0.0,(i,u(i),i=1,n+1)
956 :
デフォルトの名無しさん:2006/11/09(木) 02:17:55
100 format(1h ,'t=',1pe12.41h ,5(2x,'i',5x,'U(i)',4x)(1h ,5(i3,1pe12.4,1x)))
nstep=0
2 continue
uleft=u(-1)
do 3 i=2,n
unew=(1.0-2.0*flam)*u(i)+flam*(u(i-1)+u(i+1))
u(i-1)=uleft
uleft=unew
3 continue
u(n)=uleft
u(n+1)=u(n-1)
nstep=nstep+1
t=dt*float(nstep)
write(*,100) t,(i,u(i),i=1,n+1)
if(t+dt.lt.tmax+0.1*dt) go to 2
end
function f(x,nfunc)
pi=3.1415927
f=cos(pi*x)
end
>>952 %.o:%.f
をいれると.fと.oの間のデフォルトルールが消されて
うまくいくっぽい。
958 :
デフォルトの名無しさん:2006/11/09(木) 08:42:20
>>955 何がうまく行かないのか、もう少し具体的に書いてくれないと答えられない。
世間的には、いきなりソース見せて、『おかしいの教えて!』と言ったら。
『おかしいのはお前の態度だ!』といわれちゃうw
>>949 いまいち理解できないのだが、データそのものを乱数で生成したいということか?
年号に関してはポアソン分布をなすように、それに対応する6個の値は別の分布ということ?
それならば、それぞれの分布をなす関数が用意してあればDO LOOPをまわすだけだ。
それらをサブルーチンかファンクションで作ればいい。
959 :
デフォルトの名無しさん:2006/11/09(木) 09:24:21
>>955 境界の位置のuの値が固定されてしまっていました。
なんとか解決することができました。
ありがとうございました。
煮詰まった余りおかしな態度だったことをお詫びします。
960 :
デフォルトの名無しさん:2006/11/09(木) 09:55:13
>>959 OKwwwwww
頼りになる人は気難しいし、気さくな人は頼りにならん。
奴らの操縦法は下手に出ておだてる事と、適切な質問を与えることだ。
961 :
デフォルトの名無しさん:2006/11/10(金) 00:34:19
g95 と gfortran の関係について教えてください (><
できれば3行で!
無
関
係
963 :
デフォルトの名無しさん:2006/11/10(金) 01:01:47
>>926 いや、先祖はg95で同じだろw
g95の中の人がGCCと一緒になるのを嫌ったのかな?
詳しいことしらん。
965 :
デフォルトの名無しさん:2006/11/10(金) 19:02:47
966 :
デフォルトの名無しさん:2006/11/11(土) 00:42:39
>>965 メルセンヌ・ツイスターの本家ページにC版の半区間を見た記憶があるが、幻かもしれない。
968 :
デフォルトの名無しさん:2006/11/11(土) 14:10:20
mt19937ar.fは全部入り
969 :
965:2006/11/11(土) 16:54:27
>>966-968 ありがとうございます。
mt19937ar.fを使ったらうまくいきました。
そろそろ次スレが要るな。
ちゃんと最後まできっちり使えよ!
FORTRANIVはすなわちFORTRAN66だなw
978 :
デフォルトの名無しさん:2006/11/12(日) 17:56:17
979 :
デフォルトの名無しさん:2006/11/12(日) 17:57:19
981 :
デフォルトの名無しさん:2006/11/12(日) 17:58:38
982 :
デフォルトの名無しさん:2006/11/12(日) 17:59:49
CONTINUE
984 :
デフォルトの名無しさん:2006/11/12(日) 18:33:13
985 :
デフォルトの名無しさん:2006/11/12(日) 18:33:48
986 :
デフォルトの名無しさん:2006/11/12(日) 18:37:34
987 :
デフォルトの名無しさん:2006/11/12(日) 18:38:28
988 :
デフォルトの名無しさん:2006/11/12(日) 18:39:04
989 :
◆SHiMA//5DA :2006/11/12(日) 18:48:52
990 :
デフォルトの名無しさん:2006/11/12(日) 18:49:27
do 1000 i =1 ,n
STOP
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。