TLUSTY/new/tlusty/modules/basics_module.f90

207 lines
10 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 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