C C INPUT-OUTPUT ROUTINES USING QIO'S. C C BY BOB STODOLA, SEPTEMBER 1980 C SUBROUTINE OUTCH(OUTPUT, COUNT) IMPLICIT INTEGER(A - Z) BYTE OUTPUT(1) C C CALL OUTCH(BUF,COUNT) C BUF ==> CHARACTER(S) TO OUTPUT C COUNT ==> NUMBER OF CHARACTERS TO OUTPUT. IF ZERO, THE C INTERNAL BUFFER IS FLUSHED. IF -1, THE INTERNAL C BUFFER IS FLUSHED WITH A TRAILING CARRIAGE RETURN. C PARAMETER DEFSIZ = 2500 BYTE BUF COMMON/IOBUFR/BUFSIZ, NBUF, BUF(DEFSIZ) DATA BUFSIZ, NBUF/DEFSIZ, 0/ IF (COUNT .GT. 0) GOTO 2000 CALL FLUSH(COUNT) GOTO 2010 2000 CONTINUE DO 2020 IP = 1, COUNT IF (NBUF .GE. BUFSIZ-1) CALL FLUSH(0) NBUF = NBUF + 1 BUF(NBUF) = OUTPUT(IP) 2020 CONTINUE 2010 CONTINUE RETURN END SUBROUTINE FLUSH(CRFLAG) IMPLICIT INTEGER(A - Z) PARAMETER IOWAL = "410 BYTE BUF COMMON/IOBUFR/BUFSIZ, NBUF, BUF(1) DIMENSION DPB(6) DATA DPB/6*0/ IF (NBUF .LE. 0) GOTO 2060 IF (CRFLAG .NE. -1) GOTO 2080 C DO A AT END OF LINE NBUF = NBUF + 1 BUF(NBUF) = 13 2080 CONTINUE CALL GETADR(DPB, BUF) DPB(2) = NBUF CALL WTQIO(IOWAL, 1, 5, , , DPB) NBUF = 0 2060 CONTINUE RETURN END