TLUSTY/new/QUICK_REFERENCE.md

163 lines
3.5 KiB
Markdown
Raw Permalink 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.

# TLUSTY/SYNSPEC 代码拆分 - 快速参考指南
## 📁 新目录位置
```
/home/fmq/program/tlusty/tl208-s54/new/
├── tlusty/ # TLUSTY 模块化代码
└── synspec/ # SYNSPEC 模块化代码
```
## ✅ 已完成的工作
### TLUSTY (8 个模块)
- ✓ impli_module.f90 - 类型声明
- ✓ basics_module.f90 - 基本参数和常量
- ✓ iterat_module.f90 - 迭代控制
- ✓ alipar_module.f90 - ALI 方法参数
- ✓ atomic_module.f90 - 原子数据
- ✓ modelq_module.f90 - 模型物理量
- ✓ odfpar_module.f90 - ODF 参数
- ✓ array1_module.f90 - 工作数组
### SYNSPEC (6 个模块)
- ✓ params_module.f90 - 参数定义
- ✓ lindat_module.f90 - 谱线数据
- ✓ modelp_module.f90 - 模型参数
- ✓ synthp_module.f90 - 合成光谱参数
- ✓ wincom_module.f90 - 窗口通用变量
- ✓ optpar_module.f90 - 不透明度参数
### 构建系统
- ✓ CMakeLists.txt - 顶层配置
- ✓ build.sh - 构建脚本
- ✓ README.md - 使用说明
- ✓ WORK_SUMMARY.md - 工作总结
## 🚀 快速开始
```bash
# 进入新目录
cd /home/fmq/program/tlusty/tl208-s54/new
# 编译Release 模式)
./build.sh
# 或手动编译
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
```
## 📊 转换统计
| 项目 | 原始文件 | 新模块文件 | 代码行数 |
|------|---------|-----------|----------|
| TLUSTY | 8 .FOR | 8 .f90 | ~6,000 |
| SYNSPEC | 6 .FOR | 6 .f90 | ~3,000 |
| **总计** | **14** | **14** | **~9,000** |
## 🔄 INCLUDE → MODULE 转换
### 原始方式 (Fortran 77)
```fortran
PROGRAM TLUSTY
INCLUDE 'IMPLIC.FOR'
INCLUDE 'BASICS.FOR'
INCLUDE 'ITERAT.FOR'
```
### 新方式 (Fortran 90+)
```fortran
PROGRAM TLUSTY
USE impli_module
USE basics_module
USE iterat_module
IMPLICIT NONE
```
## ⚙️ 编译选项
```bash
# Release 模式(优化)
./build.sh
# Debug 模式(带检查)
./build.sh --debug
# 清理重新编译
./build.sh --clean
# 指定安装目录
./build.sh --install /opt/tlusty
```
## 📋 下一步工作
### 高优先级
1. ⏳ 从原始文件提取子程序到 `subroutines/` 目录
2. ⏳ 完成 START、RESOLV、SOLVE 等核心子程序
3. ⏳ 数值验证(对比新旧版本输出)
### 中优先级
4. 测试集成CTest
5. 文档完善
6. GUI 适配
## 🔍 模块依赖关系
### TLUSTY
```
impli_module
basics_module
iterat_module, alipar_module, atomic_module, odfpar_module
modelq_module
array1_module
```
### SYNSPEC
```
params_module
lindat_module, modelp_module, synthp_module,
wincom_module, optpar_module
```
## 📝 重要说明
1. **子程序待提取**: 当前 `subroutines/` 目录为空,需要从原始 `tlusty208.f``synspec54.f` 中提取
2. **向后兼容**: 原始代码保持不变,新版本在 `new/` 目录下独立开发
3. **数值一致性**: 最终目标是确保新旧版本输出完全一致
4. **大内存支持**: 默认启用 `-mcmodel=medium` 以支持大型数组
## 🆘 常见问题
**Q: 编译失败怎么办?**
A: 检查是否安装了 CMake >= 3.15 和 GFortran
**Q: 如何调试?**
A: 使用 `./build.sh --debug` 编译 Debug 版本
**Q: 如何验证正确性?**
A: 对比新旧版本对相同输入的输出结果
## 📚 相关文档
- `README.md` - 详细使用说明
- `WORK_SUMMARY.md` - 完整工作总结
- `../README.md` - 原始安装指南
---
*创建日期2026-03-17*