我正在用Fortran 90編寫代碼,現在我需要使用* amos Fotran 77庫(http://www.netlib.org/amos/)中的特殊功能。現在我找到了這些例程的模塊接口(https://github.com/certik/fortran-utils/blob/master/src/amos.f90)。如何在Fortran 90/95中使用Fortran 77子例程?
我的問題是:如何將它們組合並在我的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代碼。但代碼太長了,這是一場災難。
請顯示您正在努力的代碼示例。還請解釋什麼是不工作的:編譯錯誤?鏈接問題? – wallyk 2013-05-02 15:49:04
這應該是非常簡單的。除了FORTRAN以外,有什麼不對。更多細節將有所幫助。 – 2013-05-02 17:20:03
應該很簡單,向ZBESI拋出一些調試寫入語句,看看爲什麼拋出這個錯誤。 – agentp 2013-05-07 21:53:26