1 名前:デフォルトの名無しさん [2006/01/24(火) 09:48:23 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 FORTRAN使いが優しくコメントを返しますが、 お礼はFORTRANの布教と初心者の救済をお願いします。
797 名前:デフォルトの名無しさん [2006/07/31(月) 08:36:28 ] 質問です。自作のプログラムがどうしてもコンパイルできないです。 経験者の方にどこが間違ってるのか見てほしいんですが、そういう質問はこのスレでも受け付けてくれますか?
798 名前:797 [2006/07/31(月) 09:18:44 ] 過去ログ読みましたorz >799にプログラムを貼るので、どこが間違っているのか指摘していただけると助かります。 サブルーチンの関数を用いてa,v,xを更新していくプログラムです。
799 名前:797 [2006/07/31(月) 09:21:14 ] ! ---宣言文--- implicit none real yy,aa,vv,xx,aa2,vv2,xx2,tt,dt,mm,cc,kk,beta integer n,i tt=0 !---入力--- write(*,*) 'input m,c,k' !システム条件の入力 read (*,*) mm,cc,kk write(*,*) 'input beta' !βの入力 read (*,*) beta write(*,*) 'input a0,v0,x0' !初期条件の入力 read (*,*) aa,vv,xx
800 名前:797 [2006/07/31(月) 09:22:03 ] !---ファイルオープン--- open(10,file='jishindou.txt') open(20,file='outouchi.txt') read (10,*) n,dt !---初期値の書き込み--- write(20,*) tt,aa,vv,xx !---doループによる計算--- do i=1,n read (10,*) yy call reply(yy,aa,vv,xx,aa2,vv2,xx2) aa = aa2 vv = vv2 xx = xx2 tt=tt+dt write(20,30)tt,aa,vv,xx 30 format(f4.1,3f6.3) end do
801 名前:797 [2006/07/31(月) 09:23:00 ] !---ファイルクローズ--- close(10) close(20) stop end !---サブルーチン副プログラム--- subroutine reply(y,a,v,x,a2,v2,x2) real y,a,a2,v,v2,x,x2 a2 = -(y+cc*(v+a*dt/2)/mm+kk*(x+v*dt+a*dt**2*(1/2-beta))) & /(1+cc*dt/2/mm+kk*beta*dt**2/mm) v2 = v+dt*(a+a2)/2 x2 = x+v*dt+a*dt**2*(1/2-beta)+beta*a2*dt**2 end subroutine reply 以上です。