+++ /dev/null
-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 c2g.f
-c Gaussian kernel correlation integral from c2
-c author T. Schreiber (1998)
-c===========================================================================
- parameter(meps=1000)
- dimension e(meps), c(meps), lw(meps)
- character*72 file, fout, aline
- double precision g,gd,h,d,f,func,gg,ggd,err,dum1,dum2,a,b,dc,de
- external func, funcd
- common h,d,f
- data iverb/1/
-
- call whatido("Gaussian kernel correlation sum from c2",iverb)
- isout=igetout(fout,iverb)
- if(nstrings().eq.0) call usage()
- call nthstring(1,file)
- call infile(file,iunit,iverb)
- if(isout.eq.1) call addsuff(fout,file,"_g")
- call outfile(fout,iunit2,iverb)
- 1 read(iunit,'(a)',end=999) aline
- 4 if(aline(1:1).ne."#") goto 1
- if(aline(1:1).eq."#")
- . read(aline(index(aline,"m=")+2:72),'(i20)',err=1) m
- me=0
- 2 read(iunit,'(a)') aline
- if(aline(1:72).eq." ") goto 3
- me=me+1
- read(aline,*,err=999,end=999) ee, cc
- if(cc.le.0.) goto 3
- e(me)=log(ee)
- c(me)=log(cc)
- goto 2
- 3 write(iunit2,'(4h#m= ,i5)') m
- call indexx(me,e,lw)
- call index2sort(me,e,lw)
- call index2sort(me,c,lw)
- do 10 j=1,me
- h=exp(e(j))
- g=0
- gd=0
- do 20 k=1,me-1
- f=exp((e(k+1)*c(k)-e(k)*c(k+1))/(e(k+1)-e(k)))
- d=(c(k+1)-c(k))/(e(k+1)-e(k))
- a=e(k)
- b=e(k+1)
- gg=0.
- ggd=0.
- if(b.ne.a) call dqk15(func,a,b,gg,err,dum1,dum2)
- if(b.ne.a) call dqk15(funcd,a,b,ggd,err,dum1,dum2)
- g=g+gg
- 20 gd=gd+ggd
- dc=c(me)
- de=e(me)
- cgauss=g/(h**2)+exp(-exp(2*de)/(2*h**2))
- cgd=gd/(h**4)+(2+exp(2*de)/h**2)*exp(-exp(2*de)/(2*h**2))
- 10 write(iunit2,*) h, cgauss, -2+cgd/cgauss
- write(iunit2,'()')
- write(iunit2,'()')
- goto 4
- 999 stop
- end
-
- double precision function func(u)
- double precision h,d,f,u
- common h,d,f
-
- func=f*exp((2+d)*u-exp(2*u)/(2*h**2))
- end
-
- double precision function funcd(u)
- double precision h,d,f,u
- common h,d,f
-
- funcd=f*exp((4+d)*u-exp(2*u)/(2*h**2))
- end
-
- subroutine usage()
-c usage message
-
- call whatineed(
- . "[-o outfile -V# -h] file")
- call pout("file_g")
- call pall()
- stop
- end
-
-
-