68 lines
2.0 KiB
Fortran
68 lines
2.0 KiB
Fortran
FUNCTION REIMAN(IB,FR)
|
|
C ======================
|
|
C
|
|
C Read table of photon energies and photo-ionization cross-sections
|
|
C from Reilman & Manson (1979, Ap. J. Suppl., 40, 815) for the species
|
|
C indicated by IB
|
|
C
|
|
C Compute linearly interpolated value of the cross-section
|
|
C at the frequency FR.
|
|
C
|
|
C (At the moment, only a few transitions are considered)
|
|
C
|
|
INCLUDE 'PARAMS.FOR'
|
|
DIMENSION HEV(30),F0(30),SIG0(30,2),SIGS(30)
|
|
C
|
|
DATA HEV /
|
|
* 130.,160.,190.,210.,240.,270.,300.,330.,360.,390.,
|
|
* 420.,450.,480.,510.,540.,570.,600.,630.,660.,690.,
|
|
* 720.,750.,780.,810.,840.,870.,900.,930.,960.,990./
|
|
DATA SIG0 /
|
|
* 3*0., 4.422E-1, 3.478E-1,
|
|
* 2.794E-1, 2.286E-1, 1.899E-1, 1.598E-1, 1.360E-1,
|
|
* 1.169E-1, 1.013E-1, 8.845E-2, 7.776E-2, 6.877E-2,
|
|
* 6.114E-2, 5.463E-2, 4.904E-2, 4.419E-2, 3.998E-2,
|
|
* 3.629E-2, 3.305E-2, 3.019E-2, 2.766E-2, 2.540E-2,
|
|
* 2.339E-2, 2.158E-2, 1.996E-2, 1.850E-2, 1.718E-2,
|
|
* 4*0., 1.981E-1, 1.584E-1,
|
|
* 1.290E-1, 1.066E-1, 8.932E-2, 7.567E-2, 6.475E-2,
|
|
* 5.589E-2, 4.862E-2, 4.259E-2, 3.754E-2, 3.329E-2,
|
|
* 2.966E-2, 2.656E-2, 2.388E-2, 2.157E-2, 1.954E-2,
|
|
* 1.777E-2, 1.621E-2, 1.484E-2, 1.362E-2, 1.253E-2,
|
|
* 1.155E-2, 1.067E-2, 9.888E-3, 9.179E-3/
|
|
C
|
|
INDEX=-IB-300
|
|
NUM=30
|
|
DO 10 I=1,NUM
|
|
F0(I)=HEV(I)*2.418573E14
|
|
SIGS(I)=SIG0(I,INDEX)
|
|
10 CONTINUE
|
|
C
|
|
IL=1
|
|
IR=NUM
|
|
DO 50 I=1,NUM-1
|
|
IF(FR.GE.F0(I).AND.FR.LE.F0(I+1)) THEN
|
|
IL=I
|
|
IR=I+1
|
|
GO TO 60
|
|
ENDIF
|
|
50 CONTINUE
|
|
C
|
|
C LINEAR INTERPOLATION:
|
|
C
|
|
60 SIGM=(SIGS(IR)-SIGS(IL))*(FR-F0(IL))/(F0(IR)-F0(IL))
|
|
* + SIGS(IL)
|
|
C
|
|
C IF OUTSIDE WAVELENGTH RANGE SET TO FIRST(LAST) VALUE:
|
|
C
|
|
IF(FR.LE.F0(1)) SIGM=SIGS(1)
|
|
IF(FR.GE.F0(NUM)) SIGM=SIGS(NUM)
|
|
C
|
|
C IF LAST NON-ZERO SIG VALUES, NO INTERPOLATION:
|
|
C
|
|
c IF(SIGS(IR).EQ.0.) SIGM=SIGS(IL)
|
|
C
|
|
REIMAN=SIGM*1.E-18
|
|
RETURN
|
|
END
|