abaqus的Fortran子程序中使用自由格式

    在上一篇文章Fortran語言的自由格式與固定格式中,曾經討論過AbaqusFortran子程序在默認狀態下只能使用固定格式,而實際上自由格式更為靈活好用,其一行不受72個字符的限制,并且可以將多個語句寫在同一行,同時續行符相對于固定格式也更為好用。本文主要描述下如何實現在abaqus中采用Fortran自由格式編程。

    以幫助文檔中的經典塑性UMAT子程序為例:

   (1)打開Abaqus documentation,點擊Abaqus Verification Guide,并進入UMAT AND UHYPER下的input files

abaqus的Fortran子程序中使用自由格式的圖1


abaqus的Fortran子程序中使用自由格式的圖2

abaqus的Fortran子程序中使用自由格式的圖3

    (2)下載inp文件及f子程序,用文本編輯器打開umatmst3.f,可以看出其采用的是固定格式編寫;

abaqus的Fortran子程序中使用自由格式的圖4

  (3)修改abaqus的運行環境,加入支持自由格式的設置:找到abaqus環境的配置文件,對于abaqus2020abaqus2021版本,該文件為以下路徑的win86_64.env文件:

abaqus的Fortran子程序中使用自由格式的圖5

  對于比較早的abaqus版本如abaqus6.14,該文件可能叫abaqus_v6.env。總之通過搜索等方式找到該文件并打開即可。

  (4).env文件中加入使用自由格式的命令:

abaqus的Fortran子程序中使用自由格式的圖6



(5)將子程序修改為自由格式,需要修改的內容主要包括 續航符,注釋等。事實上,國內知名的Fortran程序論壇FCODE論壇提供了一個將固定格式轉化為自由格式的工具“鵝毛筆”,路徑如下:http://quill.fcode.cn/

 打開umatmst3.f,復制全部代碼粘貼到鵝毛筆的頁面,選中“固定格式( .for .f )轉自由格式”,再點擊“開始轉換”,則自動生成了自由格式的代碼,將代碼復制到umatmst3.f替換原固定格式的代碼(不需要修改文件名和文件名后綴),同時手動將代碼中的Invlude替換成include(此處是轉化工具鵝毛筆的一個bug,因此需要手動修改)。

abaqus的Fortran子程序中使用自由格式的圖7

轉換前的代碼



abaqus的Fortran子程序中使用自由格式的圖8

轉換后的代碼


abaqus的Fortran子程序中使用自由格式的圖9

abaqus的Fortran子程序中使用自由格式的圖10


(6)打開abaqus cae,使用file-import-model導入umatmst3.inp文件,創建job,選擇子程序并且提交。

abaqus的Fortran子程序中使用自由格式的圖11

abaqus的Fortran子程序中使用自由格式的圖12


或者采用abaqus command命令提交:


abaqus的Fortran子程序中使用自由格式的圖13


注:修改.env支持自由格式后,則按照固定格式編寫的子程序則不能正確使用,如果提交會報語法錯誤,此時可將代碼的固定格式用“鵝毛筆”轉自由格式再提交或者重新打開.env文件將“,/FREE,”命令刪除使其重新支持固定格式??傊潭ǜ袷胶妥杂筛袷街荒芏x一。

【完】



歡迎關注公眾號  有限元術

abaqus的Fortran子程序中使用自由格式的圖14

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

22
19
27