87 lines
2.2 KiB
Fortran
87 lines
2.2 KiB
Fortran
SUBROUTINE RESOLV
|
|
C
|
|
C driver for evaluating opacities and emissivities which then
|
|
C enter the solution of the radiative transfer equation
|
|
C (RTE or RTEDFE)
|
|
C
|
|
INCLUDE 'PARAMS.FOR'
|
|
INCLUDE 'MODELP.FOR'
|
|
INCLUDE 'LINDAT.FOR'
|
|
INCLUDE 'SYNTHP.FOR'
|
|
DIMENSION CROSS(MCROSS,MFRQ),
|
|
* ABSO(MFREQ),EMIS(MFREQ),SCAT(MFREQ)
|
|
COMMON/RTEOPA/CH(MFREQ,MDEPTH),ET(MFREQ,MDEPTH),
|
|
* SC(MFREQ,MDEPTH)
|
|
COMMON/HPOPST/HPOP
|
|
C
|
|
IHYL=-1
|
|
c
|
|
c if(imode.le.-3) call abnchn(1)
|
|
C
|
|
C set up the partial line list for the current interval
|
|
C
|
|
CALL INISET
|
|
if(ifmol.gt.0) then
|
|
do ilist=1,nmlist
|
|
call molset(ilist)
|
|
end do
|
|
end if
|
|
C
|
|
C select possible hydrogen lines that may contribute to the opacity
|
|
C
|
|
IF(IMODE.NE.-1) CALL HYLSET
|
|
C
|
|
C select possible He II lines that may contribute to the opacity
|
|
C
|
|
IF(IMODE.NE.-1) CALL HE2SET
|
|
C
|
|
C output of information about selected lines
|
|
C
|
|
CALL INIBLA
|
|
if(ifmol.gt.0) call iniblm
|
|
C
|
|
C photoinization cross-sections
|
|
C
|
|
CALL CROSET(CROSS)
|
|
C
|
|
C monochromatic opacity and emissivity including all contributing
|
|
C lines and continua
|
|
C
|
|
IF(IMODE.GE.-1) THEN
|
|
DO ID=1,ND
|
|
CALL OPAC(ID,CROSS,ABSO,EMIS,SCAT)
|
|
ABSTD(ID)=0.5*(ABSO(1)+ABSO(2))
|
|
DO IJ=1,NFREQ
|
|
CH(IJ,ID)=ABSO(IJ)
|
|
ET(IJ,ID)=EMIS(IJ)
|
|
SC(IJ,ID)=SCAT(IJ)
|
|
END DO
|
|
if(imode0.eq.-4) call ougrid(abso)
|
|
END DO
|
|
C
|
|
C output of information about selected hydrogen lines
|
|
C
|
|
CALL INIBLH
|
|
C
|
|
C the iron curtain or opacity table option - output of monochromatic opacities
|
|
C
|
|
ELSE IF(IMODE.EQ.-2) THEN
|
|
ID=1
|
|
write(27,626) temp(id),dens(id),elec(id)
|
|
CALL OPAC(ID,CROSS,ABSO,EMIS,SCAT)
|
|
DO IJ=3,NFREQ-1
|
|
ABSO(IJ)=(ABSO(IJ)+SCAT(IJ))/HPOP
|
|
WRITE(27,627) WLAM(IJ),ABSO(IJ),scat(ij)
|
|
END DO
|
|
else
|
|
id=1
|
|
call opac(id,cross,abso,emis,scat)
|
|
ch(1,id)=abso(1)
|
|
ch(2,id)=abso(2)
|
|
call ougrid(abso)
|
|
END IF
|
|
626 format(1p3e15.4)
|
|
627 format(f15.3,1p2e15.5)
|
|
RETURN
|
|
END
|