SUBROUTINE ZTACF1(CARPOS,DIODE,FIT,N,COEF,ORDER,RMS) * * Module number: 13.13.1.2.1 * * Module name: ZTACF1 * * Keyphrase: * ---------- * Print results of least squares fit * * Description: * ------------ * The results of the least squares fit of diode versus * carrousel are printed. Results include the fitted values, * the residuals, the coefficients, and the RMS error in the * residuals. * * FORTRAN name: ztacf1.for * * Keywords of accessed files and tables: * -------------------------------------- * none * * Subroutines Called: * ------------------- * CDBS: * * SDAS: * umsput * Others: * * * History: * -------- * Version Date Author Description * 1 Oct. 87 D. Lindler Designed and coded *------------------------------------------------------------------------------- C C INPUT PARAMETERS C C CARPOS - VECTOR OF CARROUSEL POSITIONS (REAL*8) C DIODE - VECTOR OF DIODE POSITIONS (REAL*8) C FIT - VECTOR OF FITTED DIODE POSITIONS (REAL*8) C N - NUMBER OF ELEMENTS IN CARPOS,DIODE, AND FIT (INTEGER) C COEF - COEFFICIENTS OF THE POLYNOMIAL (REAL*8) C ORDER - ORDER OF THE POLYNOMIAL (INTEGER) C C OUTPUT PARAMETERS C C RMS - RMS ERROR OF THE FIT C C------------------------------------------------------------------------------ C INCLUDE FILE FOR THE IRAF77 FORTRAN INTERFACE TO THE IRAF VOS C C C FILE I/O ACCESS MODES C INTEGER RDONLY PARAMETER (RDONLY = 1) INTEGER RDWRIT PARAMETER (RDWRIT = 2) INTEGER WRONLY PARAMETER (WRONLY = 3) INTEGER APPEND PARAMETER (APPEND = 4) C C CODES FOR DATA TYPES C INTEGER TYBOOL PARAMETER (TYBOOL = 1) INTEGER TYCHAR PARAMETER (TYCHAR = 2) INTEGER TYINT PARAMETER (TYINT = 4) INTEGER TYREAL PARAMETER (TYREAL = 6) INTEGER TYDOUB PARAMETER (TYDOUB = 7) C C UMSPUT DESTINATIONS -- CB, DAO, 4-SEP-87 C INTEGER STDOUT PARAMETER (STDOUT = 1) INTEGER STDERR PARAMETER (STDERR = 2) C C UHDAS HEADER PARM TYPES -- CB, DAO, 5-SEP-87 C INTEGER GENHDR PARAMETER (GENHDR = 0) INTEGER IMSPEC PARAMETER (IMSPEC = 1) C C THIS SECTION IS FOR PARAMETERS RELEVANT TO TABLE I/O. C C THESE MAY BE SET BY UTPPTI AND/OR READ BY UTPGTI: C C LENGTH OF ROW (UNIT = SIZE OF REAL) INTEGER TBRLEN PARAMETER (TBRLEN = 1) C INCREASE ROW LENGTH INTEGER TBIRLN PARAMETER (TBIRLN = 2) C NUMBER OF ROWS TO ALLOCATE INTEGER TBALLR PARAMETER (TBALLR = 3) C INCREASE ALLOC NUM OF ROWS INTEGER TBIALR PARAMETER (TBIALR = 4) C WHICH TYPE OF TABLE? (ROW OR COLUMN) INTEGER TBWTYP PARAMETER (TBWTYP = 5) C MAXIMUM NUMBER OF USER PARAMETERS INTEGER TBMXPR PARAMETER (TBMXPR = 6) C MAXIMUM NUMBER OF COLUMNS INTEGER TBMXCL PARAMETER (TBMXCL = 7) C TYPE = ROW-ORDERED TABLE INTEGER TBTYPR PARAMETER (TBTYPR = 11) C TYPE = COLUMN-ORDERED TABLE INTEGER TBTYPC PARAMETER (TBTYPC = 12) C C THESE MAY BE READ BY UTPGTI BUT MAY NOT BE SET: C C NUMBER OF ROWS WRITTEN TO INTEGER TBNROW PARAMETER (TBNROW = 21) C C END IRAF77.INC DOUBLE PRECISION CARPOS(1),DIODE(1),FIT(1),COEF(1),RMS INTEGER ORDER,N C C LOCAL VARIABLES C DOUBLE PRECISION SUMSQ,DIFF CHARACTER*80 MESS INTEGER I,ISTAT C C----------------------------------------------------------------------------- C C INITIALIZATION AND TITLES C SUMSQ=0 CALL UMSPUT(' ',STDOUT,0,ISTAT) CALL UMSPUT(' car. pos. diode fit residual', * STDOUT,0,ISTAT) C C LOOP ON ELEMENTS IN INPUT C DO 100 I=1,N DIFF=DIODE(I)-FIT(I) SUMSQ=SUMSQ+DIFF**2 WRITE(MESS,99)CARPOS(I),DIODE(I),FIT(I),DIFF 99 FORMAT(F10.0,F12.2,F12.2,F12.2) CALL UMSPUT(MESS,STDOUT,0,ISTAT) 100 CONTINUE C C COMPUTE RMS ERROR AND PRINT COEF. C RMS=SQRT(SUMSQ/N) CALL UMSPUT(' ',STDOUT,0,ISTAT) CALL UMSPUT(' Coefficients of the fit',STDOUT,0,ISTAT) DO 200 I=1,ORDER+1 WRITE(MESS,199)COEF(I) 199 FORMAT(G20.10) CALL UMSPUT(MESS,STDOUT,0,ISTAT) 200 CONTINUE WRITE(MESS,299)RMS 299 FORMAT(' RMS error of fit =',F9.2,' Diodes') CALL UMSPUT(MESS,STDOUT,0,ISTAT) RETURN END