# SYNSPEC 输入输出文件完整文档 ## 概述 SYNSPEC 是光谱合成程序,使用 TLUSTY 计算的大气模型计算理论光谱。 本文档记录 SYNSPEC 所有文件单元的用途、格式和内容。 **相关文档**: TLUSTY I/O 文件见 `docs/TLUSTY_IO_FILES.md` --- ## 第一部分:核心输入/输出 | 单元号 | 文件名 | 用途 | 方向 | 格式 | 说明 | |--------|--------|------|------|------|------| | **5** | stdin | 主输入 | 输入 | 格式化 | fort.55.lin 或 fort.55.con | | **6** | stdout | 标准输出 | 输出 | 格式化 | 进度和诊断信息 | | **7** | fort.7 | 光谱输出 | 输出 | 格式化 | 计算的谱 flux | | **8** | fort.8 / bfactors | 模型输入 | 输入 | 格式化 | 大气模型或 NLTE 系数 | --- ## 第二部分:谱线数据文件 | 单元号 | 文件名 | 用途 | 方向 | 格式 | 说明 | |--------|--------|------|------|------|------| | **3** | fort.3 | 分子线列表 | 输入 | 格式化 | 分子谱线列表文件名 | | **11** | fort.11 | Kurucz 线输出 | 输出 | 格式化 | 谱线数据输出 | | **12** | fort.12 | 二进制光谱 | 输出 | 格式化 | 谱线数据(二进制/格式化) | | **14** | fort.14 | 调试输出 | 输出 | 格式化 | 详细调试信息 | | **17** | fort.17 | 谱线选择 | 输出 | 格式化 | 选中的谱线列表 | | **19** | fort.19 | 原子线列表 | 输入 | 格式化 | 默认原子谱线列表 | --- ## 第三部分:轮廓/加宽文件 | 单元号 | 文件名 | 用途 | 方向 | 格式 | 说明 | |--------|--------|------|------|------|------| | **50** | fort.50 | Stark 轮廓 | 输出 | 格式化 | 氢 Stark 加宽数据 | | **56** | fort.56 | He 轮廓 | 输出 | 格式化 | 氦线轮廓数据 | | **57** | fort.57 | 分子线 | 输入 | 格式化 | 分子谱线列表 | --- ## 第四部分:控制/诊断文件 | 单元号 | 文件名 | 用途 | 方向 | 格式 | 说明 | |--------|--------|------|------|------|------| | **4** | fort.4 | 参数文件 | 输入 | 格式化 | 非标准参数文件 (NST) | | **55** | fort.55.lin/.con | 输入参数 | 输入 | 格式化 | 谱线/连续谱计算参数 | | **69** | fort.69 | 计时 | 输出 | 格式化 | 计算时间统计 | | **84** | fort.84 | 参数值 | I/O | 格式化 | 优化参数值 | | **95** | fort.95 | 线标识 | 输出 | 格式化 | 谱线标识信息 | --- ## 第五部分:原子数据文件 | 文件名 | 用途 | 说明 | |--------|------|------| | `./data/hydprf.dat` | 氢线轮廓 | H I Stark 加宽轮廓 | | `./data/he1prf.dat` | He I 轮廓 | He I 线轮廓数据 | | `./data/he2prf.dat` | He II 轮廓 | He II 线轮廓数据 | | `./data/h1.dat` | H I 能级 | 氢原子能级数据 | | `./data/he1.dat` | He I 能级 | 中性氦能级数据 | | `./data/he2.dat` | He II 能级 | 氦离子能级数据 | | `bfactors` | NLTE 系数 | NLTE 出发系数(替代 fort.8) | | `RBF.DAT` | 辐射场边界 | 辐射 bracketing 数据 | --- ## 第六部分:文件格式详解 ### 6.1 fort.55.lin (谱线计算输入) ```fortran ! Line 1: IFREQ=0, NFREQ, INLTE 0 50 0 ! Line 2: IHYDPR, IHE1PR, IHE2PR (轮廓开关) 1 0 0 0 ! Line 3: 不透明度开关 0 0 0 0 0 ! Line 4: 其他开关 1 1 0 0 0 ! Line 5: 分子开关 0 0 0 ! Line 6: 波长范围和步长 20 100000 10 0 0.0001 4 ! Line 7-8: 角度/通量选项 0 0 ``` ### 6.2 fort.55.con (连续谱计算输入) ```fortran ! 与 fort.55.lin 结构相同,但 IFREQ=0 表示连续谱 0 50 1 1 0 0 0 ... ``` ### 6.3 fort.7 (光谱输出) ```fortran ! 波长 flux 3500.00 1.234E+14 3501.00 1.235E+14 ... ``` ### 6.4 fort.8 / bfactors (模型输入) 与 TLUSTY fort.7 格式相同,包含: - 深度点数和参数 - 质量深度数组 - 温度、电子密度、质量密度、布居数 --- ## 第七部分:有 I/O 的模块分析 | 模块 | 主要 I/O 操作 | 复杂度 | |------|--------------|--------| | **START** | 读取 fort.55 参数 | 中 | | **INIBL0** | 初始化输入 | 中 | | **NSTPAR** | 非标准参数 | 中 | | **HYDINI** | 氢线轮廓 | 低 | | **HE1INI** | He I 轮廓 | 低 | | **HE2INI** | He II 轮廓 | 低 | | **INPBF** | 读取 bfactors | 低 | | **MOLEQ** | 分子线列表 | 中 | | **OPDATA** | 不透明度数据 | 低 | | **RDATA** | 原子数据 | 低 | | **SIGAVS** | Stark 数据 | 低 | --- ## 第八部分:重构优先级 ### 高优先级 | 文件 | 单元 | 用途 | |------|------|------| | fort.55.lin | 5 | 谱线计算参数 | | fort.55.con | 5 | 连续谱计算参数 | | fort.7 | 7 | 光谱输出 | | fort.8 | 8 | 模型输入 | ### 中优先级 | 文件 | 单元 | 用途 | |------|------|------| | fort.11 | 11 | Kurucz 线输出 | | fort.12 | 12 | 二进制光谱 | | fort.17 | 17 | 谱线选择 | ### 低优先级 | 文件 | 单元 | 用途 | |------|------|------| | fort.14 | 14 | 调试 | | fort.50 | 50 | Stark 轮廓 | | fort.56 | 56 | He 轮廓 | | fort.69 | 69 | 计时 | | fort.95 | 95 | 线标识 | --- ## 附录:测试文件清单 (tests/synspec/hhe/) | 文件 | 大小 | 说明 | |------|------|------| | fort.55.lin | 231 B | 谱线计算参数 | | fort.55.con | 229 B | 连续谱计算参数 | | fort.7 | 56 B | 光谱输出 | | fort.8 | 45 KB | 模型输入 | | fort.11 | 307 B | Kurucz 线 | | fort.12 | 2.4 KB | 二进制光谱 | | fort.14 | 6.8 KB | 调试输出 | | fort.17 | 56 B | 谱线选择 | | fort.57 | 0 B | 分子线(空)| | fort.69 | 37 B | 计时 | | fort.84 | 352 B | 参数值 | | fort.95 | 1.6 KB | 线标识 |