C PRZOOM    SOURCE    PV        05/09/22    21:25:53     5181
      SUBROUTINE PRZOOM(IRESU,ISORT,IQUALI,INUMNO,INUMEL,XMI,
     *                  XMA,YMI,YMA)
      IMPLICIT INTEGER(I-N)
-INC CCREEL

-INC PPARAM
-INC CCOPTIO
      character*9 legend(5)
      if (iogra.eq.6) then
*   opengl traitement particulier
       call oglzoom(ixmi,ixma,iymi,iyma)
       return
      endif
*     affichage du nouveau menu
      legend(1)='Fin trace'
      legend(2)='  ini'
      legend(3)=' zoom +'
      legend(4)=' zoom -'
      legend(5)='  pan'
      ncase=5
      llong=9
      call menu(legend,ncase,llong)
      call trmess('Choisissez une fonction')
      call traff(icle)
      if (icle.eq.1) then
        CALL INI(IRESU,ISORT,IQUALI,INUMNO,INUMEL,XMI,XMA,YMI,YMA)
      endif
      if (icle.eq.2) then
        call trmess('Donnez un coin de la zone à agrandir')
        call TRDIG(XxRO,XxCOL,ICLE)
        call trmess('Donnez un autre coin de la zone à agrandir')
        call TRDIG(yrO,yCOL,ICLE)
*  FENETRE NON DEFORMANTE
        XMI=MIN(XXRO,YRO)
        XMA=MAX(XXRO,YRO)
        YMI=MIN(XXCOL,YCOL)
        YMA=MAX(XXCOL,YCOL)
        XMA=MAX(XMA,YMA-YMI+XMI)
        YMI=MIN(YMI,-XMA+XMI+YMA)
        IF (XMI.EQ.XMA) XMA=XMA*1.01+1E-30
        IF (YMI.EQ.YMA) YMA=YMA*1.01+1E-30
*  ON NE CHANGE PAS LE CADRE
        XMIN=XMI
        XXAX=XMA
        YMIN=YMI
        YYAX=YMA
        ISORT=0
        IRESU=2
        call zoom(1,XMI,XMA,YMI,YMA)
        isort=0
        iresu=2
      endif
      if (icle.eq.3) then
        call trmess('Donnez un coin de la reduction')
        call TRDIG(XxRO,XxCOL,ICLE)
        call trmess('Donnez un autre coin de la reduction')
        call TRDIG(yrO,yCOL,ICLE)
*  FENETRE NON DEFORMANTE
        XMI=MIN(XXRO,YRO)
        XMA=MAX(XXRO,YRO)
        YMI=MIN(XXCOL,YCOL)
        YMA=MAX(XXCOL,YCOL)
        XMA=MAX(XMA,YMA-YMI+XMI)
        YMI=MIN(YMI,-XMA+XMI+YMA)
*        IF (XMI.EQ.XMA) XMA=XMA*1.01+1E-30
        IF (XMI.EQ.XMA) XMA=XMA*1.01+xpetit
*        IF (YMI.EQ.YMA) YMA=YMA*1.01+1E-30
        IF (YMI.EQ.YMA) YMA=YMA*1.01+xpetit
*  ON NE CHANGE PAS LE CADRE
        XMIN=XMI
        XXAX=XMA
        YMIN=YMI
        YYAX=YMA
        ISORT=0
        IRESU=2
        call zoom(-1,XMI,XMA,YMI,YMA)
        isort=0
        iresu=2
      endif
      if (icle.eq.4) then
        call trmess('Donnez le point source')
        call TRDIG(XxRO,XxCOL,ICLE)
        call trmess('Donnez le point cible')
        call TRDIG(yrO,yCOL,ICLE)
*  FENETRE NON DEFORMANTE
        XMI=XXRO
        XMA=YRO
        YMI=XXCOL
        YMA=YCOL
        XMIN=XMI
        XXAX=XMA
        YMIN=YMI
        YYAX=YMA
        ISORT=0
        IRESU=2
        call zoom(0,XMI,XMA,YMI,YMA)
        isort=0
        iresu=2
      endif
*
      end




