# Phase 1: 翻译工作流参考 > 状态:✅ 已完成(2026-06-06 ~ 2026-06-07) > TLUSTY 350 函数 + SYNSPEC 168 函数 = 518 函数全部翻译为 Rust 此文件仅供参考。仅在发现翻译遗漏或需要翻译新函数时查阅。 ## 翻译流程 ### Step 0: 数据同步 CodeGraph 索引路径:`/home/dckj/SpectraRust/.codegraph/` 每次 Rust 代码修改后,MCP 文件监视器会自动同步(2秒延迟)。如有疑问可手动触发: ```bash cd /home/dckj/SpectraRust node /home/dckj/program/codegraph/dist/bin/codegraph.js sync ``` 如果添加了新目录或数据异常,重建索引: ```bash rm -rf /home/dckj/SpectraRust/.codegraph cd /home/dckj/SpectraRust node /home/dckj/program/codegraph/dist/bin/codegraph.js init -i ``` ### Step 1: 选择翻译目标 使用 `fortran-analyzer` skill 获取优先模块。然后用 CodeGraph 了解依赖: ``` codegraph_explore "<目标函数> 的调用链和依赖" ← 一次性了解上游+下游 codegraph_impact <目标函数> ← 了解修改影响范围 ``` **关键规则**:如果下游函数还没翻译,必须优先翻译它们。 ### Step 2: 翻译函数 用 `codegraph_node <函数名>` 获取完整信息: - Fortran 源码(完整函数体) - 所在文件和行号 - 签名、参数、返回值 - 所有调用者和被调用者列表 对照 Fortran 源码逐行翻译。翻译后的 Rust 函数直接使用 Fortran 同名小写, 例如 `ELDENS` → `pub fn eldens(...)`。 ### Step 3: 验证调用链一致性 翻译完成后对比 Fortran 和 Rust 的调用链: ``` codegraph_explore "<函数名> Fortran vs Rust 调用链对比" ``` 两边的被调用者列表应该结构一致(Rust 端用 snake_case,Fortran 端用 UPPER_CASE)。 如果 Rust 端缺少被调用者 → 可能需要创建非-pure 编排包装器。 ### Step 4: 完整性检查 ``` codegraph_search ← 确认 Rust 中有同名小写实现 codegraph_callers <函数名> ← 确认 Rust 端有对应的调用者 ``` ## 翻译完整性判断 ### 计算逻辑完整(`_pure`/同名版本) 函数的核心算法已翻译,但不直接调用子程序。占 TLUSTY 的绝大多数。 ### 编排完整(非-pure 包装器) 函数不仅包含计算逻辑,还通过回调或直接调用来串联子程序,完整匹配 Fortran 行为。 目前仅 9 个函数有此版本。 ### 判断标准 ``` codegraph_callees <函数名> ← Rust 端 codegraph_callees <函数名> ← Fortran 端(用大写名) ``` - 两边被调用者列表完全匹配 → **编排完整** - Rust 端缺少被调用者 → **计算逻辑完整,需编排包装器** - Rust 端没有该函数 → **未翻译**