8      SUBROUTINE ZSUP2 (ID,N,IEXCL,IFORM,IOUT,NOUT,NFMT)LC_TITLE  ZSUP2 Formats a line of I*2 items with blanking of excluded values.C_ARGUMENTS6	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).AC-------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).IC_DESCRIPTION  The subroutine ZSUP2 will format a line of INTEGER*2 itemsGC with suppression (dotting) of excluded values.  Used in routine XBIN.LC ZSUP2 will output asterisks to the print file if the input point is out ofHC range.  ZSUP2 is invoked by BINP2, if the user has set the option for C blanking.'                                       "C_CALLS  ASCII  MVBYTE  LIMIT  MODFC_HISTORY  78March03  R.Mehlman  UCLA    DOT REPLACES BLANK 10/29/80  MC      1/12/83  NOUT calculates format and new FMT CORRECTION OF FORM nnnnA1.DC      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=1C-----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 505C-----Insert asterisks for item too large for format.  * 30   CALL MVBYTE(IAST,1,IFORM,IOUT,ICHAR)      GO TO 507C-----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+IFORMC-----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