c    **************************************************************************
c     todos2-b.f modificado de tosos2.f -> apenas nao imprime o numero do 
c                                          agente em frequencia.dat (jun/04)
c
c     todos-fim.f = janeiro/ 2004 - dada uma sequencia de 0 e 1, 
c                  calcula a probalidade  de seguir a memoria (p1)
c                  (frequencia da memoria), para todos os agentes.
c                  ignora os M primeiros registros (ou seja, trnasiente)
c                  calculo com registro a cada 1000 time steps 
C                  anota resultado para cada agente.
c            
c
c            
c     C Prado 
c    ************************************************************************** 
c                
c
c     Principais variaveis e parametros
c
c     dados = nome do arquivo de dados
c     p00, p01, p10 e p11 ---> probabilidades condicionais
c     N = numero de pontos na serie
c
c
c
      integer N,t,p0,p1,vei,vef
c      real p00,p01,p10,p11,pp1,pp0
      logical first
      character*40 dados
c
c     ARQUIVO pc.dat as probabilidaes condicionais
c
      open(unit=90,file='frequencia.dat',status='unknown')
c
      open(unit=1,file='ag1.dat',status='old')
      open(unit=2,file='ag2.dat',status='old')
      open(unit=3,file='ag3.dat',status='old')  
      open(unit=4,file='ag4.dat',status='old')
      open(unit=5,file='ag5.dat',status='old')
      open(unit=6,file='ag6.dat',status='old')
      open(unit=7,file='ag7.dat',status='old')
      open(unit=8,file='ag8.dat',status='old')
      open(unit=9,file='ag9.dat',status='old')
      open(unit=10,file='ag10.dat',status='old')
      open(unit=11,file='ag11.dat',status='old')
      open(unit=12,file='ag12.dat',status='old')
      open(unit=13,file='ag13.dat',status='old')
      open(unit=14,file='ag14.dat',status='old')
      open(unit=15,file='ag15.dat',status='old')
      open(unit=16,file='ag16.dat',status='old')
      open(unit=17,file='ag17.dat',status='old')
      open(unit=18,file='ag18.dat',status='old')
      open(unit=19,file='ag19.dat',status='old')
      open(unit=20,file='ag20.dat',status='old')
c
      open(unit=21,file='ag1-p1f.dat',status='unknown')
      open(unit=22,file='ag2-p1f.dat',status='unknown')
      open(unit=23,file='ag3-p1f.dat',status='unknown')
      open(unit=24,file='ag4-p1f.dat',status='unknown')
      open(unit=25,file='ag5-p1f.dat',status='unknown')
      open(unit=26,file='ag6-p1f.dat',status='unknown')
      open(unit=27,file='ag7-p1f.dat',status='unknown')
      open(unit=28,file='ag8-p1f.dat',status='unknown')
      open(unit=29,file='ag9-p1f.dat',status='unknown') 
      open(unit=30,file='ag10-p1f.dat',status='unknown')
      open(unit=31,file='ag11-p1f.dat',status='unknown')
      open(unit=32,file='ag12-p1f.dat',status='unknown')
      open(unit=33,file='ag13-p1f.dat',status='unknown')
      open(unit=34,file='ag14-p1f.dat',status='unknown')
      open(unit=35,file='ag15-p1f.dat',status='unknown')
      open(unit=36,file='ag16-p1f.dat',status='unknown')
      open(unit=37,file='ag17-p1f.dat',status='unknown')
      open(unit=38,file='ag18-p1f.dat',status='unknown')
      open(unit=39,file='ag19-p1f.dat',status='unknown')
      open(unit=40,file='ag20-p1f.dat',status='unknown')
c
c     
c     --------------------------------
c     inicio do calculo para agente i
c     --------------------------------
c
c
      do iarq=1,20
c
      p1=0
      first = .false.
c
      nprint = 1000
      nnp = 0
c
         read(iarq,*) N
c         write(90,*)N,vei
c
c     M = numero de pontos jogados fora
c
         M=400000
c
         if(iarq .eq.1) then
          write(90,*)'frequencia da memoria ( = 1) apos ',N,' iteracoes'
          write(90,*)'numero de pontos inicias a jogar fora: M = ',M
          write(90,*)'                     '
          write(90,*)'-------------------------------------'
          write(90,*)'agente     frequencia da memoria'
         endif 
c
         do i=1,M
            nnp = nnp + 1
            if(nnp .eq. nprint) nnp = 0
            read(iarq,*) vef
         enddo
c
c     inicio da contagem
c
         do t=1,N-M
            nnp = nnp + 1
            read(iarq,*) vef
c
c     faz a contagem da frequencia
c
            if(vef.eq.0) then
               p0=p0+1
            else
               p1=p1+1
            endif
c
            vei=vef
c
            ap1=p1
            ap1 = ap1/t
            ap0=p0
            ap0=ap0/t       
c           
c     imprime a serie temporal para o agente i
c
            if (nnp .eq. nprint) then
               nnp = 0
               if(first) then
                  ip1 = iarq + 20
                  write(ip1,*)t+M,ap1
               endif
               first = .true.
            endif
c
         enddo
c
c     anota as contagens finais para o agente i
c
         ipc = 90
c         write(ipc,109) iarq,ap1
         write(ipc,109) ap1
 109     format(1h ,F12.9)
c
c     passa para o proximo agente
c
         enddo
c
         stop
         end

               
          




