FORTRAN III
レス数が1000を超えています。これ以上書き込みはできません。
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/
0951950
2006/11/08(水) 17:51:39タブは見えなくなってますが、入っております。
0952デフォルトの名無しさん
2006/11/08(水) 18:20:57.SUFFIXES:.f .c .o
を頭のほうにいれてみるとかどう?
0953950
2006/11/08(水) 20:14:06どうもありがとう。やってみましたが、うまくいきませんでした。
main.o:main.c
main.c:main.f
subr.o:subr.c
subr.c:subr.f
を加えればうまくいくのですが、実際に全部加えるのは大変。。。
0954デフォルトの名無しさん
2006/11/08(水) 22:44:26>>953みたいに依存関係を記述するのが正解だと思うけど。
そうしないとすると*.fから*.oをつくるようにするとか。
確認していないけど、こんなイメージ。
.f.o:
$(F2C) $(F2CFLAGS) $< -o hoge.c
$(CC) $(INCLUDES) $(CFLAGS) hoge.c -o $@
多分もっといいやり方があると思う。
0955デフォルトの名無しさん
2006/11/09(木) 02:17:20(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)
0956デフォルトの名無しさん
2006/11/09(木) 02:17:55nstep=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
0957デフォルトの名無しさん
2006/11/09(木) 03:57:37%.o:%.f
をいれると.fと.oの間のデフォルトルールが消されて
うまくいくっぽい。
0958デフォルトの名無しさん
2006/11/09(木) 08:42:20何がうまく行かないのか、もう少し具体的に書いてくれないと答えられない。
世間的には、いきなりソース見せて、『おかしいの教えて!』と言ったら。
『おかしいのはお前の態度だ!』といわれちゃうw
>>949
いまいち理解できないのだが、データそのものを乱数で生成したいということか?
年号に関してはポアソン分布をなすように、それに対応する6個の値は別の分布ということ?
それならば、それぞれの分布をなす関数が用意してあればDO LOOPをまわすだけだ。
それらをサブルーチンかファンクションで作ればいい。
0959デフォルトの名無しさん
2006/11/09(木) 09:24:21境界の位置のuの値が固定されてしまっていました。
なんとか解決することができました。
ありがとうございました。
煮詰まった余りおかしな態度だったことをお詫びします。
0960デフォルトの名無しさん
2006/11/09(木) 09:55:13OKwwwwww
頼りになる人は気難しいし、気さくな人は頼りにならん。
奴らの操縦法は下手に出ておだてる事と、適切な質問を与えることだ。
0961デフォルトの名無しさん
2006/11/10(金) 00:34:19できれば3行で!
0962デフォルトの名無しさん
2006/11/10(金) 00:42:11関
係
0963デフォルトの名無しさん
2006/11/10(金) 01:01:47いや、先祖はg95で同じだろw
g95の中の人がGCCと一緒になるのを嫌ったのかな?
詳しいことしらん。
0964デフォルトの名無しさん
2006/11/10(金) 01:02:44g95 はGCCを元にしたFortran95コンパイラ。
g95の進捗があまりにも遅かったのでgfortranが別プロジェクトとして分岐した(が、今のところ完成度はg95の方が上)。
ttp://gcc.gnu.org/wiki/TheOtherGCCBasedFortranCompiler
0965デフォルトの名無しさん
2006/11/10(金) 19:02:47http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/VERSIONS/FORTRAN/TAKANO/mt19937.f
(http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/VERSIONS/FORTRAN/fortran.html)
上記のプログラムだと[0,1]の一様乱数発生になります。
これを(0,1)の一様乱数発生に変えるには、プログラムをどのように変えればいいのでしょうか。
簡単に変えられるようでしたら、(0,1]と[0,1)も教えてください。
0966デフォルトの名無しさん
2006/11/11(土) 00:42:39メルセンヌ・ツイスターの本家ページにC版の半区間を見た記憶があるが、幻かもしれない。
0967デフォルトの名無しさん
2006/11/11(土) 05:19:30http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/CODES/MTARCOK/readme-mt.txt
C版の関数を呼ぶなり、移植するなりするということで。
0968デフォルトの名無しさん
2006/11/11(土) 14:10:200970デフォルトの名無しさん
2006/11/11(土) 21:57:020971デフォルトの名無しさん
2006/11/12(日) 17:15:18FORTRAN �W
http://pc8.2ch.net/test/read.cgi/tech/1163319215/
0972デフォルトの名無しさん
2006/11/12(日) 17:27:200973デフォルトの名無しさん
2006/11/12(日) 17:27:520974デフォルトの名無しさん
2006/11/12(日) 17:28:270975デフォルトの名無しさん
2006/11/12(日) 17:29:040976デフォルトの名無しさん
2006/11/12(日) 17:29:370977デフォルトの名無しさん
2006/11/12(日) 17:43:30FORTRANIVはすなわちFORTRAN66だなw
0978デフォルトの名無しさん
2006/11/12(日) 17:56:170979デフォルトの名無しさん
2006/11/12(日) 17:57:190980デフォルトの名無しさん
2006/11/12(日) 17:58:000981デフォルトの名無しさん
2006/11/12(日) 17:58:380982デフォルトの名無しさん
2006/11/12(日) 17:59:490983デフォルトの名無しさん
2006/11/12(日) 18:04:410984デフォルトの名無しさん
2006/11/12(日) 18:33:130985デフォルトの名無しさん
2006/11/12(日) 18:33:480986デフォルトの名無しさん
2006/11/12(日) 18:37:340987デフォルトの名無しさん
2006/11/12(日) 18:38:280988デフォルトの名無しさん
2006/11/12(日) 18:39:040989 ◆SHiMA//5DA
2006/11/12(日) 18:48:520990デフォルトの名無しさん
2006/11/12(日) 18:49:270991デフォルトの名無しさん
2006/11/12(日) 18:58:450992デフォルトの名無しさん
2006/11/12(日) 19:00:150993デフォルトの名無しさん
2006/11/12(日) 19:01:260994デフォルトの名無しさん
2006/11/12(日) 19:03:270995デフォルトの名無しさん
2006/11/12(日) 19:05:010996デフォルトの名無しさん
2006/11/12(日) 19:06:420997デフォルトの名無しさん
2006/11/12(日) 19:07:340998デフォルトの名無しさん
2006/11/12(日) 19:08:160999デフォルトの名無しさん
2006/11/12(日) 19:22:161000デフォルトの名無しさん
2006/11/12(日) 19:22:2710011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。