SpectraRust/docs/SYNSPEC_IO_FILES.md
2026-03-23 15:45:52 +08:00

186 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 | 线标识 |