你不是登录。你的编辑将被放置在一个队列,直到同行评议

我们欢迎编辑,使读者更容易理解和更有价值。因为社区成员审查编辑,请尽量使文章更好比你怎么发现,例如,通过修正语法或添加额外的资源和超链接。

现代化科学Fortran语言代码库

亲爱的地球江南体育网页版科学社区,

我寻求一个现代化大型Fortran语言项目,与地理空间NetCDF文件。这种语言的要求包括:

  • 坚如磐石的NetCDF图书馆(我们不想重新发明轮子)。
  • 优秀的支持向量和矩阵(如通过操作符重载或类似的东西)。
  • 本机性能是必要的(编译或jit编译)。
  • 必须是开源的。
  • 理想情况下,简单的绑定和Fortran(不是一个严格的要求)。

Python+numpy不是一个真正的可选项,因为定制数据与本机的性能。即使numpy在C语言中,实现对矩阵进行操作的项目包括自定义算法,我们不想写这些在Python C .我知道吗可以优化通过调用C或Fortran,但我不认为这种优化与我们的团队将会发生。因此,我是寻求一种语言,默认“快速”。茱莉亚似乎对这个交付更好的默认“快速”的承诺,而Python更像是“快速”如果你有合适的优化。

Matlab是行不通的,因为它的专利许可。

C是行不通的,因为它几乎没有“现代化”一个Fortran代码库。

可能是不够成熟的科学计算吗?

茱莉亚可能是一个有前途的选择,因为它结合了Python的缓解与本机的性能。

芬兰湾的科特林可能会很有趣,因为它结合了JVM的强度与本机代码编译的可能性。

斯威夫特将是一个伟大的语言,但我不确定是否足够成熟我的目标域。

C + + 20生锈附加选项,可能是有趣的,但是我担心这些语言的复杂性(记住,这是地球科学家,不是计算机科学家)。

选择你喜欢的一个渐进Fortran和NetCDF文件替换吗?

回答

取消
5
  • \ begingroup美元 感谢分享,真可惜,我没有考虑这个问题。我现在的语言Fortran 90。 \ endgroup美元
    - - - - - -Mike76
    2020年11月14日,2:59
  • \ begingroup美元 5年前我在你的位置,当开始一个新的大型科学项目(几乎)从头开始。我们的讨论选择Fortran和C + +。最终决定支持Fortran (2008)。到目前为止,结果相当满意。它真的好强大的语法简化开发人员的生活在我们的团队。也就是说,不与任何标准低于2003,如果你选择Fortran。Fortran 2003年及以后提供了许多强大的概念,使Fortran 90过时了。 \ endgroup美元
    - - - - - -科学家
    2020年11月14日在3:04
  • 1
    \ begingroup美元 谢谢你指导我回到正确的方向。问这个问题的时候,我不停地数落着坏字符串支持Fortran 90。然后我看了看自己的代码库,意识到几乎除了向量和矩阵…… \ endgroup美元
    - - - - - -Mike76
    在3:19 2020年11月14日
  • 3
    \ begingroup美元 几乎任何字符串操作,你可能需要已经实现的Fortran社区。Fortran 2003年及以后也可分配字符串,高层和感觉就像Python和MATLAB。例如这段代码字符(:),可分配:字符串;字符串= " Fortran”;写(* *)字符串;字符串= / /字符串“2018”;写(* *)字符串;结束是完全有效的。试一试:tutorialspoint.com/compile_fortran_online.php \ endgroup美元
    - - - - - -科学家
    2020年11月14日,45
  • 1
    \ begingroup美元 英特尔Fortran论坛Fortran Reddit社区也是伟大的寻求帮助Fortran,特别是最近的标准。 \ endgroup美元
    - - - - - -科学家
    2020年11月14日在3:49

Baidu
map