SUBROUTINE TVGSAV( SAVE ) C C This routine reads/writes the information to/from the C specified file. C COMMON /INPUT/ NCHRS, NAT, NTO, IN(130) COMMON /TEXTS/ DA, DO, DS, A(96), O(96), X(96), Y(96), 1 S(96), ICHRS(96), DC, C(96), QQ, TEXT(130,96) COMMON /FILED/ NFILE, FILE(40) LOGICAL*1 IN, DC, C, TEXT, QQ, FILE LOGICAL SAVE, DEFA LOGICAL*1 CT, NTEXTT BYTE IFILE(30) DIMENSION LTEXT(65,96) EQUIVALENCE (LTEXT(1,1),TEXT(1,1)) C C IFILE(1) = 'S' IFILE(2) = 'Y' IFILE(3) = ':' C C - SKIP OVER LEADING BLANKS. NAT = NAT+1 NLO = NAT DO 1000 N=NLO,NCHRS NAT = N IF( IN(N) .NE. "40 ) GO TO 1100 1000 CONTINUE RETURN C C - FIND LENGTH OF STRING. 1100 NLO = NAT J=4 DEFA = .TRUE. DO 2000 N=NLO,NCHRS IF( IN(N) .EQ. "40 ) GO TO 2100 IFILE(J)=IN(N) IF (IN(N) .EQ. ':')DEFA=.FALSE. J=J+1 2000 CONTINUE N = N-1 C 2100 NAT = N N = NAT-NLO+1 IN( NLO+N ) = 0 IFILE(J) = 0 C C - SAVE FILE NAME. NFILE = N DO 1 I=1,NFILE 1 FILE(I) = IN( NLO+I-1 ) C C - SAVE? JNO=4 IF (DEFA) JNO=1 IF( SAVE ) GO TO 2300 OPEN( UNIT=3, NAME=IFILE(JNO), TYPE='OLD', READONLY ) 2200 READ(3,2210,END=3100) AT, OT, XT, YT, ST, CT, NTEXTT 2210 FORMAT(F8.2,4F8.4,I8,7X,A1) NTEXT = NTEXTT-"40 A( NTEXT ) = AT O( NTEXT ) = OT X( NTEXT ) = XT Y( NTEXT ) = YT S( NTEXT ) = ST C( NTEXT ) = CT IF (AT.LT.-.8)GOTO 3005 READ(3,2220) ICHRS( NTEXT ), ( TEXT(I,NTEXT), I=1,ICHRS( NTEXT ) ) 2220 FORMAT(Q,130A1) GO TO 2200 3005 IVEC = -AT ICHRS(NTEXT) = IVEC O( NTEXT ) = OT READ(3,3010)(LTEXT(I,NTEXT),I=1,2*IVEC) 3010 FORMAT(10I8) GOTO 2200 C C - SAVE. 2300 OPEN( UNIT=3, NAME=IFILE(JNO), TYPE='UNKNOWN' ) DO 3000 N=1,96 IF( ICHRS(N) .LE. 0 ) GO TO 3000 NTEXTT = N+"40 WRITE(3,2310) A(N), O(N), X(N), Y(N), S(N), C(N), NTEXTT 2310 FORMAT(5F8.4,I8,4X,'---',A1,'---') IF (A(N).LT.-.8)GOTO 3050 WRITE(3,2320) ( TEXT(I,N), I=1,ICHRS(N) ) 2320 FORMAT(130A1) GOTO 3000 3050 IVEC = ICHRS( N ) WRITE(3,3010)( LTEXT(I,N),I=1,2*IVEC) 3000 CONTINUE C C - CLOSE FILE. 3100 CALL CLOSE(3) RETURN END