abaqus子程序運(yùn)行中“ifort不是內(nèi)部或外部命令,也不是可運(yùn)行的程序”解決辦法
(1)問(wèn)題描述
已經(jīng)成功關(guān)聯(lián)abaqus和fortran,通過(guò)了abaqus中的子程序verification;
也能夠在abaqus GUI界面運(yùn)行含subroutine的job文件;
但是通過(guò)abaqus command命令無(wú)法運(yùn)行含subroutine的job文件,會(huì)報(bào)“ifort問(wèn)題”
????????問(wèn)題報(bào)錯(cuò)信息如圖1所示,圖1中Begin Compiling Abaqus...之后才開(kāi)始出現(xiàn)“ifort問(wèn)題”,根據(jù)網(wǎng)絡(luò)資料,這是由于subroutine編譯時(shí)發(fā)生的錯(cuò)誤,因此著重解決與subroutine編譯有關(guān)的問(wèn)題。

(2)解決辦法
????????在abaqus的安裝路徑下找到abaqus.bat文件,以文本方式打開(kāi),添加如圖2路徑。視個(gè)體電腦安裝路徑不同有所差異,可分別用everything查找,如圖4a和圖4b。該方法是在CSDN社區(qū)上查找方法后仍然無(wú)法解決我的困境時(shí)而形成的方法,相關(guān)解決辦法均來(lái)源于網(wǎng)絡(luò),筆者只作搬運(yùn)工作和試錯(cuò)測(cè)試。
????????私以為,CSDN社區(qū)添加ifortvars.bat的路徑主要解決fortran與abaqus關(guān)聯(lián)不成功問(wèn)題,而本文第一部分的問(wèn)題描述已經(jīng)指出,筆者的電腦是成功verification的,所以關(guān)聯(lián)沒(méi)問(wèn)題,因此,主要解決通過(guò)abaqus command命令行的方式調(diào)用subroutine不成功問(wèn)題。(以上只是筆者的猜想,非業(yè)內(nèi)人士,根據(jù)現(xiàn)象而作出的猜想)


圖3 CSDN社區(qū)提供的解決辦法


圖4b everything查找ipsxe-comp-vars.bat文件

(3)問(wèn)題延伸
????????部分abaqus使用人員在運(yùn)行subroutine時(shí)希望能夠隨時(shí)輸出中間參數(shù),替代debug,以驗(yàn)證程序能夠按照預(yù)定想法進(jìn)行運(yùn)算。筆者在解決"ifort問(wèn)題"時(shí),碰巧在subroutint中通過(guò)write函數(shù)輸出中間參數(shù),但是不知道輸出的位置在哪里。目前的一個(gè)可行的解決辦法是,將subroutine文件和子程序放在一個(gè)文件夾中,通過(guò)windows powershell窗口打開(kāi),可見(jiàn)圖1右上角,然后按照?qǐng)D1的方式運(yùn)行job文件,即abaqus job=job-1 user=subroutine int,然后運(yùn)行結(jié)果如圖5所示,圖5上面的1.0、5.0和123正是筆者在子程序中通過(guò)write函數(shù)輸出的中間參數(shù)(應(yīng)該通過(guò)abaqus command命令也能實(shí)現(xiàn))。不過(guò),輸出數(shù)據(jù)有點(diǎn)多,應(yīng)該有途徑控制輸出,暫時(shí)沒(méi)找到解決辦法。

希望廣大讀者在評(píng)論中提意見(jiàn)和討論解決辦法,多多提供解決問(wèn)題的思路,謝謝。