sync: reconcile local changes and modernizations with remote
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
# ==============================================================================
|
||||
# SYNSPEC CMake 构建配置文件
|
||||
# ==============================================================================
|
||||
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
project(SYNSPEC Fortran)
|
||||
|
||||
# 编译器设置
|
||||
set(CMAKE_FORTRAN_COMPILER gfortran)
|
||||
set(CMAKE_Fortran_FLAGS "-O3 -fno-automatic")
|
||||
set(CMAKE_Fortran_FLAGS_DEBUG "-g -O0 -fcheck=all -Wall")
|
||||
|
||||
# 模块输出目录
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
Fortran_MODULE_DIRECTORY "${CMAKE_BINARY_DIR}/modules"
|
||||
)
|
||||
|
||||
# ==============================================================================
|
||||
# SYNSPEC 模块文件 (按编译顺序排列)
|
||||
# ==============================================================================
|
||||
set(SYNSPEC_MODULES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/modules/params_module.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/modules/lindat_module.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/modules/modelp_module.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/modules/synthp_module.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/modules/wincom_module.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/modules/optpar_module.f90
|
||||
)
|
||||
|
||||
# ==============================================================================
|
||||
# SYNSPEC 子程序文件
|
||||
# 注意:这些子程序需要从原始 synspec54.f 中提取
|
||||
# ==============================================================================
|
||||
set(SYNSPEC_SUBROUTINES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/subroutines/start_sub.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/subroutines/inpmod_sub.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/subroutines/inkur_sub.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/subroutines/change_sub.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/subroutines/inpbf_sub.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/subroutines/setwin_sub.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/subroutines/ingrid_sub.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/subroutines/inibl0_sub.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/subroutines/inimod_sub.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/subroutines/tint_sub.f90
|
||||
)
|
||||
|
||||
# ==============================================================================
|
||||
# SYNSPEC 工具程序
|
||||
# ==============================================================================
|
||||
set(SYNSPEC_UTILS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/utils/rotin.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/utils/ngrid.f90
|
||||
)
|
||||
|
||||
# ==============================================================================
|
||||
# SYNSPEC 主程序
|
||||
# ==============================================================================
|
||||
set(SYNSPEC_MAIN
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/main/synspec_main.f90
|
||||
)
|
||||
|
||||
# ==============================================================================
|
||||
# 创建可执行文件
|
||||
# ==============================================================================
|
||||
add_executable(synspec.exe
|
||||
${SYNSPEC_MODULES}
|
||||
${SYNSPEC_SUBROUTINES}
|
||||
${SYNSPEC_UTILS}
|
||||
${SYNSPEC_MAIN}
|
||||
)
|
||||
|
||||
# 设置模块依赖关系
|
||||
target_include_directories(synspec.exe PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/modules
|
||||
)
|
||||
|
||||
# ==============================================================================
|
||||
# 安装规则
|
||||
# ==============================================================================
|
||||
install(TARGETS synspec.exe DESTINATION bin)
|
||||
install(DIRECTORY ${CMAKE_BINARY_DIR}/modules/ DESTINATION include/synspec)
|
||||
|
||||
# ==============================================================================
|
||||
# 打印配置信息
|
||||
# ==============================================================================
|
||||
message(STATUS "SYNSPEC 配置:")
|
||||
message(STATUS " 编译器:${CMAKE_FORTRAN_COMPILER}")
|
||||
message(STATUS " 编译标志:${CMAKE_Fortran_FLAGS}")
|
||||
message(STATUS " 模块目录:${CMAKE_BINARY_DIR}/modules")
|
||||
@@ -0,0 +1,59 @@
|
||||
!==============================================================================
|
||||
! SYNSPEC54 主程序
|
||||
!
|
||||
! Program for evaluating synthetic spectra for a given model atmosphere
|
||||
!
|
||||
! 版本:SYNSPEC54
|
||||
!==============================================================================
|
||||
|
||||
PROGRAM SYNSPEC
|
||||
USE params_module
|
||||
USE lindat_module
|
||||
USE modelp_module
|
||||
USE synthp_module
|
||||
|
||||
IMPLICIT NONE
|
||||
|
||||
INTEGER :: ifeos, ibfac, LTE0, inmod, ichang, ifwin, imode0
|
||||
|
||||
! 打开输出文件
|
||||
OPEN(UNIT=12, STATUS='UNKNOWN')
|
||||
OPEN(UNIT=14, STATUS='UNKNOWN')
|
||||
|
||||
! 初始化 - 输入基本参数和模型大气
|
||||
CALL START
|
||||
|
||||
ifeos = 0 ! 默认值,实际应从输入读取
|
||||
ibfac = 0 ! 默认值,实际应从输入读取
|
||||
|
||||
if(ifeos .gt. 0) imode = -3
|
||||
if(ibfac .gt. 1) then
|
||||
LTE0 = LTE
|
||||
LTE = .TRUE.
|
||||
END IF
|
||||
|
||||
IF(IMODE .GE. -2 .AND. IFEOS .LE. 0) THEN
|
||||
IF(INMOD .GT. 0) CALL INPMOD
|
||||
IF(INMOD .EQ. 0) CALL INKUR
|
||||
IF(ICHANG .NE. 0) CALL CHANGE
|
||||
IF(IBFAC .GT. 1) THEN
|
||||
CALL INPBF
|
||||
LTE = LTE0
|
||||
END IF
|
||||
IF(IFWIN .GT. 1) CALL SETWIN
|
||||
ELSE
|
||||
CALL INGRID(0, inext, 0)
|
||||
END IF
|
||||
|
||||
CALL INIBL0
|
||||
CALL INIMOD
|
||||
CALL TINT
|
||||
|
||||
imode0 = IMODE
|
||||
IF(imode0 .EQ. -4) IMODE = 2
|
||||
|
||||
! 主循环(简化版本)
|
||||
! 完整的实现需要从这里继续
|
||||
|
||||
STOP
|
||||
END PROGRAM SYNSPEC
|
||||
@@ -0,0 +1,92 @@
|
||||
MODULE lindat_module
|
||||
!==============================================================================
|
||||
! SYNSPEC 谱线数据模块
|
||||
! 原始文件:LINDAT.FOR
|
||||
!
|
||||
! 包含谱线数据参数和数组
|
||||
!==============================================================================
|
||||
|
||||
USE params_module
|
||||
IMPLICIT NONE
|
||||
|
||||
!==========================================================================
|
||||
! 谱线参数
|
||||
!==========================================================================
|
||||
INTEGER, PARAMETER :: MLIN0 = 1200000
|
||||
INTEGER, PARAMETER :: MGRIEM = 10
|
||||
INTEGER, PARAMETER :: MNLT = 2000
|
||||
INTEGER, PARAMETER :: MSPHE2 = 20
|
||||
INTEGER, PARAMETER :: MLIN = 190000
|
||||
INTEGER, PARAMETER :: MPRF = MLIN0
|
||||
|
||||
INTEGER, PARAMETER :: MLINM0 = 9000000
|
||||
INTEGER, PARAMETER :: MLINM = 1000000
|
||||
INTEGER, PARAMETER :: MMLIST = 3
|
||||
|
||||
!==========================================================================
|
||||
! REAL*4 类型数组
|
||||
!==========================================================================
|
||||
REAL*4 :: EXCL0(MLIN0), EXCU0(MLIN0), GF0(MLIN0)
|
||||
REAL*4 :: EXTIN(MLIN0), BNUL(MLIN0)
|
||||
REAL*4 :: GAMR0(MPRF), GS0(MPRF), GW0(MPRF)
|
||||
REAL*4 :: WGR0(4,MGRIEM)
|
||||
REAL*4 :: EXCLM(MLINM0,MMLIST), GFM(MLINM0,MMLIST)
|
||||
REAL*4 :: EXTINM(MLINM0,MMLIST), GRM(MLINM0,MMLIST)
|
||||
REAL*4 :: GSM(MLINM0,MMLIST), GWM(MLINM0,MMLIST)
|
||||
REAL*4 :: GVDWH2(MLINM0,MMLIST), GEXPH2(MLINM0,MMLIST)
|
||||
REAL*4 :: GVDWHE(MLINM0,MMLIST), GEXPHE(MLINM0,MMLIST)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 总谱线 (LINTOT)
|
||||
!==========================================================================
|
||||
REAL(dp) :: FREQ0(MLIN0)
|
||||
INTEGER :: INDAT(MLIN0), INDNLT(MLIN0)
|
||||
INTEGER :: ILOWN(MLIN0), IUPN(MLIN0), IJCONT(MLIN0)
|
||||
INTEGER :: INDLIN(MLIN), INDLIP(MLIN)
|
||||
INTEGER :: NLIN0, NLIN, IRLIST, NNLT, NGRIEM
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 分子谱线 (MOLTOT)
|
||||
!==========================================================================
|
||||
REAL(dp) :: FREQM(MLINM0,MMLIST)
|
||||
INTEGER :: INDATM(MLINM0,MMLIST)
|
||||
INTEGER :: INMLIN(MLINM,MMLIST), INMLIP(MLINM,MMLIST)
|
||||
INTEGER :: NLINM0(MMLIST), NLINML(MMLIST), NLINMT(MMLIST)
|
||||
INTEGER :: IUNITM(MMLIST), INACTM(MMLIST), IVDWLI(MMLIST)
|
||||
INTEGER :: NMLIST
|
||||
CHARACTER*40 :: AMLIST(0:MMLIST)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 线表参数 (LISPAR)
|
||||
!==========================================================================
|
||||
INTEGER :: IBIN(0:MMLIST)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 谱线轮廓 (LINPRF)
|
||||
!==========================================================================
|
||||
INTEGER :: IPRF0(MPRF), ISPRF(MPRF), IGRIEM(MPRF)
|
||||
INTEGER :: ISP0(MSPHE2), NSP
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - NLTE 谱线 (LINNLT)
|
||||
!==========================================================================
|
||||
REAL(dp) :: ABCENT(MNLT,MDEPTH), SLIN(MNLT,MDEPTH)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 线深度 (LINDEP)
|
||||
!==========================================================================
|
||||
REAL(dp) :: PLAN(MDEPTH), STIM(MDEPTH), EXHK(MDEPTH)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 线中心 (LINCTR)
|
||||
!==========================================================================
|
||||
REAL(dp) :: DFRCON
|
||||
INTEGER :: IJCNTR(MLIN), IJCMTR(MLINM,MMLIST)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 分子线读取 (MLINRE)
|
||||
!==========================================================================
|
||||
REAL(dp) :: FRLASM(MMLIST), ALASTM(MMLIST), TMLIM(MMLIST)
|
||||
INTEGER :: NXTSEM(MMLIST), IPRSEM(MMLIST), IREADM(MMLIST)
|
||||
|
||||
END MODULE lindat_module
|
||||
@@ -0,0 +1,58 @@
|
||||
MODULE modelp_module
|
||||
!==============================================================================
|
||||
! SYNSPEC 模型参数模块
|
||||
! 原始文件:MODELP.FOR
|
||||
!
|
||||
! 包含模型大气的基本参数
|
||||
!==============================================================================
|
||||
|
||||
USE params_module
|
||||
IMPLICIT NONE
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 模型参数 (MODELP)
|
||||
!==========================================================================
|
||||
REAL(dp) :: DM(MDEPTH), TEMP(MDEPTH), ELEC(MDEPTH), DENS(MDEPTH)
|
||||
REAL(dp) :: ZD(MDEPTH)
|
||||
REAL(dp) :: VTURB(MDEPTH), VTB
|
||||
REAL(dp) :: ABSTD(MDEPTH), ABSTDW(MFREQC,MDEPTH)
|
||||
REAL(dp) :: POPUL(MLEVEL,MDEPTH), POPREL(MLEVEL,MDEPTH)
|
||||
REAL(dp) :: DMR0(MDEPTH), DMRP(MDEPTH)
|
||||
REAL(dp) :: SBF(MLEVEL)
|
||||
REAL(dp) :: USUM(MIOEX)
|
||||
REAL(dp) :: WOP(MLEVEL,MDEPTH)
|
||||
REAL(dp) :: WNHINT(NLMX,MDEPTH), WNHE2(NLMX,MDEPTH)
|
||||
REAL(dp) :: RRR(MDEPTH,MION,MATOM)
|
||||
REAL(dp) :: JT(MDEPTH), TI0(MDEPTH), TI1(MDEPTH), TI2(MDEPTH)
|
||||
|
||||
CHARACTER*8 :: cmol(m molec)
|
||||
REAL(dp) :: RRMOL(MMOLEC,MDEPTH), DOPMOL(MMOLEC,MDEPTH)
|
||||
REAL(dp) :: AMMOL(MMOLEC)
|
||||
REAL(dp) :: anh2(mdepth), anch(mdepth), anoh(mdepth), anhm(mdepth)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 原子不透明度 (OPACAT)
|
||||
!==========================================================================
|
||||
REAL(dp) :: OPATM(MATOM,MFREQ,MDEPTH), EMATM(MATOM,MFREQ,MDEPTH)
|
||||
REAL(dp) :: OPATML(MATOM,MFREQ)
|
||||
REAL(dp) :: GRADAT(MATOM,MDEPTH), GRADFA(MATOM,MDEPTH)
|
||||
REAL(dp) :: POPAT(MATOM,MDEPTH)
|
||||
REAL(dp) :: DGRAD0(MATOM,MATOM,MDEPTH), DGRADP(MATOM,MATOM,MDEPTH)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 辐射场 (RADFLD)
|
||||
!==========================================================================
|
||||
REAL(dp) :: RAD(MFREQ,MDEPTH), RAD0(MFREQ,MDEPTH)
|
||||
REAL(dp) :: FLX0(MFREQ,MDEPTH), flxt(mdepth), flxi(mdepth)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - Xenon 谱线轮廓 (XENPRF)
|
||||
!==========================================================================
|
||||
REAL(dp) :: PRFXB(MLINH,MHWL,MHT,MHE), PRFXR(MLINH,MHWL,MHT,MHE)
|
||||
REAL(dp) :: PRFB(MLINH,MDEPTH,MHWL), PRFR(MLINH,MDEPTH,MHWL)
|
||||
REAL(dp) :: ALXEN(MLINH,MHWL), XTXEN(MHT,MLINH), XNEXEN(MHE,MLINH)
|
||||
REAL(dp) :: XNEMIN
|
||||
INTEGER :: NWLXEN(MLINH), NTHXEN(MLINH), NEHXEN(MLINH)
|
||||
INTEGER :: ILXEN(4,22), IHXENB
|
||||
|
||||
END MODULE modelp_module
|
||||
@@ -0,0 +1,20 @@
|
||||
MODULE optpar_module
|
||||
!==============================================================================
|
||||
! SYNSPEC 不透明度参数模块
|
||||
! 原始文件:OPTPAR.FOR
|
||||
!
|
||||
! 包含不透明度表的维度参数
|
||||
!==============================================================================
|
||||
|
||||
USE params_module
|
||||
IMPLICIT NONE
|
||||
|
||||
!==========================================================================
|
||||
! 不透明度表参数
|
||||
!==========================================================================
|
||||
INTEGER, PARAMETER :: MFRTAB = 100000
|
||||
INTEGER, PARAMETER :: MTTAB = 20
|
||||
INTEGER, PARAMETER :: MRTAB = 20
|
||||
REAL*8, PARAMETER :: MSFTAB = 2000000.0
|
||||
|
||||
END MODULE optpar_module
|
||||
@@ -0,0 +1,275 @@
|
||||
MODULE params_module
|
||||
!==============================================================================
|
||||
! SYNSPEC 参数和常量模块
|
||||
! 原始文件:PARAMS.FOR
|
||||
!
|
||||
! 包含数组维度参数、物理常数和公共变量块
|
||||
!==============================================================================
|
||||
|
||||
IMPLICIT NONE
|
||||
|
||||
! 定义双精度类型别名
|
||||
INTEGER, PARAMETER :: dp = KIND(1.0D0)
|
||||
|
||||
!==========================================================================
|
||||
! 数组维度参数
|
||||
!==========================================================================
|
||||
INTEGER, PARAMETER :: MATEX = 30
|
||||
INTEGER, PARAMETER :: MIOEX = 90
|
||||
INTEGER, PARAMETER :: MLEVEL = 1650
|
||||
INTEGER, PARAMETER :: MDEPTH = 100
|
||||
INTEGER, PARAMETER :: MDEPF = 500
|
||||
INTEGER, PARAMETER :: MFREQ = 2000
|
||||
INTEGER, PARAMETER :: MFREQC = 2000
|
||||
INTEGER, PARAMETER :: MFRQ = 2000
|
||||
INTEGER, PARAMETER :: MOPAC = MFRQ
|
||||
INTEGER, PARAMETER :: MMU = 20
|
||||
INTEGER, PARAMETER :: MCROSS = MLEVEL
|
||||
INTEGER, PARAMETER :: MFIT = 1650
|
||||
INTEGER, PARAMETER :: MFCRA = 1200
|
||||
INTEGER, PARAMETER :: MTRAD = 3
|
||||
INTEGER, PARAMETER :: MATOM = 99
|
||||
INTEGER, PARAMETER :: MATOMBIG = 99
|
||||
INTEGER, PARAMETER :: MION = 90
|
||||
INTEGER, PARAMETER :: MION0 = 9
|
||||
INTEGER, PARAMETER :: MMOLEC = 500
|
||||
INTEGER, PARAMETER :: MPHOT = 10
|
||||
INTEGER, PARAMETER :: MZZ = 2
|
||||
INTEGER, PARAMETER :: MMER = 2
|
||||
INTEGER, PARAMETER :: NLMX = 80
|
||||
INTEGER, PARAMETER :: MI1 = MION0-1
|
||||
INTEGER, PARAMETER :: MLINH = 78
|
||||
INTEGER, PARAMETER :: MHT = 7
|
||||
INTEGER, PARAMETER :: MHE = 20
|
||||
INTEGER, PARAMETER :: MHWL = 55
|
||||
|
||||
INTEGER, PARAMETER :: MFGRID = 100000
|
||||
INTEGER, PARAMETER :: MTTAB = 21
|
||||
INTEGER, PARAMETER :: MRTAB = 20
|
||||
INTEGER, PARAMETER :: MSFTAB = 6000000
|
||||
|
||||
INTEGER, PARAMETER :: mfhtab = 1000
|
||||
INTEGER, PARAMETER :: mtabth = 10
|
||||
INTEGER, PARAMETER :: mtabeh = 10
|
||||
|
||||
!==========================================================================
|
||||
! 物理常数
|
||||
!==========================================================================
|
||||
REAL(dp), PARAMETER :: H = 6.6256D-27
|
||||
REAL(dp), PARAMETER :: CL = 2.997925D10
|
||||
REAL(dp), PARAMETER :: BOLK = 1.38054D-16
|
||||
REAL(dp), PARAMETER :: HK = 4.79928144D-11
|
||||
REAL(dp), PARAMETER :: EH = 2.17853041D-11
|
||||
REAL(dp), PARAMETER :: BN = 1.4743D-2
|
||||
REAL(dp), PARAMETER :: SIGE = 6.6516D-25
|
||||
REAL(dp), PARAMETER :: PI4H = 1.8966D27
|
||||
REAL(dp), PARAMETER :: HMASS = 1.67333D-24
|
||||
|
||||
!==========================================================================
|
||||
! 单元编号
|
||||
!==========================================================================
|
||||
INTEGER, PARAMETER :: IBUFF = 95
|
||||
|
||||
!==========================================================================
|
||||
! 量子数限制变量
|
||||
!==========================================================================
|
||||
INTEGER*4 :: SQUANT1(MLEVEL), SQUANT2(MLEVEL)
|
||||
INTEGER*4 :: LQUANT1(MLEVEL), LQUANT2(MLEVEL)
|
||||
INTEGER*4 :: PQUANT1(MLEVEL), PQUANT2(MLEVEL)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 基本数值 (BASNUM)
|
||||
!==========================================================================
|
||||
INTEGER :: NATOM, NION, NLEVEL, ND, NDSTEP
|
||||
INTEGER :: NFREQ, NFROBS, NFREQC, NFREQS, NMU
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - LTE 设置 (LTESET)
|
||||
!==========================================================================
|
||||
LOGICAL :: LTE, LTEGR
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 输入参数 (INPPAR)
|
||||
!==========================================================================
|
||||
REAL(dp) :: TEFF, GRAV
|
||||
REAL(dp) :: YTOT(MDEPTH), WMM(MDEPTH), WMY(MDEPTH)
|
||||
REAL(dp) :: vaclim
|
||||
REAL(dp) :: ATTOT(MATOM,MDEPTH)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 基本模式 (BASICM)
|
||||
!==========================================================================
|
||||
INTEGER :: IMODE, IMODE0, IFREQ, INLTE, IDSTD, IFWIN, IFEOS, IBFAC
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 输入关键字 (INTKEY)
|
||||
!==========================================================================
|
||||
INTEGER :: INMOD, INTRPL, ICHANG, ICHEMC, IATREF, ICONTL
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 空白标记 (LBLANK)
|
||||
!==========================================================================
|
||||
INTEGER :: IBLANK, NBLANK
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 下一步初始化 (NXTINI)
|
||||
!==========================================================================
|
||||
REAL(dp) :: ALM00, ALST00
|
||||
INTEGER :: NXTSET, INLIST
|
||||
REAL(dp) :: ALAMBE, DLAMLO
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 打印控制 (IPRNTR)
|
||||
!==========================================================================
|
||||
INTEGER :: IPRIN
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 原子参数 (ATOPAR)
|
||||
!==========================================================================
|
||||
REAL(dp) :: AMASS(MATEX)
|
||||
REAL(dp) :: ABUND(MATEX,MDEPTH)
|
||||
REAL(dp) :: RELAB(MATEX,MDEPTH)
|
||||
INTEGER :: NUMAT(MATEX), N0A(MATEX), NKA(MATEX)
|
||||
REAL(dp) :: SABND(MATEX)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 离子参数 (IONPAR)
|
||||
!==========================================================================
|
||||
REAL(dp) :: FF(MIOEX)
|
||||
INTEGER :: NFIRST(MIOEX), NLAST(MIOEX), NNEXT(MIOEX)
|
||||
INTEGER :: IUPSUM(MIOEX), IZ(MIOEX), IFREE(MIOEX)
|
||||
INTEGER :: INBFCS(MIOEX), ILIMITS(MIOEX)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 能级参数 (LEVPAR)
|
||||
!==========================================================================
|
||||
REAL(dp) :: ENION(MLEVEL), G(MLEVEL)
|
||||
INTEGER :: NQUANT(MLEVEL), IATM(MLEVEL), IEL(MLEVEL), ILK(MLEVEL)
|
||||
INTEGER :: ifwop(mlevel), isemex(matom)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 能级限制 (LEVLIMITS)
|
||||
!==========================================================================
|
||||
REAL(dp) :: ENION1(MLEVEL), ENION2(MLEVEL)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 跃迁参数 (TRAPAR)
|
||||
!==========================================================================
|
||||
INTEGER :: IBF(MLEVEL)
|
||||
REAL(dp) :: S0BF(MLEVEL), ALFBF(MLEVEL), BETBF(MLEVEL), GAMBF(MLEVEL)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 合并参数 (MRGPAR)
|
||||
!==========================================================================
|
||||
REAL(dp) :: SGM0(MMER), FRCH(MMER)
|
||||
REAL(dp) :: SGEXT1(MMER,MDEPTH), GMER(MMER,MDEPTH)
|
||||
REAL(dp) :: SGMSUM(NLMX,MMER,MDEPTH), SGMG(MMER,MDEPTH)
|
||||
INTEGER :: IMRG(MLEVEL), IIMER(MMER)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 向下跃迁参数 (DWNPAR)
|
||||
!==========================================================================
|
||||
REAL(dp) :: ELEC23(MDEPTH), Z3(MZZ)
|
||||
REAL(dp) :: DWC1(MZZ,MDEPTH), DWC2(MDEPTH)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 附加不透明度 (OPCPAR)
|
||||
!==========================================================================
|
||||
INTEGER :: IOPADD, IOPHMI, IOPH2P, IOPHEM, IOPCH, IOPOH
|
||||
INTEGER :: IOPH2M, IOH2H2, IOH2HE, IOH2H1, IOHHE
|
||||
INTEGER :: IOPHLI, IRSCT, IRSCHE, IRSCH2
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 辅助索引 (AUXIND)
|
||||
!==========================================================================
|
||||
INTEGER :: IATH, IELH, IELHM, N0H, N1H, NKH, N0HN, N0M
|
||||
INTEGER :: IATHE, IELHE1, IELHE2
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 分子标记 (MOLFLG)
|
||||
!==========================================================================
|
||||
REAL(dp) :: TMOLIM
|
||||
INTEGER :: MOLIND(11000), NMOLEC, IFMOL
|
||||
INTEGER :: MOLTAB, IRWTAB, IIRWIN, IPFEXO
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 质量标志 (QFLAGS)
|
||||
!==========================================================================
|
||||
REAL(dp) :: ERANGE
|
||||
INTEGER :: ISPICK, ILPICK, IPPICK
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 线展宽不透明度原子 (ATOBLN)
|
||||
!==========================================================================
|
||||
LOGICAL :: LGR(MATOM), LRM(MATOM)
|
||||
REAL(dp) :: ENEV(MATOM,MI1), AMAS(MATOM), ABND(MATOM)
|
||||
REAL(dp) :: ABNDD(MATOM,MDEPTH), ABNREF(MDEPTH)
|
||||
CHARACTER*4 :: TYPAT(MATOM)
|
||||
INTEGER :: IATEX(MATOM), INPOT(MATOM,MION0)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 原子初始化 (ATOINI)
|
||||
!==========================================================================
|
||||
INTEGER :: NATOMS, IONIZ(MATOM)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 标准光球丰度 (PFSTDS)
|
||||
!==========================================================================
|
||||
REAL(dp) :: PFSTD(MION,MATOM)
|
||||
INTEGER :: MODPF(MATOM)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 附加布居 (ADDPOP)
|
||||
!==========================================================================
|
||||
REAL(dp) :: RR(MATOM,MION)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 氢 Stark 加宽表 (HYDPRF)
|
||||
!==========================================================================
|
||||
REAL(dp) :: PRFHYD(MLINH,MDEPTH,MHWL), WLHYD(MLINH,MHWL)
|
||||
INTEGER :: NWLHYD(MLINH)
|
||||
REAL(dp) :: WL(MHWL,MLINH), XT(MHT,MLINH), XNE(MHE,MLINH)
|
||||
REAL(dp) :: PRF(MHWL,MHT,MHE,MLINH)
|
||||
REAL(dp) :: WLINE(4,22)
|
||||
INTEGER :: NWLH(MLINH), NTH(MLINH), NEH(MLINH)
|
||||
INTEGER :: ILIN0(4,22), ILEMKE, NLIHYD
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 氢辅助 (AUXHYD)
|
||||
!==========================================================================
|
||||
REAL(dp) :: XK, FXK, BETAD, DBETA, BERGFC, CUTLYM, CUTBAL
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - H/He 谱线轮廓 (HHEPRF)
|
||||
!==========================================================================
|
||||
INTEGER :: IHYDPR, IHE1PR, IHE2PR
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 氢线参数 (HYLPAR)
|
||||
!==========================================================================
|
||||
INTEGER :: IHYL, ILOWH, M10, M20
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 氢线角度权重 (HYLPAW)
|
||||
!==========================================================================
|
||||
INTEGER :: IHYLW(MFREQ), ILOWHW(MFREQ)
|
||||
INTEGER :: M10W(MFREQ), M20W(MFREQ)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - HeII 线参数 (HE2PAR)
|
||||
!==========================================================================
|
||||
INTEGER :: IFHE2, IHE2L, ILWHE2, MHE10, MHE20
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - HeII 线角度权重 (HE2PAW)
|
||||
!==========================================================================
|
||||
INTEGER :: IHE2LW(MFREQ), ILWHEW(MFREQ)
|
||||
INTEGER :: MHE10W(MFREQ), MHE20W(MFREQ)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 速度场参数 (VELPAR)
|
||||
!==========================================================================
|
||||
REAL(dp) :: ANGL(MMU), WANGL(MMU), VELC(MDEPTH)
|
||||
INTEGER :: NMU0, IFLUX
|
||||
|
||||
END MODULE params_module
|
||||
@@ -0,0 +1,36 @@
|
||||
MODULE synthp_module
|
||||
!==============================================================================
|
||||
! SYNSPEC 光谱合成参数模块
|
||||
! 原始文件:SYNTHP.FOR
|
||||
!
|
||||
! 包含光谱合成相关的频率和交叉截面参数
|
||||
!==============================================================================
|
||||
|
||||
USE params_module
|
||||
IMPLICIT NONE
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 频率 (FREQSY)
|
||||
!==========================================================================
|
||||
REAL(dp) :: FREQ(MFREQ), W(MFREQ), WLAM(MFREQ)
|
||||
REAL(dp) :: FRX1(MFREQ), FRX2(MFREQ), BNUE(MFREQ)
|
||||
REAL(dp) :: FRQOBS(MFREQ), WLOBS(MFREQ)
|
||||
REAL(dp) :: FREQC(MFREQC), WLAMC(MFREQC)
|
||||
INTEGER :: IJCINT(MFREQ)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 平均截面 (CRSAVG)
|
||||
!==========================================================================
|
||||
REAL(dp) :: FRECR(MCROSS,MFCRA), CROSR(MCROSS,MFCRA)
|
||||
REAL(dp) :: CRMX(MCROSS)
|
||||
INTEGER :: NFCR(MCROSS), IASV
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 平均 Q (CRSAVQ)
|
||||
!==========================================================================
|
||||
REAL(dp) :: FRECQ(MPHOT,MFCRA), QHOT(MPHOT,MFCRA)
|
||||
REAL(dp) :: AQHT(MPHOT), EQHT(MPHOT), GQHT(MPHOT)
|
||||
REAL(dp) :: CRMY(MPHOT)
|
||||
INTEGER :: NFQHT(MPHOT), NQHT
|
||||
|
||||
END MODULE synthp_module
|
||||
@@ -0,0 +1,57 @@
|
||||
MODULE wincom_module
|
||||
!==============================================================================
|
||||
! SYNSPEC 窗口通用变量模块
|
||||
! 原始文件:WINCOM.FOR
|
||||
!
|
||||
! 包含角度、半径和扩展模型参数
|
||||
!==============================================================================
|
||||
|
||||
USE params_module
|
||||
IMPLICIT NONE
|
||||
|
||||
!==========================================================================
|
||||
! 窗口参数
|
||||
!==========================================================================
|
||||
INTEGER, PARAMETER :: MRCORE = 20
|
||||
INTEGER, PARAMETER :: MKU = MDEPTH + MRCORE
|
||||
INTEGER, PARAMETER :: MEXT = MKU
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 角度 (COMANG)
|
||||
!==========================================================================
|
||||
REAL(dp) :: BMU(MKU,MDEPTH), WMUJ(MKU,MDEPTH), WMUH(MKU)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 共动半径 (CORADI)
|
||||
!==========================================================================
|
||||
REAL(dp) :: RD(MDEPTH), RCORE, RFNORM, PIM(MKU)
|
||||
REAL(dp) :: RAD1(MDEPTH), DELZ(MKU,MDEPTH)
|
||||
REAL(dp) :: NUD(MKU), NUDF(MKU)
|
||||
INTEGER :: KMU, NREXT, NRCORE, NFIRY, NDF
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 共动频率 (CORAF)
|
||||
!==========================================================================
|
||||
REAL(dp) :: DELZF(MEXT,MDEPF), DFRQF(MEXT,2*MDEPF)
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 共动速度 (COVEL)
|
||||
!==========================================================================
|
||||
REAL(dp) :: VEL(MDEPTH), DFRQ(MKU,2*MDEPTH), DVD(MDEPTH)
|
||||
REAL(dp) :: XMDOT, XMD4, BETAV, VINF
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 扩展模型 (EXTMOD)
|
||||
!==========================================================================
|
||||
REAL(dp) :: FFQ(MOPAC), FFQV(MOPAC), RDF(MDEPF)
|
||||
REAL(dp) :: DENSF(MDEPF), VELF(MEXT,MDEPF)
|
||||
REAL(dp) :: DRAY(MEXT,2*MDEPF), KRAY(MEXT,2*MDEPF)
|
||||
INTEGER :: NOPAC
|
||||
|
||||
!==========================================================================
|
||||
! 公共变量块 - 不透明度平均 (OPAVEL)
|
||||
!==========================================================================
|
||||
REAL(dp) :: WDIL(MDEPTH), PLANW(MDEPTH)
|
||||
REAL(dp) :: TRAD(MTRAD,MDEPTH), DENSCON(MDEPTH)
|
||||
|
||||
END MODULE wincom_module
|
||||
Reference in New Issue
Block a user