11 INTEGER,
DIMENSION(:),
POINTER ::
ibeg 12 INTEGER,
DIMENSION(:),
POINTER ::
iend 13 INTEGER,
DIMENSION(:),
POINTER ::
valmin 14 INTEGER,
DIMENSION(:),
POINTER ::
valmax 20 INTEGER,
SAVE,
PRIVATE ::
igrp 25 INTEGER,
DIMENSION(16),
PARAMETER,
PRIVATE ::
minelt=(/4,4,4,4,5,5,6,6,7,8,9,11,13,17,26,51/)
32 TYPE(
sop_t),
INTENT(OUT) :: SOPDATA
37 NULLIFY(sopdata%VALMIN)
38 NULLIFY(sopdata%VALMAX)
43 INTEGER,
DIMENSION(:) :: KTAB
44 TYPE(
sop_t),
INTENT(OUT) :: SOPDATA
49 IF (
ALLOCATED(
ibeg))
THEN 63 print *,
'Routine RECSEARCH_GRP appelee',
icount,
'fois.' 64 print *,
'Nbre de groupes =',
igrp 65 print *,
'Nbre maxi d''elements dans groupes',gelt
66 print *,
'Nbre de bits pour coder le nombre d''elements:',bgelt
78 INTEGER,
INTENT(IN) :: IND1,IND2,ISEUIL
79 INTEGER,
DIMENSION(:),
INTENT(IN) :: ITAB
85 INTEGER :: tmpidx1,tmpidx2
90 imin = minval(itab(ind1:ind2))
91 imax = maxval(itab(ind1:ind2))
102 IF (imax > imin)
THEN 113 IF ((imax-imin)<(2**iseuil))
THEN 122 print *,
'F:(IGRP,IBEG,IEND,MAX,MIN,nbitcod)=',
igrp,
',',
ibeg(
igrp),
',',
iend(
igrp),
',',
valmax(
igrp),
',',
valmin(
igrp),
',',nbitcod
125 IF (nbitcod > 0)
THEN 129 print *,
'Appel 1 RECSEARCH_GRP (first,last,seuil):',tmpidx1,tmpidx2,nbitcod/2
139 IF ((imax-imin) < 2**15)
THEN 160 print *,
'ERROR max number of group exceeded !' 174 IF (nbitcod > 0)
THEN 178 print *,
'Appel 2 RECSEARCH_GRP (first,last,seuil):',tmpidx1,tmpidx2,nbitcod/2
189 INTEGER,
INTENT(IN) :: KX,KY
190 INTEGER,
DIMENSION(KX,KY),
INTENT(INOUT)::ITAB
192 itab(:,2:ky:2) = itab(kx:1:-1,2:ky:2)
integer, save, private igrp
integer, parameter, private mainseuil
subroutine ini_sopdata(SOPDATA)
subroutine invertcol(ITAB, KX, KY)
integer, external fminbits_in_word
integer, save, private igrpmax
integer, save, private icount
subroutine recsearch(KTAB, SOPDATA)
integer, dimension(16), parameter, private minelt
integer, dimension(:), allocatable, target, private ibeg
integer, dimension(:), allocatable, target, private valmax
integer, dimension(:), allocatable, target, private iend
integer, dimension(:), allocatable, target, private valmin
recursive subroutine, private recsearch_grp(IND1, IND2, ITAB, ISEUIL)