1
C @(#)mean.for 19.1 (ES0-DMD) 02/25/03 13:23:05
2
C===========================================================================
3
C Copyright (C) 1995 European Southern Observatory (ESO)
5
C This program is free software; you can redistribute it and/or
6
C modify it under the terms of the GNU General Public License as
7
C published by the Free Software Foundation; either version 2 of
8
C the License, or (at your option) any later version.
10
C This program is distributed in the hope that it will be useful,
11
C but WITHOUT ANY WARRANTY; without even the implied warranty of
12
C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
C GNU General Public License for more details.
15
C You should have received a copy of the GNU General Public
16
C License along with this program; if not, write to the Free
17
C Software Foundation, Inc., 675 Massachusetss Ave, Cambridge,
20
C Corresponding concerning ESO-MIDAS should be addressed as follows:
21
C Internet e-mail: midas@eso.org
22
C Postal address: European Southern Observatory
23
C Data Management Division
24
C Karl-Schwarzschild-Strasse 2
25
C D 85748 Garching bei Muenchen
27
C===========================================================================
29
C @(#)mean.for 19.1 (ESO-SDAG) 02/25/03 13:23:05
30
SUBROUTINE MEAN(XTEMP,YTEMP,IX,XMEAN,YMEAN,NKICK,RESA,SIG)
32
IMPLICIT REAL*8 (A-H,O-Z), INTEGER*4 (I-N)
34
C MEAN COMPUTES MEAN VALUES OF (X,Y) MEASUREMENTS OF THE SAME OBJECT.
35
C IF THERE ARE MORE THAN 2 MEASUREMENTS, THE R.M.S. VALUES OF X, Y
36
C AND R (=SQRT(X**2+Y**2)) ARE ALSO RETURNED IN RESA(3).
37
C IF R.M.S. (R) IS LARGER THAN SIG, THEN THE (X,Y) WITH THE
38
C LARGEST RESIDUAL IS REMOVED. THIS PROCESS IS CONTINUED UNTIL
39
C R.M.S. (R) < SIG, OR IF THERE ARE ONLY 2 MEASUREMENTS LEFT.
41
C A REASONABLE VALUE IS SIG = 5.0 MICRONS
43
DIMENSION XTEMP(20),YTEMP(20),RESA(3)
53
XMEAN = XMEAN + XTEMP(I)
54
20 YMEAN = YMEAN + YTEMP(I)
61
RESX = RESX+(XMEAN-XTEMP(I))**2
62
RESY = RESY+(YMEAN-YTEMP(I))**2
63
30 RESD = RESD+((XMEAN-XTEMP(I))**2+(YMEAN-YTEMP(I))**2)
64
RESX = SQRT(RESX/(IX**2-IX))
65
RESY = SQRT(RESY/(IX**2-IX))
66
RESD = SQRT(RESD/(IX**2-IX))
68
IF(RESD.LT.SIG) GO TO 60
73
C NOW FIND THE WORST (X,Y) AND REMOVE IT
76
DIF = SQRT((XMEAN-XTEMP(I))**2+(YMEAN-YTEMP(I))**2)
77
IF(DIF.LT.DIFF) GO TO 40
87
50 YTEMP(I) = YTEMP(I+1)