Fortran プログラムで SUNDIALS-CVODE を使用しようとしていました。ただし、fcvmalloc()
常にエラー フラグを返します。
日時計パッケージに含まれる fortran サンプル プログラムも動作しません。にも同じ問題がありfcvmalloc()
ます。しかし、c サンプルはうまく機能します。
ubuntuとdebian sidの両方で、aptのパッケージとローカルでコンパイルされたパッケージを試しました。どの組み合わせも機能せず、同じ問題がfcvmalloc()
.
この問題をご覧いただきありがとうございます。以下は簡略化されたテスト ケースです。
program test
integer*4,parameter::nEq=2
integer ier
integer*4 ipar(1),iout(25)
double precision rpar(1),rout(10)
double precision t,dt,u(nEq)
t=0d0
u=[1d0,2d0]
call fnvinits(1,nEq,ier)
call fcvmalloc(t,u,1,1,1,1d-5,1d-5,iout,rout,ipar,rpar,ier)
call fcvspgmr(0,1,50,0d0,ier)
dt=1d-1
do i=1,10
call fcvode(t+dt,t,u,1,ier)
write(*,*),t,u
end do
call fcvfree()
end program
subroutine fcvfun(t,u,du,ipar,rpar,ier)
double precision t
double precision u(*)
double precision du(*)
integer ipar(*)
double precision rpar(*)
integer ier
du(1)=-0.5d0*u(1)
du(2)=-3d0*u(2)
ier=0
end subroutine