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