我应该学习哪个版本的 Fortran?

计算科学 正则
2021-12-14 22:29:59

我是一名机械工程专业的学生,​​对航空航天工程领域感兴趣,有人告诉我,Fortran 仍然很常用。

我应该花时间学习哪个版本的 Fortran?

2个回答

有一个 Fortran 的“版本”需要知道,这有点用词不当。除了极少数例外,最新的 Fortran 标准(和编译器)保留了与旧标准的出色向后兼容性。这是有充分理由的:如果没有大量仍在使用的遗留代码,今天没有多少人会使用 Fortran。也就是说,符合标准的 Fortran77 代码几乎总是能与最新的编译器一起工作。

您应该学习使用可用语言的最现代版本。F2008 可能没有给初学者增加什么可怕的有用的东西,但 F2003 引入的面向对象概念绝对是一件大事。“Modern Fortran Explained”是一个不错的起点,“Scientific Software Design: The Object Oriented Way”也非常适合实际学习将其付诸实践。

务实地说,如果您要处理遗留代码(例如 F77 或更早版本),由于缺乏 F90+ 功能,在某些时候您将不得不学习他们所做的一些事情。例如,如果您正在为某事编写 Fortran 代码,则永远不应使用所谓的“COMMON 块”,但您总是会看到它们出现在您可能必须使用的 F77 代码中。

我绝不会建议有人至少在没有 F90/95 功能集的情况下开始使用 Fortran。

也就是说,如果您不精通其他语言的编程,您可能会发现 Fortran 不是您首先学习的最佳语言,即使您正在追求航空航天。(我说的是航空航天领域经常使用 Fortran 并将其作为我的第一语言的人)。

我不同意你们两个。C++ 和 Python 仍然没有 FORTRAN 优化。我绝对同意 FORTRAN 90/95 是最低要求。但是,使用其他更现代的版本总是有用的。FORTRAN 的挑战在于,如果您在学习面向对象语言之前学习它,那么它很容易理解。如果你习惯于用对象来思考,那就更难学习了。我在这里教授超级计算课程,并强迫我的学生使用 FORTRAN。它迫使他们在编程中使用不同类型的逻辑。他们不喜欢它,因为它不像 Python 或 C++ 那样“思考”。这一切都归结为您打算做什么以及并行化和性能的重要性。