36 lines
878 B
Fortran
36 lines
878 B
Fortran
SUBROUTINE INPBF
|
|
C ================
|
|
C
|
|
INCLUDE 'PARAMS.FOR'
|
|
INCLUDE 'MODELP.FOR'
|
|
PARAMETER (MINPUT=MLEVEL+4)
|
|
DIMENSION DEPTH(MDEPTH),X(MINPUT,MDEPTH),XX(MDEPTH),BF(MDEPTH)
|
|
C
|
|
OPEN(8,FILE='bfactors',STATUS='OLD')
|
|
NUMLT=3
|
|
IF(INMOD.EQ.2) NUMLT=4
|
|
READ(8,*) NDPTH,NUMPAR
|
|
READ(8,*) (DEPTH(I),I=1,NDPTH)
|
|
IF(NUMPAR.LT.0) NUMLT=NUMLT+1
|
|
NUMP=ABS(NUMPAR)
|
|
DO ID=1,NDPTH
|
|
READ(8,*) (X(I,ID),I=1,NUMP)
|
|
END DO
|
|
CLOSE(8)
|
|
c
|
|
c interpolate the input b-factors to the original DM-scale;
|
|
c compute new NLTE populations
|
|
c
|
|
DO I=NUMLT+1,NUMP
|
|
DO ID=1,NDPTH
|
|
XX(ID)=X(I,ID)
|
|
END DO
|
|
CALL INTERP(DEPTH,XX,DM,BF,NDPTH,ND,2,1,1)
|
|
DO ID=1,ND
|
|
POPUL(I-NUMLT,ID)=POPUL(I-NUMLT,ID)*BF(ID)
|
|
END DO
|
|
END DO
|
|
C
|
|
RETURN
|
|
END
|