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