	SUBROUTINE SCR_RDSECT(FLAG,ISEC,IUNIT)
C	---- READ IN THE SCREEN IMAGE AND FIELD DESCRIPTIONS FROM AN 
C	----	ASCII FILE
	INCLUDE 'SCREEN.FOR'
	LOGICAL*1 FLAG
	CHARACTER*80 LINE
C
	CALL SCR_RESETSCR
	FLAG=.TRUE.
	REWIND(UNIT=IUNIT,ERR=900,IOSTAT=ISTAT)
C
1	READ(IUNIT,10,END=910)LINE
10	FORMAT(A)
	IF(LINE(1:8).NE.'SECTION ')GOTO 1
C
	READ(LINE,20) ISECTNO
20	FORMAT(8X,I1)
	IF(ISECTNO.NE.ISEC)GOTO 1
C
	DO 30 NL=1,25
	READ(IUNIT,10,END=920)LINE
	IF(LINE(1:11).EQ.'END SECTION')GOTO 40
	IF(NL.EQ.25)GOTO 920
	CHRSCREEN(NL)(1:80)=LINE(1:80)
30	CONTINUE
C
40	DO 60 ND=1,51
	  READ(IUNIT,10,END=930)LINE
	  IF(LINE(1:8).EQ.'END DATA')GOTO 100
	  IF(ND.EQ.51)GOTO 930

C	**** FIELD DEFINITION LINE HAS FOLLOWING FORMAT:
C	0---0----1----1----2----2	<== COLUMN NUMBERS
C	1---5----0----5----0----5
C	aa bb c d
C	Where:	aa IS AN INTEGER REPRESENTING THE FIELD NUMBER BEING DEFINED
C		bb IS AN INTEGER TO MAP THIS FIELD INTO A SPECIFIC POSITION
C			IN THE IVAL, RVAL, AND CVAL ARRAYS.
C		c IS A CHARACTER "A", "I", OR "F" TO DEFINE DATA TYPE
C		d IS USED ONLY FOR "F" DATA TYPES AND DEFINES # OF DECIMAL 
C			PLACES

	READ(LINE, 50,ERR=940)I,IPOSITION(I),TYPE(I:I),IFRACT(I)
50	FORMAT(I2,1X,I2,1X,A,1X,I1)
	
60	CONTINUE
C
100	FLAG=.FALSE.
	INUM_FIELDS = ND - 1
	INUM_LINES = NL - 1
	CALL SCR_GETLOGSCR
	RETURN
C
900	TYPE *,'ERROR REWINDING UNIT',IUNIT	
	RETURN
910	TYPE *,'SECTION',ISEC,' NOT FOUND'
	RETURN
920	TYPE *,'NO END OF SECTION FOUND FOR SECTION',ISEC
	RETURN
930	TYPE *,'NO END OF DATA DESCRIPTION FOUND FOR SECTION',ISEC
	RETURN
940	TYPE *,'ERROR READING DATA DESCRIPTION FOR SECTION',ISEC
	RETURN
	END
