MODULE modelq_module !============================================================================== ! TLUSTY 模型物理量和状态变量模块 ! 原始文件:MODELQ.FOR ! ! 包含模型参数、能级布居、辐射场等物理量 !============================================================================== USE impli_module USE basics_module USE atomic_module IMPLICIT NONE !========================================================================== ! 谱线展宽参数 !========================================================================== INTEGER, PARAMETER :: MLINH = 78 INTEGER, PARAMETER :: MHT = 7 INTEGER, PARAMETER :: MHE = 20 INTEGER, PARAMETER :: MHWL = 90 INTEGER, PARAMETER :: MFHTAB = 1000 INTEGER, PARAMETER :: MTABTH = 10 INTEGER, PARAMETER :: MTABEH = 10 !========================================================================== ! 类型声明 !========================================================================== INTEGER*2 :: ITRLIN REAL*4 :: PRFLIN, BFCS REAL*8 :: absopac(mtabt,mtabr,mfrtab) !========================================================================== ! 公共变量块 - 模型参数 (MODPAR) !========================================================================== REAL(dp) :: DM(MDEPTH) REAL(dp) :: TEMP(MDEPTH) REAL(dp) :: ELEC(MDEPTH) REAL(dp) :: DENS(MDEPTH) REAL(dp) :: TOTN(MDEPTH) REAL(dp) :: ANTO(MDEPTH) REAL(dp) :: ANMA(MDEPTH) REAL(dp) :: ANH1(MDEPTH) REAL(dp) :: ZD(MDEPTH) REAL(dp) :: HKT1(MDEPTH) REAL(dp) :: TK1(MDEPTH) REAL(dp) :: HKT21(MDEPTH) REAL(dp) :: SQT1(MDEPTH) REAL(dp) :: TEMP1(MDEPTH) REAL(dp) :: ELEC1(MDEPTH) REAL(dp) :: DENS1(MDEPTH) REAL(dp) :: DENSI(MDEPTH) REAL(dp) :: DENSIM(MDEPTH) REAL(dp) :: ELSCAT(MDEPTH) REAL(dp) :: ALAB(MDEPTH) REAL(dp) :: DELDM(MDEPTH) REAL(dp) :: DEDM1 REAL(dp) :: DELDMZ(MDEPTH) REAL(dp) :: THETAV(MDEPTH) REAL(dp) :: VISCD(MDEPTH) REAL(dp) :: DALPMX REAL(dp) :: XHYD REAL(dp) :: DMTOT REAL(dp) :: RRDIL REAL(dp) :: TEMPBD REAL(dp) :: ALPTAV REAL(dp) :: ALPGAV INTEGER :: NALP INTEGER :: IBETA !========================================================================== ! 公共变量块 - 能级布居 (LEVPOP) !========================================================================== REAL(dp) :: POPUL(MLEVEL,MDEPTH) REAL(dp) :: BFAC(MLEVEL,MDEPTH) REAL(dp) :: POPINV(MLEVEL,MDEPTH) REAL(dp) :: POPGRP(MLEVEL) REAL(dp) :: POP(MLEVEL) REAL(dp) :: SBF(MLEVEL) REAL(dp) :: DSBF(MLEVEL) REAL(dp) :: USUM(MION) !========================================================================== ! 公共变量块 - 布居零级近似 !========================================================================== REAL(dp) :: POPZER REAL(dp) :: POPZR2 REAL(dp) :: POPZCH REAL(dp) :: RPOP0(MLVEXP,MDEPTH) INTEGER :: IPZERO(MLEVEL,MDEPTH) INTEGER :: IGZERO(MLVEXP,MDEPTH) !========================================================================== ! 公共变量块 - CRSWPS !========================================================================== REAL(dp) :: CRSW(MDEPTH) REAL(dp) :: SWPFAC REAL(dp) :: SWPLIM REAL(dp) :: SWPINC INTEGER :: ICRSW !========================================================================== ! 公共变量块 - WMCOMP !========================================================================== REAL(dp) :: WNHINT(NLMX,MDEPTH) REAL(dp) :: WNHEII(NLMX,MDEPTH) REAL(dp) :: wop(mlevel,mdepth) INTEGER :: ifwop(mlevel) !========================================================================== ! 公共变量块 - REPART !========================================================================== REAL(dp) :: REINT(MDEPTH) REAL(dp) :: REDIF(MDEPTH) REAL(dp) :: TAUDIV INTEGER :: IDLST !========================================================================== ! 公共变量块 - 湍流 (TURBUL) !========================================================================== REAL(dp) :: VTURB(MDEPTH) REAL(dp) :: VTURBS(MDEPTH) REAL(dp) :: VTB INTEGER :: IPTURB !========================================================================== ! 公共变量块 - 能级参考 (LEVREF) !========================================================================== REAL(dp) :: SBPSI(MLEVEL,MDEPTH) REAL(dp) :: SBLPSI(MLEVEL,MDEPTH) REAL(dp) :: DSBPST(MLEVEL,MDEPTH) REAL(dp) :: DSBPSN(MLEVEL,MDEPTH) INTEGER :: ILTREF(MLEVEL,MDEPTH) INTEGER :: IGUIDE(MLEVEL) INTEGER :: ILTERF(MLEVEL,MDEPTH) !========================================================================== ! 公共变量块 - 能级固定 (LEVFIX) !========================================================================== REAL(dp) :: PT(MLEVEL,MDEPTH) REAL(dp) :: PN(MLEVEL,MDEPTH) REAL(dp) :: PP(MLEVEL,MDEPTH) !========================================================================== ! 公共变量块 - 能级附加 (LEVADD) !========================================================================== REAL(dp) :: USUMS(MION,MDEPTH) REAL(dp) :: DUSMT(MION,MDEPTH) REAL(dp) :: DUSMN(MION,MDEPTH) REAL(dp) :: DIESIG(MION,MDEPTH) !========================================================================== ! 公共变量块 - 合并参数 (MRGPAR) !========================================================================== REAL(dp) :: SGM0(MMER) REAL(dp) :: FRCH(MMER) REAL(dp) :: SGEXT1(MMER,MDEPTH) REAL(dp) :: GMER(MMER,MDEPTH) REAL(dp) :: SGMSUM(NLMX,MMER,MDEPTH) REAL(dp) :: SGMSUD(NLMX,MMER,MDEPTH) REAL(dp) :: SGMG(MMER,MDEPTH) INTEGER :: IMRG(MLEVEL) INTEGER :: IIMER(MMER) !========================================================================== ! 公共变量块 - UPSUMS !========================================================================== REAL(dp) :: DUSUMT(MION) REAL(dp) :: DUSUMN(MION) !========================================================================== ! 公共变量块 - DWNPAR (向下跃迁参数) !========================================================================== REAL(dp) :: ELEC23(MDEPTH) REAL(dp) :: ACOR(MDEPTH) REAL(dp) :: Z3(MZZ) REAL(dp) :: DWC1(MZZ,MDEPTH) REAL(dp) :: DWC2(MDEPTH) REAL(dp) :: DWF1(MMCDW,MDEPTH) INTEGER :: MCDW(MTRANS) INTEGER :: ITRCDW(MMCDW) INTEGER :: NCDW !========================================================================== ! 公共变量块 - OBFPAR !========================================================================== INTEGER :: ITRBF(MBF) !========================================================================== ! 公共变量块 - GFFPAR (Gaunt 因子参数) !========================================================================== REAL(dp) :: GF0(MDEPTH) REAL(dp) :: GF1(MDEPTH) REAL(dp) :: GF2(MDEPTH) REAL(dp) :: GF3(MDEPTH) REAL(dp) :: GF4(MDEPTH) REAL(dp) :: GF5(MDEPTH) REAL(dp) :: GF6(MDEPTH) REAL(dp) :: GF0D(MDEPTH) REAL(dp) :: GF1D(MDEPTH) REAL(dp) :: GF2D(MDEPTH) REAL(dp) :: GF3D(MDEPTH) REAL(dp) :: GF4D(MDEPTH) REAL(dp) :: GF5D(MDEPTH) REAL(dp) :: GF6D(MDEPTH) REAL(dp) :: DELTT(MDEPTH) !========================================================================== ! 公共变量块 - OFFPAR !========================================================================== REAL(dp) :: SFF3(MION,MDEPTH) REAL(dp) :: SFF2(MION,MDEPTH) REAL(dp) :: DSFF(MION,MDEPTH) REAL(dp) :: CFFN(MDEPTH) REAL(dp) :: CFFT(MDEPTH) !========================================================================== ! 公共变量块 - OTRPAR !========================================================================== REAL(dp) :: ABTRA(MTRANS,MDEPTH) REAL(dp) :: EMTRA(MTRANS,MDEPTH) REAL(dp) :: DEMLT(MTRANS,MDEPTH) !========================================================================== ! 公共变量块 - CURRNT !========================================================================== REAL(dp) :: XKF(MDEPTH) REAL(dp) :: XKF1(MDEPTH) REAL(dp) :: XKFB(MDEPTH) !========================================================================== ! 公共变量块 - CUROPA !========================================================================== REAL(dp) :: ABSO1(MDEPTH) REAL(dp) :: EMIS1(MDEPTH) REAL(dp) :: SCAT1(MDEPTH) REAL(dp) :: ABSOT(MDEPTH) REAL(dp) :: ABSOE1(MFREX) REAL(dp) :: EMEL1(MDEPTH) REAL(dp) :: ABSO1L(MDEPTH) REAL(dp) :: EMIS1L(MDEPTH) REAL(dp) :: ABSOPR(MDEPTH) REAL(dp) :: EMISPR(MDEPTH) !========================================================================== ! 公共变量块 - TOTRAD !========================================================================== REAL(dp) :: RAD(MFREQ1,MDEPTH) REAL(dp) :: FHD(MFREQ) REAL(dp) :: FAK(MFREQ1,MDEPTH) REAL(dp) :: RADK(MFREQ1,MDEPTH) REAL(dp) :: EXTRAD(MFREQ) REAL(dp) :: EXTINT(MFREQ,MMU) REAL(dp) :: HEXTRD(MFREQ) REAL(dp) :: TRAD REAL(dp) :: WDIL REAL(dp) :: EXTOT REAL(dp) :: TSTAR !========================================================================== ! 公共变量块 - CURRAD !========================================================================== REAL(dp) :: RAD1(MDEPTH) REAL(dp) :: ALI1(MDEPTH) REAL(dp) :: FAK1(MDEPTH) REAL(dp) :: radcm(mfreq,mdepth) REAL(dp) :: RADL(MFREQL,MDEPTH) REAL(dp) :: ABSALI(MFREQL,MDEPTH) REAL(dp) :: alih1(mdepth) !========================================================================== ! 公共变量块 - CURDER !========================================================================== REAL(dp) :: DABT1(MDEPTH) REAL(dp) :: DEMT1(MDEPTH) REAL(dp) :: DABN1(MDEPTH) REAL(dp) :: DEMN1(MDEPTH) REAL(dp) :: DABM1(MDEPTH) REAL(dp) :: DEMM1(MDEPTH) REAL(dp) :: DABX1(MDEPTH) REAL(dp) :: DEMX1(MDEPTH) REAL(dp) :: DABP1(MLEVEL,MDEPTH) REAL(dp) :: DEMP1(MLEVEL,MDEPTH) REAL(dp) :: DRCH1(MLEVEL,MDEPTH) REAL(dp) :: DRET1(MLEVEL,MDEPTH) REAL(dp) :: ABSFF(MDEPTH) REAL(dp) :: DABFT(MDEPTH) REAL(dp) :: DABFN(MDEPTH) REAL(dp) :: DSFDT(MDEPTH) REAL(dp) :: DSFDN(MDEPTH) REAL(dp) :: DSFDM(MDEPTH) REAL(dp) :: DSFDP(MLVEXP,MDEPTH) REAL(dp) :: DSFDTM(MDEPTH) REAL(dp) :: DSFDNM(MDEPTH) REAL(dp) :: DSFDPM(MLVEXP,MDEPTH) REAL(dp) :: DSFDTP(MDEPTH) REAL(dp) :: DSFDNP(MDEPTH) REAL(dp) :: DSFDPP(MLVEXP,MDEPTH) !========================================================================== ! 公共变量块 - CURTRI !========================================================================== REAL(dp) :: ALIM1(MDEPTH) REAL(dp) :: ALIP1(MDEPTH) !========================================================================== ! 公共变量块 - EXPRAF !========================================================================== REAL(dp) :: RADEX(MFREX,MDEPTH) REAL(dp) :: FAKEX(MFREX,MDEPTH) !========================================================================== ! 公共变量块 - TOTPRF !========================================================================== REAL(dp) :: PRFLIN(MDEPTH,MFREQP) !========================================================================== ! 公共变量块 - TOTFLX !========================================================================== REAL(dp) :: FLTOT(MDEPTH) REAL(dp) :: FLFIX(MDEPTH) REAL(dp) :: FLEXP(MDEPTH) REAL(dp) :: FCOOL(MDEPTH) REAL(dp) :: FCOOLI(MDEPTH) REAL(dp) :: FLRD(MDEPTH) REAL(dp) :: FPRAD(MDEPTH) REAL(dp) :: GRAD(MDEPTH) REAL(dp) :: FPRD(MDEPTH) REAL(dp) :: GRADF(MDEPTH,MFREQ) !========================================================================== ! 公共变量块 - RRATES !========================================================================== REAL(dp) :: RRU(MTRANS,MDEPTH) REAL(dp) :: RRD(MTRANS,MDEPTH) REAL(dp) :: DRDT(MTRANS,MDEPTH) !========================================================================== ! 公共变量块 - RRTOFF !========================================================================== REAL(dp) :: RDDP(MTRAN3,MDEPTH) REAL(dp) :: RDDM(MTRAN3,MDEPTH) !========================================================================== ! 公共变量块 - CRATES !========================================================================== REAL(dp) :: COLRAT(MTRANS,MDEPTH) REAL(dp) :: COLTAR(MTRANS,MDEPTH) !========================================================================== ! 公共变量块 - FRQALL !========================================================================== REAL(dp) :: FREQ(MFREQ) REAL(dp) :: W(MFREQ) REAL(dp) :: PROF(MFREQP) REAL(dp) :: WCH(MFREQ) REAL(dp) :: JIK(MFREQ) INTEGER :: IJX(MFREQ) INTEGER :: IJBF(MFREQ) INTEGER :: IFS0 REAL(dp) :: KIJ(MFREQ) LOGICAL :: LSKIP(MDEPTH,MFREQ) !========================================================================== ! 公共变量块 - FRQINT !========================================================================== REAL(dp) :: FRCMAX REAL(dp) :: FRCMIN REAL(dp) :: FRLMAX REAL(dp) :: FRLMIN REAL(dp) :: CFRMAX REAL(dp) :: DFTAIL REAL(dp) :: TSNU REAL(dp) :: VTNU REAL(dp) :: DDNU REAL(dp) :: CNU1 REAL(dp) :: CNU2 INTEGER :: IELNU INTEGER :: NFTAIL !========================================================================== ! 公共变量块 - LINOVR !========================================================================== INTEGER :: NITJ(MFREQ) INTEGER :: IJLIN(MFREQ) INTEGER*2 :: ITRLIN_ARR(MITJ,MFREQ) !========================================================================== ! 公共变量块 - LINFRQ !========================================================================== INTEGER :: NLINES(MFREQ) !========================================================================== ! 公共变量块 - PHOEXP !========================================================================== REAL(dp) :: AIJBF(MFREQ) REAL(dp) :: BFCS_ARR(MCROSS,MFREQC) INTEGER :: IFREQB(MFREQC) !========================================================================== ! 公共变量块 - FREAUX !========================================================================== REAL(dp) :: W0E(MFREQ) REAL(dp) :: BNUE(MFREQ) REAL(dp) :: WC(MFREQ) INTEGER :: IJTC(MTRANS) INTEGER :: IJALI(MFREQ) INTEGER :: IJEX(MFREQ) INTEGER :: IJFR(MFREQ) !========================================================================== ! 公共变量块 - COMPIF !========================================================================== LOGICAL :: LINEXP(MTRANS) !========================================================================== ! 公共变量块 - SURFAC !========================================================================== REAL(dp) :: FLUX(MFREQ) REAL(dp) :: FH(MFREQ) REAL(dp) :: Q0(MFREQ) REAL(dp) :: UU0(MFREQ) !========================================================================== ! 公共变量块 - FILES !========================================================================== REAL(dp) :: PSY0(MTOT,MDEPTH) REAL(dp) :: PSY1(MTOT,MDEPTH) REAL(dp) :: PSY2(MTOT,MDEPTH) REAL(dp) :: PSY3(MTOT,MDEPTH) !========================================================================== ! 公共变量块 - PRESSR !========================================================================== REAL(dp) :: PTOTAL(MDEPTH) REAL(dp) :: PGS(MDEPTH) REAL(dp) :: PRADT(MDEPTH) REAL(dp) :: PRADA(MDEPTH) !========================================================================== ! 公共变量块 - HEQAUX !========================================================================== INTEGER :: PRD0 INTEGER :: IHECOR !========================================================================== ! 公共变量块 - OPMEAN !========================================================================== REAL(dp) :: ABROSD(MDEPTH) REAL(dp) :: SUMDPL(MDEPTH) REAL(dp) :: ABPLAD(MDEPTH) REAL(dp) :: ABPMIN !========================================================================== ! 公共变量块 - CHARFX !========================================================================== REAL(dp) :: QFIX(MDEPTH) !========================================================================== ! 公共变量块 - WINDBL !========================================================================== REAL(dp) :: ALBE(MFREQ) INTEGER :: IWINBL !========================================================================== ! 公共变量块 - DFEALI !========================================================================== REAL(dp) :: DJMAX INTEGER :: NTRALI !========================================================================== ! 公共变量块 - OPACAD !========================================================================== REAL(dp) :: ABAD REAL(dp) :: EMAD REAL(dp) :: SCAD REAL(dp) :: DAT REAL(dp) :: DAN REAL(dp) :: DET REAL(dp) :: DEN REAL(dp) :: DST REAL(dp) :: DSN REAL(dp) :: DDN(MLEVEL) !========================================================================== ! 公共变量块 - MODCON !========================================================================== REAL(dp) :: FLXC(MDEPTH) REAL(dp) :: DELTA(MDEPTH) !========================================================================== ! 公共变量块 - RESDER !========================================================================== REAL(dp) :: RSAT REAL(dp) :: RSBT REAL(dp) :: RSAN REAL(dp) :: RSBN REAL(dp) :: RSAX(MLEVEL) REAL(dp) :: RSBX(MLEVEL) !========================================================================== ! 公共变量块 - GRAYTS !========================================================================== REAL(dp) :: TAUROS(MDEPTH) REAL(dp) :: TAUFLX(MDEPTH) REAL(dp) :: TAUTHE(MDEPTH) REAL(dp) :: THETA(MDEPTH) !========================================================================== ! 公共变量块 - TAURSS !========================================================================== REAL(dp) :: TROSS(MDEPTH) !========================================================================== ! 公共变量块 - TCONST !========================================================================== REAL(dp) :: TDISK INTEGER :: ITCONS !========================================================================== ! 公共变量块 - HYDADD !========================================================================== REAL(dp) :: PHMOL(MDEPTH) REAL(dp) :: ANEREL INTEGER :: IHM INTEGER :: IH2 INTEGER :: IH2P !========================================================================== ! 公共变量块 - ELDNSP !========================================================================== REAL(dp) :: ANP REAL(dp) :: AHTOT REAL(dp) :: AHMOL !========================================================================== ! 公共变量块 - RRVALS !========================================================================== REAL(dp) :: RR(99,99) REAL(dp) :: ABNDD(99,MDEPTH) REAL(dp) :: ENEV(99,30) INTEGER :: IONIZ(99) INTEGER :: IREF INTEGER :: IREFA LOGICAL :: LGR(99) LOGICAL :: LRM(99) !========================================================================== ! 公共变量块 - STATEP !========================================================================== REAL(dp) :: Q REAL(dp) :: QM REAL(dp) :: DQT REAL(dp) :: DQN REAL(dp) :: DQM REAL(dp) :: ENER REAL(dp) :: ENTR REAL(dp) :: QREF REAL(dp) :: DQTR REAL(dp) :: DQNR REAL(dp) :: PFHYD !========================================================================== ! 公共变量块 - ODFCHT !========================================================================== REAL(dp) :: CHANT(MDEPTH) !========================================================================== ! 公共变量块 - STRAUX !========================================================================== REAL(dp) :: XK0(MLINH) REAL(dp) :: XK REAL(dp) :: DBETA REAL(dp) :: BETAD REAL(dp) :: ADH REAL(dp) :: DIVH !========================================================================== ! 公共变量块 :: STDPAR !========================================================================== INTEGER :: ELSTD INTEGER :: IDSTD !========================================================================== ! 氢 Stark 加宽表参数 !========================================================================== REAL(dp) :: PRFHYD(MLINH,MHWL,MHT,MHE) REAL(dp) :: WLHYD(MLINH,MHWL) REAL(dp) :: WLH(MHWL,MLINH) REAL(dp) :: XTLEM(MHT,MLINH) REAL(dp) :: XNELEM(MHE,MLINH) INTEGER :: NWLHYD(MLINH) INTEGER :: NWLH(MLINH) INTEGER :: NTH(MLINH) INTEGER :: NEH(MLINH) INTEGER :: ILINH(4,22) INTEGER :: IHYDPR !========================================================================== ! Xenon 相关参数 !========================================================================== REAL(dp) :: PRFXB(MLINH,MHWL,MHT,MHE) REAL(dp) :: PRFXR(MLINH,MHWL,MHT,MHE) REAL(dp) :: ALXEN(MLINH,MHWL) REAL(dp) :: XTXEN(MHT,MLINH) REAL(dp) :: XNEXEN(MHE,MLINH) REAL(dp) :: XNEMIN INTEGER :: NWLXEN(MLINH) INTEGER :: NTHXEN(MLINH) INTEGER :: NEHXEN(MLINH) INTEGER :: ILXEN(4,22) INTEGER :: IHXENB !========================================================================== ! 公共变量块 - LTEGRP !========================================================================== REAL(dp) :: TAUFIR REAL(dp) :: TAULAS REAL(dp) :: ABROS0 REAL(dp) :: TSURF REAL(dp) :: ALBAVE REAL(dp) :: DION0 REAL(dp) :: DM1 REAL(dp) :: ABPLA0 INTEGER :: NNEWD INTEGER :: NDGREY INTEGER :: IDGREY !========================================================================== ! 公共变量块 - COMPTF !========================================================================== REAL(dp) :: DLNFR(MFREQ) REAL(dp) :: BNUS(MFREQ) REAL(dp) :: CDER10(MFREQ) REAL(dp) :: CDER1P(MFREQ) REAL(dp) :: CDER1M(MFREQ) REAL(dp) :: CDER20(MFREQ) REAL(dp) :: CDER2P(MFREQ) REAL(dp) :: CDER2M(MFREQ) REAL(dp) :: DELJ(MFREQ,MDEPTH) !========================================================================== ! 公共变量块 - VISPAR !========================================================================== REAL(dp) :: TVISC(MDEPTH) REAL(dp) :: DTVIST(MDEPTH) REAL(dp) :: DTVISN(MDEPTH) REAL(dp) :: DTVISR(MDEPTH) !========================================================================== ! 不透明度表参数 !========================================================================== REAL(dp) :: FRTB1 REAL(dp) :: FRTB2 REAL(dp) :: RTAB1 REAL(dp) :: RTAB2 REAL(dp) :: TTAB1 REAL(dp) :: TTAB2 INTEGER :: numfreq INTEGER :: numrho INTEGER :: numtemp INTEGER :: numrh(mtabt) REAL(dp) :: tempvec(mtabt) REAL(dp) :: rhovec(mtabr) REAL(dp) :: rhomat(mtabt,mtabr) REAL(dp) :: frtab(mfrtab) REAL(dp) :: frtlim REAL(dp) :: absopac_arr(mtabt,mtabr,mfrtab) REAL(dp) :: raytab(mtabt,mtabr) REAL(dp) :: raysc(mdepth) INTEGER :: ibinop !========================================================================== ! 氢不透明度表参数 !========================================================================== REAL(dp) :: hglim INTEGER :: ihgom REAL(dp) :: FRGTB1 REAL(dp) :: FRGTB2 REAL(dp) :: EGTAB1 REAL(dp) :: EGTAB2 REAL(dp) :: TGTAB1 REAL(dp) :: TGTAB2 INTEGER :: nugfreq INTEGER :: nugele INTEGER :: nugtemp REAL(dp) :: temvec(mtabth) REAL(dp) :: elevec(mtabeh) REAL(dp) :: frgtab(mfhtab) REAL(dp) :: hydcrs(mtabth,mtabeh,mfhtab) END MODULE modelq_module