C CSIZE.FTN C C SETS THE CHARACTER SIZE AND MARGIN ON THE PRINTER C LUN IS LOGICAL UNIT NO. ASSIGNED TO THE PRINTER C IF ANY SIZE OTHER THAN 1 - 8 IS ENTERED, IT WILL SET SIZE TO C SIZE 3 IF ANY MARGIN, OTHER THAN 1 - 9 IS ENTERED, IT WILL SET C THE MARGIN TO 5 CAUTION: A CARRIAGE RETURN IS ISSUED AFTER THE C MARGIN IS CHANGED. THIS IS NECESSARY IN ORDER THAT THE NEXT C PRINTING HAS THE DESIRED MARGIN. AUTHOR: RAYMOND WILLIS, C U. S. FOREST SERVICE, BEREA, KY C SUBROUTINE CSIZE(LUN,SIZE,MARGIN) BYTE NULL,PLUS,S1(4),SCODE(8),MAR(4) INTEGER LUN,SIZE DATA S1,SCODE/27,91,52,119,52,51,50,49,56,55,54,53/ DATA MAR,PLUS/27,91,53,115,43/ IF(MARGIN.LE.0) MARGIN=5 IF(MARGIN.GT.9) MARGIN=5 MAR(3)=48+MARGIN IF(SIZE.LE.0) SIZE=3 IF(SIZE.GT.8) SIZE=3 S1(3)=SCODE(SIZE) IF (LUN .LT. 1) LUN=6 IF (LUN .GT. 9) LUN=6 C WRITE(LUN,100)NULL,S1,MAR ! USE THIS TO CHANGE CHARACTER C ! SIZE IN MIDDLE OF LINE WRITE(LUN,100)PLUS,S1,MAR ! USE THIS IF YOU DON'T WANT TO CHANGE C ! CHARACTER SIZE IN MIDDLE OF LINE 100 FORMAT(9A1) C A WORD OF EXPLANATION IS PROBABLY IN ORDER HERE. THE FIRST C CHARACTER IN THE ABOVE STRING IS THE PLUS SYMBOL WHICH CAUSES A C CR TO BE OUTPUT AT THE END OF THE STRING. THIS IS NECESSARY C BECAUSE A CHANGE IN THE MARGIN DOES NOT TAKE EFFECT UNTIL A CR C HAS BEEN RECEIVED. IF YOU WERE TO SEND THE STRING WITHOUT THE C CR AT THE END, YOU COULD CHANGE CHAR SIZE IN THE MIDDLE OF A C LINE. THE FORTRAN MANUAL SHOWS HOW YOU CAN SEND A LINE WITH CR C BUT NO LINE FEED, OR LINE FEED WITH NO CR BUT DOES NOT SAY HOW C YOU CAN SEND A LINE WITH NEITHER CR NOR LINE FEED. THE I/O C OPERATIONS MANUAL, SEC 2.8 (FOR RSX 3.2) POINTS OUT THAT A NULL C CHARACTER TAKES AWAY BOTH CR AND LINE FEED. BY CHANGING THE C VARIABLE PLUS TO THE VARIABLE NULL IN THE LINE ABOVE YOU WOULD C BE ABLE TO CHANGE CHARACTER SIZE IN THE MIDDLE OF A LINE. RETURN END