|
|
看我这个 我写的外部函数 可有问题:
external f
dimension y(3),d(3),z(3,5000000),b(4,3),e(3),s(3),g(3)
open(26,file='variable.dat')
h=0.001d0
m=5000000
n=3
eps=0.00001d0
y(1)=1.0d0
y(2)=2.0d0
y(3)=3.0d0
call adams(a,h,m,y,n,z,f,d,eps,b,e,s,g)
do 20 i=1,m
t=(i-1)*h
if(t.ge.1d2) write(26,'(4f15.6)')t,z(1,i),z(3,i)
20 continue
close(26)
end
subroutine f(t,y,n,d)
c ----------------------------------------------------------------------
dimension y(n),d(n)
real*8 mm
c if (abs(y(1)).gt.2.9d0)then
mm=0.366d0
else
mm=0.061d0
endif
d(1)=(1.15d0-mm*y(1)-sin(y(2))-y(3))/2.6d0
d(2)=y(1)
d(3)=(y(1)-y(3))/0.707d0
return
end
这才是 最后一部分 重要的 上面 以及 以前 都是模块化的 程序 |
|