PROGRAM ASCIBIN DIMENSION X(2000000),Y(2000000) CHARACTER*80 NOME,NOMEFUORI c WRITE(5,10) type 10 10 FORMAT(2X,'ASCII INPUT FILE NAME ?',/,2X,'#--> ',$) accept 11, NOME c WRITE(5,12) type 12 12 FORMAT(2X,'BINARY OUTPUT FILE NAME ?',/,2X,'#-->',$) accept 11, NOMEFUORI CALL READASCII(X,Y,N,NOME) CALL SAVEBIN(X,Y,1,N,NOMEFUORI) STOP' DONE !' 11 FORMAT(80A) END SUBROUTINE READASCII(X,Y,N,NAME) CHARACTER*80 NAME DIMENSION X(1),Y(1) NMAX=2000000 OPEN(UNIT=1,FILE=NAME,STATUS='OLD',READONLY,ERR=20) c READ(1,*)NPTI C TYPE*,NPTI DO I=1,NMAX READ(1,*,END=10,ERR=30) X(I),Y(I) c TYPE*,I,X(I),Y(I) ENDDO 10 N=I-1 READ(1,*,END=15,ERR=30) W,F WRITE(5,40)NMAX,NMAX READ(5,50)J IF(J.EQ.1HC.OR.J.EQ.1Hc)GOTO 15 STOP'READASCII..==> TOO MANY POINTS STOP' 15 CLOSE(1) RETURN 20 STOP' READASCII..==> ERROR OPENING YOUR FILE' 30 STOP' READASCII..==> ERROR READING YOUR FILE' 40 FORMAT(1X,'READASCII..==> WARNING !!!',/,16X,'YOUR FILE 1 CONTAINS MORE THAN ',I5,' POINTS.',/,16X'ONLY THE FIRST 2 ',I5,' POINTS HAVE BEEN READ.',/,16X,'CONTINUE OR QUIT ? 3 (C/Q)',/,1X,'READASCII..==> ',$) 50 FORMAT(A) END SUBROUTINE SAVEBIN(W,YCONV,NPT0,NPT1,NOME) CHARACTER*80 NOME REAL*8 WBIN(2000000) DIMENSION W(1),YCONV(1) C CONVERTS THE ASCII DATA FROM NORMA IN C BINARY FORM TO BE READ FROM SYNTHE OPEN(UNIT=22,FILE=NOME,FORM='UNFORMATTED',STATUS='NEW') DO 500 I=NPT0,NPT1 C WAVELENGTHS ARE EXPRESSED NOW IN NANOMETERS TO CONFORM TO C THE USE OF SYNTHE WBIN(I)=0.1*W(I) c wbin(i)=w(i) WRITE(22) WBIN(I),YCONV(I) c TYPE*,I,WBIN(I),YCONV(I) 500 CONTINUE CLOSE(22) RETURN END