aboutsummaryrefslogtreecommitdiff
path: root/synthe/ascibinxyatonm.for
blob: 6ed4d012645b759e59ce21918b405e871f5c4b75 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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