TLUSTY/new/QUICK_REFERENCE.md

3.5 KiB
Raw Blame History

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 - 工作总结

🚀 快速开始

# 进入新目录
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)

      PROGRAM TLUSTY
      INCLUDE 'IMPLIC.FOR'
      INCLUDE 'BASICS.FOR'
      INCLUDE 'ITERAT.FOR'

新方式 (Fortran 90+)

PROGRAM TLUSTY
    USE impli_module
    USE basics_module
    USE iterat_module
    IMPLICIT NONE

⚙️ 编译选项

# Release 模式(优化)
./build.sh

# Debug 模式(带检查)
./build.sh --debug

# 清理重新编译
./build.sh --clean

# 指定安装目录
./build.sh --install /opt/tlusty

📋 下一步工作

高优先级

  1. 从原始文件提取子程序到 subroutines/ 目录
  2. 完成 START、RESOLV、SOLVE 等核心子程序
  3. 数值验证(对比新旧版本输出)

中优先级

  1. 测试集成CTest
  2. 文档完善
  3. 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.fsynspec54.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