SUBROUTINE ZOFIT2(N,CPOS,ORDER,SAMPLE,DELW,FIT,RESI,COEF) * * Module number: 13.9.3.2 * * Module name: ZOFIT2 * * Keyphrase: * ---------- * Print results of least squares fit * * Description: * ------------ * This routine prints the results of the least squares fit * giving order*deltaw as a function of order, carrousel position, * and sample position * * FORTRAN name: zofit2.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 N - NUMBER OF POINTS (INTEGER) C CPOS - CARROUSEL POSITIONS (INTEGER) C ORDER - ORDER NUMBERS (INTEGER) C SAMPLE - SAMPLE POSITIONS (REAL*8) C DELW - WAVELEGNTH OFFSETS (REAL*8) C FIT - FITTED WAVELENGTH OFFSETS (REAL*8) C RESI - RESIDUALS OF THE FIT (REAL*8) C COEF - FITTED COEFFICIENTS (REAL*8) 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 INTEGER N,CPOS(1),ORDER(1) DOUBLE PRECISION SAMPLE(1),DELW(1),FIT(1),RESI(1),COEF(1) C C LOCAL VARIABLES C DOUBLE PRECISION SUMSQ1,SUMSQ2,RMS1,RMS2 CHARACTER*80 MESS INTEGER I,ISTAT C C------------------------------------------------------------------------------- C C COMPUTE RMS OF M*DELTAW BEFORE AND AFTER THE FIT C SUMSQ1=0.0 SUMSQ2=0.0 DO 10 I=1,N SUMSQ1=SUMSQ1+(ORDER(I)*DELW(I))**2 SUMSQ2=SUMSQ2+(ORDER(I)*RESI(I))**2 10 CONTINUE RMS1=SQRT(SUMSQ1/N) RMS2=SQRT(SUMSQ2/N) C C PRINT TABLE OF RESULTS FOR EACH DATA POINT C CALL UMSPUT(' RESULTS OF THE LEAST SQUARES FIT',STDOUT,0, * ISTAT) CALL UMSPUT(' ',STDOUT,0,ISTAT) CALL UMSPUT(' car. pos. order sample deltaw fit '// * ' difference',STDOUT,0,ISTAT) CALL UMSPUT(' ',STDOUT,0,ISTAT) DO 20 I=1,N WRITE(MESS,99)CPOS(I),ORDER(I),SAMPLE(I),DELW(I), * FIT(I),RESI(I) 99 FORMAT(I8,I8,F10.1,F12.4,F12.4,F12.4) CALL UMSPUT(MESS,STDOUT,0,ISTAT) 20 CONTINUE CALL UMSPUT(' ',STDOUT,0,ISTAT) C C PRINT COEF. AND RMS VALUES C CALL UMSPUT(' Coefficients of the fit',STDOUT,0,ISTAT) DO 30 I=1,4 WRITE(MESS,199)COEF(I) 199 FORMAT(G20.12) CALL UMSPUT(MESS,STDOUT,0,ISTAT) 30 CONTINUE C WRITE(MESS,299)RMS1 299 FORMAT(' RMS of order*deltaw:',F10.3) CALL UMSPUT(MESS,STDOUT,0,ISTAT) WRITE(MESS,399)RMS2 399 FORMAT(' RMS error of order*residuals:',F10.3) CALL UMSPUT(MESS,STDOUT,0,ISTAT) RETURN END