      SUBROUTINE THERMO(JCPS,N,NT,IABAND)
      INCLUDE 'com_options.f'
      IF (IPOST.EQ.-1) THEN
        JCPS = JCPS+1
        IF (JCPS.EQ.8) JCPS = 2
        IF (ITERMC.EQ.4) THEN
          CALL SUSPENDPS(0)
          CALL GSQCOL(ICOULCOUR)
          IF (ICOULCOUR.NE.JCPS-1) CALL GSCOL(JCPS-1)
          CALL GSLW(IEPBOR)
          CALL GSLT(1)
          CALL GSBND(XCADRE(1),XCADRE(3),YCADRE(1),YCADRE(3))
          CALL GSPLNEC(4,XCADRE,YCADRE)
          CALL GSLT(0)
          CALL GSLW(0)
          IF (ICOULCOUR.NE.JCPS-1) CALL GSCOL(ICOULCOUR)
          CALL GSBND(XDMIN0,XHELP,YDMI20,YDMAX)
          CALL SUSPENDPS(1)
        ELSE
          CALL TABCOL(-(JCPS*1000+17),0)
        ENDIF
        III = -NINT(REAL(100*N)/REAL(NT))
        CALL THERMOMETRE(SAUVPS,LSPS,BID,BID,BID,BID,III,0
     &                  ,7,15,ICOULTHERMO,0,IBORDTHERMO,IABAND)
      ELSE
        IF (IPROGRE.LT.0) THEN
          CALL GSPROGRE(0)
          CALL SHIFT_ORIG(-ISHIFTX,-ISHIFTY)
        ENDIF
        III = NINT(REAL(100*N)/REAL(NT))
        CALL GSBND(XDMIN,XHELP,YDMI2,YDMAX)
        CALL GSQCOL(ICOULCOUR)
        CALL GSLSS(IFONT8)
        CALL THERMOMETRE(SAUVPS,LSPS,BID,BID,BID,BID,III,0
     &                  ,7,15,ICOULTHERMO,0,IBORDTHERMO,IABAND)
        CALL GSLSS(IFONT0)
        CALL GSCOL(ICOULCOUR)
        CALL GSBND(XHELP,XDMAX,YDMIN,YDMAX)
        IF (IPROGRE.LT.0) then
          CALL GSPROGRE(2)
          CALL SHIFT_ORIG(ISHIFTX,ISHIFTY)
          CALL GSBND(XHELP*2.-XDMAX,XDMAX*2.-XHELP
     &              ,YDMIN*2.-YDMAX,YDMAX*2.-YDMIN)
       ENDIF
      ENDIF
      END
