# TLUSTY/SYNSPEC 重构计划 > **实时追踪见 [FORTRAN_TRACKING.md](../../FORTRAN_TRACKING.md)** > 本文档提供重构优先级和阶段划分参考。 ## 优先级原则 1. **纯函数优先** - 无 COMMON/I/O 依赖,独立测试 2. **依赖少的优先** - 只依赖 BASICS 的函数 3. **小型函数优先** - 行数少,风险低 4. **核心功能优先** - 辐射转移、不透明度 ## 阶段划分 ### 阶段 1: 纯函数 (is_pure=True) 已完成大部分,剩余查看: ```bash 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. 主程序集成 ``` ## 查询命令 ```bash # 未完成的纯函数 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 ```