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