SUBROUTINE MNEWMOD C Create a new model file INCLUDE 'BINFIT.INC' INCLUDE 'MODEL.INC' C Return here on file open error 25 IER = GETIN(MODDSN, 1 ' Name of new model file to be created: ', L) IF (IER.NE.1) CALL EXIT IER = VLBOPE(INMOD, MODDSN, 'MODEL', 'NEW', MODDSN) IF (IER.NE.1) GOTO 25 ! Try again C Explanation of the new model CALL MODHELP WRITE(OUTC,'(A,(3X,F5.1,2X,$))') 1 ' Filter wavelengths (nm) are:',(LAMBDA0(IG),IG=1,NFILT) C Type in the new model. IC = 0 DO WHILE (IC .LE. MXMOD) CALL CREADMDL(INC,ICTMP,MODLAMBDA,P3,P4,P5,P6,P7,P8,P9, 1 DMAGMAX,*45,0) NCOMP = MAX(IC,ICTMP) IC = ICTMP IF ( IC .EQ. 0 ) THEN CALL MODHELP ELSE IF ( IC .LE. MXMOD ) THEN D WRITE(OUTC,'(A,I2)') ' Work on component ',IC D WRITE(OUTC,'(A,I2)') ' Value of IG is ',IG D WRITE(OUTC,'(A,I2)') ' Value of NFILT is ', NFILT FOUND = .FALSE. DO IG = 1, NFILT D WRITE(OUTC,'(A,I3)') ' Filter loop ',IG D WRITE(OUTC,'(A,I2,A,I2,A,F7.3,A,I2,A,F7.3)') D 1 ' Try filter ',IG,' of ',NFILT, D 2 ' with MODLAMBDA = ',MODLAMBDA, D 3 ' and LAMBDA0(',IG,') = ',LAMBDA0(IG) IF ( ABS(MODLAMBDA-LAMBDA0(IG)) .LT. 1.0 ) 1 THEN FOUND = .TRUE. WRITE(OUTC,'(1X,F5.1,A,I2)') LAMBDA0(IG), 1 ' nm wavelength is filter number ',IG IF ( (IC.EQ.1) .AND. (IG.EQ.1) ) THEN PARM(1,1,1) = P3 ! Separation PARM(1,1,2) = P4 ! Position angle PARM(1,1,3) = P5 ! Diam PARM(1,1,8) = P6 ! Total flux(1) ELSE IF ( (IC.EQ.1) .AND. (IG.NE.1) ) THEN PARM(1,IG,4) = P3 ! Diam(IG)/Diam(1) PARM(1,IG,6) = P4 ! Color PARM(1,IG,8) = P5 ! Total flux(IG) ELSE IF ( (IC.NE.1) .AND. (IG.EQ.1) ) THEN PARM(IC,1,1) = P3 ! Separation(IC) PARM(IC,1,2) = P4 ! Position angle PARM(IC,1,3) = P5 ! Diam PARM(IC,1,5) = P6 ! Mag. difference ELSE IF ( (IC.NE.1) .AND. (IG.NE.1) ) THEN PARM(IC,IG,4) = P3 ! Diam(IG)/Diam(1) PARM(IC,IG,6) = P4 ! Color END IF END IF IF (.NOT.FOUND .AND. IG.GE.NFILT 1 .AND. MODLAMBDA.GE.10.) THEN WRITE(OUTC,'(1X,F5.1,A)') MODLAMBDA, 1 ' nm does not match wavelengths in data files' END IF END DO ELSE WRITE(OUTC,'(1X,I4,A,I4,A)') ICTMP, 1 ' components are too many; limit is ',MXMOD,'.' END IF END DO 45 CONTINUE ! Come here on ^Z exit from CREADMDL CALL CWRITEMD(INMOD,' ',PARM,0,0) RETURN END