SpectraRust/tlusty/extracted/lemini.f
2026-03-19 14:05:33 +08:00

86 lines
2.3 KiB
Fortran

SUBROUTINE LEMINI
C =================
C
C Initializes necessary arrays for evaluating hydrogen line profiles
C from the Lemke tables
C
INCLUDE 'IMPLIC.FOR'
INCLUDE 'BASICS.FOR'
INCLUDE 'MODELQ.FOR'
C
DO I=1,4
DO J=1,22
ILINH(I,J)=0
END DO
END DO
if(ihydpr.eq.21) then
open(unit=ihydpr,file='./data/lemke.dat',status='old')
write(6,641) ihydpr
else if(ihydpr.eq.22) then
open(unit=ihydpr,file='./data/tremblay.dat',status='old')
write(6,642) ihydpr
end if
641 format(' -----------'/
* ' reading Lemke tables; ihydpr =',i3,/
* ' -----------')
642 format(' -----------'/
* ' reading Tremblay tables; ihydpr =',i3,/
* ' -----------')
C
C ---------------------------------
C read Lemke or Tremblay tables
C ---------------------------------
C
ILINE=0
READ(IHYDPR,*) NTAB
DO ITAB=1,NTAB
ILINEB=ILINE
READ(IHYDPR,*) NLLY
DO ILI=1,NLLY
ILINE=ILINE+1
READ(IHYDPR,*) I,J,ALMIN,ANEMIN,TMIN,DLA,DLE,DLT,
* NWL,NE,NT
write(6,643) ntab,nlly,iline,i,j
643 format(' ntab,nlly,iline,i,j ',5i4)
ILINH(I,J)=ILINE
NWLH(ILINE)=NWL
NWLHYD(ILINE)=NWL
NTH(ILINE)=NT
NEH(ILINE)=NE
DO IWL=1,NWL
WLH(IWL,ILINE)=ALMIN+(IWL-1)*DLA
WLHYD(ILINE,IWL)=WLH(IWL,ILINE)
WLH(IWL,ILINE)=EXP(2.3025851*WLH(IWL,ILINE))
END DO
DO INE=1,NE
XNELEM(INE,ILINE)=ANEMIN+(INE-1)*DLE
END DO
DO IT=1,NT
XTLEM(IT,ILINE)=TMIN+(IT-1)*DLT
END DO
END DO
c
DO ILI=1,NLLY
ILNE=ILINEB+ILI
NWL=NWLH(ILNE)
READ(IHYDPR,500)
DO INE=1,NEH(ILNE)
DO IT=1,NTH(ILNE)
READ(IHYDPR,*) QLT,(PRFHYD(ILNE,IWL,IT,INE),IWL=1,NWL)
END DO
END DO
C
C coefficient for the asymptotic profile is determined from
C the input data
C
XCLOG=PRFHYD(ILNE,NWL,1,1)+2.5*WLHYD(ILNE,NWL)-0.477121
XKLOG=0.6666667*XCLOG
XK0(ILNE)=EXP(XKLOG*2.3025851)
END DO
END DO
CLOSE(IHYDPR)
500 FORMAT(1X)
C
RETURN
END