Fortran语法介绍(一)

2024-03-08 1195阅读

个人专栏—ABAQUS专栏

  1. Abaqus2023的用法教程——与VS2022、oneAPI 2024子程序的关联方法 Abaqus2023的用法教程——与VS2022、oneAPI 2024子程序的关联方法
  2. Abaqus有限元分析——有限元网格划分基本原则 Abaqus有限元分析——有限元网格划分基本原则
  3. 各向同性线弹性材料本构模型umat的应用 各向同性线弹性材料本构模型umat的应用
  4. ABAQUS用户子程序二次开发——UMAT介绍(一) ABAQUS用户子程序二次开发——UMAT介绍(一)

目录

  • 个人专栏—ABAQUS专栏
    • Fortran语法基本格式
        • Fortran(FORmula TRANslation)固定格式:
        • Fortran程序架构特点:

          Fortran语法基本格式

          Fortran(FORmula TRANslation)固定格式:
          • 每一行最多含72个字符,多出的字符会被忽略或引起错误信息
          • 第1-6列为功能栏,程序代码写于第7-72列
          • 第1列字符为``c,C,*,!''代表该行为注释行,不会被编译
          • 第6列输入``0’'和空白以外的任意字符表示该行程序续接上一行未完的程序代码
          • 若需命名单行程序代码,名字需置于第1-5列功能栏内
          • Fortran代码不区分大小写

            示例如下:

            C *** *************************************** C
                  program hello
            ! --- 固定格式写作范例 ------------------------!
                  write(*,*)``Hello world!''
                  write(*,*)
                 1 ``Hello again.''!接续前行
                  goto 10
               1  write(*,*)``Hello to be ignored.''
             10   stop
                  end program hello
            C 第1、3行的第1列为``C和!'',该两行不会被编译,第6行``!''之后的内容视为注释被忽略
            C 第8、9行的代码被命名为1 和10,第6行第6列包含数字1,故第6行为第5行代码的延续
            
            Fortran程序架构特点:
            • 由主程序与子程序模块组合而成
            • Fortran一般先将程序所需记忆空间预留出来,并将变量存储位置分配好后,才开始执行,因此所有变量须在程序运行开始前进行定义
            • 在程序中将一段含完整功能代码块打包成子程序,增加程序的可读性、可维护性、可扩充性和可重复使用性
              C *** ******************************************C
                     program hello        !主程序以program开头,程序名为hello
                     call say_hello()     !调用子程序say_hello
                     end program hello    !主程序以end program +程序名结尾
              C *** ******************************************C   
                     subroutine say_hello()       !子程序以subroutine +程序名开头
                     write(*,*) ``Hello world!''
                     write(*,*)
                    1 ``Hello again.''!接续前行
                     goto 10
                  1  write(*,*)``Hello to be ignored.''
                10   return
                     end subroutine say_hello     !子程序以end subroutine+ 程序名终止
              C *** ******************************************C 
              

              主程序模块如下所示:

                    program  program_name !主程序开头,program_name为自定义主程序名称
                    !-----------------!
                    !变量定义          ! 
                    !-----------------!
                    !程序内容          ! 
                    !-----------------!
                    end program program_name !主程序结尾 
              

              Abaqus子程序便是将材料模块化以子程序包装起来,预留UMAT子程序窗口供使用者扩充材料模型,abauqs子程序架构如下:

                    subroutine subroutine_name(var_1,var_2,...,var_n) 
                    ! 子程序开头,var_1至var_n为子程序的声明变量
                    !-----------------!
                    !变量定义          ! 
                    !-----------------!
                    !程序内容          ! 
                    !-----------------! 
                    end subroutine subroutine_name !子程序结尾 
              

              欢迎对Abaqus感兴趣的朋友们查看:Abaqus-UMAT开发精品书籍及umat子程序学习

              Fortran语法介绍(一)

              ZWT——Abaqus非线性粘弹性模型子程序umat——广义MAXWELL粘弹性模型umat解析(朱-王-唐本构模型)

              Fortran语法介绍(一)

              如果你喜欢以上内容,或者对Abaqus学习有兴趣,欢迎收藏关注,博主将持续更新。你的关注、收藏是我持续创作的动力!

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]