PROGRAM BINARY c i do not know if this still works C COMBINES TO IDENTICALLY COMPUTED SPECTRA AS A WEIGHTED SUM WITH C EACH COMPONENT DOPPLER SHIFTED C PROGRAM BINARY(TAPE1,TAPE2,TAPE3,TAPE5,OUTPUT,TAPE6=OUTPUT) C TAPE5=INPUT C TAPE6=OUTPUT C TAPE1=SPECTRUM INPUT COMPONENT 1 C TAPE2=SPECTRUM INPUT COMPONENT 2 C TAPE3=SPECTRUM OUTPUT IMPLICIT REAL*8 (A-H,O-Z) DIMENSION SPECTRUM1(2,60000),SPECTRUM2(2,60000) DIMENSION A(2,100000),B(2,100000) EQUIVALENCE (A(40001),SPECTRUM1(1)),(B(40001),SPECTRUM2(1)) REAL*8 LINDAT(24) DIMENSION XMU(20),QMU(40),WLEDGE(200),TITLE(74) REAL*4 APLOT(101) DATA APLOT/101*1H / LINOUT=300 LINOUT=30000 READ(1)TEFF1,GLOG1,TITLE,WBEGIN,RESOLU,NWL,IFSURF,NMU,XMU,NEDGE, 1WLEDGE WRITE(6,1010)TEFF1,GLOG1,TITLE 1010 FORMAT( 5H TEFF,F7.0,7H GRAV,F7.3/7H TITLE ,74A1) READ(2)TEFF2,GLOG2,TITLE,WBEGIN,RESOLU,NWL,IFSURF,NMU,XMU,NEDGE, 1WLEDGE WRITE(6,1010)TEFF2,GLOG2,TITLE RATIO=1.+1./RESOLU WEND=WBEGIN*RATIO**(NWL-1) WCEN=(WBEGIN+WEND)*.5 VSTEP=2.997925E5/RESOLU WRITE(6,1005)WBEGIN,WEND,RESOLU,VSTEP 1005 FORMAT(2F12.5,F12.1,F12.5) C READ(5,1)DOP1,FRACTION1,DOP2,FRACTION2 1 FORMAT(4F10.4) WRITE(6,2)DOP1,FRACTION1,DOP2,FRACTION2 2 FORMAT(5H0DOP1,F10.4,5H KM/S,5X,9HFRACTION1,F10.4,5X,5H DOP2, 15H KM/S,F10.4,5X,9HFRACTION2,F10.4) READ(5,1) NSHIFT1=DOP1/VSTEP+.5 IF(DOP1.LT.0.)NSHIFT1=DOP1/VSTEP-.5 NSHIFT2=DOP2/VSTEP+.5 IF(DOP2.LT.0.)NSHIFT2=DOP2/VSTEP-.5 IFSURF=4 XMU(13)=NSHIFT1 XMU(14)=DOP1 XMU(15)=FRACTION1 XMU(16)=TEFF2 XMU(17)=GLOG2 XMU(18)=NSHIFT2 XMU(19)=DOP2 XMU(20)=FRACTION2 TEFF=TEFF1 GLOG=GLOG1 WRITE(3)TEFF,GLOG,TITLE,WBEGIN,RESOLU,NWL,IFSURF,NMU,XMU,NEDGE, 1WLEDGE DO 52 I=1,200000 A(I,1)=0. 52 B(I,1)=0. WRITE(6,1117) 1117 FORMAT(1H1) DO 57 IWL=1,NWL 57 READ(1)A(1,IWL+20000+NSHIFT1),A(2,IWL+20000+NSHIFT1) DO 58 IWL=1,NWL 58 READ(2)B(1,IWL+20000+NSHIFT2),B(2,IWL+20000+NSHIFT2) DO 70 IWL=1,NWL SPECTRUM=FRACTION1*SPECTRUM1(1,IWL)+FRACTION2*SPECTRUM2(1,IWL) CONT=FRACTION1*SPECTRUM1(2,IWL)+FRACTION2*SPECTRUM2(2,IWL) WRITE(3)SPECTRUM,CONT IF(IWL.GT.LINOUT)GO TO 63 WAVE=WBEGIN*RATIO**(IWL-1) RESID=SPECTRUM/CONT IRESID=RESID*1000.+.5 IPLOT=RESID*100.+1.5 IPLOT=MAX0(1,MIN0(101,IPLOT)) APLOT(IPLOT)=1HX WRITE(6,2300)IWL,WAVE,IRESID,APLOT 2300 FORMAT(1H ,I5,F11.4,I7,101A1) APLOT(IPLOT)=(1H ) 63 CONTINUE 68 CONTINUE 70 CONTINUE READ(1)NLINES1 READ(2)NLINES2 NLINES=NLINES1+NLINES2 WRITE(3)NLINES,NLINES1,NLINES2 DO 200 I=1,NLINES1 READ(1)LINDAT 200 WRITE(3)LINDAT DO 201 I=1,NLINES2 READ(2)LINDAT 201 WRITE(3)LINDAT CALL EXIT END