阅读 Fortran-lang/stdlib 文档,总结基本功能及用法
Introduction
ISO 发布的 Fortran 标准 (https://wg5-fortran.org/) 没有标准库, Stdlib (https://github.com/fortran-lang/stdlib) Fortran 提供一个社区驱动并达成共识的事实上的 “标准” 库,称为 Fortran 标准库.
项目文档 (https://stdlib.fortran-lang.org/) [中文版 https://stdlib.fortran-lang.cn/] 由 FORD (https://github.com/Fortran-FOSS-Programmers/ford#readme) 生成.
Fortran stdlib 尚无稳定发形版本 (https://stdlib.fortran-lang.org/page/specs/index.html#releasedstable-features-modules)
Scope
The goal of the Fortran Standard Library:
- Utilities 实用程序
- container 容器
- string 字符串
- files 文件处理
- OS / environment integration 操作环境
- unit testing / assertion 单元测试
- logging 日志
- Algorithms 算法
- searching and sorting 搜索和排序
- merging 合并
- Mathematics 数学
- line algebra 线性代数
- sparse matrice 稀疏矩阵
- special function 特殊函数
- fast Fourier transform 快速傅立叶变换
- random numbers 随机数
- statistics 统计
- ordinary differential equations 常微分方程
- numerical integration 数值积分
- optimization 优化
Build
构建 Fortran 标准库需要
- Fortran 2008 版本以上编译器,最好符合 Fortran 2018 (GCC / Intel Fortran)
- CMake 3.14 版本以上 (或直接使用 Make)
- CMake 后端,如 Make 或 Ninja (Windows)
- FYPP 预处理器,用于元编程
通过 cmake -B build
命令配置构建环境
1 | # compile optimization |
仅希望构建标准库可使用以下命令
1 | # build stdlib |
安装文件夹如下
1 | ├── include |
文件夹 include
中包含 module
和 submodule
文件,lib
包含编译成功的静态库文件
也可使用 fpm 构建,此处不进行测试
Intrinsic
Specifications
Experimental Features & Modules
Specs | Description |
---|---|
ansi | 终端颜色和样式转义序列 |
array | 用于索引操作和数组处理的过程 |
ascii | 用于处理 ASCII 字符的过程 |
constants | 常量 |
bitsets | 位集数据类型和过程 |
error | 捕获和处理错误 |
hash | 对整数向量或字符字符串进行哈希运算 |
hashmaps | 哈希映射/表 |
io | 输入/输出辅助和便利功能 |
kinds | 种类参数 |
linalg | 线性代数 |
linalg_state_type | 线性代数状态和错误处理 |
logger | 运行时日志系统 |
math | 通用数学函数 |
optval | 可选参数的回退值 |
quadrature | 数值积分 |
random | 概率分布随机数生成器 |
sorting | 一维数组的排序 |
stats | 描述性统计 |
stats_distributions | 均匀 / 正态 / 指数概率分布 |
string_type | 基本字符串支持 |
stringlist_type | 一维字符串列表 |
strings | 字符串处理和操作例程 |
version | 版本信息 |
Compile
VSCode
在 settings.json 中添加安装路径
1 | "fortran.linter.includePaths": [ |