1.8 KiB
1.8 KiB
TLUSTY/SYNSPEC 重构计划
实时追踪见 FORTRAN_TRACKING.md 本文档提供重构优先级和阶段划分参考。
优先级原则
- 纯函数优先 - 无 COMMON/I/O 依赖,独立测试
- 依赖少的优先 - 只依赖 BASICS 的函数
- 小型函数优先 - 行数少,风险低
- 核心功能优先 - 辐射转移、不透明度
阶段划分
阶段 1: 纯函数 (is_pure=True)
已完成大部分,剩余查看:
grep "True.*pending" fortran_analysis.csv
阶段 2: 简单 COMMON 依赖
只依赖 BASICS 或已有状态结构体的函数。
阶段 3: 复杂 COMMON 依赖
依赖多个 COMMON 块的函数。
阶段 4: I/O 依赖 (117个)
最后处理,可能需要设计 I/O 抽象层。
核心函数分类
辐射转移 (RTE)
bre.f,brez.f- 基本辐射转移brte.f,brtez.f- 扩展辐射转移rte_sc.f,rtedf*.f- 深度/角度积分
不透明度 (Opacity)
opacfl.f- 核心不透明度计算opctab.f- 不透明度表插值opadd*.f- 不透明度叠加
统计平衡 (Statistical Equilibrium)
bpop*.f- 束缚态占据数levsol.f- 能级求解 ✅ratmat.f- 速率矩阵
ALI 求解器
alifr1.f,alifr3.f,alifr6.f- ALI 迭代
推荐执行顺序
1. 完成剩余纯函数
2. 简单 COMMON 函数 (setdrt, cubic, dmder ✅)
3. 辐射转移核心
4. 不透明度核心
5. 统计平衡核心
6. I/O 封装
7. 主程序集成
查询命令
# 未完成的纯函数
grep "True.*pending" fortran_analysis.csv
# 只依赖 BASICS 的待处理函数
grep "BASICS.*pending" fortran_analysis.csv | grep -v "ATOMIC\|MODELQ"
# 按行数排序
cd tlusty/extracted && wc -l *.f | sort -n | head -30