作者GP03 (無言)
看板Fortran
標題Re: [問題] DVF5.0轉換到IVF10.1的問題
時間Thu Sep 18 15:09:44 2008
: 查了IMSL說明,將DLSADS改成LSADS
: 編譯時出現下列錯誤
: 1>F:\20080731freeformat\program-27-80\Mainpg.for(976) : Error: The type of
: the actual argument differs from the type of the dummy argument. [GLKRR]
: 1>F:\20080731freeformat\program-27-80\Mainpg.for(976) : Error: The type of
: the actual argument differs from the type of the dummy argument. [GLFRR]
: 1>F:\20080731freeformat\program-27-80\Mainpg.for(976) : Error: The type of
: the actual argument differs from the type of the dummy argument. [XR]
: 請問是哪邊需要修改才能正常編譯呢
上述的問題是似乎是新舊版IMSL定義參數的形式順序不同
舊版為CALL LSADS (N, A, LDA, B, X)
新版則是CALL LSADS (A, B, X [,…])
故修改為改為 CALL LSADS(GLKrr,GLFrr,Xr,NEQ3,NEQ3)
再經版友建議
把USE NUMERICAL_LIBRARIES改成
Include 'link_fnl_shared.h'
USE LSADS_INT
編譯後出現一個命令提示字元和一個錯誤訊息的對話框
內容為:無法找到程序輸入點__powri84(在連結程式庫 libmmd.dll)
按確定後隨即關閉
下列為輸出的訊息:
'mainprogram.exe': 已載入
'F:\20080731freeformat\program-27-80\Debug\Mainprogram.exe',已載入符號
'mainprogram.exe': 已載入 'C:\WINDOWS\system32\ntdll.dll',未載入符號
'mainprogram.exe': 已載入 'C:\WINDOWS\system32\kernel32.dll',未載入符號
'mainprogram.exe': 已載入 'C:\Program
Files\VNI\imsl\fnl600\IA32\lib\imsl_dll.dll',二進位碼不是以偵錯資訊而建置。
'mainprogram.exe': 已載入 'C:\WINDOWS\system32\MSVCR71.dll',未載入符號
'mainprogram.exe': 已載入 'C:\Program
Files\Intel\Compiler\Fortran\10.1.011\IA32\Lib\libifcoremd.dll',未載入符號
'mainprogram.exe': 已載入 'C:\Program Files\AnCAD\MATFOR4\bin\libmmd.dll',未
載入符號
'mainprogram.exe': 已載入 'C:\WINDOWS\system32\imagehlp.dll',未載入符號
'mainprogram.exe': 已載入 'C:\WINDOWS\system32\msvcrt.dll',未載入符號
偵錯工具:: 處理序載入期間,發生未處理的非持續性例外狀況
'[3884] mainprogram.exe: 原生' 程式以返回碼 -1073741511 (0xc0000139) 結束。
這樣看來這不只是程式碼有問題了?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.198.238
1F:推 k1942:對了你一開始的 CALL LSADS (N, A, LDA, B, X) 是F77 格式 09/18 20:50
2F:→ k1942:後來的是F90格式,假如你要用F90格式,要區別雙精確或單精確 09/18 20:51
3F:→ k1942:CALL D_LSADS (A0, B0, X0 [,…]) or S_LSADS 你再試試吧 09/18 20:52
4F:→ GP03:試過了,還是出現一樣的錯誤訊息 09/18 21:04