sample 3
        implicit none
        
        integer j,jmax
         
        parameter(jmax=1000)
        
        real x0,L0,xh,Lh,ah
        
        real x(0:jmax), L(0:jmax) ,a(0:jmax)
        real t(0:jmax), dt, tmax
        
c       初期条件
        write(0,*) 'initial condition: x,L ='
        
        read(*,*) x0,L0
        write(0,*) 'dt,tmax='
        read(*,*) dt,tmax
       
          
        x(0)=x0; L(0)=L0;
        
        t(0)=0.0
c       運動方程式を解く
        do j=0, jmax-1
           a(j)=-sin(x(j))           !運動方程式:a=-sin(x)
           
           xh=x(j)+L(j)*dt/2
           Lh=L(j)+L(j)*dt/2
           ah=-sin(xh)
           x(j+1)=x(j)+Lh*dt
           L(j+1)=L(j)+ah*dt
           t(j+1)=t(j)+dt
           if( t(j).gt.tmax) exit
        enddo   
        
c        結果を出力する
        do j=0,jmax-1
           
           write(*,*) t(j),x(j)
           if( t(j).gt.tmax) exit
        enddo
        stop
        end
[戻る]