TLUSTY/new/synspec/modules/params_module.f90

276 lines
12 KiB
Fortran
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.

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