00-Fortran的必要信息


<center>Fortran的必要信息</center>

必要信息

必要信息 文件位置
项目标签 Fortran
可以被哪些target项目用到?
添加到endnote文件夹
下载的文件夹
创建的博客
github仓库 ….,https://github.com/SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,
相关的博客

QT:Fortran语言的项目怎么编译运行?用什么平台,pycharm?

  1. 我用pycharm写Fortran为什么会出现这样的情况?:https://www.zhihu.com/question/420023253

    • 如果你非要用python去调用Fortran的话,你还是得先新建一个.F90后缀的文件把你的Fortran代码写在里面,然后再写一个python代码用相关的包去调用,这样很麻烦,不建议。
    • 下载一个VS或者装一个Linux系统或者用Linux虚拟机跑Fortran,对照着Fortran入门书籍并结合百度,只要是有工科基础一周入门不成问题。
    • 放弃Fortran直接用Python,直接起飞,你以后深入使用的时候会发现Python比Fortran香一百倍,就好像Fortran是0装备,Python是全部技能点亮的满级装备一般方便。
  2. C/C++, Fortran 在 Windows 上的开发环境配置 (新手向):https://zhuanlan.zhihu.com/p/43472790

    • 作为编程语言, 我们选择 C/C++ 和 Fortran. Fortran 于1957年发明, 尽管如此古老, Fortran在许多科学计算环境中仍是首选语言. Fortran 90/95 已经包含了一些最重要的特性, 包括递归子程序, 动态存储分配和指针, 用户定义的数据结构, 模块和操作数组的能力. 然而, 对于科学计算问题, C/C++也同样非常优秀:
      • C/C++ 作为 Unix 和 Windows 环境中的主流语言, 有着广泛的应用和用户基础;
      • C/C++ 的语法衍生出了一些现代化的语言, 如 Perl, Python, 和 Java.
      • C/C++ 可以非常轻量级,所有Linux和Unix操作的机器都有一个 C/C++ 编译器.
      • 许多工具(如 MPI)都是基于 C/C++, 要实现这些工具之间的交互需要具备 C/C++的知识.
      • 大多数 C/C++ 和 Fortran 90/95 编译器在速度和数值效率方面都相当不错. 虽然我们普遍认为Fortran 77 和 C 比 C++ 和 Fortran 90/95 稍快. 但是在过去几年里, 由于编译器的改进, 我们已经缩小了这种差异.
      • C/C++ 和 Fortran 都可以很好地支持复变量.
      • C/C++ 和 Fortran 90/95 有着很完备的错误提示.
      • C/C++ 和 Fortran 90/95 都支持面向对象. 值得注意的是, 尽管通过声明Fortran 90/95具有定义类的能力, 但是缺少继承.
      • 然而 C/C++ 和 Fortran 并不简单. 比如动态内存管理是一个经常导致不必要或奇怪错误的问题.
    • 程序可以被看做为特定的算法, 不同的程序员会有不同的编程风格. 如果你的代码可读性很差, 在很多情况下会导致可靠性问题, 比如难以让其他人理解你的算法, 在其他环境上不容易实现,等等. 尽管你可以有自己风格, 但我们应当去遵循一些规范. 以下是我们建议:
      • 在写代码之前, 我们首先需要对算法进行理解, 即他的逻辑结构. 例如数据流和数据组织是非常重要的.
      • 尽量选择最简单的算法. 这往往会提高计算速度.
      • 尽可能让代码的结构简单清晰, 这样的程序更容易调试. 尤其在你与其他人合作的项目中, 减少调试和理解代码的时间是非常重要的. 清晰的代码也会有效提高生产力.
      • 程序的规划应该遵循行文顺序, 避免在程序中来回跳转(比如在 Fortran 中尽量避免使用 goto).
      • 用标准 ANSI 编码.
      • 详细的注释. 注释可以帮助你记住一个月前你做了什么.
      • 声明所有变量.
      • 当你命名变量时, 使用容易理解的名称.
  3. Fortran简介与轻松+舒适的安装使用方法:https://zhuanlan.zhihu.com/p/81981805

    • 大家好!基于本人在科研工作中对Fortran的长期使用,我决定再为Fortran额外申请一个知乎专栏,来记录一些本人使用Fortran过程中的一些心得体会、摸索过程和程序探讨。

    • Fortran是一门很“古老”的语言,它起源非常早,从它的名字就可以看出,它最初出现就只有一个目的——为科学计算服务(FormulaTranslation,即公式翻译)。所以时至今日Fortran有着其独特而尴尬的地位:说其独特,是因为其在科学计算领域,有着代码编写简单直接、语法符合科学用语习惯、浮点数运算能力快而强的优势,且经过一代又一代科研人员的积累,Fortran有着深厚的科学计算库,基本大家大学期间熟悉的各类数学、物理工具都有着其对应的Fortran代码,如今材料计算领域,各大商用计算软件(VASP、PWmat、PWscf等)源代码都是Fortran,它时至今日仍然为科学计算领域所青睐,因此如果能熟练掌握Fortran语言,对科研的帮助是非常大的;说其尴尬,是因为Fortran这样的“专精”导致其在其他领域的应用捉襟见肘,几乎被时至今日火到爆炸的python所吊打,并且Fortran具有相对而言不太好的阅读体验,想对一段代码进行重构和修改是非常困难的一件事情(即长期为人诟病的“祖传代码”),因此在科学计算领域之外,几乎很少会有人使用这门语言,也有人提出用C++和python来彻底取代Fortran。但就我本人使用C++、Fortran和python的综合体验来说,私以为Fortran仍然有着非常明显的优势:强大而快速的运算(特别是浮点数运算、矩阵运算)能力 + 非常简洁的语法,可以理解为它结合了C++和python的优点,我认为仍然是科学计算领域值得首选的语言

    • 写Fortran比较舒服的环境,以及它们各自的优劣:

      • 1、大型计算机集群

        前面说到了,Fortran最得心应手的舞台是科学计算领域,大型计算机集群应该是做科学计算常见的配置。使用大型计算机集群直接写Fortran代码,有以下几个好处:

        ① 界面简洁。

        ② 代码可移植性非常强。

        ③ 随时随地同步。

      • 2、codeblocks-Fortran适用版

      • 3、 Intel Fortran + VS studio

      • 4、gitbash + VS code

  4. 谷歌、百度、抖音、B站…

  5. Fortran语言20分钟入个门,面向科学计算的、成熟的编译型语言:https://www.bilibili.com/video/BV1D3411x7aj?spm_id_from=333.337.search-card.all.click

    • 主程序

    • 函数、子例程(没有输出-只有过程)、IO(输入-输出)

    • 三大流程控制(顺序、判断、循环)

    • 运行多个文件:make,cmake,VS studio,

    • VS dode,业务,一个例子

      • 单个文件编译
      • 函数的调用
      • -static

QQ群: 您已加入Fortran小家庭,建议初学者先看视频:《Windows系统下Fortran编程》第一讲。

【新进】Q群管家 (2854196310) 2022/3/26 13:36:12
@S 您已加入Fortran小家庭,建议初学者先看视频:《Windows系统下Fortran编程》第一讲。

2022-03-28 Windows系统下Fortran编程

看相关博客

2022-03-28 编译器及相关软件安装操作

看相关博客

https://www.bilibili.com/video/BV1oh411o7AT

2022-03-28 abaqus2021+vs+fortran子程序安装关联全过程

https://www.bilibili.com/video/BV1B5411w7iV/?spm_id_from=333.788.recommend_more_video.6

2022-04-13 fcode.cn的阅读资源

http://fcode.cn/resource-list-1.html

2022-04-14 段错误

2022-04-14 编程的两个思维

【少帅】清风徐来-Fortranzuo.zhihua@qq.com 2022/4/14 12:04:27

编程里有两种思路,一种是自顶向下,一种是自底向上。前者是说如何将自己的业务细分为小任务,小任务细分为特定的语句代码和语法,后者说的是如何设计创建或调用需要的所有库,实现完整的功能,然后组合用这些库实现你的小业务,实现你的大业务全部业务。

2022-04-17 QQ群-Fortran初学的阅读资源

2022-04-23 module变量问题

【新进】fortran小菜鸟(1328075004) 9:54:24
想问一个比较蠢的问题,就是在module中定义了一个变量,然后分别在两个子程序的使用它,我我不知道两个子程序的使用顺序,但其中一个是给变量赋值,其中一个是使用变量,请问会出问题吗?会造成没赋值就使用吗


Author: Jincan
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Jincan !
  TOC