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

108 lines
3.9 KiB
Fortran

SUBROUTINE START
C ================
C
C General input and initialization procedure
C
INCLUDE 'PARAMS.FOR'
INCLUDE 'MODELP.FOR'
INCLUDE 'LINDAT.FOR'
INCLUDE 'SYNTHP.FOR'
common/quasun/nunalp,nunbet,nungam,nunbal
C
C ------------------------------------------------
C Additional basic input parameters - from unit 55
C ------------------------------------------------
C
C IMODE = 0 - normal synthetic spectrum
C = 1 - detailed profiles of a few individual lines
C = 2 - emergent flux in the continuum (without the
C contribution of lines)
C = -1 - identification table, ie. a list of lines which
C contribute to opacity in a given wavelength
C region, together with their approximate equivalent
C widths. Synthetic spectrum is not calculated.
C = -2 - the "iron curtain" option, ie. a monochromatic
C opacity for a homogeneous slab of a given T and n_e
C
C IDSTD - index of the "standard depth" (ie the depth at which
C the continuum optical depth is of the order of unity)
C (for detailed explanation see the code TLUSTY)
C
C IPRIN - determines the amount of output:
C =0 - standard output:
C condensed output on unit 6 (basics + error messages),
C no output on unit 96 (depths of formation);
C normal output on 16 (equivalent widths);
C normal output on 12 (identification table)
C >0 - more output:
C =1 - emergent flux on unit 6, no unit 96
C =2 - identification table + flux on unit 6, no unit 96
C =3 - as before, plus unit 96 (depths of formation);
C =4 - as before, plus unit 97 (contribution functions);
C <0 - less output:
C =-1 - no output on unit 16
C =-2 - no output on units 16 and 12
C
C INMOD = 0 - input model atmosphere as a Kurucz model
C (read by procedure INKUR)
C = 1 - input model atmosphere is a model calculated
C by the program TLUSTY
C (read by procedure INPMOD)
C = 2 - input model is a model of the vertical structure
C of one ring of an accretion disk
C INTRPL - switch indicating whether the input model has to be
C interpolated to the present depth scale;
C for details see procedure INPMOD
C ICHANG - switch indicating whether the populations from the
C input model have to be updated;
C for details see procedure CHANGE
C ICHEMC - switch indicating that new chemical composition will
C be read from unit 56
C IOPHLI - switch for treatment the Lyman line wings -see LYMLIN
C
IFWIN=0
nunalp=0
nunbet=0
nungam=0
nunbal=0
iunitm(1)=20
nmlist=0
NDSTEP=0
if(ifeos.le.0) then
READ(55,*,END=3) IMODE,IDSTD,IPRIN
READ(55,*,END=3) INMOD,INTRPL,ICHANG,ICHEMC
READ(55,*,ERR=3,END=3) IOPHLI,nunalp,nunbet,nungam,nunbal
3 continue
end if
IF(IMODE.LT.-90) THEN
IMODE=-IMODE-100
IFWIN=1
END IF
if(imode.gt.5) then
imode=imode-10
ifmol=1
nmlist=1
iunitm(1)=20
end if
c disabling an old option
iophli=0
c
c standard initialization
c
call initia
c
c if needed, read tables with data for quasimolecular satellites of
c Lyman alpha, beta, gamma, and Balmer alpha
c
call getlal
c
IF(IMODE.LT.-1) THEN
ND=1
IDSTD=1
END IF
IF(INMOD.GT.0.AND.INTRPL.GT.0) READ(55,*) (DM(I),I=1,ND)
C
return
end