怎么编译运行这个fortran语言编译的程序?
2023-06-06 · 百度认证:重庆猪八戒网络有限公司官方账号
入门fortran像入门其他所有语言一样,从最简单的装软件开始
【0】装软件
初学建议直接cbfortran,windows版本还自带mingw编译器,支持f77f95f2003,也不大,而且开箱即用,安装之后新建项目然后F5就Helloword了。
非常适合小东西,写个小计算单机跑跑之类的合适
然而,终究,学fortran就是为了速度,而mingw编译器本省优化是不足的,所以还是要装vs+parallelstudio。用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系开的,我还当过助教呢