50 lines
1.3 KiB
Fortran
50 lines
1.3 KiB
Fortran
SUBROUTINE INTXEN(W0B,W0R,X0,Z0,IWL,ILINE)
|
|
C ==========================================
|
|
C
|
|
C Interpolation in temperature and electron density from the
|
|
C Xenomorph tables for hydrogen lines to the actual valus of
|
|
C temperature and electron density
|
|
C
|
|
INCLUDE 'PARAMS.FOR'
|
|
INCLUDE 'MODELP.FOR'
|
|
DIMENSION ZZ(3),XX(3),WXB(3),WZB(3),WXR(3),WZR(3)
|
|
C
|
|
NX=2
|
|
NZ=2
|
|
NT=NTHXEN(ILINE)
|
|
NE=NEHXEN(ILINE)
|
|
C
|
|
DO 10 IZZ=1,NE-1
|
|
IPZ=IZZ
|
|
IF(Z0.LE.XNEXEN(IZZ+1,ILINE)) GO TO 20
|
|
10 CONTINUE
|
|
20 N0Z=IPZ-NZ/2+1
|
|
IF(N0Z.LT.1) N0Z=1
|
|
IF(N0Z.GT.NE-NZ+1) N0Z=NE-NZ+1
|
|
N1Z=N0Z+NZ-1
|
|
C
|
|
DO IZZ=N0Z,N1Z
|
|
I0Z=IZZ-N0Z+1
|
|
ZZ(I0Z)=XNEXEN(IZZ,ILINE)
|
|
DO 30 IX=1,NT-1
|
|
IPX=IX
|
|
IF(X0.LE.XTXEN(IX+1,ILINE)) GO TO 40
|
|
30 CONTINUE
|
|
40 N0X=IPX-NX/2+1
|
|
IF(N0X.LT.1) N0X=1
|
|
IF(N0X.GT.NT-NX+1) N0X=NT-NX+1
|
|
N1X=N0X+NX-1
|
|
DO IX=N0X,N1X
|
|
I0=IX-N0X+1
|
|
XX(I0)=XTXEN(IX,ILINE)
|
|
WXB(I0)=PRFXB(ILINE,IWL,IX,IZZ)
|
|
WXR(I0)=PRFXR(ILINE,IWL,IX,IZZ)
|
|
END DO
|
|
WZB(I0Z)=YINT(XX,WXB,X0)
|
|
WZR(I0Z)=YINT(XX,WXR,X0)
|
|
END DO
|
|
W0B=YINT(ZZ,WZB,Z0)
|
|
W0R=YINT(ZZ,WZR,Z0)
|
|
RETURN
|
|
END
|