	PROGRAM CHARIO

C COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1983, 1985
C ALL RIGHTS RESERVED.
C 
C THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
C ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH LICENSE AND WITH THE
C INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY  OTHER
C COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
C OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF THE  SOFTWARE  IS  HEREBY
C TRANSFERRED.
C 
C THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT  NOTICE
C AND  SHOULD  NOT  BE  CONSTRUED  AS A COMMITMENT BY DIGITAL EQUIPMENT
C CORPORATION.
C 
C DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY  OF  ITS
C SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.

C	CDM
C	November 1981

C	Simple test for character IO, testing Forots to make
C	sure that character I/O is done.

	CHARACTER CHAR1*7,CHAR2*7
	CHARACTER CHAR3(4)*6
	CHARACTER CHAR4(1)*4,CHAR5(-2:0)*10

	CHARACTER CHAR30*8,CHAR31(-3:-2)*8, CHAR32(2)*5,CHAR33*7
	CHARACTER CHAR34(4)*9

C Formatted I/O.
C Uses FOR20.DAT for reading and writing.

	CHAR1='ABCDEFG'
	WRITE(20,100) CHAR1
100	FORMAT(A7)
	CLOSE(20)
	READ(20,100) CHAR2

	IF (CHAR2 .NE. 'ABCDEFG') WRITE 110,CHAR2,CHAR1
110	FORMAT(' ?Error 110.  CHAR1='''A7''', should = '''A7'''')

C Formatted I/O with SLIST's

	CHAR3(1)='Now is'
	CHAR3(2)=' the t'
	CHAR3(3)='ime fo'
	CHAR3(4)='r all '

	OPEN(21,FILE='CHARIO.DAT')
	WRITE(21,200) CHAR3
200	FORMAT(4A6)
	CLOSE(21)

	OPEN(22,FILE='CHARIO.DAT')
	READ(22,210) CHAR4(1),CHAR5
210	FORMAT(A4,3A10)

	IF (CHAR4(1) .NE. 'Now ') WRITE 220,CHAR4(1)
	IF (CHAR5(-2) .NE. 'is the tim') WRITE 230,CHAR5(-2)
	IF (CHAR5(-1) .NE. 'e for all ') WRITE 240,CHAR5(-1)
	IF (CHAR5(0) .NE. ' ') WRITE 250,CHAR5(0)
220	FORMAT(' ?Error 220. CHAR4(1)= '''A4''', should = ''Now ''')
230	FORMAT(' ?Error 230. CHAR5(-2)='''A10''', should = '
	1 'is the tim''')
240	FORMAT(' ?Error 240. CHAR5(-1)='''A10''', should = '
	1 'e for all ')
250	FORMAT(' ?Error 250. CHAR5(0)='''A10''', should = '' ''')

C-300-	Binary I/O

	CHAR30='MNOPQRST'
	CHAR31(-3)='NEGTWO'
	CHAR31(-2)='NEGTHREE'

	OPEN(23,FILE='CHARIO.DAT',MODE='BINARY')
	WRITE(23) CHAR30,'ABCD',CHAR31
	CLOSE(23)

C	NMOPQRSTABCDNEGTWO  NEGTHREE

	OPEN(23,FILE='CHARIO.DAT',MODE='BINARY')
	I=4
	CHAR34(I)='zyx'
	READ (23) CHAR32,CHAR33,CHAR34(I)(3:)

	IF (CHAR32(1) .NE. 'MNOPQ') TYPE 310, CHAR32(1)
	IF (CHAR32(2) .NE. 'RSTAB') TYPE 320, CHAR32(2)
	IF (CHAR33 .NE. 'CDNEGTW') TYPE 330, CHAR33
	IF (CHAR34(4) .NE. 'zyO  NEGT') TYPE 340, CHAR34(4)
310	FORMAT(' ?Error 310. Is = 'A5', should = ''MNOPQ''')
320	FORMAT(' ?Error 320. Is = 'A5', should = ''RSTNE''')
330	FORMAT(' ?Error 330. Is = 'A7', should = ',
	1 '''CDNEGTW''')
340	FORMAT(' ?Error 340. Is = 'A9', should = ''zyO  NEGT''')

	STOP 'Character I/O'
	END
