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

36 lines
828 B
Fortran

SUBROUTINE CROSET(CROSS)
C
C SET UP ARRAY CROSS - PHOTOIONIZATION CROSS-SECTIONS
C
INCLUDE 'PARAMS.FOR'
INCLUDE 'SYNTHP.FOR'
INCLUDE 'WINCOM.FOR'
DIMENSION CROSS(MCROSS,MFRQ)
common/dissol/fropc(mlevel),indexp(mlevel)
C
IJ0=2
IF(NFREQ.EQ.1) IJ0=1
IF(IMODE.EQ.2) IJ0=NFREQ
DO IJ=1,IJ0
DO IT=1,MCROSS
CROSS(IT,IJ)=0.
END DO
END DO
DO IT=1,NLEVEL
IF(INDEXP(IT).NE.5) THEN
DO IJ=1,IJ0
FR=FREQ(IJ)
CROSS(IT,IJ)=SIGK(FR,IT,0)
END DO
ELSE
DO IJ=1,IJ0
FR=FREQ(IJ)
CROSS(IT,IJ)=SIGK(FR,IT,1)
IF(FR.LT.FROPC(IT)) CROSS(IT,IJ)=0.
END DO
END IF
END DO
C
RETURN
END