TLUSTY/new/tlusty/modules/atomic_module.f90

221 lines
8.3 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 atomic_module
!==============================================================================
! TLUSTY 原子数据模块
! 原始文件ATOMIC.FOR
!
! 包含原子、离子、能级和跃迁相关的参数和数据
!==============================================================================
USE impli_module
USE basics_module
IMPLICIT NONE
!==========================================================================
! 辅助参数
!==========================================================================
INTEGER, PARAMETER :: MPAG = MLEVEL/6+1
!==========================================================================
! 字符类型数组
!==========================================================================
CHARACTER*40 :: FIDATA(MION),FIODF1(MION),FIODF2(MION),FIBFCS(MION)
CHARACTER*10 :: TYPLEV(MLEVEL)
CHARACTER*4 :: TYPION(MION)
!==========================================================================
! 公共变量块 - 原子参数 (ATOPAR)
!==========================================================================
REAL(dp) :: AMASS(MATOM)
REAL(dp) :: ABUND(MATOM,MDEPTH)
INTEGER :: NUMAT(MATOM)
INTEGER :: N0A(MATOM)
INTEGER :: NKA(MATOM)
INTEGER :: nref(matom)
INTEGER :: iatex(matom)
INTEGER :: nrefs(matom,mdepth)
INTEGER :: iadop(matom)
INTEGER :: iifix(matom)
INTEGER :: iatref
INTEGER :: modref
!==========================================================================
! 公共变量块 - 原子质量
!==========================================================================
REAL(dp) :: amas(100)
!==========================================================================
! 公共变量块 - 离子参数 (IONPAR)
!==========================================================================
REAL(dp) :: FF(MION)
REAL(dp) :: CHARG2(MION)
INTEGER :: NFIRST(MION)
INTEGER :: NLAST(MION)
INTEGER :: NNEXT(MION)
INTEGER :: IZ(MION)
INTEGER :: IUPSUM(MION)
INTEGER :: ICUP(MION)
INTEGER :: ilte(mion)
INTEGER :: iltion(mion)
!==========================================================================
! 公共变量块 - 能级参数 (LEVPAR)
!==========================================================================
REAL(dp) :: ENION(MLEVEL)
REAL(dp) :: G(MLEVEL)
INTEGER :: NQUANT(MLEVEL)
INTEGER :: IATM(MLEVEL)
INTEGER :: IEL(MLEVEL)
INTEGER :: ILK(MLEVEL)
INTEGER :: ilin(mlevel)
INTEGER :: iltlev(mlevel)
INTEGER :: indlev(mlevel)
INTEGER :: imodl(mlevel)
INTEGER :: iiexp(mlevel)
INTEGER :: iifor(mlevel)
INTEGER :: ipzert(mlevel)
INTEGER :: igzert(mlevel)
INTEGER :: indlgz(mlevel)
INTEGER :: iinonz(mlevel)
INTEGER :: NLVEXP
INTEGER :: NLVFOR
INTEGER :: NLVEXZ
LOGICAL :: LBPFX
!==========================================================================
! 公共变量块 - 跃迁参数 (TRAPAR)
!==========================================================================
REAL(dp) :: FR0(MTRANS)
REAL(dp) :: OSC0(MTRANS)
REAL(dp) :: CPAR(MTRANS)
REAL(dp) :: FRQMX(MTRANS)
REAL(dp) :: FR0PC(MTRANS)
REAL(dp) :: OMECOL(MLEVEL,MLEVEL)
REAL(dp) :: XGRAD
REAL(dp) :: STRL1
REAL(dp) :: STRL2
REAL(dp) :: STRLX
INTEGER :: ILOW(MTRANS)
INTEGER :: IUP(MTRANS)
INTEGER :: INDEXP(MTRANS)
INTEGER :: KFR0(MTRANS)
INTEGER :: KFR1(MTRANS)
INTEGER :: ILUCTR(MTRANS)
INTEGER :: IFC0(MTRANS)
INTEGER :: IFC1(MTRANS)
INTEGER :: IFR0(MTRANS)
INTEGER :: IFR1(MTRANS)
INTEGER :: ITRA(MLEVEL,MLEVEL)
INTEGER :: IPROF(MTRANS)
INTEGER :: ICOL(MTRANS)
INTEGER :: INTMOD(MTRANS)
INTEGER :: ITRCON(MTRANS)
INTEGER :: IDIEL(MTRANS)
INTEGER :: IJTF(MTRANS)
LOGICAL :: LCOMP(MTRANS)
LOGICAL :: LINE(MTRANS)
!==========================================================================
! 公共变量块 - 光子设置 (PHOSET)
!==========================================================================
REAL(dp) :: S0CS(MLEVEL)
REAL(dp) :: ALFCS(MLEVEL)
REAL(dp) :: BETCS(MLEVEL)
REAL(dp) :: GAMCS(MLEVEL)
INTEGER :: IBF(MLEVEL)
!==========================================================================
! 公共变量块 - TOPCS (b-f 截面表)
!==========================================================================
REAL(dp) :: CTOP(MFIT,MCROSS) ! sigma=alog10(sigma/10^-18) of fit point
REAL(dp) :: XTOP(MFIT,MCROSS) ! x = alog10(nu/nu0) of fit point
!==========================================================================
! 公共变量块 - 碰撞率表
!==========================================================================
REAL(dp) :: CTEMP(MXTCOL,MCFIT,MCORAT) ! temperature vs.
REAL(dp) :: CRATE(MXTCOL,MCFIT,MCORAT) ! collisional rates
!==========================================================================
! 公共变量块 - Voigt 参数
!==========================================================================
REAL(dp) :: GAMAR(MVOIGT)
REAL(dp) :: STARK1(MVOIGT)
REAL(dp) :: STARK2(MVOIGT)
REAL(dp) :: STARK3(MVOIGT)
REAL(dp) :: VDWH(MVOIGT)
!==========================================================================
! 公共变量块 - He 碰撞率
!==========================================================================
REAL(dp) :: COLHE1(19,19)
!==========================================================================
! 公共变量块 - 跃迁相关
!==========================================================================
LOGICAL :: LEXP(MTRANS)
LOGICAL :: LALI(MTRANS)
!==========================================================================
! 公共变量块 - 跃迁 ALI
!==========================================================================
INTEGER :: NFFIX
LOGICAL :: IFSUB
LOGICAL :: IFLEV
!==========================================================================
! 公共变量块 - 辅助索引
!==========================================================================
INTEGER :: IATH,IATHE,IELH,IELHM,IELHE1,IELHE2
!==========================================================================
! 公共变量块 - 离子文件
!==========================================================================
CHARACTER*40 :: FIDATA_ARR(MION)
CHARACTER*40 :: FIODF1_ARR(MION)
CHARACTER*40 :: FIODF2_ARR(MION)
CHARACTER*40 :: FIBFCS_ARR(MION)
!==========================================================================
! 公共变量块 - 离子数据
!==========================================================================
INTEGER :: IATI(MION)
INTEGER :: IZI(MION)
INTEGER :: NLEVS(MION)
INTEGER :: NLLIM(MION)
!==========================================================================
! 公共变量块 - 氢振子强度
!==========================================================================
REAL(dp) :: OSH(20,20)
!==========================================================================
! 公共变量块 - 打印参数
!==========================================================================
INTEGER :: NPGPOP
INTEGER :: IIPR(6,MPAG)
!==========================================================================
! 公共变量块 - 表最大值
!==========================================================================
REAL(dp) :: frtabm
!==========================================================================
! 谱线展宽参数
!==========================================================================
INTEGER, PARAMETER :: MTRPRD = 5
!==========================================================================
! 公共变量块 - 展宽参数 (PRDPAR)
!==========================================================================
REAL(dp) :: DOPTR(MTRPRD,MDEPTH)
REAL(dp) :: COHER(MTRPRD,MDEPTH)
REAL(dp) :: PJBAR(MTRPRD,MDEPTH)
REAL(dp) :: RJBAR(MTRPRD,MDEPTH)
REAL(dp) :: XPDIV
INTEGER :: IPRD(MTRANS)
INTEGER :: ITRTOT(MTRPRD)
INTEGER :: NTRPRD
LOGICAL :: IFPRD
END MODULE atomic_module