我正在写代码的Fortran 90,现在我需要使用特殊功能在*阿莫斯Fotran 77库( http://www.netlib.org/amos/ )。 现在,我发现这些程序模块接口( https://github.com/certik/fortran-utils/blob/master/src/amos.f90 )。
我的问题是:我怎样才能将它们组合起来,在我的Fortran 90的程序中使用它们以及如何正确编译它们?
我一直在努力为这个一整天,仍然无法搞清楚。
以下是我的测试代码:
PROGRAM TEST_ZBESI
USE set_precisions
USE amos
IMPLICIT NONE
INTEGER :: n, i, nz, ierr
!double precision :: zr,zi, cyr(5), cyi(5)
REAL(kind=DBL) :: zr, zi, cyr(5), cyi(5)
n=5
zr=1.0_DBL
zi=2.0_DBL
call ZBESI(zr,zi,0.0_DBL,1,n,cyr,cyi,nz,ierr)
print *,' '
do i=1, n
write(*,10) i-1, cyr(i)
write(*,11) i-1, cyi(i)
end do
print *,' NZ=', NZ
print *,' Error code:', ierr
print *,' '
10 format(' zr(',I1,') = ',F10.6)
11 format(' zi(',I1,') = ',F10.6)
END PROGRAM TEST_ZBESI
我得到的结果如下:
zr(0) = 0.000000
zi(0) = 0.000000
zr(1) = 0.000000
zi(1) = 0.000000
zr(2) = 0.000000
zi(2) = 0.000000
zr(3) = 0.000000
zi(3) = 0.000000
zr(4) = 0.000000
zi(4) = 0.000000
NZ= 0
Error code: 4
我似乎无法得到正确的答案不管有多。
我试图用手将ZBESI.f Fortran 77的代码转换为Fortran 90的代码。 但代码是那么的漫长,这是一场灾难。