Adams編譯C語言用戶子程序
1 概述
在Adams使用過程中,有些復雜的情況特別是涉及到一些邏輯表達,用函數(shù)表達式很難表達出來,這種情況需要使用用戶子程序。
Adams用戶子程序支持C語言和Fortran語言,隨著C語言的普及,越來越多的用戶使用C語言編寫用戶子程序。用戶子程序?qū)儆贏dams較難掌握的部分,且Adams2012版本和以前版本相比較,用戶子程序的數(shù)據(jù)格式和函數(shù)內(nèi)容都已有了較大的發(fā)展,本文介紹如何在Adams2012版本中編譯C語言用戶子程序。
2 操作平臺
操作系統(tǒng):Windows 7 64位
軟件版本:Adams 2012 32位、Visual Studio 2008 32位
編譯軟件:Intel Fortran 11.0
環(huán)境配置:
在操作系統(tǒng)環(huán)境變量Path中增加Adams啟動文件mdi.bat的路徑,如D:\MSC.Software\Adams\2012\common\mdi.bat
把Fortran安裝路徑下的libifcoremd.lib、libmmd.lib、libifportmd.lib、libirc.lib、svml_dispmd.lib這5個文件復制到Adams安裝路徑下win32文件夾下
3 編寫用戶子程序
Adams安裝程序solver\c_usersubs文件夾下有C語言編寫的常用的用戶子程序,其中slv_c_utils.h文件是用戶子程序的頭文件。編寫用戶子程序時,在這些程序的基礎(chǔ)上進行更改會有事半功倍的效果。
本文以編寫VForce用戶子程序為例,對其編寫、編譯操作過程進行說明。
復制vfosub.c和slv_c_utils.h兩個文件到個人工作文件夾下,如D:\mysubroutine,可以對vfosub.c文件進行代碼修改。本文直接使用vfosub.c的原始代碼,其代碼為:

注意:因為代碼中引用了slv_c_utils.h,復制時必須同時復制slv_c_utils.h文件,否則編譯時會報錯。
4 編譯操作
(1) 在開始菜單下,啟動Visual Studio 2008命令提示工具。


(2) 把工作路徑設(shè)置到用戶子程序文件所在路徑(D:\mysubroutine)。

(3) 輸入mdi,系統(tǒng)進入Adams環(huán)境中,輸入cr-u,進入編譯子程序,這時系統(tǒng)提示是否在調(diào)試狀態(tài)下連接,直接輸入回車。

(4) 輸入C語言用戶子程序的文件名vfosub.c并回車,注意:
該文件必須是以.c為后綴名,不能以.cpp為后綴名
該文件必須在當前路徑下存在
系統(tǒng)提示輸入下一個文件名稱,這時直接點擊回車;然后輸入生成的dll文件的名稱,這個文件名可不與c文件同名,比如輸入myvfosub.dll,然后點擊回車,系統(tǒng)進行編譯。

(5) 編譯完成后,如果系統(tǒng)提示編譯成功,會在vfosu.c所在的文件夾中生成編譯成功的dll文件,至此完成用戶子程序的編譯。


5 結(jié)論
5 結(jié)論
用戶子程序涉及到Adams、C語言、Fortran語言等知識,且需要配置環(huán)境,初學者很難掌握。本文詳細介紹了如何在Adams2012中編譯C語言用戶子程序的過程,對初學者有很好的參考意義。