学习 Fortran

计算科学 正则
2021-12-13 05:18:09

我想知道学习如何用 Fortran 编程的最佳方法是什么?

我一直在找书,对我来说似乎不错的例子是“Fortran 95/2003 Explained”“Fortran For Scientists And Engineers”

不知道大家怎么看这些?

我想知道的另一件事是我应该使用哪个编译器?我在 Windows 7 机器(64 位)上工作。

我希望你们能帮助我解决这个问题!

因此,就我的编程经验而言:

  1. Matlab 和 maple 是我第一次进入编程世界的好方法。Matlab 是一个我实际上非常擅长的程序,我掌握了使用循环的窍门以及如何将这些组合起来以制作更有效的程序。Maple 更处于基本阶段(我知道如何搜索简单积分等的解决方案)。
  2. 一年后,我们在 Visual Basic 中介绍了 C++。教授实际上很快就完成了这个,两个月后我们已经在讨论指针和继承。我能够用这种语言编写简单的程序,只有使用类仍然是一个困难,但我相信这只是一个实践问题。
  3. 一年后,我需要学习 Mathematica 8,我现在也非常擅长。

所以我有一点编程经验,但我不会说这是一个难以置信的数量!

我想学习 Fortran 的原因主要是因为你不能自己做理论物理,你需要测试你的理论,为此你需要能够编写可能能够在数值上测试这些理论的程序。我听说在数值数学方面,Fortran 不适合使用这种语言,所以我认为了解这种语言会派上用场。

ps:Fortran95和Fortran 2003有什么区别?

4个回答

我认为 Metcalfe 书是 Fortran 现代特性的一个很好的注释指南,如果您已经了解该语言的早期版本但不是很好地介绍该语言的编程,这将非常有用。

对于我的钱来说,Chiver 和 Sleightholme 的书以及Brainerd 的书都足够好,尽管我认为两者都没有Ellis等人的书那么好,不幸的是,它还没有针对 Fortran 2003 或更高版本进行更新。

我对查普曼的书有强烈的反感。我不记得为什么我如此不喜欢 90/95 版本,因此无法再证明这种厌恶是合理的,您可以将其视为偏见。

但我毫不犹豫地推荐的一本书是Arjen Markus 的书对于仍在试图弄清楚该语言的基本特征的人来说,这可能不是一个理想的介绍,但一旦你掌握了这些,它就值得在一些有价值的内容中发挥作用。

至于使用哪个编译器,我使用的是 Intel 编译器,而且总体上很满意。它与 Visual Studio 集成,这可能对您很重要。NAG 编译器有更好的错误和警告信息,但生成速度较慢(通常和您的经验可能不同)的可执行文件。gfortran 编译器是免费的,并且得到了足够好的评价,但它不是我使用的。如果您想了解更多,Polyhedron会告诉您。

我要去第二个斯塔利对查普曼书的推荐。我从 Chapman 的 Fortran 90 书中学习,它非常有帮助。它会教你 Fortran 语言。它不会教您有关编程的良好工作流程,为此,您应该在学习了一些 Fortran 并进行一点编程之后再去看看其他地方。

大多数帮助您进行 Fortran 编程的在线资源都将基于 Linux。同样,在计算科学中,大多数书面材料都将面向 Linux 用户。出于这个原因,我强烈建议您安装 VirtualBox(或某种使您能够运行虚拟操作系统的软件),然后在其中安装一些 Linux 发行版。如果您以前从未使用过 Linux,那么 Ubuntu、Mint 或 Fedora 等用户友好的发行版可能是您最好的选择。如果在虚拟环境中运行,这些发行版需要最少的配置,并且具有良好的 GUI 来帮助您浏览操作系统。这些发行版中的每一个都有一个包管理器,您可以使用它来安装一些附加软件。使用包管理器,您可以安装 gfortran。

您将希望在文本编辑器(或 IDE)中开发软件,因此可能值得学习命令行的基础知识。Software Carpentry 有很好的资源来完成这项任务。(免责声明:我已经教过软件木工研讨会的一部分。)然后你应该能够继续学习编写简单的程序并在命令行上编译它们,然后学习如何使用 Makefile。

做任何基于 Windows 的事情的问题是,你在做计算科学时看到的大多数在线资料都会假设你使用的是 Linux,并且建议(如果开始时有任何好处的话)将被打破下来,并花费你的时间。Cygwin 是一个 API 层,增加了更多类似 Linux 的功能,但与 Linux 的对应并不完美,为 Linux 编译的软件无法在你的机器上运行;您仍然需要获取 Windows 本地版本或重新编译适用于 Windows 的软件。像 Visual Fortran 这样的 Windows 原生 Fortran 编译器要花钱,而且你仍然会遇到大多数 Fortran 用户和计算科学家使用 Linux 进行软件开发的问题,这意味着你必须在你的自己的。但是,如果你真的需要出于某种原因分发基于 Windows 的软件,那么尽一切努力弄清楚如何使用 Visual Fortran 之类的东西是有意义的。

对于书籍,我推荐 Metcalf/Reid/Cohen 的“Modern Fortran Explained”。它更像是一本参考书,而不是一本教科书,但如果您已经对一般编程有一定的了解(比如 C),它会为您提供很好的服务。

除了那本书,我强烈推荐Ondřej Čertík的网站http://fortran90.org/它不会一开始就教你 Fortran,但它会为你提供一组最佳实践。Fortran 允许多种编程方式——毕竟它是向下兼容的。那里提供的最佳实践将帮助您开发一致的、现代的 Fortran 风格。此外,您会感兴趣的常见问题解答。

我认为查普曼的书对新手更友好,也是很好的参考。第二个的作者都是专家,但我认为这本书将在以后的阶段成为您图书馆的一个很好的补充。

首先,我建议您坚持使用 Fortran 95,然后(如果需要)迁移到 Fortran 2003。Fortran 95 易于学习(几乎与 Matlab 类似),您将很快提高工作效率。

在 Linux 上,除了更丰富的工具集(例如 valgrind、gdb、gnuplot、(用于快速可视化)、svn/hg 等)之外,您还有许多免费的 Fortran 编译器(GNU、Solaris Studio、Open64 等)。另外安装包括数字库(blas/lapack/netcdf/fftw 等)的预编译包是一个命令(至少在 Debian 上使用 apt-get)。

在 Windows 上,您可能会更好地使用 cygwin,因为除了 GNU Fortran 编译器之外,它还可以让您轻松快速地访问上述一些工具/库。所以是的,去 cygwin.com 并安装核心包以及 gfortran 和选择的编辑器(vim 很好)。这应该是一个好的开始。稍后,如果您还有其他问题,那么我建议您使用apt-cyg软件包来安装东西。