SUBROUTINE voltra(n,m,t0,h,t,f,g,ak) INTEGER m,n,MMAX REAL h,t0,f(m,n),t(n),g,ak EXTERNAL ak,g PARAMETER (MMAX=5) CU USES ak,g,lubksb,ludcmp INTEGER i,j,k,l,indx(MMAX) REAL d,sum,a(MMAX,MMAX),b(MMAX) t(1)=t0 do 11 k=1,m f(k,1)=g(k,t(1)) 11 continue do 16 i=2,n t(i)=t(i-1)+h do 14 k=1,m sum=g(k,t(i)) do 13 l=1,m sum=sum+0.5*h*ak(k,l,t(i),t(1))*f(l,1) do 12 j=2,i-1 sum=sum+h*ak(k,l,t(i),t(j))*f(l,j) 12 continue if(k.eq.l)then a(k,l)=1. else a(k,l)=0. endif a(k,l)=a(k,l)-0.5*h*ak(k,l,t(i),t(i)) 13 continue b(k)=sum 14 continue call ludcmp(a,m,MMAX,indx,d) call lubksb(a,m,MMAX,indx,b) do 15 k=1,m f(k,i)=b(k) 15 continue 16 continue return END C (C) Copr. 1986-92 Numerical Recipes Software .