250 lines
8.2 KiB
Markdown
250 lines
8.2 KiB
Markdown
# TLUSTY 输入输出文件完整文档
|
||
|
||
## 概述
|
||
|
||
TLUSTY 使用 Fortran 风格的文件单元号(Unit Numbers)进行 I/O 操作。
|
||
本文档记录 TLUSTY 所有文件单元的用途、格式和内容。
|
||
|
||
**相关文档**: SYNSPEC I/O 文件见 `docs/SYNSPEC_IO_FILES.md`
|
||
|
||
---
|
||
|
||
## 第一部分:核心输入/输出
|
||
|
||
| 单元号 | 文件名 | 用途 | 方向 | 格式 | 说明 |
|
||
|--------|--------|------|------|------|------|
|
||
| **5** | stdin | 主输入文件 | 输入 | 格式化 | 命令行输入,包含所有模型参数 |
|
||
| **6** | stdout | 标准输出 | 输出 | 格式化 | 进度信息、警告、错误消息 |
|
||
| **7** | fort.7 | 模型输出 | 输出 | 格式化 | 最终模型数据(温度、密度、布居数) |
|
||
| **8** | fort.8 | 模型输入 | 输入 | 格式化 | 初始模型或重启模型数据 |
|
||
|
||
---
|
||
|
||
## 第二部分:迭代输出
|
||
|
||
| 单元号 | 文件名 | 用途 | 方向 | 格式 | 说明 |
|
||
|--------|--------|------|------|------|------|
|
||
| **9** | fort.9 | 收敛历史 | 输出 | 格式化 | 每次迭代的温度、电子密度变化 |
|
||
| **10** | fort.10 | 警告/慢收敛 | 输出 | 格式化 | 收敛问题诊断信息 |
|
||
| **11** | fort.11 | 辐射压力 | 输出 | 格式化 | 深度点辐射压力数据 |
|
||
| **12** | fort.12 | 模型快照 | 输出 | 格式化 | 迭代中间状态的模型数据 |
|
||
| **13** | fort.13 | 通量输出 | 输出 | 格式化 | 频率点通量数据 |
|
||
| **14** | fort.14 | 角度分布 | 输出 | 格式化 | 辐射强度角度分布 |
|
||
|
||
---
|
||
|
||
## 第三部分:状态/调试输出
|
||
|
||
| 单元号 | 文件名 | 用途 | 方向 | 格式 | 说明 |
|
||
|--------|--------|------|------|------|------|
|
||
| **16** | fort.16 | 能级布居详情 | 输出 | 格式化 | 详细布居数变化信息 |
|
||
| **17** | fort.17 | 迭代模型 | 输出 | 格式化 | 迭代过程中的模型状态 |
|
||
| **18** | fort.18 | 迭代日志 | 输出 | 格式化 | 迭代步骤日志(调试用) |
|
||
| **20** | fort.20 | 备份模型 | 输出 | 格式化 | 模型备份(用于重启) |
|
||
| **22** | fort.22 | 模型快照 | 输出 | 格式化 | 另一种格式的模型快照 |
|
||
|
||
---
|
||
|
||
## 第四部分:ODF/不透明度文件
|
||
|
||
| 单元号 | 文件名 | 用途 | 方向 | 格式 | 说明 |
|
||
|--------|--------|------|------|------|------|
|
||
| **40** | RBF.DAT | 辐射bracketing | 输入 | 格式化 | 辐射场参数文件 |
|
||
| **82** | fort.82 | 谱线统计 | 输出 | 格式化 | 谱线频率范围统计 |
|
||
| **84** | fort.84 | 参数值 | I/O | 格式化 | 参数优化值 |
|
||
| **86** | fort.86 | 冷却率 | 输出 | 格式化 | 各深度点冷却率 |
|
||
| **87** | fort.87 | 冷却分解 | 输出 | 格式化 | 按离子分解的冷却率 |
|
||
| **88** | fort.88 | 冷却对比 | 输出 | 格式化 | 冷却率对比数据 |
|
||
|
||
---
|
||
|
||
## 第五部分:控制参数文件
|
||
|
||
| 单元号 | 文件名 | 用途 | 方向 | 格式 | 说明 |
|
||
|--------|--------|------|------|------|------|
|
||
| **44** | fort.44 | 收敛控制 | 输入 | 格式化 | 自定义收敛参数 |
|
||
| **57** | (动态) | 准静态线数据 | 输入 | 格式化 | ALLARD 准静态线 |
|
||
| **58** | (动态) | He 数据 | 输入 | 格式化 | 氦原子数据表 |
|
||
| **59** | (动态) | He 数据 | 输入 | 格式化 | 氦原子数据表 |
|
||
| **69** | fort.69 | 计时信息 | 输出 | 格式化 | 性能计时数据 |
|
||
|
||
---
|
||
|
||
## 第六部分:临时/暂存文件
|
||
|
||
| 单元号 | 文件名 | 用途 | 方向 | 格式 | 说明 |
|
||
|--------|--------|------|------|------|------|
|
||
| **91** | (SCRATCH) | 暂存1 | I/O | **无格式** | 二进制暂存 |
|
||
| **92** | (SCRATCH) | 暂存2 | I/O | **无格式** | 二进制暂存 |
|
||
| **93** | (SCRATCH) | 暂存3 | I/O | **无格式** | 二进制暂存 |
|
||
|
||
---
|
||
|
||
## 第七部分:原子数据文件
|
||
|
||
### 7.1 能级数据文件 (*.dat)
|
||
|
||
| 模式 | 示例文件 | 说明 |
|
||
|------|---------|------|
|
||
| `[元素][离子].dat` | h1.dat, he1.dat, c1.dat | 原子能级数据 |
|
||
| `[元素][离子]_[n]+[m]lev.dat` | al2_20+9lev.dat | 自定义能级数 |
|
||
| `[元素][离子]hyd.dat` | al4hyd.dat | 氢化物数据 |
|
||
|
||
### 7.2 光谱数据文件 (*.t)
|
||
|
||
| 模式 | 示例文件 | 说明 |
|
||
|------|---------|------|
|
||
| `[元素][离子].t` | c1.t, ca1.t, al1.t | Kurucz 光谱线数据 |
|
||
|
||
### 7.3 CIA 数据 (碰撞诱导吸收)
|
||
|
||
| 文件名 | 说明 |
|
||
|--------|------|
|
||
| `CIA_H2H.dat` | H₂-H 碰撞吸收 |
|
||
| `CIA_H2H2.dat` | H₂-H₂ 碰撞吸收 |
|
||
| `CIA_H2He.dat` | H₂-He 碰撞吸收 |
|
||
| `CIA_HHe.dat` | H-He 碰撞吸收 |
|
||
|
||
### 7.4 Stark 加宽数据
|
||
|
||
| 文件名 | 说明 |
|
||
|--------|------|
|
||
| `lemke.dat` | Lemke H Stark 线宽 |
|
||
| `tremblay.dat` | Tremblay H Stark 线宽 |
|
||
| `laquasi.dat` | Lyman-α 准静态轮廓 |
|
||
| `lbquasi.dat` | Lyman-β 准静态轮廓 |
|
||
| `lgquasi.dat` | Lyman-γ 准静态轮廓 |
|
||
| `lhquasi.dat` | Lyman 系其他线 |
|
||
|
||
### 7.5 其他数据文件
|
||
|
||
| 文件名 | 说明 |
|
||
|--------|------|
|
||
| `absopac.dat` | 吸收不透明度 |
|
||
| `ioniz.dat` | 电离数据 |
|
||
| `irwin_bc.dat` | Irwin 边界条件 |
|
||
| `irwin_orig.dat` | Irwin 原始数据 |
|
||
| `ptab.dat` | 压力表 |
|
||
| `stab.dat` | 自由能表 |
|
||
| `xenomorph.blue.dat` | XENOMORPH 蓝端 |
|
||
| `xenomorph.red.dat` | XENOMORPH 红端 |
|
||
| `RBF.DAT` | 辐射场边界 |
|
||
|
||
---
|
||
|
||
## 第八部分:文件格式详解
|
||
|
||
### 8.1 fort.5 (主输入)
|
||
|
||
```fortran
|
||
35000. 4.0 ! TEFF, GRAV (有效温度K, log g)
|
||
T T ! LTE, LTGRAY (LTE开关, 灰大气开关)
|
||
'' ! 可选参数文件名(空=无)
|
||
*-----------------------------------------------------------------
|
||
* frequencies
|
||
50 ! NFREAD (频率点数)
|
||
*-----------------------------------------------------------------
|
||
* data for atoms
|
||
8 ! NATOMS (原子种类数)
|
||
* mode abn modpf
|
||
2 0 0 ! 模式, 丰度, 配分函数模式
|
||
...
|
||
*-----------------------------------------------------------------
|
||
* data for ions
|
||
*iat iz nlevs ilast ilvlin nonstd typion filei
|
||
1 0 9 0 100 0 ' H 1' './data/h1.dat'
|
||
...
|
||
```
|
||
|
||
### 8.2 fort.7/fort.8 (模型文件)
|
||
|
||
```fortran
|
||
! 头部: ND, NUMPAR
|
||
70 3
|
||
! 质量深度数组
|
||
1.000E+00 9.500E-01 ... 1.000E-10
|
||
! 每个深度点
|
||
! TEMP(ID) ELEC(ID) DENS(ID) [TOTN(ID)] [POPUL(1..NLEVEL)]
|
||
```
|
||
|
||
### 8.3 fort.9 (收敛历史)
|
||
|
||
```fortran
|
||
RELATIVE CHANGES OF VECTOR PSI
|
||
ITER ID TEMP NE POP RAD MAXIMUM ilev ifr
|
||
1 70 1.23E-02 2.45E-01 1.00E+00 0.00E+00 2.45E-01 5 10
|
||
...
|
||
```
|
||
|
||
---
|
||
|
||
## 第九部分:有 I/O 的模块分析
|
||
|
||
| 模块 | 主要 I/O 操作 | 复杂度 |
|
||
|------|--------------|--------|
|
||
| **INITIA** | 打开所有输入文件 | 高 |
|
||
| **OUTPUT** | 写入 fort.7, fort.12, fort.22 | 中 |
|
||
| **READBF** | 读取原子数据文件 | 低 |
|
||
| **PRSENT** | 打印进度到 fort.6 | 低 |
|
||
| **TIMING** | 写入 fort.69 | 低 |
|
||
| **OPFRAC** | 读取 ODF 文件 | 中 |
|
||
| **INILAM** | 初始化谱线数据 | 高 |
|
||
| **KURUCZ** | 读取 Kurucz 格式模型 | 中 |
|
||
| **NSTPAR** | 读取非标准参数 | 中 |
|
||
| **MOLEQ** | 分子数据处理 | 中 |
|
||
| **OPDATA** | 读取不透明度数据 | 中 |
|
||
| **RDATA** | 读取原子数据 | 低 |
|
||
| **SIGAVE** | Stark 加宽数据 | 低 |
|
||
|
||
---
|
||
|
||
## 第十部分:重构优先级
|
||
|
||
### 高优先级(核心 I/O,必须实现)
|
||
|
||
| 文件 | 单元 | 用途 |
|
||
|------|------|------|
|
||
| fort.5 | 5 | 主输入 |
|
||
| fort.6 | 6 | 标准输出 |
|
||
| fort.7 | 7 | 模型输出 |
|
||
| fort.8 | 8 | 模型输入 |
|
||
|
||
### 中优先级(诊断/中间文件)
|
||
|
||
| 文件 | 单元 | 用途 |
|
||
|------|------|------|
|
||
| fort.9 | 9 | 收敛历史 |
|
||
| fort.11 | 11 | 辐射压力 |
|
||
| fort.12 | 12 | 模型快照 |
|
||
|
||
### 低优先级(调试/可选)
|
||
|
||
| 文件 | 单元 | 用途 |
|
||
|------|------|------|
|
||
| fort.10 | 10 | 警告 |
|
||
| fort.14 | 14 | 角度分布 |
|
||
| fort.16-18 | 16-18 | 调试 |
|
||
| fort.69 | 69 | 计时 |
|
||
| fort.82,84,86-88 | | ODF 诊断 |
|
||
|
||
---
|
||
|
||
## 附录:测试文件清单 (tests/tlusty/hhe/)
|
||
|
||
| 文件 | 大小 | 说明 |
|
||
|------|------|------|
|
||
| hhe35lt.5 | 984 B | 输入文件 |
|
||
| fort.7 | 45 KB | 模型输出 |
|
||
| fort.8 | 45 KB | 模型输入 |
|
||
| fort.9 | 139 KB | 收敛历史 |
|
||
| fort.10 | 1.2 KB | 警告 |
|
||
| fort.11 | 8 KB | 辐射压力 |
|
||
| fort.12 | 45 KB | 模型快照 |
|
||
| fort.14 | 96 KB | 角度分布 |
|
||
| fort.17 | 4.7 KB | 迭代模型 |
|
||
| fort.18 | 480 KB | 详细日志 |
|
||
| fort.22 | 45 KB | 模型快照 |
|
||
| fort.69 | 3.3 KB | 计时 |
|
||
| fort.82 | 4.5 KB | 谱线统计 |
|
||
| fort.84 | 1.9 KB | 参数值 |
|