所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

怎么编译运行这个fortran语言编译的程序?

发布时间:2020-04-15 16:43:05

资讯分类:fortran  语言  程序  运行  并行  例子  编译器
怎么编译运行这个fortran语言编译的程序?

入门fortran像入门其他所有语言一样,从最简单的装软件开始

【0】装软件

初学建议直接cbfortran,windows版本还自带mingw编译器,支持f77 f95 f2003,也不大,而且开箱即用,安装之后新建项目然后F5就Hello word了。

非常适合小东西,写个小计算单机跑跑之类的合适


然而,终究,学fortran就是为了速度,而mingw编译器本省优化是不足的,所以还是要装vs+parallel studio。用ifort编译会有mkl和mpi支持。但是安装起来比codeblocks麻烦多了


【1】变量,算符,代数运算,矩阵运算

这个推荐一个小repo,里面有很多小例子,结合书上讲的内容

Pjer-zhang/fortran-examples

跑跑小例子,语法很快就好了


【2】并行

并行是fortran的终极目的,用fortran终究还是为了fortran的速度

fortran的并行有单机多线程并行 openmp 以及 跨节点并行MPI,这个跨节点并行就要用到集群了

openmp【Home】是通过向程序中添加特殊注释符的形式来指示并行段的,这样在编译的时候如果添加flag [-omp] 那么最后程序跑的时候就会并行,如果不加这个flag那么久不会并行。

一个小例子:



【结语】

Fortran的能存在到今天完全是因为成吨的遗产代码,以及懒惰的研究生

不只是CFD,空间物理,计算等离子体,聚变数值计算等等这些学科里都有动辄几十万行的模式(大部分f77写的),这些模式只有模块介绍和对应的已发表paper,没有line-by-line注释,想要重构几乎没有可能,所以只能像黑盒一样调用。


我的原则是小规模的fortran遗产代码(10k行以下),重构到matlab或者如果性能需求很高的话就cuda/c。不能把毒瘤传给下一代


最后, 科大有开Fortran的课的哇,7系开的,我还当过助教呢

留言与评论(共有 0 条评论)
   
验证码:
Top