8       SUBROUTINE ZSUP2 (ID,N,IEXCL,IFORM,IOUT,NOUT,NFMT)L C_TITLE  ZSUP2 Formats a line of I*2 items with blanking of excluded values. C_ARGUMENTS 6 	INTEGER*2 ID(N)   ![I] Array of data to be formatted.) 	INTEGER*4 N	  ![I] Number of data items. = 	INTEGER*2 IEXCL   ![I] Data value to be suppressed (dotted). 4 	INTEGER*4 IFORM   ![I] Integer format length (1-6).  A C-------IOUT should be at least nout (N * IFORM) characters long.   @ 	LOGICAL*1 IOUT(1) ![O] Byte array for output of formatted data.F 	INTEGER NOUT	  ![O] Output number of chars to be printed (A1 format.)G 	INTEGER*2 NFMT(3) ![O] Output format statement used for IOUT (6 char).   I C_DESCRIPTION  The subroutine ZSUP2 will format a line of INTEGER*2 items G C with suppression (dotting) of excluded values.  Used in routine XBIN. L C ZSUP2 will output asterisks to the print file if the input point is out ofH C range.  ZSUP2 is invoked by BINP2, if the user has set the option for  C blanking. '                                         " C_CALLS  ASCII  MVBYTE  LIMIT  MODF C_HISTORY  78March03  R.Mehlman  UCLA    DOT REPLACES BLANK 10/29/80  M C      1/12/83  NOUT calculates format and new FMT CORRECTION OF FORM nnnnA1. D C      4/27/82  DEC version.  Nout changed from words to characters. C_END   $       INTEGER*2 ITEM(3),IDLIM(2),IDI       LOGICAL*1 IDOT /1H./5       INTEGER*2 JDMIN(6) /0,-9,-99,-999,-9999,-32767/ 4       INTEGER*2 JDMAX(6) /9,99,999,9999,32767,32767/E       INTEGER*2 IBLANK(3) /2H  ,2H  ,2H  / , IAST(3) /2H**,2H**,2H**/        INTEGER*2 IA1 /2HA1/  # !-----Check for the correct format.   4       IF (N.LE.0.OR.IFORM.LE.0.OR.IFORM.GT.6) RETURN         JFORM=IFORM-1        NOUT=N*IFORM       ITEM1=7-IFORM        IDLIM(1)=JDMIN(IFORM)        IDLIM(2)=JDMAX(IFORM)        ICHAR=1    C-----Loop on data items.          DO 50 I=1,N          IDI=ID(I) "         IF (IDI.EQ.IEXCL) GO TO 40"         CALL LIMIT(IDI,IDLIM,0,IR)         IF (IR.NE.0) GO TO 30   ( C-----Format in-range non-excluded item.           CALL ASCII(IDI,ITEM)0         CALL MVBYTE(ITEM,ITEM1,IFORM,IOUT,ICHAR)       GO TO 50  5 C-----Insert asterisks for item too large for format.    *  30   CALL MVBYTE(IAST,1,IFORM,IOUT,ICHAR)       GO TO 50  7 C-----blank excluded item, place dot to right of field.   ,  40   CALL MVBYTE(IBLANK,1,IFORM,IOUT,ICHAR),       CALL MVBYTE(IDOT,1,1,IOUT,ICHAR+JFORM)  50   ICHAR=ICHAR+IFORM    C-----End loop on data items. ( C     construct format for output items.         CALL ASCII(NOUT,ITEM) "       CALL MVBYTE(ITEM,3,4,NFMT,1)       NFMT(3)=IA1        RETURN	       END 