Abaqus 子程序編譯
命令行編譯
call abaqus make library=usersub.for
pause
調用dll
-
在已安裝Intel Fortran的機器上面運行
abaqus make library=usersub
,對子程序進行編譯 -
若是Standard模塊,則會生成standardU.dll;若是Explicit模塊,則會生成ExplicitU.dll和ExplicitU-D.dll
-
將上述庫文件存儲到任意目錄,比如:D:\abc1\abc2\abc3\abc4
-
打開abaqus環境變量設置文件...\SIMULIA\Abaqus\6.13-1\SMA\site\abaqus_v6.env, 末尾增加如下語句
-
usub_lib_dir='D:\abc1\abc2\abc3\abc4'
-
(注意將“\”改成“\\”; 若abaqus安裝目錄下無法修改abaqus_v6.env文件,則將修改后的環境變量文件存儲到inp文件所在目錄)
自由格式的fortran編譯
- abaqus默認調用固定格式的fortran文件,但為了在cae中運行,一般將.f改為.for。
- 若需要調用自由格式的fortran文件,需要更改
D:\SIMULIA\Abaqus\6.13-1\SMA\site
目錄下的abaqus_v6.env
文件中的編譯選項 - 按固定格式編譯則環境變量文件不變,按自由格式則需要添加
'/free'
compile_fortran=['ifort',
'/c','/DABQ_WIN86_64', '/extend-source',
'/iface:cref', '/recursive', '/Qauto-scalar',
'/QxSSE3', '/QaxAVX',
'/heap-arrays:1',
# '/Od', '/Ob0' # <-- Optimization
# '/Zi', # <-- Debugging
'/include:%I','/free']
執行計算任務
可以直接指定for
文件執行計算,也可以指定編譯好的obj
文件進行計算
abaqus job=myumatjob user=umat-std.for
abaqus job=myumatjob user=umat-std.obj