Fortran 是一种比较古老的语言了,当时作为一种科学计算工具,还是比较火的,因为很多有名的软件都是基于 Fortran 开发的。现阶段虽然使用的比较少,但是如果想用比较流行或者更高性能的语言来『COPY』之前用 Fortran 实现的功能,那么就需要简单搭建一个环境了,这正是笔者有此需求的原因。
Fortran 的语法笔者在上本科的时候学习过,还记了一些编程笔记;另外用 VSCode 搭建 Fortran 环境和用 VSCode 搭建 C++ 环境十分相似,笔者也写过类似的总结。因为笔者并不是从头开始搭建此环境的,因此有些细节可能总结的不够全面,可从参考以前的笔记。
首先要安装 Fortran 的编译环境 gfortran,笔者安装的是MSYS2
中的gcc-fortran
(因为在配C++环境的时候已经装了MSYS2
),没有装的小伙伴可以按照下面的步骤安装:
1、下载msys2
2、安装,将其放到一个合适的路径,比如笔者放在了A:\Programs\msys64
3、运行MSYS2 MYSYS
,一次输入如下指令
pacman -Syu
pacman -Su
pacman -S --needed base-devel mingw-w64-x86_64-toolchain
前两个指令一路Y
回车,后面的一条指令会让你选要装啥,我装了下图中的5
(ps:图是之间做的)。
4、设置环境变量:
MinGW
,并将其值赋成A:\Programs\msys64\mingw64
(你装在哪里就赋成啥)Path
:在系统变量Path
中添加路径%MinGW%\bin
,之后点确定powershell
中输入gfortran -v
看看能否找到指令插件直接搜索安装就行,笔者安装了下面几个插件(这几个好像是必须的,建议都装上)
新建个文件test.f90
,内容如下:
PROGRAM add_numbers
implicit none
REAL :: a, b, av1, av2, c
PRINT *, 'Input 2 numbers:'
READ (*,*) a, b
av1 = (a + b)/2; av2 = (a*b)**0.5
PRINT *, 'Arithmetic mean: ', av1
PRINT *, 'Geometric mean: ', av2
READ (*,*) c
END
然后加调试文件launch.json
和tasks.json
(.vscode
文件夹下,没有的话新建一个)launch.json
文件内容:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Lunch(GDB)",
"type": "cppdbg",
"request": "launch",
"targetArchitecture": "x86",
"program": "${workspaceRoot}\\${fileBasenameNoExtension}.exe",
"miDebuggerPath": "gdb.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"externalConsole": true,
"preLaunchTask": "gfortran"
},
{
"name": "Intel Debug Attach",
"type": "cppvsdbg",
"request": "attach",
"processId": "${command:pickProcess}"
}
]
}
tasks.json
文件内容:
{
"version": "2.0.0",
"command": "gfortran",
"args": [
"-g",
"${file}",
"-o",
"${workspaceRoot}\\${fileBasenameNoExtension}.exe"
]
}
值得注意的是,Fortran
文件类型有*.f,*.f90,*.f95
等,最开始它好像不能自动用 Fortran 语法来组织这些后缀的文件,而是以纯文本的形式显示的,这时候就需要调一下下面的文件『语言模式』(右下红框)
打断点打不了,设置(Ctrl+,
)中搜索break
,将『允许在任何文件中设置断点』勾选即可。