!**********************************************************************! ! ! File: euler.f90 (31-Mar-2006) ! (27-Mar-2008) ! ! Loesung der Differentialgleichung ! ! du/dt = -u ! ! mit dem Eulerverfahren ! ! dt......Zeitschritt ! itpr....Ausgabe alle itpr Zeitschritte ! itmax...maximale Anzahl Zeitschritte ! u(0)....Startwert ! ! Ausgabe auf File "euler.dat" ! !**********************************************************************! program euler !**********************************************************************! implicit none integer,parameter::iout=2 integer::it,itmax,itpr real::dt,t,u,un write(unit=*,fmt="(a)",advance="no") " dt,itpr,itmax=" read(unit=*,fmt=*) dt,itpr,itmax write(unit=*,fmt="(a)",advance="no") " u(0)=" read(unit=*,fmt=*) u open(unit=iout,file="euler.dat",status="replace",action="write", & form="formatted",position="rewind") t=0.0 write(unit=iout,fmt="(tr1,f10.7,tr1,es14.7)") t,u do it=1,itmax un=u-dt*u ! Euler explizit t=it*dt u=un if(modulo(it,itpr)==0) then write(unit=iout,fmt="(tr1,f10.7,tr1,es14.7)") t,u end if end do close(unit=iout) end program euler !**********************************************************************!