207 lines
10 KiB
Fortran
207 lines
10 KiB
Fortran
MODULE basics_module
|
||
!==============================================================================
|
||
! TLUSTY 基本参数和常量模块
|
||
! 原始文件:BASICS.FOR
|
||
!
|
||
! 包含数组维度参数、物理常数、数学常数和公共变量块
|
||
!==============================================================================
|
||
|
||
USE impli_module
|
||
IMPLICIT NONE
|
||
|
||
!==========================================================================
|
||
! 数组维度参数
|
||
!==========================================================================
|
||
INTEGER, PARAMETER :: MATOM = 99 ! 最大显式原子数
|
||
INTEGER, PARAMETER :: MION = 170 ! 最大显式离子数
|
||
INTEGER, PARAMETER :: MLEVEL = 1134 ! 最大显式能级数
|
||
INTEGER, PARAMETER :: MLVEXP = 233 ! 最大线性化显式能级数
|
||
INTEGER, PARAMETER :: MTRANS = 21000 ! 最大跃迁总数
|
||
INTEGER, PARAMETER :: MDEPTH = 100 ! 最大深度点数
|
||
INTEGER, PARAMETER :: MFREQ = 135000 ! 最大频率点数
|
||
INTEGER, PARAMETER :: MFREQP = 220000 ! 频率工作数组
|
||
INTEGER, PARAMETER :: MFREQC = 125000 ! 连续谱最大频率点数
|
||
INTEGER, PARAMETER :: MFREX = 54 ! 最大线性化频率数
|
||
INTEGER, PARAMETER :: MFREQL = 25798 ! 每条线最大频率数
|
||
INTEGER, PARAMETER :: MTOT = 280 ! 最大线性化参数数
|
||
INTEGER, PARAMETER :: MMU = 6 ! 最大角度点数
|
||
INTEGER, PARAMETER :: MFIT = 357 ! 最大拟合点数 (OP b-f c.s)
|
||
INTEGER, PARAMETER :: MITJ = 380 ! 最大重叠跃迁数
|
||
INTEGER, PARAMETER :: MMCDW = 26 ! 最大伪连续能级数
|
||
INTEGER, PARAMETER :: MMER = 12 ! 最大合并能级数
|
||
INTEGER, PARAMETER :: MVOIGT = 8080 ! Voigt 轮廓最大线条数
|
||
INTEGER, PARAMETER :: MZZ = 10 ! 占据概率离子最大电荷
|
||
INTEGER, PARAMETER :: NLMX = 80 ! 考虑的类氢最高能级
|
||
INTEGER, PARAMETER :: MSMX = 1 ! SOLVE 中内存保持的矩阵大小
|
||
INTEGER, PARAMETER :: MFREQ1 = MFREQ ! ISPLIN<5 时为 1,否则为 MFREQ
|
||
INTEGER, PARAMETER :: MFRTAB = 125000 ! 不透明度表最大频率数
|
||
INTEGER, PARAMETER :: MTABT = 21 ! 不透明度表最大温度数
|
||
INTEGER, PARAMETER :: MTABR = 19 ! 不透明度表最大密度数
|
||
INTEGER, PARAMETER :: MDEPTC = 2 ! 最大深度点数 (Compton)
|
||
INTEGER, PARAMETER :: MMUC = 2 ! 最大角度点数 (Compton)
|
||
INTEGER, PARAMETER :: MLEVE3 = 1 ! 对角精度为 1,三对角为 MLEVEL
|
||
INTEGER, PARAMETER :: MLVEX3 = 1 ! 对角运算为 1,三对角为 MLVEXP
|
||
INTEGER, PARAMETER :: MTRAN3 = 1 ! 对角运算为 1,三对角为 MTRANS
|
||
INTEGER, PARAMETER :: MCROSS = MLEVEL+5 ! 最大 b-f 截面数
|
||
INTEGER, PARAMETER :: MBF = MLEVEL ! 最大 b-f 跃迁数
|
||
INTEGER, PARAMETER :: MCFIT = 10 ! 碰撞拟合最大点数
|
||
INTEGER, PARAMETER :: MXTCOL = 3 ! 碰撞类型数 (CE, CP, CH)
|
||
INTEGER, PARAMETER :: MCORAT = MTRANS ! 最大碰撞激发跃迁数
|
||
|
||
!==========================================================================
|
||
! 物理常数
|
||
!==========================================================================
|
||
REAL(dp), PARAMETER :: H = 6.6256D-27 ! Planck 常数 h
|
||
REAL(dp), PARAMETER :: BOLK = 1.38054D-16 ! Boltzmann 常数 k
|
||
REAL(dp), PARAMETER :: HK = 4.79928144D-11 ! h/k
|
||
REAL(dp), PARAMETER :: CAS = 2.997925D18 ! 光速 c (A/s)
|
||
REAL(dp), PARAMETER :: EH = 2.17853041D-11 ! 氢电离能
|
||
REAL(dp), PARAMETER :: BN = 1.4743D-2 ! 2*h/c**3
|
||
REAL(dp), PARAMETER :: SIGE = 6.6516D-25 ! Thomson 散射截面
|
||
REAL(dp), PARAMETER :: SIG4P = 4.5114062D-6 ! Stefan-Boltzmann 常数/4pi
|
||
REAL(dp), PARAMETER :: PI4H = 1.8966D27 ! 4pi/h
|
||
REAL(dp), PARAMETER :: PCK = 4.19168946D-10 ! 4pi/c
|
||
REAL(dp), PARAMETER :: HMASS = 1.67333D-24 ! 氢原子质量
|
||
|
||
!==========================================================================
|
||
! 数学常数
|
||
!==========================================================================
|
||
REAL(dp), PARAMETER :: UN = 1.0D0
|
||
REAL(dp), PARAMETER :: HALF = 0.5D0
|
||
REAL(dp), PARAMETER :: TWO = 2.0D0
|
||
|
||
!==========================================================================
|
||
! 单元编号
|
||
!==========================================================================
|
||
INTEGER, PARAMETER :: IBUFF = 95
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - 基本数值
|
||
!==========================================================================
|
||
INTEGER :: NATOM,NION,NLEVEL,NTRANS,ND,NFREQ,NFREQC,NFREQE
|
||
INTEGER :: IOPTAB,IDISK,IZSCAL,IDMFIX,IHESO6,IFMOL,IFENTR
|
||
INTEGER :: NFREQL,NLEV0,ICOLHN,IOSCOR,ILGDER,IFRYB,IFRSET
|
||
INTEGER :: NFREAD,NELSC,NTRANC,IOVER,JALI,IBC,IUBC,INTENS
|
||
INTEGER :: IRDER,ILMCOR,IFDIEL,IFALIH,IFTENE,ITNDRE
|
||
INTEGER :: ILPSCT,ILASCT,IRTE,IDLTE,IBFINT,INTRPL,ICHANG
|
||
INTEGER :: NATOMS,IPSLTE,ISPODF,ITLUCY,NRETC,IFRAYL,IFPRAD
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - 输入参数
|
||
!==========================================================================
|
||
REAL(dp) :: TEFF,GRAV
|
||
REAL(dp) :: YTOT(MDEPTH),WMM(MDEPTH),WMY(MDEPTH)
|
||
REAL(dp) :: TMOLIM
|
||
REAL(dp) :: xmstar,xmdot,rstar,alpha0,reynum
|
||
REAL(dp) :: QGRAV,EDISC,DZETA,RELDST
|
||
REAL(dp) :: visc,zeta0,zeta1,dmvisc,fractv
|
||
REAL(dp) :: omeg32,wbarm,wbar,alphav,pgas0
|
||
REAL(dp) :: bergfc,cutlym,cutbal
|
||
INTEGER :: ISPLIN,IRSPLT,ivisc,ibche
|
||
LOGICAL :: LTE,LTGREY,LCHC,LRESC
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - 模型关键字
|
||
!==========================================================================
|
||
INTEGER :: NN,NN0,INHE,INRE,INPC,INSE,INZD,INMP,NDRE,insel
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - 固定密度
|
||
!==========================================================================
|
||
INTEGER :: IFIXDE
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - 逆积分
|
||
!==========================================================================
|
||
REAL(dp) :: XI2(NLMX),XI3(NLMX)
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - 运行关键字
|
||
!==========================================================================
|
||
REAL(dp) :: CHMAX
|
||
INTEGER :: ITER,NITER,NITZER,INIT
|
||
LOGICAL :: LAC2,LFIN
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - 连续谱关键字
|
||
!==========================================================================
|
||
REAL(dp) :: HMIX0,crflim
|
||
INTEGER :: NCONIT,ICONV,INDL,IPRESS,ITEMP,ICBEG
|
||
INTEGER :: itmcor,iconre,ideepc,ndcgap,IDCONZ
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - 不透明度关键字
|
||
!==========================================================================
|
||
INTEGER :: NCON,IOPHL1,IOPHL2,IPHE2C,IFMOFF
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - 打印开关
|
||
!==========================================================================
|
||
INTEGER :: IPRINT,IPRING,IPRIND,IPRINP,ICOOLP,ICHCKP
|
||
INTEGER :: IPOPAC,IPRINI
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - PSI 限制
|
||
!==========================================================================
|
||
REAL(dp) :: DPSILG,DPSILT,DPSILN,DPSILD
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - 中心
|
||
!==========================================================================
|
||
REAL(dp) :: ZND
|
||
INTEGER :: IFZ0
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - 附加不透明度参数
|
||
!==========================================================================
|
||
INTEGER :: IOPADD,IOPHMI,IOPH2P,IOPHEM,IOPCH,IOPOH
|
||
INTEGER :: IOPH2M,IOH2H2,IOH2HE,IOH2H,IOHHE
|
||
INTEGER :: IOPHLI,IRSCT,IRSCHE,IRSCH2,KEEPOP,IOPOLD
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - 角度
|
||
!==========================================================================
|
||
REAL(dp) :: AMU(MMU),WTMU(MMU),FMU(MMU)
|
||
INTEGER :: NMU
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - Compton 散射
|
||
!==========================================================================
|
||
REAL(dp) :: amuc(mmuc),wtmuc(mmuc)
|
||
REAL(dp) :: amuc1(mmuc),amuc2(mmuc),amuc3(mmuc)
|
||
REAL(dp) :: amuj(mmuc),amuk(mmuc),amuh(mmuc),amun(mmuc)
|
||
REAL(dp) :: calph(mmuc,mmuc),cbeta(mmuc,mmuc)
|
||
REAL(dp) :: cgamm(mmuc,mmuc),RADZER,FRLCOM
|
||
REAL(dp) :: SIGEC(MFREQ)
|
||
INTEGER :: ijorig(mfreq)
|
||
INTEGER :: nmuc
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - Compton 时间
|
||
!==========================================================================
|
||
INTEGER :: nedd,nsti,islab,ilbc,icompt,icomst,icomde
|
||
INTEGER :: icombc,icmdra,knish,itcomp,icomve,icomrt
|
||
INTEGER :: ichcoo,icomgr
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - Compton 迭代
|
||
!==========================================================================
|
||
INTEGER :: ncfor1,ncfor2,nccoup,ncitot,ncfull
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - 平均不透明度系数
|
||
!==========================================================================
|
||
REAL(dp) :: aconml,bconml,cconml
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - Tau RSS
|
||
!==========================================================================
|
||
REAL(dp) :: taurs(mdepth)
|
||
|
||
!==========================================================================
|
||
! 公共变量块 - 打印关键字
|
||
!==========================================================================
|
||
INTEGER :: iprybh,ipelch,ipeldo,ipconf
|
||
|
||
END MODULE basics_module
|