c -----------------------------------------------------------------------
c cette routine retourne les noms complets des fichiers trouves dans
c un intervalle horaire, entre les fenetres nw1 et nw2 (comprises).
c fname contient les noms pour la fenetre nw2
c ftime contient les temps en secondes

c -----------------------------------------------------------------------
      Subroutine fnomw(lettre,ftype,nw1,nw2,date,ideb,ifin,
c                -----   in     in in  in     in   in   in 
     1                  nfm,fname,ftime,istop,repert)
c                       out,out,  out,  out   in
      implicit none      
c INPUT:
c Ftype = STRING contenant le modele de filtre de fichiers
c NW1, NW2 = INTEGER*4
c      indices de debut et de fin de balayage de la table des cameras
c DATE = INTEGER*4 date recherchee
c ideb = HHMMSSCS (heure de debut; exemple 10340710 pour 10h34mn07s10cs) (I*4)
c ifin = HHMMSSCS (heure de fin;   exemple 11045620 pour 11h04mn56s20cs) (I*4)
c ISTOP = INTEGER*4 non utilise
c REPERT= STRING repertoire de lecture

c OUTPUT:
c nfm = nombre de fichiers trouves (INTEGER*4)
c fname = tableau contenant le nom des nf fichiers trouves (Tableau de STRING0
c ftime = tableau contenant les heures des nf fichiers trouves (Tableau I*4)
c  
      character*1 lettre
      character*41 ftype(8)
      integer*4 nw1,nw2
      integer*4 date
      integer*4 ideb,ifin
      character*41 fname(10000)
      integer*4 ftime(10000)
      integer*4 nfm
      integer*4 istop
      character*80 repert



      character*8 hdeb,hfin,h_der_fic
      character*6 d
      integer*4 num,k,nw, nf    
      integer*4 i,j,ier,jjj
      integer*4 ideb2,ifin2,ifinfic,icycle,ifinmax
      logical*4 present
      character*150 file
      character*80 line
      character*3 cycle, sequence
      integer*4 Irep
      character*41 fic1
c
      Ifinmax=0                      !Heure maximale
      nf=0
c
c Effacer les fichiers *.lis : ml.lis et tableau.lis
c
      inquire(file='ml.lis',exist=present)
      if(present) call system('rm ml.lis')
      inquire(file='tableau.lis',exist=present)
      if(present) call system('rm tableau.lis')     

c
10    format(a9)
11    format(1x,a6)
99    format(I8.8)
98    format(i6.6)
      encode(6,98,d)date
      encode(8,99,hdeb)ideb
             CALL HSTR_HCS( Hdeb, Ideb2) !Heure en cent de secondes
      encode(8,99,hfin)ifin
             CALL HSTR_HCS( Hfin, Ifin2) !Heure en cent de secondes
       if(ifin2.eq.0) ifin2=ideb2

c      write(3,*)' ideb,hdeb,ideb2 ',ideb,hdeb,ideb2
c      write(3,*)' ifin,hfin,ifin2 ',ifin,hfin,ifin2

      irep=1
       DO WHILE (repert(irep:irep).NE.' ')
                irep=irep+1
        END DO 
         type *,repert(1:irep)
         irep=irep-1


c Boucle PRINCIPALE sur les fenetres

         do nw=nw1,nw2

c           fic1=ftype(nw)
c           fic1(2:7)=d
c           fic1(25:25)=lettre

c           CALL FIND_SEQ_CYCL(Repert, Fic1, hdeb, Sequence, Cycle)
c 
c 2.Faire un ls sur la sequence et le cycle et sauver les noms de fichiers
c   dans un tableau
c
c     BOUCLE SUR LES CYCLES
15           fic1=ftype(nw)

c             fic1(9:11)=sequence
c             fic1(13:15)=cycle
            if (ideb.eq.0) fic1(25:25)=lettre
             type *,'Cycle :',cycle
             type *,'Sequence :',sequence
             type *,'Nw :',nw
c             File=repert(1:irep)//fic1
		File='"'//fic1//'"' 
	type *,'FILE: ',file
c            call system('ls '//file //'>> tableau.lis') 
       call system
     1 ('find '//repert(1:irep)//' -name '//file//' >> tableau.lis ')        
c                        
c      write(3,*)' file '
c      write(3,*)file

            Num=0
            open(unit=11,status='old',file='tableau.lis')
c               Traitement d'un cycle
 4          read(11,'(a)',iostat=ier,end=200) line

c      write(3,*)line

            if(line(1:5).eq.'     ')stop 'erreur pas autre cycle'
            if(ier.ne.0) goto 3
            h_der_fic=line(irep+30:irep+37)
             CALL HSTR_HCS( H_der_fic, Ifinfic)

c      write(3,*)' h_der_fic,ideb2,ifin2,ifinfic ',
c     1            h_der_fic,ideb2,ifin2,ifinfic

             IF (ifinfic.ge.ideb2) then !SELECTION DES HEURES
                IF (ifinfic.le.ifin2)then
                   nf=nf+1
                   if(nf.gt.10000)
     X                    STOP 'Too much files. Max allowed: 10000'
                   fname(nf)=line(irep+1:irep+42)
1     format('fnomw: fname= ',a41)
c      write(3,1)fname(1)
                   ftime(nf)=ifinfic
                endif
             endif
                  IF (Ifinfic.Gt.Ifinmax) Ifinmax=Ifinfic
             go to 4 
c                Fin d'un cycle
 200   CONTINUE               !En fin de liste
        call system('rm tableau.lis')

c
c Si l heure du dernier fichier est inferieure a l heure de fin incrementer
c le numero de cycle, sauf si aucun fichier n a ete trouve dans le cycle
c
               IF (Num.EQ.0) GOTO 3  !Pas de fichier dans le cycle

              if(ifinmax.lt.ifin2)then
                 decode(3,100,cycle)icycle
                 icycle=icycle+1
                 encode(3,100,cycle)icycle
100   format(i3.3)
                  num=num+1
                  go to 15
c                                FIN DE BOUCLE SUR LES CYCLES 
               endif  
3          close(unit=11)     

      enddo                     !FIN DE BOUCLE SUR LES FENETRES
      nfm=nf                    !nombre de fichiers

        return
        end
        
