C MAXIN6    SOURCE    JC220346  16/06/15    21:15:05     8971           
      subroutine maxin6(ipoin1,ipoin2,ipoin3,montyp,kplus,labs)
C   min max entre 2 listreel ou 2 listenti
      implicit real*8(a-h,o-z)
      implicit integer (i-n)
      character*(8) montyp

-INC PPARAM
-INC CCOPTIO
-INC SMLREEL
-INC SMLENTI
      if( MONTYP.eq.'LISTENTI') then
* cas des listenti
    1   continue
        mlenti=ipoin1
        mlent1=ipoin2
        segact mlenti,mlent1
        jg=lect(/1)
        if( mlent1.lect(/1).ne.jg) then
          call erreur(217)
          return
        endif
        segini mlent2
        ipoin3=mlent2
        if( kplus.eq.1) then
          if (labs.eq.0) then
             do i=1,jg
               mlent2.lect(i)= max(lect(i),mlent1.lect(i))
             enddo
          else
             do i=1,jg
               mlent2.lect(i)= max(abs(lect(i)),abs(mlent1.lect(i)))
             enddo
          endif
        else
          if (labs.eq.0) then
             do i=1,jg
               mlent2.lect(i)= min(lect(i),mlent1.lect(i))
             enddo
          else
             do i=1,jg
               mlent2.lect(i)= min(abs(lect(i)),abs(mlent1.lect(i)))
             enddo
          endif
        endif
        segdes mlenti,mlent1,mlent2
        mlenti=mlent2
        call lirobj(montyp,ipoin2,0,iretou)
        if(iretou.ne.0) go to 1
      elseif( MONTYP.eq.'LISTREEL') then
* cas des listreels
    2   continue
        mlreel=ipoin1
        mlree1=ipoin2
        segact mlreel,mlree1
        jg=prog(/1)
        if( mlree1.prog(/1).ne.jg) then
          call erreur(217)
          return
        endif
        segini mlree2
        ipoin3=mlree2
        if( kplus.eq.1) then
          if (labs.eq.0) then
            do i=1,jg
              mlree2.prog(i)= max(prog(i),mlree1.prog(i))
            enddo
          else
            do i=1,jg
              mlree2.prog(i)= max(abs(prog(i)),abs(mlree1.prog(i)))
            enddo
          endif
        else
          if (labs.eq.0) then
            do i=1,jg
              mlree2.prog(i)= min(prog(i),mlree1.prog(i))
            enddo
          else
            do i=1,jg
              mlree2.prog(i)= min(abs(prog(i)),abs(mlree1.prog(i)))
            enddo
          endif
        endif
        segdes mlreel,mlree1,mlree2
        mlreel=mlree2
        call lirobj(montyp,ipoin2,0,iretou)
        if(iretou.ne.0) go to 2
      endif
      return
      end


 
