aboutsummaryrefslogtreecommitdiff
path: root/Crosscorr.f
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2021-08-03 14:41:53 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2021-08-03 14:41:53 -0400
commitaf8fa097905186e0d8ba257e4d70d63fe8901264 (patch)
tree647de7ddd01c750e9a80849b3cf79efddf32d4b2 /Crosscorr.f
downloadmoog-af8fa097905186e0d8ba257e4d70d63fe8901264.tar.gz
Initial commit
Diffstat (limited to 'Crosscorr.f')
-rwxr-xr-xCrosscorr.f52
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
+
+
+
+
+