Delete unneeded directory
[jabaws.git] / website / archive / binaries / mac / src / disembl / Tisean_3.0.1 / source_f / xc2.f
diff --git a/website/archive/binaries/mac/src/disembl/Tisean_3.0.1/source_f/xc2.f b/website/archive/binaries/mac/src/disembl/Tisean_3.0.1/source_f/xc2.f
deleted file mode 100644 (file)
index 86917a8..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-c===========================================================================
-c
-c   This file is part of TISEAN
-c 
-c   Copyright (c) 1998-2007 Rainer Hegger, Holger Kantz, Thomas Schreiber
-c 
-c   TISEAN is free software; you can redistribute it and/or modify
-c   it under the terms of the GNU General Public License as published by
-c   the Free Software Foundation; either version 2 of the License, or
-c   (at your option) any later version.
-c
-c   TISEAN is distributed in the hope that it will be useful,
-c   but WITHOUT ANY WARRANTY; without even the implied warranty of
-c   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-c   GNU General Public License for more details.
-c
-c   You should have received a copy of the GNU General Public License
-c   along with TISEAN; if not, write to the Free Software
-c   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-c
-c=========================================================================
-c
-c   cross-correlation integral xc2
-c   see  H. Kantz, Phys.Rev.E49, 5091 (1994)
-c
-c   authors: T. Schreiber & H. Kantz (1998)
-c   multivariate version: H. Kantz (Jan 2007)
-c
-c=========================================================================
-c
-      parameter(nx=1000000,me=30,meps=1000,mx=10)
-      dimension x(nx,mx), c(me,meps), eps(meps), mdeps(meps), icol(mx)
-      dimension y(nx,mx)
-      integer mlist(2)
-      character*72 file1, file2, fout
-      data ipmin/1000/, res/2./, eps0/1e-30/, epsm/1e30/, id0/1/
-      data iverb/1/
-
-c=======================================================================
-c assume two input files (file1, file2) 
-c - with identical structure in terms of colums
-c - with identical embedding spaces 
-c - with individual length and exclusions: l, L, x, X
-c - multivariate data: maximum length nx, maximum dimension mx
-c
-c   norm: max-norm 
-c
-c   no rescaling, since xc2 does not make sense if datasets are 
-c                           not used in their original scalings
-c=================================================================
-
-      call whatido("cross correlation sum of two data sets",iverb)
-      id=ican("d",id0)
-      mmax=2
-      mdim=1
-
-      call imcan("M",2,mc,mlist)
-      if (mc.ge.2) then
-       mmax=mlist(2)
-       mdim=mlist(1)
-       if (mmax*mdim.lt.2) stop 'Increase embedding dimension'
-       if (mc.gt.2) print*, 'extra arguments of -m ignored'
-      endif
-
-      ntmin=0
-      ncmin=ican("n",1000)
-      ipmin=ican("N",ipmin)
-      res=fcan("#",res)
-      feps=2**(1./res)
-      eps0=fcan("r",eps0)
-      epsm=fcan("R",epsm)
-      nmaxx=ican("l",nx)
-      nmaxy=ican("L",nx)
-      nexcl1=ican("x",0)
-      nexcl2=ican("X",0)
-
-      call columns(mc,mx,icol)
-
-      if (mc.gt.0.and.mc.ne.mdim) stop 'improper number of columns'
-      isout=igetout(fout,0)
-      if(fout.eq." ") isout=1
-
-      call nthstring(1,file1)
-      if(file1.eq."-") stop "first input file name missing"
-      call xreadfile(nmaxx,mdim,nx,x,nexcl1,icol,file1,iverb)
-      call nthstring(2,file2)
-      if(file2.eq."-") stop "second input file name missing"
-      call xreadfile(nmaxy,mdim,nx,y,nexcl2,icol,file2,iverb)
-
-      if(isout.eq.1) then 
-        call addsuff(fout,file1,"_")
-        call addsuff(fout,fout,file2)
-        call addsuff(fout,fout,"_xc2")
-      endif
-
-      epsmax=0.
-      do imx=1,mmax
-       call minmax(nmaxx,x(1,imx),xmin,xmax)
-       epsmax=1.001*max(xmax-xmin,epsmax)
-      enddo
-      do imx=1,mmax
-       call minmax(nmaxy,y(1,imx),xmin,xmax)
-       epsmax=1.001*max(xmax-xmin,epsmax)
-      enddo
-
-      neps=0
-
-      do 10 epsl=log(min(epsm,epsmax)),log(eps0),-log(feps)
-         neps=neps+1
-         if(neps.gt.meps) stop "xc2: make meps larger"
-         eps(neps)=exp(epsl)
-         do 20 m=1,mmax*mdim
- 20         c(m,neps)=0
-         if (mdim.eq.1) then
-          call crosscor(nmaxx,x,nmaxy,y,eps(neps)
-     .                 ,id,mmax,c(1,neps),ncmin,ipmin)
-         else
-          call mcrosscor(nmaxx,x,nmaxy,y,eps(neps),
-     .      id,mmax,mdim,c(1,neps),ncmin,ipmin)
-         endif
-         mdd=mmax*mdim
-         mdd1=max(2,mdim)
-         do 30 m=mdd1,mdd
- 30         if(c(m,neps).eq.0.) goto 1
-         m=mdd+1
- 1       mdd=m-1
-         if(mdd.eq.mdim-1) stop
-         mdeps(neps)=mdd
-         call outfile(fout,iunit,iverb)
-         do 40 m=mdd1,mdeps(1)
-            write(iunit,'(4h#m= ,i5)') m
-            do 50 nn=1,neps
-               if(mdeps(nn).lt.m) goto 2
- 50            write(iunit,*) eps(nn), c(m,nn) 
- 2          write(iunit,'()')
- 40         write(iunit,'()')
-         close(iunit)
- 10      write(istderr(),*) eps(neps), mdd, c(mdd,neps)
-      stop
-      end
-c>--------------------------------------------------------------------
-      subroutine usage()
-c usage message
-
-      call whatineed(
-     .   "-M#,# [-d# -n# -N# -## -r# -R#"//
-     .   " -o outfile -l# -x# -L# -X# -c#[,#] -V# -h] file1 file2")
-      call popt("M",
-     ."# of components, maximal embedding dimension [1,2]")
-      call popt("d","delay [1]")
-      call popt("n","minimal number of center points [1000]")
-      call popt("N","maximal number of pairs [1000]")
-      call popt("#","resolution, values per octave [2]")
-      call popt("r",
-     .   "minimal scale to be probed (as long as pairs found)")
-      call popt("R","maximal scale to be probed [xmax-xmin]")
-      call popt("l","length of time series 1 to be read [all data]")
-      call popt("x","# of initial lines of 1 to be skipped [0]")
-      call popt("L","length of time series 2 to be read [all data]")
-      call popt("X","# of initial lines of 2 to be skipped [0]")
-      call popt("c",
-     ."columns to be read [1,2,3,.., # of components]")
-      call pout("file1_file2_xc2")
-      call pall()
-      stop
-      end
-c>--------------------------------------------------------------------
-      subroutine crosscor(nmaxx,x,nmaxy,y,eps,id,m,c,ncmin,ipmin)
-      parameter(im=100,ii=100000000,nx=1000000,mm=30)
-      dimension y(nmaxy),x(nmaxx)
-      dimension jh(0:im*im),ipairs(mm),c(m),jpntr(nx),nlist(nx)
-
-      if(nmaxx.gt.nx.or.m.gt.mm) stop "crosscor: make mm/nx larger."
-      if(nmaxy.gt.nx.or.m.gt.mm) stop "crosscor: make mm/nx larger."
-
-      do 10 i=1,m-1
- 10      ipairs(i)=0
-      mb=min(m,2)
-      call base(nmaxx,x,id,mb,jh,jpntr,eps)
-      do 20 n=(m-1)*id+1,nmaxy
-         call neigh(nx,y,x,n,nmaxx,id,mb,jh,jpntr,eps,nlist,nfound)
-         do 30 nn=1,nfound                   ! all neighbours in two dimensions
-            np=nlist(nn)
-            if(np.lt.(m-1)*id+1) goto 30
-            ipairs(1)=ipairs(1)+1
-            do 40 i=mb,m-1
-               if(abs(y(n-i*id)-x(np-i*id)).ge.eps) goto 30
- 40            ipairs(i)=ipairs(i)+1            ! neighbours in 3..m dimensions
- 30         continue
- 20      if(n-(m-1)*id.ge.ncmin.and.ipairs(m-1).ge.ipmin) goto 1
-      n=n-1
- 1    s=real(n-(m-1)*id)*real(nmaxx-(m-1)*id) ! normalisation
-      do 50 i=1,m-1
- 50      if(s.gt.0.) c(i+1)=ipairs(i)/s
-      end
-c>--------------------------------------------------------------------
-      subroutine mcrosscor(nmaxx,x,nmaxy,y,eps,id,m,mdim,c,ncmin,ipmin)
-
-      parameter(im=100,nx=1000000,mm=30,mx=10)
-
-      dimension y(nx,mx),x(nx,mx)
-      dimension jh(0:im*im),ipairs(mm),c(m*mdim),jpntr(nx),nlist(nx)
-      dimension vx(mm)
-
-      if(nmaxx.gt.nx.or.m.gt.mm) stop "mcrosscor: make mm/nx larger."
-      if(nmaxy.gt.nx.or.m.gt.mm) stop "mcrosscor: make mm/nx larger."
-
-      if (m*mdim.gt.mm) stop 'embedding x spatial dimension < 30 !'
-      do 10 i=1,m*mdim
- 10      ipairs(i)=0
-
-      call mbase(nmaxy,mdim,nx,y,id,1,jh,jpntr,eps)
-      do 20 n=(m-1)*id+1,nmaxx
-         do ii=1,mdim
-          vx(ii)=x(n,ii)
-         enddo
-         call mneigh2(nmaxy,mdim,y,nx,vx,jh,jpntr,eps,nlist,nfound)
-         do 30 nn=1,nfound               ! all neighbours in mdim dimensions
-            np=nlist(nn)
-            if(np.lt.(m-1)*id+1) goto 30
-            ipairs(mdim)=ipairs(mdim)+1
-            do 40 i=1,m-1
-             do 41 iim=1,mdim
-               if(abs(x(n-i*id,iim)-y(np-i*id,iim)).ge.eps) goto 30
-               idim=i*mdim+iim
-               ipairs(idim)=ipairs(idim)+1  ! neighbours mdim+1..m dimensions
- 41           continue
- 40          continue
- 30         continue
- 20      if(n-(m-1)*id.ge.ncmin.and.ipairs(m*mdim).ge.ipmin) goto 1
-      n=n-1
- 1    s=real(n-(m-1)*id)*real(nmaxy-(m-1)*id) ! normalisation
-      do 50 i=mdim,mdim*m
- 50      if(s.gt.0.) c(i)=ipairs(i)/s
-
-      return
-      end
-c>---------------------------------------------------------------------
-
-
-
-
-
-