      SUBROUTINE   PRNUPD
     I                   (MESSFL,SCLU,SGRP,INIT,ILEN,IVAL)
C
C     + + + PURPOSE + + +
C     display update of a task being performed on a buffer of soils
C
C     + + + DUMMY ARGUMENTS + + +
      INTEGER   MESSFL,SCLU,SGRP,INIT,ILEN(2),IVAL(2)
C
C     + + + ARGUMENT DEFINITIONS + + +
C     MESSFL - Fortran unit number for message file
C     SCLU   - cluster number on message file
C     SGRP   - group number on message file
C     INIT   - flag indicating first write to screen
C     ILEN   - length of integer values
C     IVAL   - integer values to be displayed
C
C     + + + LOCAL VARIABLES + + +
      INTEGER      I,J,I1,I9,I80,IP1,IP2,LEN,JUST,IOFF,LIN
      CHARACTER*1  TBUFF(80),CHAND,BLNK
      CHARACTER*10 LBUFF
C
C     + + + EQUIVALENCES + + +
      EQUIVALENCE (LBUFF,LBUF1)
      CHARACTER*1  LBUF1(10)
C
C     + + + SAVES + + +
      SAVE         IP1,IP2
C
C     + + + FUNCTIONS + + +
      INTEGER      STRFND, ZLNTXT, LENSTR, ZCMDON
C
C     + + + EXTERNALS + + +
      EXTERNAL     STRFND, ZLNTXT, LENSTR, ZCMDON, ZIPC, GETTXT
      EXTERNAL     ZBLDWR, ZWRSCR, INTCHR, CHRINS
C
C     + + + END SPECIFICATIONS + + +
C
      I1   = 1
      I9   = 9
      I80  = 80
      JUST = 0
      BLNK = ' '
      CHAND= '&'
C
      IF (INIT.EQ.1) THEN
C       different question than last time, get new text
        CALL ZIPC (I80,BLNK,TBUFF)
        LEN= I80
        CALL GETTXT (MESSFL,SCLU,SGRP,LEN,TBUFF)
        IP1= STRFND(LEN,TBUFF,I1,CHAND)
        CALL INTCHR (IVAL(1),ILEN(1),JUST,
     O               I,LBUF1)
        TBUFF(IP1)= LBUF1(1)
        LEN= LEN+ ILEN(1)
        DO 10 I= 2,ILEN(1)
          CALL CHRINS (LEN,IP1+I-1,LBUF1(I),TBUFF)
 10     CONTINUE
        IP2= STRFND(LEN,TBUFF,I1,CHAND)
        CALL INTCHR (IVAL(2),ILEN(2),JUST,
     O               I,LBUF1)
        TBUFF(IP2)= LBUF1(1)
        LEN= LEN+ ILEN(2)
        DO 20 I= 2,ILEN(2)
          CALL CHRINS (LEN,IP2+I-1,LBUF1(I),TBUFF)
 20     CONTINUE
        I= 80
        LEN= LENSTR (I,TBUFF)
        CALL ZBLDWR (LEN,TBUFF,I1,I1,J)
        IF (LEN.LT.78) THEN
C         offset integer positions for centering
          IOFF= (78-LEN)/2+ 1.51
          IP1 = IP1+ IOFF
          IP2 = IP2+ IOFF
        END IF
      ELSE
C       same message as last time, just update numbers
        LBUFF= ' '
        I= 20
        IF (ZCMDON(I).EQ.1) THEN
C         'Quiet' available, smaller data window
          LIN= 6
        ELSE
C         'Quiet' not available, larger data window
          LIN= 9
        END IF
        CALL INTCHR (IVAL(1),ILEN(1),JUST,
     O               I,LBUF1)
        LEN= ZLNTXT(LBUFF)
        CALL ZWRSCR (LBUFF(1:LEN),LIN,IP1)
        LBUFF= ' '
        CALL INTCHR (IVAL(2),ILEN(2),JUST,
     O               I,LBUF1)
        LEN= ZLNTXT(LBUFF)
        CALL ZWRSCR (LBUFF(1:LEN),LIN,IP2)
      END IF
C
      RETURN
      END
