cmake pythonban版本_使用CMake、Visual Studio和Intel Fortran开发Fortran程序

一直不愿意学习Fortran语言,因为我觉得Fortran的应用面太过狭窄:除了科学计算相关,没什么行业会用到Fortran。而即便是在科学计算的相关领域,C/C++也完全可以替代Fortran,可C和C++语言的应用面就比Fortran广泛太多了。

但事实证明,一个搞FEM的工程人员,想要无视Fortran是不可能的:大多数有限元软件是用Fortran开发的,其预留的二次开发接口也是Fortran语言的;大多数有限元书籍的代码是Fortran语言开发的。想要在行业里深耕,不能有Fortran语言这一块短板。

因此,毕业几年后,还是决定要学一下Fortran,不求有多熟练,至少也要达到能够看懂别人代码的程度。

买了书,然后搭建Fortran的开发环境。

因为是Windows系统,而该系统下Ansys、Abaqus等软件的二次开发环境都是Visual Studio和Intel Visual Fortran,所以VS和Intel Fortran两款软件都需要安装。Abaqus不能关联最新的VS软件,因此,我选择了VS2017社区版进行安装,而Intel Fortran没有社区版,只能选择安装破解版。具体的安装方法网上都有,这里不细说。不过,需要先安装VS,然后再安装Intel Fortran,这样才能正常关联。我将这两款软件都安装在了C盘默认的路径,这是最省心的安装方法,最不容易出问题。在这里,也建议大家买一个500G或者1T的固态硬盘作C盘,然后把软件直接装C盘就行。

其实,如果只是想要编写Fortran程序,也可以安装vs code和mingw。使用vs code写代码,mingw中的gfortran进行编译。事实上,最开始我也是这么做的。vs code的语法高亮和代码提示都挺好用,也可以一键编译、运行。但使用的过程中我也发现了一些问题:第一,因为我是安装了code runner这个vs code的插件才实现的一键编译和运行的功能,而该插件是将编译命令写在了配置文件中,但该命令不能很好的识别文件后缀,如果我的文件名中有多个小数点,如"prog11.1.1.f90",它就不能正常运行,当然,这个算是小毛病,我完全可以通过改变文件名的方式规避掉,如将上述的文件名改为"prog11_1_1.f90";第二,该插件不会判断程序是否已经编译过,每次都会重新编译程序,这就会导致测试程序的时候会比较浪费时间;第三,该插件只能编译单文件,如果程序中使用了外部子例程、子程序,就不能正确编译。基于以上原因,我放弃了使用vs code和gfortran开发Fortran程序。

而直接使用Visual Studio开发Fortran程序的话,又有另一个问题:想要编译程序,需要创建工程。如果写大型程序这个不算什么,但是学习Fortran时,会编写大量的简单程序,如果每次都新建工程的话,会非常麻烦。这个时候,我想到了CMake,使用CMake的cmakelists.txt文件生成VS工程时,每个工程当中可以有很多可执行程序。我查了一下,CMake是支持Fortran语言的,只需要在cmakelists.txt文件中加入

enable_language

即可。

为了测试方案可行,我先编写了一个最简单的cmakelist.txt文件:

cmake_minimum_required(VERSION 2.8.5)
project(Chapter12)
enable_language(Fortran)
add_executable(prog12.3 prog12.3.f90)

然后打开CMake,选择源文件所在路径以及需要生成的工程文件所在的路径(注意路径不能有中文,否则会出错)。然后点击configure进行配置,如果Visual Studio和Intel Fortran都是安装在默认路径的话,只需要选择正确的VS版本和平台即可,如果不是,可能还会需要一些额外的配置。配置完成后点击Generate生成工程文件,再点击Open Project即可打开Visual Studio。

ceaaf85b6a0839342af941ecd1bc18ba.png
cmake生成vs工程

b8ca46428fdd37cd0451ec3e884e93f7.png
cmake生成工程时的其他配置

42d458216e46b88703cc2a0c929b587b.png
警告信息(不需要管,再点Configure即可)

打开VS后,将需要编译的项目设为启动项目。

3658baeb6e34f92411cab3e44f4df9f7.png

编写完Fortran程序后,直接按CTRL+F5键即可执行程序。注意,不要点工具栏里的“运行”按钮,因为直接运行的话,程序结束后会自动退出,效果就是黑框一闪而逝。而按快捷键进行执行则不会出现这个问题。

编写完当前程序,需要编写新的主程序时,也并不需要退出当前工程,只需要新建源文件,并将其添加到cmakelists.txt文件中并按F7重新生成即可,如

cmake_minimum_required(VERSION 2.8.5)
project(Chapter12)
enable_language(Fortran)
add_executable(prog12.3 prog12.3.f90)
add_executable(example12_1 example12_1.f90)

重新生成的工程如下。

f9652d9fd54e2461e2fd3f91d1d166f2.png
重新生成的多个工程文件

这时只需要将新的项目设为启动项目即可开始新的主程序的编写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值