SUBROUTINE YEVALD(Y,NY,SAMP,YFIT,NSIG,GRAT,A,SIG,DIFF,STATUS) * * Module Number: 14.8.2.3 * * Module Name: YEVALD * * Keyphrase: * ---------- * evalute results of least squares fit * * Description: * ------------ * This routine evaluates the results of the least squares * dispersion fit for FOS wavelength calibration. The RMS * residual is computed. Lines with residuals greater then * nsig times the rms residual are flagged as bad. * * Fortran Name: yEVALD.for * * Keywords of accessed files and tables: * -------------------------------------- * none * * Subroutines Called: * ------------------- * CDBS: * ydcf * SDAS: * none * * History: * -------- * version date Author Description * 1 4/1/87 D. Lindler Designed and coded * 2 Jan 88 D. LIndler New sdas i/o and standards *------------------------------------------------------------------------- C C INPUT PARAMETERS C INTEGER NY C ---> NUMBER OF POINTS IN Y DOUBLE PRECISION Y(NY) C ---> OBSERVED POSITIONS DOUBLE PRECISION SAMP(NY) C ---> SAMPLE POSITIONS OF POINTS DOUBLE PRECISION YFIT(NY) C ---> FITTED POSITIONS DOUBLE PRECISION NSIG C ---> REJECTION LIMIT CHARACTER*3 GRAT C ---> GRATING MODE DOUBLE PRECISION A(6) C ---> DISPERSION COEF. C C OUTPUT PARAMETERS C DOUBLE PRECISION SIG C ---> SIGMA OF DIFFERENCES DOUBLE PRECISION DIFF(100) C ---> RESIDUALS (DIODES) INTEGER STATUS C ---> SET TO 1 IF BAD LINES FOUND C C LOCAL VARIABLES C DOUBLE PRECISION SUMSQ C ---> SUM SQUARED AND SUM OF DIFFERENCES INTEGER I C ---> LOOP INDEX DOUBLE PRECISION W1,W2,DSDW C C COMPUTE DIFFERENCES AND SUM OF SQUARES C STATUS = 0 SUMSQ=0.0 DO 10 I=1,NY DIFF(I)=Y(I)-YFIT(I) C C CONVERT DIFFERENCE TO DIODE UNITS C CALL YDCF(SAMP(I),GRAT,A,W1) CALL YDCF(SAMP(I)+0.1,GRAT,A,W2) DSDW=0.1/(W2-W1) DIFF(I)=DIFF(I)*DSDW SUMSQ=SUMSQ+DIFF(I)*DIFF(I) 10 CONTINUE C C COMPUTE SIGMA C SIG = SQRT( SUMSQ/NY ) C C MARK LINES WITH ABS(DIFF) GT NSIG*SIG C DO 20 I=1,NY IF( ABS(DIFF(I)) .GT. NSIG*SIG) THEN SAMP(I)=0.0 STATUS=1 ENDIF 20 CONTINUE RETURN END