108 lines
3.3 KiB
Fortran
108 lines
3.3 KiB
Fortran
subroutine getlal
|
|
c =================
|
|
c
|
|
c getlal reads in the profile functions for Lyman alpha, beta, gamma,
|
|
c and Balmer alpha, including the quasi-molecular satellites;
|
|
c valid for first and second order in neutral and ionized H density
|
|
c modified routine provided originally by D. Koester
|
|
c
|
|
INCLUDE 'IMPLIC.FOR'
|
|
INCLUDE 'BASICS.FOR'
|
|
parameter (NXMAX=1400,NNMAX=5,NTAMAX=6)
|
|
common/quasun/tqmprf,iquasi,nunalp,nunbet,nungam,nunbal
|
|
common /callarda/xlalp(NXMAX),plalp(NXMAX,NNMAX),stnnea,stncha,
|
|
* vneua,vchaa,nxalp,iwarna
|
|
common /callardb/xlbet(NXMAX),plbet(NXMAX,NNMAX),stnneb,stnchb,
|
|
* vneub,vchab,nxbet,iwarnb
|
|
common /callardg/xlgam(NXMAX),plgam(NXMAX,NNMAX),stnneg,stnchg,
|
|
* vneug,vchag,nxgam,iwarng
|
|
common /callardc/xlbal(NXMAX),plbal(NXMAX,NNMAX),stnnec,stnchc,
|
|
* vneuc,vchac,nxbal,iwarnc
|
|
common /calphatd/xlalpd(NXMAX,NTAMAX),plalpd(NXMAX,NNMAX,NTAMAX),
|
|
* stnead(ntamax),stnchd(ntamax),
|
|
* vneuad(ntamax),vchaad(ntamax),
|
|
* talpd(ntamax),nxalpd(ntamax),ntalpd
|
|
c
|
|
c Lyman alpha
|
|
c
|
|
nxalp=0
|
|
nunalp=67
|
|
if(nunalp.gt.0) then
|
|
open(unit=nunalp,file='./data/laquasi.dat',status='old')
|
|
read(nunalp,*) nxalp,stnnea,stncha,vneua,vchaa
|
|
do i=1,nxalp
|
|
read(nunalp,*) xlalp(i),(plalp(i,j),j=1,NNMAX)
|
|
end do
|
|
close(nunalp)
|
|
stnnea=10.0**stnnea
|
|
stncha=10.0**stncha
|
|
iwarna=0
|
|
else if(nunalp.lt.0) then
|
|
c
|
|
c input of temperature-dependent profile
|
|
c
|
|
nualp=-nunalp
|
|
read(nualp,*) ntalpd
|
|
do it=1,ntalpd
|
|
read(nualp,*) talpd(it)
|
|
read(nualp,*) nxalpd(it),stnead(it),stnchd(it),vneuad(it),
|
|
* vchaad(it)
|
|
do i=1,nxalpd(it)
|
|
read(nualp,*) xlalpd(i,it),(plalpd(i,j,it),j=1,NNMAX)
|
|
end do
|
|
stnead(it)=10.0**stnead(it)
|
|
stnchd(it)=10.0**stnchd(it)
|
|
end do
|
|
close(nualp)
|
|
end if
|
|
c
|
|
c Lyman beta
|
|
c
|
|
nxbet=0
|
|
if(nunbet.gt.0) then
|
|
nunbet=67
|
|
open(unit=nunbet,file='./data/lbquasi.dat',status='old')
|
|
read(nunbet,*) nxbet,stnneb,stnchb,vneub,vchab
|
|
do i=1,nxbet
|
|
read(nunbet,*) xlbet(i),(plbet(i,j),j=1,NNMAX)
|
|
end do
|
|
close(nunbet)
|
|
stnneb=10.0**stnneb
|
|
stnchb=10.0**stnchb
|
|
iwarnb=0
|
|
end if
|
|
c
|
|
c Lyman gamma
|
|
c
|
|
nxgam=0
|
|
if(nungam.gt.0) then
|
|
nungam=67
|
|
open(unit=nungam,file='./data/lgquasi.dat',status='old')
|
|
read(nungam,*) nxgam,stnneg,stnchg,vneug,vchag
|
|
do i=1,nxgam
|
|
read(nungam,*) xlgam(i),(plgam(i,j),j=1,NNMAX)
|
|
end do
|
|
close(nungam)
|
|
stnneg=10.0**stnneg
|
|
stnchg=10.0**stnchg
|
|
iwarng=0
|
|
end if
|
|
c
|
|
c Balmer alpha
|
|
c
|
|
nxbal=0
|
|
if(nunbal.gt.0) then
|
|
nunbal=67
|
|
open(unit=nunalp,file='./data/lhquasi.dat',status='old')
|
|
read(nunbal,*) nxbal,stnnec,stnchc,vneuc,vchac
|
|
do i=1,nxbal
|
|
read(nunbal,*) xlbal(i),(plbal(i,j),j=1,NNMAX)
|
|
end do
|
|
close(nunbal)
|
|
stnnec=10.0**stnnec
|
|
stnchc=10.0**stnchc
|
|
iwarnc=0
|
|
end if
|
|
return
|
|
end
|