Ch27-Fortran 编程
Contents
Fortran 是一种适应数学表达、高性能科学计算的成熟、免费语言,这是它的特色。
随着 Fortran-lang 社区的努力,Fortran 迎来复苏迹象,作者看好这种发展,虽然 Fortran 也存在一些问题:
- 开源社区生态小,开发者少;
- 语法糖少,语言标准迭代缓慢且不一定具有流行性。
我常使用以下工具链软件:
27.1 fpm 与 meson
fpm 目前还不够成熟,主要表现在对外部链接的支持上,meson 则相对更成熟。
这是我写的《Fortran中文手册》。
27.1.1 Fpm-更适合小型代码
|
|
27.1.2 Meson-更适合大型代码
使用 meson、CMake、GFortran 等工具,可以方便在远程服务器(Linux、Windows-MSYS2)上使用编译环境。
|
|
27.2 包复用的基础
- 容易获取,如采用通用获取手段;
- 社区官方持续支持;
- 接口简单、文档健全。
27.3 Windows 下 使用 CMake 和 MSYS2-GFortran 链接 oneMKL
这类需求一般很少,我曾尝试为 Stdlib 链接 oneMKL ,只是记录下来。Windows 下其实是可以使用 GFortran 链接 oneMKL 的,原因是 oneMKL 中的 BLAS 是 C 接口或者 Fortran77 写的。
- 首先,下载和启动 oneMKL 环境变量。
1
&"D:\Program Files (x86)\Intel\oneAPI\setvars.bat"
- 设置 CMake 查询 MKL。
1 2
find_package(MKL) target_link_libraries(${PROJECT_NAME} ${MKL_LIBRARIES})
27.4 CMake 的常用命令
|
|
27.5 Git 补丁使用
|
|
27.6 Gprof 教程
gprof
是 GCC 提供的一个工具,用于分析程序性能。在 Windows 下使用 MSYS2 的 gprof 命令行工具需要额外添加 -no-pie
选项。
- 在使用 GCC 编译的程序中启用编译选项
-pg
(MSYS2 下需要额外添加-no-pie
); - 运行程序;
- 使用
gprof
命令分析程序性能:1
gprof mian.exe gmon.out > gprof.txt
|
|