diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2021-08-03 14:41:53 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2021-08-03 14:41:53 -0400 |
commit | af8fa097905186e0d8ba257e4d70d63fe8901264 (patch) | |
tree | 647de7ddd01c750e9a80849b3cf79efddf32d4b2 /Crosscorr.f | |
download | moog-af8fa097905186e0d8ba257e4d70d63fe8901264.tar.gz |
Initial commit
Diffstat (limited to 'Crosscorr.f')
-rwxr-xr-x | Crosscorr.f | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Crosscorr.f b/Crosscorr.f new file mode 100755 index 0000000..5e33d12 --- /dev/null +++ b/Crosscorr.f @@ -0,0 +1,52 @@ + + subroutine crosscorr (ishift,rxy,xcross,ycross,npx) +c****************************************************************************** +c This routine determines the correlation of array 'x' and array 'y', +c comparing array elements 'i' in 'x' with elements 'i+ishift'; +c the number of points in each array is assumed to be equal. +c****************************************************************************** + + implicit real*8 (a-h,o-z) + real*4 xcross(100000),ycross(100000) + real*8 xsum,ysum,xysum,x2sum,y2sum,covar,varx,vary + real*8 xx,yy + + + xsum = 0. + ysum = 0. + xysum = 0. + x2sum = 0. + y2sum = 0. + if (ishift .ge. 0) then + minpt = 1 + maxpt = npx - ishift + else + minpt = iabs(ishift) + 1 + maxpt = npx + endif + + + do 10 i=minpt,maxpt + xx = xcross(i) + yy = ycross(i+ishift) + xsum = xsum + xx + ysum = ysum + yy + xysum = xysum + xx*yy + x2sum = x2sum + xx*xx +10 y2sum = y2sum + yy*yy + + + xn = real(maxpt - minpt + 1) + covar = xn*xysum - xsum*ysum + varx = dsqrt(xn*x2sum - xsum*xsum) + vary = dsqrt(xn*y2sum - ysum*ysum) + rxy = sngl(covar/(varx*vary)) + + + return + end + + + + + |