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