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

1128 lines
33 KiB
Fortran

SUBROUTINE ALIFR3(IJ)
C =====================
C
C hydrostatic and radiative equilibrium quantities -
C derivatives of the total heating and cooling rates in the
C ALI points with respect to the
C temperature, electron density, and populations
C a variant for consistent tridiagonal operator
C
INCLUDE 'IMPLIC.FOR'
INCLUDE 'BASICS.FOR'
INCLUDE 'ATOMIC.FOR'
INCLUDE 'MODELQ.FOR'
INCLUDE 'ALIPAR.FOR'
PARAMETER (T23=TWO/3.D0, T43=4.D0/3.D0)
DIMENSION DSFP1(MLVEXP),DSFP1M(MLVEXP),DSFP1D(MLVEXP),
* DSFP1P(MLVEXP),DSFPMM(MLVEXP)
C
IF(IFALI.LE.1) RETURN
WW=WC(IJ)
C
DSFT1M=0.
DSFN1M=0.
DSFT1D=0.
DSFN1D=0.
DO II=1,NLVEXP
DSFP1M(II)=0.
DSFP1D(II)=0.
END DO
c Non-standard value of ILASCT & ILMCOR
IF(ILMCOR.NE.3) GO TO 199
c
c ****1. Special expressions for the first depth - id=1
c
ID=1
LNSKIP=.NOT.LSKIP(ID,IJ)
c
c Basic auxliliary quantities - derivatives of the source function
c
EMISIV=UN/EMIS1(ID)
ABST=UN/ABSO1(ID)
S0=EMIS1(ID)*ABST
SC=ELEC(ID)*SIGEC(IJ)
SCT=SC*ABST
ST=S0+SCT*RAD1(ID)
CORR=UN/(UN-ALI1(ID)*SCT)
DSFT1=CORR*(S0*DEMT1(ID)*EMISIV-ST*DABT1(ID)*ABST)
DSFN1=CORR*(S0*DEMN1(ID)*EMISIV+SIGEC(IJ)*RAD1(ID)*ABST-
* ST*DABN1(ID)*ABST)
DO II=1,NLVEXP
DSFP1(II)=CORR*(S0*DEMP1(II,ID)*EMISIV-ST*DABP1(II,ID)*ABST)
END DO
EMISIP=UN/EMIS1(ID+1)
ABSTP=UN/ABSO1(ID+1)
S0P=EMIS1(ID+1)*ABSTP
SCP=ELEC(ID+1)*SIGE
SCTP=SCP*ABSTP
STP=S0P+SCTP*RAD1(ID+1)
CORRP=UN/(UN-ALI1(ID+1)*SCTP)
DSFT1P=CORRP*(S0P*DEMT1(ID+1)*EMISIP-STP*DABT1(ID+1)*ABSTP)
DSFN1P=CORRP*(S0P*DEMN1(ID+1)*EMISIP+SIGEC(IJ)*RAD1(ID+1)*ABSTP-
* STP*DABN1(ID+1)*ABSTP)
DO II=1,NLVEXP
DSFP1P(II)=CORRP*(S0P*DEMP1(II,ID+1)*EMISIP-
* STP*DABP1(II,ID+1)*ABSTP)
END DO
C
C
C additional quantites in case of external irradiation
C
extd=extrad(ij)
if(extd.gt.0) then
DT=UN/(DELDMZ(ID)*(ABSOT(ID)+ABSOT(ID+1)))
D0=TWO*HEXTRD(IJ)*DT*DT
E0=D0*DELDMZ(ID)*DENSI(ID)
E1=D0*DELDMZ(ID+1)*DENSI(ID+1)
DSFT1=DSFT1-E0*DABT1(ID)
DSFN1=DSFN1-E0*(DABN1(ID)+ABSO1(ID)*DENSIM(ID))
DSFX1=E0*ABSO1(ID)*DENSIM(ID)
DSFT1D=DSFT1D-E1*DABT1(ID+1)
DSFN1D=DSFN1D-E1*(DABN1(ID+1)+ABSO1(ID+1)*DENSIM(ID+1))
DSFX1D=E1*ABSO1(ID+1)*DENSIM(ID+1)
DO II=1,NLVEXP
DSFP1(II)=DSFP1(II)-E0*DABP1(II,ID)
DSFP1D(II)=DSFP1D(II)-E0*DABP1(II,ID+1)
END DO
end if
c
IF(IRDER.EQ.1.OR.IRDER.EQ.3) THEN
DSFDT(ID)=DSFT1*ALI1(ID)
DSFDN(ID)=DSFN1*ALI1(ID)
DSFDTM(ID)=DSFT1M*ALIM1(ID)
DSFDNM(ID)=DSFN1M*ALIM1(ID)
DSFDTP(ID)=DSFT1P*ALIP1(ID)
DSFDNP(ID)=DSFN1P*ALIP1(ID)
END IF
IF(IRDER.GT.1) THEN
DO II=1,NLVEXP
DSFDP(II,ID)=DSFP1(II)*ALI1(ID)
DSFDPM(II,ID)=DSFP1M(II)*ALIM1(ID)
DSFDPP(II,ID)=DSFP1P(II)*ALIP1(ID)
END DO
END IF
c
c Hydrostatic equilibrium quantities
c
WF=WW*FH(IJ)
IF(LNSKIP) THEN
FPRD(ID)=FPRD(ID)+WF*ABSO1(ID)*RAD1(ID)-
* WW*HEXTRD(IJ)*ABSO1(ID)
E0=WF*RAD1(ID)
D0=WF*ABSO1(ID)*ALI1(ID)
HEIT(ID)=HEIT(ID)+D0*DSFT1+E0*DABT1(ID)
HEIN(ID)=HEIN(ID)+D0*DSFN1+E0*DABN1(ID)
DO II=1,NLVEXP
HEIP(II,ID)=HEIP(II,ID)+D0*DSFP1(II)+E0*DABP1(II,ID)
END DO
END IF
c
c Differential equation part of radiative equilibrium
c
FLFIX(ID)=FLFIX(ID)+WF*RAD1(ID)-WW*HEXTRD(IJ)
IF(REDIF(ID).GT.0.) THEN
WF=WF*ALI1(ID)
REDT(ID)=REDT(ID)+WF*DSFT1
REDN(ID)=REDN(ID)+WF*DSFN1
DO II=1,NLVEXP
REDP(II,ID)=REDP(II,ID)+WF*DSFP1(II)
END DO
redtp(id)=redtp(id)+wf*dsft1d
rednp(id)=rednp(id)+wf*dsfn1d
END IF
c
C Integral equation part of the radiative equilibrium
C
IF(REINT(ID).GT.0) THEN
ABST=ABSO1(ID)-ELSCAT(ID)
D0=ABST*ALI1(ID)
WWKC=WW*ABST*ALIP1(ID)
FCOOLI(ID)=FCOOLI(ID)+WW*(EMIS1(ID)-ABST*RAD1(ID))
REIN(ID)=REIN(ID)+WW*(D0*DSFN1+
* RAD1(ID)*(DABN1(ID)-SIGEC(IJ))-DEMN1(ID))
CREIT(ID)=CREIT(ID)+WWKC*DSFT1P
CREIN(ID)=CREIN(ID)+WWKC*DSFN1P
DO II=1,NLVEXP
REIP(II,ID)=REIP(II,ID)+WW*(D0*DSFP1(II)+
* RAD1(ID)*DABP1(II,ID)-DEMP1(II,ID))
CREIP(II,ID)=CREIP(II,ID)+WWKC*DSFP1P(II)
END DO
REIT(ID)=REIT(ID)+WW*(D0*DSFT1+RAD1(ID)*DABT1(ID)-DEMT1(ID))
if(extd.gt.0.) then
creit(id)=creit(id)+ww*d0*dsft1d
crein(id)=crein(id)+ww*d0*dsfn1d
end if
END IF
C
c ****2. loop over depths
c
DO ID=2,ND-1
LNSKIP=.NOT.LSKIP(ID,IJ)
DSFTMM=DSFT1M
DSFNMM=DSFN1M
DO II=1,NLVEXP
DSFPMM(II)=DSFP1M(II)
END DO
DSFT1M=DSFT1
DSFN1M=DSFN1
DO II=1,NLVEXP
DSFP1M(II)=DSFP1(II)
END DO
S0=S0P
DSFT1=DSFT1P
DSFN1=DSFN1P
DO II=1,NLVEXP
DSFP1(II)=DSFP1P(II)
END DO
EMISIP=UN/EMIS1(ID+1)
ABSTP=UN/ABSO1(ID+1)
S0P=EMIS1(ID+1)*ABSTP
SCP=ELEC(ID+1)*SIGEC(IJ)
SCTP=SCP*ABSTP
STP=S0P+SCTP*RAD1(ID+1)
CORRP=UN/(UN-ALI1(ID+1)*SCTP)
DSFT1P=CORRP*(S0P*DEMT1(ID+1)*EMISIP-STP*DABT1(ID+1)*ABSTP)
DSFN1P=CORRP*(S0P*DEMN1(ID+1)*EMISIP+SIGEC(IJ)*RAD1(ID+1)*ABSTP-
& STP*DABN1(ID+1)*ABSTP)
DO II=1,NLVEXP
DSFP1P(II)=CORRP*(S0P*DEMP1(II,ID+1)*EMISIP-
& STP*DABP1(II,ID+1)*ABSTP)
END DO
IF(IRDER.EQ.1.OR.IRDER.EQ.3) THEN
DSFDT(ID)=DSFT1*ALI1(ID)
DSFDN(ID)=DSFN1*ALI1(ID)
END IF
IF(IRDER.GT.1) THEN
DO II=1,NLVEXP
DSFDP(II,ID)=DSFP1(II)*ALI1(ID)
END DO
END IF
c
c Hydrostatic equilibrium equation
c
IF(LNSKIP) THEN
D0=WW*FAK1(ID)
A0=WW*FAK1(ID-1)
FPRD(ID)=FPRD(ID)+D0*RAD1(ID)-A0*RAD1(ID-1)
E0=D0*ALIM1(ID)-A0*ALI1(ID-1)
D0=D0*ALI1(ID)-A0*ALIP1(ID-1)
HEIT(ID)=HEIT(ID)+D0*DSFT1
HEIN(ID)=HEIN(ID)+D0*DSFN1
HEITM(ID)=HEITM(ID)+E0*DSFT1M
HEINM(ID)=HEINM(ID)+E0*DSFN1M
DO II=1,NLVEXP
HEIP(II,ID)=HEIP(II,ID)+D0*DSFP1(II)
HEIPM(II,ID)=HEIPM(II,ID)+E0*DSFP1M(II)
END DO
END IF
C
C Differential equation part of radiative equilibrium
C
DDT=UN/(ABSOT(ID)+ABSOT(ID-1))
DT=DDT/DELDMZ(ID-1)
FL=(RAD1(ID)*FAK1(ID)-RAD1(ID-1)*FAK1(ID-1))*DT
FLFIX(ID)=FLFIX(ID)+WW*FL
IF(REDIF(ID).GT.0) THEN
if(ifalih.eq.0) then
D0=WW*FAK1(ID)*DT
A0=WW*FAK1(ID-1)*DT
D0M=D0*ALIM1(ID)-A0*ALI1(ID-1)
D0P=D0*ALIP1(ID)
D0=D0*ALI1(ID)-A0*ALIP1(ID-1)
E0=WW*FL*DDT
REDX(ID)=REDX(ID)+E0*ABSO1(ID)
REDXM(ID)=REDXM(ID)+E0*ABSO1(ID-1)
E0M=E0*DENSI(ID-1)
E0=E0*DENSI(ID)
REDT(ID)=REDT(ID)+D0*DSFT1-E0*DABT1(ID)
REDTM(ID)=REDTM(ID)+D0M*DSFT1M-E0M*DABT1(ID-1)
REDN(ID)=REDN(ID)+D0*DSFN1-E0*DABN1(ID)
REDNM(ID)=REDNM(ID)+D0M*DSFN1M-E0M*DABN1(ID-1)
DO II=1,NLVEXP
REDP(II,ID)=REDP(II,ID)+D0*DSFP1(II)-E0*DABP1(II,ID)
REDPM(II,ID)=REDPM(II,ID)+D0M*DSFP1M(II)-
* E0M*DABP1(II,ID-1)
END DO
else
d0=ww*alih1(id)
REDT(ID)=REDT(ID)+D0*DSFT1
REDN(ID)=REDN(ID)+D0*DSFN1
DO II=1,NLVEXP
REDP(II,ID)=REDP(II,ID)+D0*DSFP1(II)
END DO
end if
END IF
c
C Integral equation part of the radiative equilibrium
C
IF(REINT(ID).GT.0) THEN
WWK=WW*ABST
WWKA=WWK*ALIM1(ID)
WWKC=WWK*ALIP1(ID)
ABST=ABSO1(ID)-ELSCAT(ID)
D0=ABST*ALI1(ID)
FCOOLI(ID)=FCOOLI(ID)+WW*(EMIS1(ID)-ABST*RAD1(ID))
REIN(ID)=REIN(ID)+WW*(D0*DSFN1+
* RAD1(ID)*(DABN1(ID)-SIGEC(IJ))-DEMN1(ID))
DO II=1,NLVEXP
REIP(II,ID)=REIP(II,ID)+WW*(D0*DSFP1(II)+
* RAD1(ID)*DABP1(II,ID)-DEMP1(II,ID))
AREIP(II,ID)=AREIP(II,ID)+WWKA*DSFP1M(II)
CREIP(II,ID)=CREIP(II,ID)+WWKC*DSFP1P(II)
END DO
REIT(ID)=REIT(ID)+WW*(D0*DSFT1+
* RAD1(ID)*DABT1(ID)-DEMT1(ID))
AREIT(ID)=AREIT(ID)+WWKA*DSFT1M
AREIN(ID)=AREIN(ID)+WWKA*DSFN1M
CREIT(ID)=CREIT(ID)+WWKC*DSFT1P
CREIN(ID)=CREIN(ID)+WWKC*DSFN1P
END IF
END DO
C
c ****3. deepest point - ID=ND
c
ID=ND
LNSKIP=.NOT.LSKIP(ID,IJ)
DSFTMM=DSFT1M
DSFNMM=DSFN1M
DO II=1,NLVEXP
DSFPMM(II)=DSFP1M(II)
END DO
DSFT1M=DSFT1
DSFN1M=DSFN1
DO II=1,NLVEXP
DSFP1M(II)=DSFP1(II)
END DO
S0=S0P
DSFT1=DSFT1P
DSFN1=DSFN1P
DO II=1,NLVEXP
DSFP1(II)=DSFP1P(II)
END DO
C
C Improved lower boundary condition
C
IF(IBC.GT.0.AND.IDISK.EQ.0) THEN
DT=UN/(DELDMZ(ID-1)*(ABSOT(ID)+ABSOT(ID-1)))
PLAD=XKFB(ID)/XKF1(ID)
DBDT=PLAD/XKF1(ID)*HKT21(ID)*FREQ(IJ)*DT
IF(IBC.EQ.1) THEN
DSFT1=DSFT1+DBDT
ELSE IF(IBC.GE.2) THEN
PLAM=XKFB(ID-1)/XKF1(ID-1)
TAU23=T23*DT
TAU43=T43*DT
D0=(PLAD*(UN+TAU43)-T43*PLAM*DT)*DT*DT
RHD=DELDMZ(ID-1)*DENSI(ID)
E0=D0*RHD
DSFT1=DSFT1+DBDT*(UN+TAU23)-E0*DABT1(ID)
DSFN1=DSFN1-E0*(DABN1(ID)+ABSO1(ID)*DENSIM(ID))
DO II=1,NLVEXP
DSFP1(II)=DSFP1(II)-E0*DABP1(II,ID)
END DO
IF(IBC.GE.3) THEN
DBDTM=PLAM/XKF1(ID-1)*HKT21(ID-1)*FREQ(IJ)*DT
RHD=DELDMZ(ID-1)*DENSI(ID-1)
E0=D0*RHD
DSFT1D=-DBDTM*DT*T23-E0*DABT1(ID-1)
DSFN1D=-E0*(DABN1(ID-1)+ABSO1(ID-1)*DENSIM(ID-1))
DO II=1,NLVEXP
DSFP1D(II)=-E0*DABP1(II,ID-1)
END DO
END IF
END IF
END IF
C
IF(IRDER.EQ.1.OR.IRDER.EQ.3) THEN
DSFDT(ID)=DSFT1*ALI1(ID)
DSFDN(ID)=DSFN1*ALI1(ID)
DSFDTM(ID)=DSFT1M*ALIM1(ID)
DSFDNM(ID)=DSFN1M*ALIM1(ID)
DSFDTP(ID)=DSFT1P*ALIP1(ID)
DSFDNP(ID)=DSFN1P*ALIP1(ID)
END IF
IF(IRDER.GT.1) THEN
DO II=1,NLVEXP
DSFDP(II,ID)=DSFP1(II)*ALI1(ID)
DSFDPM(II,ID)=DSFP1M(II)*ALIM1(ID)
DSFDPP(II,ID)=DSFP1P(II)*ALIP1(ID)
END DO
END IF
c
c Hydrostatic equilibrium equation
c
IF(LNSKIP) THEN
D0=WW*FAK1(ID)
A0=WW*FAK1(ID-1)
FPRD(ID)=FPRD(ID)+D0*RAD1(ID)-A0*RAD1(ID-1)
E0=D0*ALIM1(ID)-A0*ALI1(ID-1)
D0=D0*ALI1(ID)-A0*ALIP1(ID-1)
HEIT(ID)=HEIT(ID)+D0*DSFT1
HEIN(ID)=HEIN(ID)+D0*DSFN1
HEITM(ID)=HEITM(ID)+E0*DSFT1M
HEINM(ID)=HEINM(ID)+E0*DSFN1M
DO II=1,NLVEXP
HEIP(II,ID)=HEIP(II,ID)+D0*DSFP1(II)
HEIPM(II,ID)=HEIPM(II,ID)+E0*DSFP1M(II)
END DO
IF(IBC.GE.3) THEN
HEITM(ID)=HEITM(ID)-D0*DSFT1D
HEINM(ID)=HEINM(ID)-D0*DSFN1D
DO II=1,NLVEXP
HEIPM(II,ID)=HEIPM(II,ID)-D0*DSFP1D(II)
END DO
END IF
END IF
C
C Differential equation part of radiative equilibrium
C
DDT=UN/(ABSOT(ID)+ABSOT(ID-1))
DT=DDT/DELDMZ(ID-1)
FL=(RAD1(ID)*FAK1(ID)-RAD1(ID-1)*FAK1(ID-1))*DT
FLFIX(ID)=FLFIX(ID)+WW*FL
IF(REDIF(ID).GT.0) THEN
D0=WW*FAK1(ID)*DT
A0=WW*FAK1(ID-1)*DT
D0M=D0*ALIM1(ID)-A0*ALI1(ID-1)
D0P=D0*ALIP1(ID)
D0=D0*ALI1(ID)-A0*ALIP1(ID-1)
E0=WW*FL*DDT
REDX(ID)=REDX(ID)+E0*ABSO1(ID)
REDXM(ID)=REDXM(ID)+E0*ABSO1(ID-1)
E0M=E0*DENSI(ID-1)
E0=E0*DENSI(ID)
REDT(ID)=REDT(ID)+D0*DSFT1-E0*DABT1(ID)
REDTM(ID)=REDTM(ID)+D0M*DSFT1M-E0M*DABT1(ID-1)
REDN(ID)=REDN(ID)+D0*DSFN1-E0*DABN1(ID)
REDNM(ID)=REDNM(ID)+D0M*DSFN1M-E0M*DABN1(ID-1)
DO II=1,NLVEXP
REDP(II,ID)=REDP(II,ID)+D0*DSFP1(II)-E0*DABP1(II,ID)
REDPM(II,ID)=REDPM(II,ID)+D0M*DSFP1M(II)-
* E0M*DABP1(II,ID-1)
END DO
IF(IBC.GE.3) THEN
REDTM(ID)=REDTM(ID)+D0*DSFT1D
REDNM(ID)=REDNM(ID)+D0*DSFN1D
DO II=1,NLVEXP
REDPM(II,ID)=REDPM(II,ID)+D0*DSFP1D(II)
END DO
END IF
END IF
c
C Integral equation part of the radiative equilibrium
C
IF(REINT(ID).GT.0) THEN
ABST=ABSO1(ID)-ELSCAT(ID)
WWKA=WW*ABST*ALIM1(ID)
D0=ABST*ALI1(ID)
FCOOLI(ID)=FCOOLI(ID)+WW*(EMIS1(ID)-ABST*RAD1(ID))
REIN(ID)=REIN(ID)+WW*(D0*DSFN1+
* RAD1(ID)*(DABN1(ID)-SIGEC(IJ))-DEMN1(ID))
DO II=1,NLVEXP
REIP(II,ID)=REIP(II,ID)+WW*(D0*DSFP1(II)+
* RAD1(ID)*DABP1(II,ID)-DEMP1(II,ID))
AREIP(II,ID)=AREIP(II,ID)+WWKA*DSFP1M(II)
END DO
IF(IBC.EQ.0) THEN
REIT(ID)=REIT(ID)+WW*(D0*DSFT1+
* RAD1(ID)*DABT1(ID)-DEMT1(ID))
ELSE
REIT(ID)=REIT(ID)+WW*(D0*(DSFT1-DBDT)+E0*DABT1(ID)+
* RAD1(ID)*DABT1(ID)-DEMT1(ID)+
* ALI1(ID)/ABST*DBDT)
END IF
AREIT(ID)=AREIT(ID)+WWKA*DSFT1M
AREIN(ID)=AREIN(ID)+WWKA*DSFN1M
END IF
RETURN
c Non-standard value of ILASCT & ILMCOR
199 IF(ILASCT.NE.0) GO TO 299
c
c ****1. Special expressions for the first depth - id=1
c
ID=1
LNSKIP=.NOT.LSKIP(ID,IJ)
c
c Basic auxliliary quantities - derivatives of the source function
c
EMISIV=UN/EMIS1(ID)
ABST=UN/(ABSO1(ID)-ELSCAT(ID))
S0=EMIS1(ID)*ABST
DSFN1=S0*(DEMN1(ID)*EMISIV-(DABN1(ID)-SIGEC(IJ))*ABST)
DSFT1=S0*(DEMT1(ID)*EMISIV-DABT1(ID)*ABST)
DO II=1,NLVEXP
DSFP1(II)=S0*(DEMP1(II,ID)*EMISIV-DABP1(II,ID)*ABST)
END DO
EMISIP=UN/EMIS1(ID+1)
ABSTP=UN/(ABSO1(ID+1)-ELSCAT(ID+1))
S0P=EMIS1(ID+1)*ABSTP
DSFN1P=S0P*(DEMN1(ID+1)*EMISIP-(DABN1(ID+1)-SIGEC(IJ))*ABSTP)
DSFT1P=S0P*(DEMT1(ID+1)*EMISIP-DABT1(ID+1)*ABSTP)
DO II=1,NLVEXP
DSFP1P(II)=S0P*(DEMP1(II,ID+1)*EMISIP-DABP1(II,ID+1)*ABSTP)
END DO
IF(IRDER.EQ.1.OR.IRDER.EQ.3) THEN
DSFDT(ID)=DSFT1*ALI1(ID)
DSFDN(ID)=DSFN1*ALI1(ID)
END IF
IF(IRDER.GT.1) THEN
DO II=1,NLVEXP
DSFDP(II,ID)=DSFP1(II)*ALI1(ID)
END DO
END IF
c
c Hydrostatic equilibrium quantities
c
WF=WW*FH(IJ)
IF(LNSKIP) THEN
FPRD(ID)=FPRD(ID)+WF*ABSO1(ID)*RAD1(ID)-
* WW*HEXTRD(IJ)*ABSO1(ID)
E0=WF*RAD1(ID)
D0=WF*ABSO1(ID)*ALI1(ID)
HEIT(ID)=HEIT(ID)+D0*DSFT1+E0*DABT1(ID)
HEIN(ID)=HEIN(ID)+D0*DSFN1+E0*DABN1(ID)
DO II=1,NLVEXP
HEIP(II,ID)=HEIP(II,ID)+D0*DSFP1(II)+E0*DABP1(II,ID)
END DO
END IF
c
c Differential equation part of radiative equilibrium
c
FLFIX(ID)=FLFIX(ID)+WF*RAD1(ID)-WW*HEXTRD(IJ)
IF(REDIF(ID).GT.0.) THEN
WF=WF*ALI1(ID)
REDT(ID)=REDT(ID)+WF*DSFT1
REDN(ID)=REDN(ID)+WF*DSFN1
DO II=1,NLVEXP
REDP(II,ID)=REDP(II,ID)+WF*DSFP1(II)
END DO
END IF
c
C Integral equation part of the radiative equilibrium
C
IF(REINT(ID).GT.0) THEN
ABST=ABSO1(ID)-ELSCAT(ID)
WWK=WW*ABST
FCOOLI(ID)=FCOOLI(ID)+WW*(EMIS1(ID)-ABST*RAD1(ID))
D0=WW*(ALI1(ID)-UN)*ABST
E0=WW*(RAD1(ID)-S0)
REIN(ID)=REIN(ID)+D0*DSFN1+E0*(DABN1(ID)-SIGEC(IJ))
REIT(ID)=REIT(ID)+D0*DSFT1+E0*DABT1(ID)
DO II=1,NLVEXP
REIP(II,ID)=REIP(II,ID)+D0*DSFP1(II)+E0*DABP1(II,ID)
END DO
END IF
C
c ****2. loop over depths
c
DO ID=2,ND-1
LNSKIP=.NOT.LSKIP(ID,IJ)
DSFTMM=DSFT1M
DSFNMM=DSFN1M
DO II=1,NLVEXP
DSFPMM(II)=DSFP1M(II)
END DO
DSFT1M=DSFT1
DSFN1M=DSFN1
DO II=1,NLVEXP
DSFP1M(II)=DSFP1(II)
END DO
S0=S0P
DSFT1=DSFT1P
DSFN1=DSFN1P
DO II=1,NLVEXP
DSFP1(II)=DSFP1P(II)
END DO
EMISIP=UN/EMIS1(ID+1)
ABSTP=UN/(ABSO1(ID+1)-ELSCAT(ID+1))
S0P=EMIS1(ID+1)*ABSTP
DSFN1P=S0P*(DEMN1(ID+1)*EMISIP-(DABN1(ID+1)-SIGEC(IJ))*ABSTP)
DSFT1P=S0P*(DEMT1(ID+1)*EMISIP-DABT1(ID+1)*ABSTP)
DO II=1,NLVEXP
DSFP1P(II)=S0P*(DEMP1(II,ID+1)*EMISIP-DABP1(II,ID+1)*ABSTP)
END DO
IF(IRDER.EQ.1.OR.IRDER.EQ.3) THEN
DSFDT(ID)=DSFT1*ALI1(ID)
DSFDN(ID)=DSFN1*ALI1(ID)
END IF
IF(IRDER.GT.1) THEN
DO II=1,NLVEXP
DSFDP(II,ID)=DSFP1(II)*ALI1(ID)
END DO
END IF
c
c Hydrostatic equilibrium equation
c
IF(LNSKIP) THEN
D0=WW*FAK1(ID)
A0=WW*FAK1(ID-1)
FPRD(ID)=FPRD(ID)+D0*RAD1(ID)-A0*RAD1(ID-1)
E0=D0*ALIM1(ID)-A0*ALI1(ID-1)
D0=D0*ALI1(ID)-A0*ALIP1(ID-1)
HEIT(ID)=HEIT(ID)+D0*DSFT1
HEIN(ID)=HEIN(ID)+D0*DSFN1
HEITM(ID)=HEITM(ID)+E0*DSFT1M
HEINM(ID)=HEINM(ID)+E0*DSFN1M
DO II=1,NLVEXP
HEIP(II,ID)=HEIP(II,ID)+D0*DSFP1(II)
HEIPM(II,ID)=HEIPM(II,ID)+E0*DSFP1M(II)
END DO
END IF
C
C Differential equation part of radiative equilibrium
C
DDT=UN/(ABSOT(ID)+ABSOT(ID-1))
DT=DDT/DELDMZ(ID-1)
FL=(RAD1(ID)*FAK1(ID)-RAD1(ID-1)*FAK1(ID-1))*DT
FLFIX(ID)=FLFIX(ID)+WW*FL
IF(REDIF(ID).GT.0) THEN
D0=WW*FAK1(ID)*DT
A0=WW*FAK1(ID-1)*DT
D0M=D0*ALIM1(ID)-A0*ALI1(ID-1)
D0P=D0*ALIP1(ID)
D0=D0*ALI1(ID)-A0*ALIP1(ID-1)
E0=WW*FL*DDT
REDX(ID)=REDX(ID)+E0*ABSO1(ID)
REDXM(ID)=REDXM(ID)+E0*ABSO1(ID-1)
E0M=E0*DENSI(ID-1)
E0=E0*DENSI(ID)
REDT(ID)=REDT(ID)+D0*DSFT1-E0*DABT1(ID)
REDTM(ID)=REDTM(ID)+D0M*DSFT1M-E0M*DABT1(ID-1)
REDN(ID)=REDN(ID)+D0*DSFN1-E0*DABN1(ID)
REDNM(ID)=REDNM(ID)+D0M*DSFN1M-E0M*DABN1(ID-1)
DO II=1,NLVEXP
REDP(II,ID)=REDP(II,ID)+D0*DSFP1(II)-E0*DABP1(II,ID)
REDPM(II,ID)=REDPM(II,ID)+D0M*DSFP1M(II)-
* E0M*DABP1(II,ID-1)
END DO
END IF
c
C Integral equation part of the radiative equilibrium
C
IF(REINT(ID).GT.0) THEN
ABST=ABSO1(ID)-ELSCAT(ID)
WWK=WW*ABST
FCOOLI(ID)=FCOOLI(ID)+WW*(EMIS1(ID)-ABST*RAD1(ID))
D0=WW*(ALI1(ID)-UN)*ABST
E0=WW*(RAD1(ID)-S0)
REIN(ID)=REIN(ID)+D0*DSFN1+E0*(DABN1(ID)-SIGEC(IJ))
REIT(ID)=REIT(ID)+D0*DSFT1+E0*DABT1(ID)
DO II=1,NLVEXP
REIP(II,ID)=REIP(II,ID)+D0*DSFP1(II)+E0*DABP1(II,ID)
END DO
END IF
END DO
C
c ****3. deepest point - ID=ND
c
ID=ND
LNSKIP=.NOT.LSKIP(ID,IJ)
DSFTMM=DSFT1M
DSFNMM=DSFN1M
DO II=1,NLVEXP
DSFPMM(II)=DSFP1M(II)
END DO
DSFT1M=DSFT1
DSFN1M=DSFN1
DO II=1,NLVEXP
DSFP1M(II)=DSFP1(II)
END DO
S0=S0P
DSFT1=DSFT1P
DSFN1=DSFN1P
DO II=1,NLVEXP
DSFP1(II)=DSFP1P(II)
END DO
C
C Improved lower boundary condition
C
IF(IBC.GT.0.AND.IDISK.EQ.0) THEN
DT=UN/(DELDMZ(ID-1)*(ABSOT(ID)+ABSOT(ID-1)))
PLAD=XKFB(ID)/XKF1(ID)
DBDT=PLAD/XKF1(ID)*HKT21(ID)*FREQ(IJ)*DT
IF(IBC.EQ.1) THEN
DSFT1=DSFT1+DBDT
ELSE IF(IBC.GE.2) THEN
PLAM=XKFB(ID-1)/XKF1(ID-1)
TAU23=T23*DT
TAU43=T43*DT
D0=(PLAD*(UN+TAU43)-T43*PLAM*DT)*DT*DT
RHD=DELDMZ(ID-1)*DENSI(ID)
E0=D0*RHD
DSFT1=DSFT1+DBDT*(UN+TAU23)-E0*DABT1(ID)
DSFN1=DSFN1-E0*(DABN1(ID)+ABSO1(ID)*DENSIM(ID))
DO II=1,NLVEXP
DSFP1(II)=DSFP1(II)-E0*DABP1(II,ID)
END DO
IF(IBC.GE.3) THEN
DBDTM=PLAM/XKF1(ID-1)*HKT21(ID-1)*FREQ(IJ)*DT
RHD=DELDMZ(ID-1)*DENSI(ID-1)
E0=D0*RHD
DSFT1D=-DBDTM*DT*T23-E0*DABT1(ID-1)
DSFN1D=-E0*(DABN1(ID-1)+ABSO1(ID-1)*DENSIM(ID-1))
DO II=1,NLVEXP
DSFP1D(II)=-E0*DABP1(II,ID-1)
END DO
END IF
END IF
END IF
C
IF(IRDER.EQ.1.OR.IRDER.EQ.3) THEN
DSFDT(ID)=DSFT1*ALI1(ID)
DSFDN(ID)=DSFN1*ALI1(ID)
END IF
IF(IRDER.GT.1) THEN
DO II=1,NLVEXP
DSFDP(II,ID)=DSFP1(II)*ALI1(ID)
END DO
END IF
c
c Hydrostatic equilibrium equation
c
IF(LNSKIP) THEN
D0=WW*FAK1(ID)
A0=WW*FAK1(ID-1)
FPRD(ID)=FPRD(ID)+D0*RAD1(ID)-A0*RAD1(ID-1)
E0=D0*ALIM1(ID)-A0*ALI1(ID-1)
D0=D0*ALI1(ID)-A0*ALIP1(ID-1)
HEIT(ID)=HEIT(ID)+D0*DSFT1
HEIN(ID)=HEIN(ID)+D0*DSFN1
HEITM(ID)=HEITM(ID)+E0*DSFT1M
HEINM(ID)=HEINM(ID)+E0*DSFN1M
DO II=1,NLVEXP
HEIP(II,ID)=HEIP(II,ID)+D0*DSFP1(II)
HEIPM(II,ID)=HEIPM(II,ID)+E0*DSFP1M(II)
END DO
IF(IBC.GE.3) THEN
HEITM(ID)=HEITM(ID)-D0*DSFT1D
HEINM(ID)=HEINM(ID)-D0*DSFN1D
DO II=1,NLVEXP
HEIPM(II,ID)=HEIPM(II,ID)-D0*DSFP1D(II)
END DO
END IF
END IF
C
C Differential equation part of radiative equilibrium
C
DDT=UN/(ABSOT(ID)+ABSOT(ID-1))
DT=DDT/DELDMZ(ID-1)
FL=(RAD1(ID)*FAK1(ID)-RAD1(ID-1)*FAK1(ID-1))*DT
FLFIX(ID)=FLFIX(ID)+WW*FL
IF(REDIF(ID).GT.0) THEN
D0=WW*FAK1(ID)*DT
A0=WW*FAK1(ID-1)*DT
D0M=D0*ALIM1(ID)-A0*ALI1(ID-1)
D0P=D0*ALIP1(ID)
D0=D0*ALI1(ID)-A0*ALIP1(ID-1)
E0=WW*FL*DDT
REDX(ID)=REDX(ID)+E0*ABSO1(ID)
REDXM(ID)=REDXM(ID)+E0*ABSO1(ID-1)
E0M=E0*DENSI(ID-1)
E0=E0*DENSI(ID)
REDT(ID)=REDT(ID)+D0*DSFT1-E0*DABT1(ID)
REDTM(ID)=REDTM(ID)+D0M*DSFT1M-E0M*DABT1(ID-1)
REDN(ID)=REDN(ID)+D0*DSFN1-E0*DABN1(ID)
REDNM(ID)=REDNM(ID)+D0M*DSFN1M-E0M*DABN1(ID-1)
DO II=1,NLVEXP
REDP(II,ID)=REDP(II,ID)+D0*DSFP1(II)-E0*DABP1(II,ID)
REDPM(II,ID)=REDPM(II,ID)+D0M*DSFP1M(II)-
* E0M*DABP1(II,ID-1)
END DO
IF(IBC.GE.3) THEN
REDTM(ID)=REDTM(ID)+D0*DSFT1D
REDNM(ID)=REDNM(ID)+D0*DSFN1D
DO II=1,NLVEXP
REDPM(II,ID)=REDPM(II,ID)+D0*DSFP1D(II)
END DO
END IF
END IF
c
C Integral equation part of the radiative equilibrium
C
IF(REINT(ID).GT.0) THEN
ABST=ABSO1(ID)-ELSCAT(ID)
WWK=WW*ABST
FCOOLI(ID)=FCOOLI(ID)+WW*(EMIS1(ID)-ABST*RAD1(ID))
D0=WW*(ALI1(ID)-UN)*ABST
E0=WW*(RAD1(ID)-S0)
REIN(ID)=REIN(ID)+D0*DSFN1+E0*(DABN1(ID)-SIGEC(IJ))
IF(IBC.EQ.0) THEN
REIT(ID)=REIT(ID)+D0*DSFT1+E0*DABT1(ID)
ELSE
REIT(ID)=REIT(ID)+D0*(DSFT1-DBDT)+E0*DABT1(ID)+
* ALI1(ID)/ABST*DBDT
END IF
DO II=1,NLVEXP
REIP(II,ID)=REIP(II,ID)+D0*DSFP1(II)+E0*DABP1(II,ID)
END DO
END IF
RETURN
C Non-standard value of ILASCT (ILASCT != 0)
c
c ****1. Special expressions for the first depth - id=1
c
299 ID=1
LNSKIP=.NOT.LSKIP(ID,IJ)
c
c Basic auxliliary quantities - derivatives of the source function
c
EMISIV=UN/EMIS1(ID)
ABST=UN/ABSO1(ID)
S0=EMIS1(ID)*ABST
DSFN1=S0*(DEMN1(ID)*EMISIV-DABN1(ID)*ABST)
DSFT1=S0*(DEMT1(ID)*EMISIV-DABT1(ID)*ABST)
DO II=1,NLVEXP
DSFP1(II)=S0*(DEMP1(II,ID)*EMISIV-DABP1(II,ID)*ABST)
END DO
EMISIP=UN/EMIS1(ID+1)
ABSTP=UN/ABSO1(ID+1)
S0P=EMIS1(ID+1)*ABSTP
DSFN1P=S0P*(DEMN1(ID+1)*EMISIP-DABN1(ID+1)*ABSTP)
DSFT1P=S0P*(DEMT1(ID+1)*EMISIP-DABT1(ID+1)*ABSTP)
DO II=1,NLVEXP
DSFP1P(II)=S0P*(DEMP1(II,ID+1)*EMISIP-DABP1(II,ID+1)*ABSTP)
END DO
IF(IRDER.EQ.1.OR.IRDER.EQ.3) THEN
DSFDT(ID)=DSFT1*ALI1(ID)
DSFDN(ID)=DSFN1*ALI1(ID)
END IF
IF(IRDER.GT.1) THEN
DO II=1,NLVEXP
DSFDP(II,ID)=DSFP1(II)*ALI1(ID)
END DO
END IF
c
c Hydrostatic equilibrium quantities
c
WF=WW*FH(IJ)
IF(LNSKIP) THEN
FPRD(ID)=FPRD(ID)+WF*ABSO1(ID)*RAD1(ID)-
* WW*HEXTRD(IJ)*ABSO1(ID)
E0=WF*RAD1(ID)
D0=WF*ABSO1(ID)*ALI1(ID)
HEIT(ID)=HEIT(ID)+D0*DSFT1+E0*DABT1(ID)
HEIN(ID)=HEIN(ID)+D0*DSFN1+E0*DABN1(ID)
DO II=1,NLVEXP
HEIP(II,ID)=HEIP(II,ID)+D0*DSFP1(II)+E0*DABP1(II,ID)
END DO
END IF
c
c Differential equation part of radiative equilibrium
c
FLFIX(ID)=FLFIX(ID)+WF*RAD1(ID)-WW*HEXTRD(IJ)
IF(REDIF(ID).GT.0.) THEN
WF=WF*ALI1(ID)
REDT(ID)=REDT(ID)+WF*DSFT1
REDN(ID)=REDN(ID)+WF*DSFN1
DO II=1,NLVEXP
REDP(II,ID)=REDP(II,ID)+WF*DSFP1(II)
END DO
END IF
c
C Integral equation part of the radiative equilibrium
C
IF(REINT(ID).GT.0) THEN
SRH=SIGE*DENS1(ID)
ABST=ABSO1(ID)
ABSTE=ABST-ELSCAT(ID)
WWK=WW*ABST
FCOOLI(ID)=FCOOLI(ID)+WW*(EMIS1(ID)-ABSTE*RAD1(ID))
D0=WW*(ABSTE*ALI1(ID)-ABST)
E0=WW*(RAD1(ID)-S0)
REIN(ID)=REIN(ID)+D0*DSFN1+E0*DABN1(ID)-WW*SIGEC(IJ)*RAD1(ID)
REIT(ID)=REIT(ID)+D0*DSFT1+E0*DABT1(ID)
DO II=1,NLVEXP
REIP(II,ID)=REIP(II,ID)+D0*DSFP1(II)+E0*DABP1(II,ID)
END DO
END IF
C
c ****2. loop over depths
c
DO ID=2,ND-1
LNSKIP=.NOT.LSKIP(ID,IJ)
DSFTMM=DSFT1M
DSFNMM=DSFN1M
DO II=1,NLVEXP
DSFPMM(II)=DSFP1M(II)
END DO
DSFT1M=DSFT1
DSFN1M=DSFN1
DO II=1,NLVEXP
DSFP1M(II)=DSFP1(II)
END DO
S0=S0P
DSFT1=DSFT1P
DSFN1=DSFN1P
DO II=1,NLVEXP
DSFP1(II)=DSFP1P(II)
END DO
EMISIP=UN/EMIS1(ID+1)
ABSTP=UN/ABSO1(ID+1)
S0P=EMIS1(ID+1)*ABSTP
DSFN1P=S0P*(DEMN1(ID+1)*EMISIP-DABN1(ID+1)*ABSTP)
DSFT1P=S0P*(DEMT1(ID+1)*EMISIP-DABT1(ID+1)*ABSTP)
DO II=1,NLVEXP
DSFP1P(II)=S0P*(DEMP1(II,ID+1)*EMISIP-DABP1(II,ID+1)*ABSTP)
END DO
IF(IRDER.EQ.1.OR.IRDER.EQ.3) THEN
DSFDT(ID)=DSFT1*ALI1(ID)
DSFDN(ID)=DSFN1*ALI1(ID)
END IF
IF(IRDER.GT.1) THEN
DO II=1,NLVEXP
DSFDP(II,ID)=DSFP1(II)*ALI1(ID)
END DO
END IF
c
c Hydrostatic equilibrium equation
c
IF(LNSKIP) THEN
D0=WW*FAK1(ID)
A0=WW*FAK1(ID-1)
FPRD(ID)=FPRD(ID)+D0*RAD1(ID)-A0*RAD1(ID-1)
E0=D0*ALIM1(ID)-A0*ALI1(ID-1)
D0=D0*ALI1(ID)-A0*ALIP1(ID-1)
HEIT(ID)=HEIT(ID)+D0*DSFT1
HEIN(ID)=HEIN(ID)+D0*DSFN1
HEITM(ID)=HEITM(ID)+E0*DSFT1M
HEINM(ID)=HEINM(ID)+E0*DSFN1M
DO II=1,NLVEXP
HEIP(II,ID)=HEIP(II,ID)+D0*DSFP1(II)
HEIPM(II,ID)=HEIPM(II,ID)+E0*DSFP1M(II)
END DO
END IF
C
C Differential equation part of radiative equilibrium
C
DDT=UN/(ABSOT(ID)+ABSOT(ID-1))
DT=DDT/DELDMZ(ID-1)
FL=(RAD1(ID)*FAK1(ID)-RAD1(ID-1)*FAK1(ID-1))*DT
FLFIX(ID)=FLFIX(ID)+WW*FL
IF(REDIF(ID).GT.0) THEN
D0=WW*FAK1(ID)*DT
A0=WW*FAK1(ID-1)*DT
D0M=D0*ALIM1(ID)-A0*ALI1(ID-1)
D0P=D0*ALIP1(ID)
D0=D0*ALI1(ID)-A0*ALIP1(ID-1)
E0=WW*FL*DDT
REDX(ID)=REDX(ID)+E0*ABSO1(ID)
REDXM(ID)=REDXM(ID)+E0*ABSO1(ID-1)
E0M=E0*DENSI(ID-1)
E0=E0*DENSI(ID)
REDT(ID)=REDT(ID)+D0*DSFT1-E0*DABT1(ID)
REDTM(ID)=REDTM(ID)+D0M*DSFT1M-E0M*DABT1(ID-1)
REDN(ID)=REDN(ID)+D0*DSFN1-E0*DABN1(ID)
REDNM(ID)=REDNM(ID)+D0M*DSFN1M-E0M*DABN1(ID-1)
DO II=1,NLVEXP
REDP(II,ID)=REDP(II,ID)+D0*DSFP1(II)-E0*DABP1(II,ID)
REDPM(II,ID)=REDPM(II,ID)+D0M*DSFP1M(II)-
* E0M*DABP1(II,ID-1)
END DO
END IF
c
C Integral equation part of the radiative equilibrium
C
IF(REINT(ID).GT.0) THEN
SRH=SIGE*DENS1(ID)
ABST=ABSO1(ID)
ABSTE=ABST-ELSCAT(ID)
WWK=WW*ABST
FCOOLI(ID)=FCOOLI(ID)+WW*(EMIS1(ID)-ABSTE*RAD1(ID))
D0=WW*(ABSTE*ALI1(ID)-ABST)
E0=WW*(RAD1(ID)-S0)
REIN(ID)=REIN(ID)+D0*DSFN1+E0*DABN1(ID)-WW*SIGEC(IJ)*RAD1(ID)
REIT(ID)=REIT(ID)+D0*DSFT1+E0*DABT1(ID)
DO II=1,NLVEXP
REIP(II,ID)=REIP(II,ID)+D0*DSFP1(II)+E0*DABP1(II,ID)
END DO
END IF
END DO
C
c ****3. deepest point - ID=ND
c
ID=ND
LNSKIP=.NOT.LSKIP(ID,IJ)
DSFTMM=DSFT1M
DSFNMM=DSFN1M
DO II=1,NLVEXP
DSFPMM(II)=DSFP1M(II)
END DO
DSFT1M=DSFT1
DSFN1M=DSFN1
DO II=1,NLVEXP
DSFP1M(II)=DSFP1(II)
END DO
S0=S0P
DSFT1=DSFT1P
DSFN1=DSFN1P
DO II=1,NLVEXP
DSFP1(II)=DSFP1P(II)
END DO
C
C Improved lower boundary condition
C
IF(IBC.GT.0.AND.IDISK.EQ.0) THEN
DT=UN/(DELDMZ(ID-1)*(ABSOT(ID)+ABSOT(ID-1)))
PLAD=XKFB(ID)/XKF1(ID)
DBDT=PLAD/XKF1(ID)*HKT21(ID)*FREQ(IJ)*DT
IF(IBC.EQ.1) THEN
DSFT1=DSFT1+DBDT
ELSE IF(IBC.GE.2) THEN
PLAM=XKFB(ID-1)/XKF1(ID-1)
TAU23=T23*DT
TAU43=T43*DT
D0=(PLAD*(UN+TAU43)-T43*PLAM*DT)*DT*DT
RHD=DELDMZ(ID-1)*DENSI(ID)
E0=D0*RHD
DSFT1=DSFT1+DBDT*(UN+TAU23)-E0*DABT1(ID)
DSFN1=DSFN1-E0*(DABN1(ID)+ABSO1(ID)*DENSIM(ID))
DO II=1,NLVEXP
DSFP1(II)=DSFP1(II)-E0*DABP1(II,ID)
END DO
IF(IBC.GE.3) THEN
DBDTM=PLAM/XKF1(ID-1)*HKT21(ID-1)*FREQ(IJ)*DT
RHD=DELDMZ(ID-1)*DENSI(ID-1)
E0=D0*RHD
DSFT1D=-DBDTM*DT*T23-E0*DABT1(ID-1)
DSFN1D=-E0*(DABN1(ID-1)+ABSO1(ID-1)*DENSIM(ID-1))
DO II=1,NLVEXP
DSFP1D(II)=-E0*DABP1(II,ID-1)
END DO
END IF
END IF
END IF
C
IF(IRDER.EQ.1.OR.IRDER.EQ.3) THEN
DSFDT(ID)=DSFT1*ALI1(ID)
DSFDN(ID)=DSFN1*ALI1(ID)
END IF
IF(IRDER.GT.1) THEN
DO II=1,NLVEXP
DSFDP(II,ID)=DSFP1(II)*ALI1(ID)
END DO
END IF
c
c Hydrostatic equilibrium equation
c
IF(LNSKIP) THEN
D0=WW*FAK1(ID)
A0=WW*FAK1(ID-1)
FPRD(ID)=FPRD(ID)+D0*RAD1(ID)-A0*RAD1(ID-1)
E0=D0*ALIM1(ID)-A0*ALI1(ID-1)
D0=D0*ALI1(ID)-A0*ALIP1(ID-1)
HEIT(ID)=HEIT(ID)+D0*DSFT1
HEIN(ID)=HEIN(ID)+D0*DSFN1
HEITM(ID)=HEITM(ID)+E0*DSFT1M
HEINM(ID)=HEINM(ID)+E0*DSFN1M
DO II=1,NLVEXP
HEIP(II,ID)=HEIP(II,ID)+D0*DSFP1(II)
HEIPM(II,ID)=HEIPM(II,ID)+E0*DSFP1M(II)
END DO
IF(IBC.GE.3) THEN
HEITM(ID)=HEITM(ID)-D0*DSFT1D
HEINM(ID)=HEINM(ID)-D0*DSFN1D
DO II=1,NLVEXP
HEIPM(II,ID)=HEIPM(II,ID)-D0*DSFP1D(II)
END DO
END IF
END IF
C
C Differential equation part of radiative equilibrium
C
DDT=UN/(ABSOT(ID)+ABSOT(ID-1))
DT=DDT/DELDMZ(ID-1)
FL=(RAD1(ID)*FAK1(ID)-RAD1(ID-1)*FAK1(ID-1))*DT
FLFIX(ID)=FLFIX(ID)+WW*FL
IF(REDIF(ID).GT.0) THEN
D0=WW*FAK1(ID)*DT
A0=WW*FAK1(ID-1)*DT
D0M=D0*ALIM1(ID)-A0*ALI1(ID-1)
D0P=D0*ALIP1(ID)
D0=D0*ALI1(ID)-A0*ALIP1(ID-1)
E0=WW*FL*DDT
REDX(ID)=REDX(ID)+E0*ABSO1(ID)
REDXM(ID)=REDXM(ID)+E0*ABSO1(ID-1)
E0M=E0*DENSI(ID-1)
E0=E0*DENSI(ID)
REDT(ID)=REDT(ID)+D0*DSFT1-E0*DABT1(ID)
REDTM(ID)=REDTM(ID)+D0M*DSFT1M-E0M*DABT1(ID-1)
REDN(ID)=REDN(ID)+D0*DSFN1-E0*DABN1(ID)
REDNM(ID)=REDNM(ID)+D0M*DSFN1M-E0M*DABN1(ID-1)
DO II=1,NLVEXP
REDP(II,ID)=REDP(II,ID)+D0*DSFP1(II)-E0*DABP1(II,ID)
REDPM(II,ID)=REDPM(II,ID)+D0M*DSFP1M(II)-
* E0M*DABP1(II,ID-1)
END DO
IF(IBC.GE.3) THEN
REDTM(ID)=REDTM(ID)+D0*DSFT1D
REDNM(ID)=REDNM(ID)+D0*DSFN1D
DO II=1,NLVEXP
REDPM(II,ID)=REDPM(II,ID)+D0*DSFP1D(II)
END DO
END IF
END IF
c
C Integral equation part of the radiative equilibrium
C
IF(REINT(ID).GT.0) THEN
SRH=SIGE*DENS1(ID)
ABST=ABSO1(ID)
ABSTE=ABST-ELSCAT(ID)
WWK=WW*ABST
FCOOLI(ID)=FCOOLI(ID)+WW*(EMIS1(ID)-ABSTE*RAD1(ID))
D0=WW*(ABSTE*ALI1(ID)-ABST)
E0=WW*(RAD1(ID)-S0)
REIN(ID)=REIN(ID)+D0*DSFN1+E0*DABN1(ID)-WW*SIGEC(IJ)*RAD1(ID)
IF(IBC.EQ.0) THEN
REIT(ID)=REIT(ID)+D0*DSFT1+E0*DABT1(ID)
ELSE
REIT(ID)=REIT(ID)+D0*(DSFT1-DBDT)+E0*DABT1(ID)+
* ALI1(ID)/ABST*DBDT
END IF
DO II=1,NLVEXP
REIP(II,ID)=REIP(II,ID)+D0*DSFP1(II)+E0*DABP1(II,ID)
END DO
END IF
RETURN
END