auxmod.inc 100666 1750 1750 2553 6355630644 12145 0 ustar klimes klimes C
C Auxiliary storage locations for local model parameters: FAUX(10), C G(12),GAMMA(18),GSQRD, UP(10),US(10),RO,QP,QS, VP,VS,VD(10),QL: C C INCLUDE 'auxmod.inc' C ------------------------------------------------------------------ REAL G(12),GAMMA(18),GSQRD,FAUX(10) REAL UP(10),US(10),RO,QP,QS,VP,VS,VD(10),QL COMMON/AUXMOD/ G,GAMMA,GSQRD,FAUX,UP,US,RO,QP,QS,VP,VS,VD,QL C ------------------------------------------------------------------ C G,GAMMA,GSQRD... See subroutine METRIC of the file 'metric.for'. C FAUX... Auxiliary array to store a functional value and its C derivatives. C UP,US,RO,QP,QS... See subroutine PARM2 of the file 'parm.for'. C UP,US,QP,QS,VP,VS,VD,QL... See subroutine VELOC of the file C 'model.for'. C C These auxiliary variables and arrays need not be located in a C common block. There is no reason to locate them in the auxiliary C common block /AUXMOD/ but to share the memory. C C Common block /AUXMOD/ may utilized in any subroutine calling C subroutines METRIC, SURF2, PARM2 or VELOC. C C Date: 1996, July 8 C Coded by Ludek Klimes C C======================================================================= Cclean.for 100666 1750 1750 7174 6601101250 11727 0 ustar klimes klimes C
C Program 'CLEAN' to modify lines with a given character in the first C column. C C Date: 1998, September 20 C Coded by Ludek Klimes C C....................................................................... C C This program is designed to edit FORTRAN77 source code files C containing other characters than 'C' or '*' in the first column. Such C source files may be created with the intention of a conditioned C compilation not enabled by the FORTRAN77 standard. C C....................................................................... C C C Description of the data files: C C Main input data file read from the * external unit: C One line containing character strings, read by means of the list C directed input (free format): C (1) 'FOLD','FNEW','COLD','CNEW',/ C 'FOLD'..Name of the input file. C 'FNEW'..Name of the output file. C 'COLD'..Characters in the first 2 columns of some lines of C 'FOLD' to be replaced. C 'CNEW'..New pair of characters replacing 'COLD'. If 'CNEW'='- ', C the whole line is deleted. C /... An obligatory slash for the sake of compatibility with C future extensions. C C----------------------------------------------------------------------- C CHARACTER*80 FOLD,FNEW CHARACTER*2 COLD,CNEW CHARACTER*72 LINE INTEGER IERR,I,J,K C WRITE(*,'(2A)') '+Enter old and new filenames, ', * 'and old and new strings in the first 2 columns: ' READ(*,*) FOLD,FNEW,COLD,CNEW C C Opening the input and output FORTRAN77 source code files: WRITE(*,'(2A)') '+Opening old (input) and new (output) files.', * ' ' OPEN(1,FILE=FOLD,STATUS='OLD',IOSTAT=IERR) IF(IERR.NE.0) THEN C CLEAN-01 CALL ERROR * ('CLEAN-01: Input FORTRAN77 source file does not exist') END IF C- OPEN(2,FILE=FNEW,STATUS='NEW',IOSTAT=IERR) C- IF(IERR.NE.0) THEN C- CLEAN-02 C- CALL ERROR C- * ('CLEAN-02: Output FORTRAN77 source file already exists') C- END IF OPEN(2,FILE=FNEW) C C Loop for the lines in the input source file WRITE(*,'(2A)') '+Editing ',FNEW(1:70) 20 CONTINUE C C Reading a line: READ(1,'(A)',END=90) LINE C C Copying a line: IF(LINE(1:2).EQ.COLD) THEN LINE(1:2)=CNEW END IF IF(LINE(1:2).NE.'- ') THEN DO 33 K=72,12,-12 IF(LINE(K-11:K).NE.' ') THEN DO 32 J=K,K-9,-3 IF(LINE(J-2:J).NE.' ') THEN DO 31 I=J,J-2,-1 IF(LINE(I:I).NE.' ') THEN WRITE(2,'(A)') LINE(1:I) GO TO 20 END IF 31 CONTINUE END IF 32 CONTINUE END IF 33 CONTINUE C Empty line: WRITE(*,'(2A)') '+Warning: Empty line in ',FOLD(1:56) WRITE(*,'(A)') ' ' END IF C GO TO 20 C End of loop for the lines in the input source file C 90 CONTINUE WRITE(*,'(2A)') '+Done: ',FNEW(1:70) STOP END C C======================================================================= C INCLUDE 'error.for' C error.for C C======================================================================= Celf1/ 40777 1750 1750 0 6613213030 10661 5 ustar klimes klimes elf1/elf1-mod.dat 100666 1750 1750 4155 6223642756 13103 0 ustar klimes klimes 'MODEL ELF1' / 0. 10. 0. 10. -1. 5. / (BOUNDARIES OF THE MODEL) 4 SURFACES 4 SIMPLE BLOCKS: -1 2 / -2 3 / -3 4 / -4 / 4 COMPLEX BLOCKS: 1 / 2 / 3 / 4 / 'SURFACE' 1 -3 0 0 0 / (I.E. W-X3=0, TENSION=0) 0.0 (W) '1-D INTERFACE' 2 -3 0 0 0 / (I.E. W-X3=0, TENSION=0) 0.5 (W) '3-D PLANE P1' 3 1 2 -3 0 / (I.E. W(X1,X2)-X3=0, TENSION=0) 2 2 (NUMBERS OF GRID POINTS) 0 10 (X1 GRID COORDINATES) 0 10 (X2 GRID COORDINATES) 3 2 2 1 (X3 COORDINATES AT GRID POINTS) '3-D PLANE P2' 4 1 2 -3 0 / (I.E. W(X1,X2)-X3=0, TENSION=0) 2 2 (NUMBERS OF GRID POINTS) 0 10 (X1 GRID COORDINATES) 0 10 (X2 GRID COORDINATES) 3.5 2.5 4.5 3.5 (X3 COORDINATES AT GRID POINTS) 'END OF SURFACES' / 'COMPLEX BLOCK' 1 'VP ' 1 (P WAVE VELOCITY) 0 0 0 0 / (I.E. VP=W, TENSION=0) 1.8 'VS ' 1 (S WAVE VELOCITY) 0 0 0 0 / (I.E. VS=W, TENSION=0) 0.8 'DEN' 1 (DENSITY) 0 0 0 0 / (I.E. DENSITY=W, TENSION=0) 1.8 'COMPLEX BLOCK' 2 'VP ' 1 (P WAVE VELOCITY) 0 0 0 0 / (I.E. VP=W, TENSION=0) 2.2 'VS ' 1 (S WAVE VELOCITY) 0 0 0 0 / (I.E. VS=W, TENSION=0) 1.0 'DEN' 1 (DENSITY) 0 0 0 0 / (I.E. DENSITY=W, TENSION=0) 2.0 'COMPLEX BLOCK' 3 'VP ' 1 (P WAVE VELOCITY) 0 0 0 0 / (I.E. VP=W, TENSION=0) 2.7 'VS ' 1 (S WAVE VELOCITY) 0 0 0 0 / (I.E. VS=W, TENSION=0) 1.3 'DEN' 1 (DENSITY) 0 0 0 0 / (I.E. DENSITY=W, TENSION=0) 2.3 'COMPLEX BLOCK' 4 'VP ' 1 (P WAVE VELOCITY) 0 0 0 0 / (I.E. VP=W, TENSION=0) 2.6 'VS ' 1 (S WAVE VELOCITY) 0 0 0 0 / (I.E. VS=W, TENSION=0) 1.7 'DEN' 1 (DENSITY) 0 0 0 0 / (I.E. DENSITY=W, TENSION=0) 2.1 'END OF COMPLEX BLOCKS, END OF THE INPUT DATA FOR THE MODEL' / fit.for 100666 1750 1750 147275 6621466562 11524 0 ustar klimes klimes C
C Subroutines of the software package 'FITPACK' by A.K. Cline C used to specify the model for the complete ray tracing algorithm. C C This file consists of the following parts: C (0) Auxiliary subroutine C SNHCSH C SNHCSH C common to all the following parts. C (1) The subroutines preparing the parameters necessary to compute C an interpolatory function: C CURVN1 (Hermite representation of 1-D function), C CURVB1 (B-spline representation of 1-D function), C SURFB1 (B-spline representation of 2-D function), C VAL3B1 (B-spline representation of 3-D function), C VGEN (auxiliary subroutine), C TERMS (auxiliary subroutine), C TRIDEC (auxiliary subroutine), C TRISOL (auxiliary subroutine). C CURVN1 C CURVB1 C SURFB1 C VAL3B1 C VGEN C TERMS C TRIDEC C TRISOL C Subroutines CURVN1 and CURVB1 are alternatives. C (2) The subroutines evaluating the value, first and second partial C derivatives of the interpolatory function at a given point: C CURV2D (Hermite representation of 1-D function), C CURVBD (B-spline representation of 1-D function), C SURFBD (B-spline representation of 2-D function), C VAL3BD (B-spline representation of 3-D function), C DSPLNZ (auxiliary subroutine), C INTRVL (auxiliary external function). C CURV2D C CURVBD C SURFBD C VAL3BD C DSPLNZ C INTRVL C Subroutines CURV2D and CURVBD are alternatives. C C Taken from: C FITPACK - A Software Package for Curve and Surface Fitting C Employing Splines under Tension C by Alan Kaylor Cline, Department of Computer Sciences, C The University of Texas at Austin, August 31, 1981. C Note 1: C To conform with the FORTRAN77 standard, dummy array dimensions (1) C have been changed to (*), and subroutine TRISOL has been revised. C Note 2: C Subroutines CURVB1 and CURVBD do not belong to the original C version of FITPACK. C Note 3 C The lines denoted by '*V' in the first two columns of file C 'fit.for' calculate the model variations with respect to the model C parameters. C File 'fitv.for', intended for the model inversion, is created C from 'fit.for' by replacing each '*V' in the first two columns C by spaces using program 'clean.for'. Subroutines VAR4 and VAR5 C of file 'var.for' may then be called to handle the variations. C Note 4: C To get the original versions of the subroutines SURFBD and VAL3BD, C the statement with 'CALL VAR2' must be removed from each of them. C The statements have been added by L.Klimes for the sake of inverse C modelling to the subroutines CURVBD, SURFBD, and VAL3BD. C The three appearances of the statements 'CALL VAR2' are denoted by C '*V' in the first 2 columns. The three lines should be removed or C modified before compilation. C C======================================================================= C C Part 0: C C======================================================================= C C C SUBROUTINE SNHCSH (SINHM,COSHM,X,ISW) C INTEGER ISW REAL SINHM,COSHM,X C C From FITPACK -- August 31, 1981 C Coded by A. K. Cline and R. J. Renka C Department of Computer Sciences C University of Texas at Austin C C This subroutine returns approximations to C SINHM(X) = SINH(X)-X C COSHM(X) = COSH(X)-1 C and C COSHMM(X) = COSH(X)-1-X*X/2 C with relative error less than 6.16e-6 C C On input-- C C X contains the value of the independent variable. C C ISW indicates the function desired C = -1 if only SINHM is desired, C = 0 if both SINHM and coshm are desired, C = 1 if only COSHM is desired, C = 2 if only COSHMM is desired, C = 3 if both SINHM and COSHMM are desired. C C On output-- C C SINHM contains the value of SINHM(X) if ISW .LE. 0 or C ISW .EQ. 3 (SINHM is unaltered if ISW .EQ.1 or ISW .EQ. C 2). C C COSHM contains the value of COSHM(X) if ISW .EQ. 0 or C ISW .EQ. 1 and contains the value of COSHMM(X) if ISW C .GE. 2 (COSHM is unaltered if ISW .EQ. -1). C C And C C X and ISW are unaltered. C C----------------------------------------------------------- C DATA SP2/5.04850926418006E-04/, * SP1/3.62841692246321E-02/, * SQ1/-1.37157937097122E-02/ DATA CP2/1.31625490355985E-03/, * CP1/6.57866547762733E-02/, * CQ1/-1.75465241841312E-02/ DATA ZP2/1.40048186158693E-04/, * ZP1/1.67309141907440E-02/, * ZQ2/9.82154460147143E-05/, * ZQ1/-1.66024148976133E-02/ XX = X AX = ABS(XX) XS = XX*XX IF ((AX .GE. 2.20) .OR. (AX .GE. 1.17 .AND. * ISW .NE. 2)) EXPX = EXP(AX) C C SINHM approximation C IF (ISW .EQ. 1 .OR. ISW .EQ. 2) GO TO 2 IF (AX .GE. 1.17) GO TO 1 SINHM = (((SP2*XS+SP1)*XS+1.)*XS*XX)/((SQ1*XS+1.)*6.) GO TO 2 1 SINHM = (EXPX-1./EXPX)/2.-AX IF (XX .LT. 0.) SINHM = -SINHM C C COSHM approximation C 2 IF (ISW .NE. 0 .AND. ISW .NE. 1) GO TO 4 IF (AX .GE. 1.17) GO TO 3 COSHM = (((CP2*XS+CP1)*XS+1.)*XS)/((CQ1*XS+1.)*2.) GO TO 4 3 COSHM = (EXPX+1./EXPX)/2.-1. C C COSHMM approximation C 4 IF (ISW .LE. 1) RETURN IF (AX .GE. 2.20) GO TO 5 COSHM = (((ZP2*XS+ZP1)*XS+1.)*XS*XS)/(((ZQ2*XS+ZQ1)*XS * +1.)*24.) RETURN 5 COSHM = (EXPX+1./EXPX)/2.-1.-XS/2. RETURN END C C======================================================================= C C Part 1: C C======================================================================= C C C SUBROUTINE CURVN1 (N,X,Y,YP,TEMP,SIGMA,IERR) C INTEGER N,IERR REAL X(N),Y(N),YP(N),TEMP(N),SIGMA C C From FITPACK -- August 31, 1981 C Coded by a. K. Cline and s. E. Galinsky C Department of Computer Sciences C University of Texas at Austin C C This subroutine determines the parameters necessary to C compute a natural interpolatory spline under tension C through a sequence of functional values. For actual C computation of points on the curve it is necessary to call C the function CURV2. C C On input-- C C N is the number of values to be interpolated (N.GE.2). C C X is an array of the N increasing abscissae of the C functional values. C C Y is an array of the N ordinates of the values, (i. e. C Y(K) is the functional value corresponding to X(K) ). C C YP is an array of length at least N. C C TEMP is an array of length at least N which is used for C scratch storage. C C And C C SIGMA contains the tension factor. This value indicates C the curviness desired. If ABS(SIGMA) is nearly zero C (e.g. .001) the resulting curve is approximately a C cubic spline. If ABS(SIGMA) is large (e.g. 50.) the C resulting curve is nearly a polygonal line. If SIGMA C equals zero a cubic spline results. A standard value C for SIGMA is approximately 1. In absolute value. C C On output-- C C YP contains the values of the second derivative of the C curve at the given nodes. C C IERR contains an error flag, C = 0 for normal return, C = 1 if N is less than 2, C = 2 if X-values are not strictly increasing. C C And C C N, X, Y, and SIGMA are unaltered. C C This subroutine references package modules SNHCSH. C C----------------------------------------------------------- C NM1 = N-1 NP1 = N+1 IERR = 0 IF (N .LE. 1) GO TO 4 IF (X(N) .LE. X(1)) GO TO 5 C C Denormalize tension factor C SIGMAP = ABS(SIGMA)*FLOAT(N-1)/(X(N)-X(1)) C C Set up right hand side and tridiagonal system for YP and C perform forward elimination C DELX1 = X(2)-X(1) IF (DELX1 .LE. 0.) GO TO 5 DX1 = (Y(2)-Y(1))/DELX1 CALL TERMS (DIAG1,SDIAG1,SIGMAP,DELX1) SDIAG1 = 0. YP(1) = 0. TEMP(1) = 0. IF (N .EQ. 2) GO TO 2 DO 1 I = 2,NM1 DELX2 = X(I+1)-X(I) IF (DELX2 .LE. 0.) GO TO 5 DX2 = (Y(I+1)-Y(I))/DELX2 CALL TERMS (DIAG2,SDIAG2,SIGMAP,DELX2) DIAG = DIAG1+DIAG2-SDIAG1*TEMP(I-1) YP(I) = (DX2-DX1-SDIAG1*YP(I-1))/DIAG TEMP(I) = SDIAG2/DIAG DX1 = DX2 DIAG1 = DIAG2 1 SDIAG1 = SDIAG2 2 YP(N) = 0. TEMP(N-1) = 0. C C Perform back substitution C DO 3 I = 2,N IBAK = NP1-I 3 YP(IBAK) = YP(IBAK)-TEMP(IBAK)*YP(IBAK+1) RETURN C C Too few points C 4 IERR = 1 RETURN C C X-values not strictly increasing C 5 IERR = 2 RETURN END C C======================================================================= C C C SUBROUTINE CURVB1 (NX,X,W,C,VX,TEMP,SIGMA,IERR) C INTEGER NX,IERR REAL X(NX),W(NX),C(NX),VX(5,NX),TEMP(*),SIGMA C C Complement to FITPACK C by Alan Kaylor Cline C Coded -- October 9, 1986 C by Ludek Klimes C Inst. Geol. Geotechn. C Czechosl. Acad. Sci., Prague C C This subroutine determines the parameters necessary to C compute an interpolatory function on a one dimensional C grid. The function determined can be C represented by splines under tension. For actual C mapping of points it is necessary to call the subroutine C CURVBD, which also returns first and second derivatives. C C On input-- C C NX is the number of grid points. C (NX should be at least 2) C C X is array of the NX coordinates of the grid points. C These should be strictly increasing. C C W is an array of the NX functional values at the C the grid points, i. e. W(I,J) contains the functional C value at X(I) for I = 1,...,NX . C C C is an array of at least NX locations. This C parameter may coincide with W in which case W is C destroyed on output. C C VX is the array of at least 5 * NX locations. C C TEMP is an array of at least 3 * NX locations C which is used for scratch storage. C C SIGMA contains the tension factor. This value indicate C the curviness desired. If ABS(SIGMA) is nearly zero C (e. g. .001) the resulting surface is approximately the C tensor product of cubic splines. If ABS(SIGMA) is large C (e. g. 50.) the resulting surface is approximately C bi-linear. If SIGMA equals zero tensor products of cubic C splines result. A standard value for SIGMA is C approximately 1. In absolute value. C C On output-- C C C contains the coefficients of a representation of the C interpolated function in a B-spline form. C C VX contains B-spline under tension basis data. C C IERR contains an error flag. C = 0 for normal return, C = 1 if NX is less than 2, C = 2 if the X-array is not strictly C increasing. C C And C C None of the input parameters are altered (except W if C this parameter and C are identical in the calling C sequence). C C This subroutine references package modules VGEN, TERMS, C SNHCSH, TRIDEC, and TRISOL. C C----------------------------------------------------------- C C Copy W into C C DO 1 I = 1,NX 1 C(I) = W(I) C C Generate basis functions along X-grid C set up tridiagonal system and solve C CALL VGEN (NX,X,SIGMA,VX,IERR) IF (IERR .NE. 0) RETURN DO 2 I = 2,NX 2 TEMP(I) = VX(5,I-1) NXPI = NX DO 3 I = 1,NX NXPI = NXPI+1 3 TEMP(NXPI) = 1. DO 4 I = 2,NX NXPI = NXPI+1 4 TEMP(NXPI) = VX(4,I) CALL TRIDEC (NX,TEMP(1),TEMP(NX+1),TEMP(2*NX+1), * TEMP(1),TEMP(NX+1),IERR) CALL TRISOL (NX,TEMP(1),TEMP(NX+1),TEMP(2*NX+1),C,NX, * 1,1) RETURN END C C======================================================================= C C C SUBROUTINE SURFB1 (NX,NY,X,Y,W,NW1,C,VX,VY,TEMP,SIGMA, * IERR) C INTEGER NX,NY,NW1,IERR REAL X(NX),Y(NY),W(NW1,NY),C(NX,NY),VX(5,NX),VY(5,NY), * TEMP(*),SIGMA C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C C This subroutine determines the parameters necessary to C compute an interpolatory function on a two dimensional C rectangular grid. The function determined can be C represented as a tensor product of splines under tension C for actual mapping of points it is necessary to call the C subroutine SURFBD, which also returns first and second C partial derivatives. C C On input-- C C NX and NY are the number of grid lines in the X- and Y C directions, respectively, of the rectangular grid. (NX C and NY should be at least 2.) C C X and Y are arrays of the NX and NY coordinates of the C grid lines in X- and Y-directions, respectively. These C should be strictly increasing. C C W is an array of the NX * NY functional values at the C the grid points, i. e. W(I,J) contains the functional C value at (X(I),Y(J)) for I = 1,...,NX, and J = 1,...,NY. C C NW1 is the first dimension of the array W used in the C calling program (NW1 .GE. NX). C C C is an array of at least NX * NY locations. This C parameter may coincide with W in which case W is C destroyed on output. C C VX and VY are arrays of at least 5 * NX and 5 * NY C locations, respectively. C C Temp is an array of at least 3 * MAX(NX, NY) locations C which is used for scratch storage. C C And C C SIGMA contains the tension factor. This value indicate C the curviness desired. If ABS(SIGMA) is nearly zero C (e. G. .001) the resulting surface is approximately the C tensor product of cubic splines. If ABS(SIGMA) is large C (e. G. 50.) the resulting surface is approximately C bi-linear. If SIGMA equals zero tensor products of cubic C splines result. A standard value for SIGMA is C approximately 1. In absolute value. C C On output-- C C C contains the coefficients of a representation of the C interpolated function in a B-spline tensor production C form. C C VX and VY contain B-spline under tension basis data. C C IERR contains an error flag. C = 0 for normal return, C = 1 if NX or NY is less than 2, C = 2 if the X- or Y-arrays are not strictly C increasing. C C And C C None of the input parameters are altered (except W if C this parameter and C are identical in the calling C sequence). C C This subroutine references package modules VGEN, TERMS, C SNHCSH, TRIDEC, and TRISOL. C C--------------------------------------------------------- - C C Copy W into C C DO 1 J = 1,NY DO 1 I = 1,NX 1 C(I,J) = W(I,J) C C Generate basis functions along X-grid C set up tridiagonal system and solve C CALL VGEN (NX,X,SIGMA,VX,IERR) IF (IERR .NE. 0) RETURN DO 2 I = 2,NX 2 TEMP(I) = VX(5,I-1) NXPI = NX DO 3 I = 1,NX NXPI = NXPI+1 3 TEMP(NXPI) = 1. DO 4 I = 2,NX NXPI = NXPI+1 4 TEMP(NXPI) = VX(4,I) CALL TRIDEC (NX,TEMP(1),TEMP(NX+1),TEMP(2*NX+1), * TEMP(1),TEMP(NX+1),IERR) CALL TRISOL (NX,TEMP(1),TEMP(NX+1),TEMP(2*NX+1),C,NX, * NY,1) C C Generate basis functions along Y-grid C set up tridiagonal system and solve C CALL VGEN (NY,Y,SIGMA,VY,IERR) IF (IERR .NE. 0) RETURN DO 5 J = 2,NY 5 TEMP(J) = VY(5,J-1) NYPJ = NY DO 6 J = 1,NY NYPJ = NYPJ+1 6 TEMP(NYPJ) = 1. DO 7 J = 2,NY NYPJ = NYPJ+1 7 TEMP(NYPJ) = VY(4,J) CALL TRIDEC (NY,TEMP(1),TEMP(NY+1),TEMP(2*NY+1), * TEMP(1),TEMP(NY+1),IERR) CALL TRISOL (NY,TEMP(1),TEMP(NY+1),TEMP(2*NY+1),C,1, * NX,NX) RETURN END C C======================================================================= C C C SUBROUTINE VAL3B1 (NX,NY,NZ,X,Y,Z,W,NW1,NW2,C,VX,VY, * VZ,TEMP,SIGMA,IERR) C INTEGER NX,NY,NZ,NW1,NW2,IERR REAL X(NX),Y(NY),Z(NZ),W(NW1,NW2,NZ),C(NX,NY,NZ), * VX(5,NX),VY(5,NY),VZ(5,NZ),TEMP(*),SIGMA C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C C This subroutine determines the parameters necessary to C compute an interpolatory function on a three dimensional C rectangular grid. The function determined can be C represented as a tensor product of splines under tension. C For actual mapping of points it is necessary to call the C subroutine VAL3BD, which also returns first and second C partial derivatives. C C On input-- C C NX, NY, and NZ are the number of grid lines in the X-, C Y-, and Z-directions, respectively, of the rectangular C grid. (NX, NY, and NZ should be at least 2.) C C X, Y, and Z are arrays of the NX, NY, and NZ coordinates C of the grid lines in the X-, Y-, and Z-directions, C respectively. These should be strictly increasing. C C W is an array of the NX * NY * NZ functional values at C the grid points, i. e. W(I,J,K) contains the functional C value at (X(I),Y(J),Z(K)) for I = 1,...,NX, C J = 1,...,NY, and K = 1,...,NZ. C C NW1 and NW2 are the first two dimensions of the array W C used in the calling program (NW1 .GE. NX AND NW2 .GE. C NY). C C C is an array of at least NX * NY * NZ locations. This C parameter may coincide with W in which case W is C destroyed on output. C C VX, VY, and VZ are arrays of at least 5 * NX, 5 * NY, C and 5 * NZ locations, respectively. C C Temp is an array of at least 3 * MAX(NX, NY, NZ) C locations which is used for scratch storage. C C And C C SIGMA contains the tension factor. This value indicates C the curviness desired. If ABS(SIGMA) is nearly zero C (e. g. .001) the resulting surface is approximately the C tensor product of cubic splines. If ABS(SIGMA) is large C (e. g. 50.) the resulting surface is approximately C tri-linear. If SIGMA equals zero tensor products of C cubic splines result. A standard value for SIGMA is C approximately 1. In absolute value. C C On output-- C C C contains the coefficients of a representation of the C interpolated function in a B-spline tensor production C form. C C VX, VY, and VZ contain B-spline under tension basis C data. C C IERR contains an error flag. C = 0 for normal return, C = 1 if NX, NY, or NZ is less than 2, C = 2 if the X-, Y-, or Z-arrays are not strictly C increasing. C C And C C None of the input parameters are altered (except W if C this parameter and C are identical in the calling C sequence). C C This subroutine references package modules VGEN, TERMS, C SNHCSH, TRIDEC, and TRISOL. C C----------------------------------------------------------- C C Copy W into C C DO 1 K = 1,NZ DO 1 J = 1,NY DO 1 I = 1,NX 1 C(I,J,K) = W(I,J,K) C C Generate basis functions along X-grid C set up tridiagonal system and solve C CALL VGEN (NX,X,SIGMA,VX,IERR) IF (IERR .NE. 0) RETURN DO 2 I = 2,NX 2 TEMP(I) = VX(5,I-1) NXPI = NX DO 3 I = 1,NX NXPI = NXPI+1 3 TEMP(NXPI) = 1. DO 4 I = 2,NX NXPI = NXPI+1 4 TEMP(NXPI) = VX(4,I) CALL TRIDEC (NX,TEMP(1),TEMP(NX+1),TEMP(2*NX+1), * TEMP(1),TEMP(NX+1),IERR) CALL TRISOL (NX,TEMP(1),TEMP(NX+1),TEMP(2*NX+1),C,NX, * NY*NZ,1) C C Generate basis functions along Y-grid C set up tridiagonal system and solve C CALL VGEN (NY,Y,SIGMA,VY,IERR) IF (IERR .NE. 0) RETURN DO 5 J = 2,NY 5 TEMP(J) = VY(5,J-1) NYPJ = NY DO 6 J = 1,NY NYPJ = NYPJ+1 6 TEMP(NYPJ) = 1. DO 7 J = 2,NY NYPJ = NYPJ+1 7 TEMP(NYPJ) = VY(4,J) CALL TRIDEC (NY,TEMP(1),TEMP(NY+1),TEMP(2*NY+1), * TEMP(1),TEMP(NY+1),IERR) DO 8 K = 1,NZ 8 CALL TRISOL (NY,TEMP(1),TEMP(NY+1),TEMP(2*NY+1),C(1,1,K), * 1,NX,NX) C C Generate basis functions along Z-grid C set up tridiagonal system and solve C CALL VGEN (NZ,Z,SIGMA,VZ,IERR) IF (IERR .NE. 0) RETURN DO 9 K = 2,NZ 9 TEMP(K) = VZ(5,K-1) NZPK = NZ DO 10 K = 1,NZ NZPK = NZPK+1 10 TEMP(NZPK) = 1. DO 11 K = 2,NZ NZPK = NZPK+1 11 TEMP(NZPK) = VZ(4,K) CALL TRIDEC (NZ,TEMP(1),TEMP(NZ+1),TEMP(2*NZ+1), * TEMP(1),TEMP(NZ+1),IERR) CALL TRISOL (NZ,TEMP(1),TEMP(NZ+1),TEMP(2*NZ+1),C,1, * NX*NY,NX*NY) RETURN END C C======================================================================= C C C SUBROUTINE VGEN (N,X,SIGMA,V,IERR) C INTEGER N,IERR REAL X(N),SIGMA,V(5,N) C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C C This subroutine generates an array of coefficients used by C other subroutines for the determination of a B-spline C under tension basis. C C On input-- C C N is the number of knots defining the basis (N .GE. 2). C C X is the array of the N increasing knots. Any linear C combination of the resulting basis will have third C derivative discontinuities only at the interior knots, C (i. e. X(2),...,X(N-1) ). C C SIGMA contains the tension factor. This value indicates C the curviness desired. If ABS(SIGMA) is nearly zero C (e. g. .001) the basis functions are approximately cubic C splines. If ABS(SIGMA) is large (e. g. 50.) the basis C functions are nearly piecewise linear. If SIGMA equals C zero a cubic spline basis results. A standard value for C SIGMA is approximately 1. In absolute value. C C And C C V is an array of at least 5*N locations. C C On output-- C C V contains certain coefficients to be used by other C subprograms for the determination of the B-spline under C tension basis. Considered as a 5 by N array, for I = 1, C ... , N, B-spline basis function I is specified by-- C V(1,I) = second derivative at X(I-1), for I .NE. 1, C V(2,I) = second derivative at X(I), for all I, C V(3,I) = second derivative at X(I+1), for I .NE. N, C V(4,I) = function value at X(I-1), for I .NE. 1, C V(5,I) = function value at X(I+1), for I .NE. N, C and the properties that it has-- C 1. Function value 1 at X(I), C 2. Function value and second derivative = 0 at C X(1), ... , X(I-2), and X(I+2), ... , X(N). C In V(5,N) and V(3,N) are contained function value and C second derivative of basis function zero at X(1), C respectively. In V(4,1) and V(1,1) are contained C function value and second derivative of basis function C N+1 at X(N), respectively. Function value and second C derivative of these two basis functions are zero at all C other knots. Only basis function zero has non-zero C second derivative value at X(1) and only basis C function N+1 has non-zero second derivative at X(N). C C IERR contains an error flag, C = 0 for normal return, C = 1 if N is less than 2, C = 2 if X-values are not strictly increasing. C C And C C N, X, and SIGMA are unaltered. C C This subroutine references package modules TERMS and C SNHCSH. C C----------------------------------------------------------- C NM1 = N-1 IERR = 0 IF (N .LE. 1) GO TO 3 IF (X(N) .LE. X(1)) GO TO 4 C C Denormalize tension factor C SIGMAP = ABS(SIGMA)*FLOAT(N-1)/(X(N)-X(1)) C C Generate coefficients for left end basis functions C D3 = X(2)-X(1) IF (D3 .LE. 0.) GO TO 4 CALL TERMS (DIAG3,SDIAG3,SIGMAP,D3) D4 = D3 IF (N .GE. 3) D4 = X(3)-X(2) IF (D4 .LE. 0.) GO TO 4 CALL TERMS (DIAG4,SDIAG4,SIGMAP,D4) A22 = DIAG3+SDIAG3 A23 = DIAG3+DIAG4+SDIAG3+SDIAG4 V(2,1) = 0. V(3,1) = 1./(D3*(DIAG3+DIAG4)+(D3+D4)*SDIAG4) V(5,1) = SDIAG4*D4*V(3,1) IF (N .EQ. 2) GO TO 2 A22 = 2.*A22 D1 = D3 D2 = D3 D3 = D4 DIAG1 = DIAG3 DIAG2 = DIAG3 DIAG3 = DIAG4 SDIAG1 = SDIAG3 SDIAG2 = SDIAG3 SDIAG3 = SDIAG4 C C Generate coefficients for interior basis functions C DO 1 I = 2,NM1 IF (I .NE. NM1) D4 = X(I+2)-X(I+1) IF (D4 .LE. 0.) GO TO 4 IF (D4 .NE. D3) CALL TERMS (DIAG4,SDIAG4,SIGMAP,D4) A11 = DIAG1+DIAG2+SDIAG1*(1.+D1/D2) A12 = SDIAG2/A11 B1 = 1./(D2*A11) A33 = DIAG3+DIAG4+SDIAG4*(1.+D4/D3) A32 = SDIAG3/A33 B3 = 1./(D3*A33) A21 = A22 A22 = A23 A23 = DIAG3+DIAG4+SDIAG3+SDIAG4 V(2,I) = -(A21*B1+A23*B3)/(A22-A21*A12-A23*A32) V(1,I) = B1-A12*V(2,I) V(3,I) = B3-A32*V(2,I) V(4,I) = SDIAG1*D1*V(1,I) V(5,I) = SDIAG4*D4*V(3,I) C C Save constants for next iteration C D1 = D2 D2 = D3 D3 = D4 DIAG1 = DIAG2 DIAG2 = DIAG3 DIAG3 = DIAG4 SDIAG1 = SDIAG2 SDIAG2 = SDIAG3 1 SDIAG3 = SDIAG4 C C Generate coefficients for right end basis functions C V(2,N) = 0. V(1,N) = 1./(D2*(DIAG1+DIAG2)+(D2+D1)*SDIAG1) V(4,N) = SDIAG1*D1*V(1,N) V(3,N) = V(1,3) V(5,N) = V(4,3) V(1,1) = V(3,N-2) V(4,1) = V(5,N-2) C C Adjust basis for natural end conditions C V(4,2) = V(4,2)-V(1,2)*V(5,N)/V(3,N) V(1,2) = 0. V(5,NM1) = V(5,NM1)-V(3,NM1)*V(4,1)/V(1,1) V(3,NM1) = 0. RETURN C C N equal to 2 C 2 V(4,1) = V(5,1) V(1,1) = V(3,1) V(3,1) = 0. V(5,1) = 0. V(1,2) = 0. V(2,2) = 0. V(3,2) = V(1,1) V(4,2) = 0. V(5,2) = V(4,1) RETURN C C Too few knots C 3 IERR = 1 RETURN C C X-values not strictly increasing C 4 IERR = 2 RETURN END C C======================================================================= C C C SUBROUTINE TERMS (DIAG,SDIAG,SIGMA,DEL) C REAL DIAG,SDIAG,SIGMA,DEL C C From FITPACK -- August 31, 1981 C Coded by A. K. Cline and R. J. Renka C Department of Computer Sciences C University of Texas at Austin C C This subroutine computes the diagonal and superdiagonal C terms of the tridiagonal linear system associated with C spline under tension interpolation. C C On input-- C C SIGMA contains the tension factor. C C And C C DEL contains the step size. C C On output-- C C (SIGMA*DEL*COSH(SIGMA*DEL) - SINH(SIGMA*DEL) C DIAG = DEL*--------------------------------------------. C (SIGMA*DEL)**2 * SINH(SIGMA*DEL) C C SINH(SIGMA*DEL) - SIGMA*DEL C SDIAG = DEL*----------------------------------. C (SIGMA*DEL)**2 * SINH(SIGMA*DEL) C C And C C SIGMA and DEL are unaltered. C C This subroutine references package module SNHCSH. C C----------------------------------------------------------- C IF (SIGMA .NE. 0.) GO TO 1 DIAG = DEL/3. SDIAG = DEL/6. RETURN 1 SIGDEL = SIGMA*DEL CALL SNHCSH (SINHM,COSHM,SIGDEL,0) DENOM = DEL/((SINHM+SIGDEL)*SIGDEL*SIGDEL) DIAG = DENOM*(SIGDEL*COSHM-SINHM) SDIAG = DENOM*SINHM RETURN END C C======================================================================= C C C SUBROUTINE TRIDEC (N,SUBDI,DIAGI,SUPD,SUBDO,DIAGO, * IERR) C INTEGER N,IERR REAL SUBDI(N),DIAGI(N),SUPD(N),SUBDO(N),DIAGO(N) C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C C This subroutine factorizes a tridiagonal matrix in order C to solve systems of linear equations. The factorization C employs gaussian elimination without any interchanging of C columns or rows. The subroutine trisol may be called to C actually solve the system once the factorization has been C performed. C C On input-- C C N contains the order of the matrix (N .GE. 1). C C SUBDI is an array containing the subdiagonal elements of C the matrix in positions 2, ... , N. C C DIAGI is an array containing the diagonal elements of C the matrix. C C SUPD is an array containing the superdiagonal elements C of the matrix in positions 1, ... , N-1. C C And C C SUBDO and DIAGO are arrays of length N. (The storage C for these may coincide with that for SUBDI and DIAGI, C respectively, in which case the original contents of C SUBDI and DIAGI will be destroyed.) C C On output-- C C SUBDO and DIAGO contain the subdiagonal and diagonal of C the factorization matrix. C C IERR contains an error flag, C = 0 for normal return, C = 1 if N is less than 1, C = 2 if the system is singular. C C And C C N, SUBDI, DIAGI, and SUPD are unaltered (unless storage C for SUBDI or DIAGI coincided with that for SUBDO C or DIAGO, respectively). C C----------------------------------------------------------- C IF (N .LE. 0) GO TO 3 IERR = 2 DIAGO(1) = DIAGI(1) IF (N .EQ. 1) GO TO 2 C C Forward elimination C DO 1 I = 2,N IM1 = I-1 IF (DIAGO(IM1) .EQ. 0.) RETURN DIAGO(IM1) = 1./DIAGO(IM1) SUBDO(I) = SUBDI(I)*DIAGO(IM1) 1 DIAGO(I) = DIAGI(I)-SUBDO(I)*SUPD(IM1) 2 IF (DIAGO(N) .EQ. 0.) RETURN DIAGO(N) = 1./DIAGO(N) IERR = 0 RETURN C C N less than 1 C 3 IERR = 1 RETURN END C C======================================================================= C C C SUBROUTINE TRISOL (N,SUBD,DIAG,SUPD,RHS,MRHS,NUMRHS, * INCRHS) C INTEGER N,MRHS,NUMRHS,INCRHS REAL SUBD(N),DIAG(N),SUPD(N) REAL RHS(1+INCRHS*(N-1)+MRHS*(NUMRHS-1)) C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C Revised -- December 31, 1992 C by Ludek Klimes C Institute of Geotechnics C Czechosl. Acad. Sci., Prague C C This subroutine solves tridiagonal systems of linear C equations with multiple right hand sides. The right hand C sides may be stored row-wise or column-wise. The C subroutine TRIDEC should be called earlier to determine a C factorization of the tridiagonal matrix. The solution C vectors over-write the right hand sides. C C On input-- C C N contains the order of the matrix (N .GE. 1). C C SUBD, DIAG, and SUPD are arrays of length N containing C the subdiagonal, diagonal, and superdiagonal of the C factorization, respectively. C C RHS is an array containing the right hand sides of the C tridiagonal system. C C MRHS is the increment between the first components of C each of the right hand side vectors in storage (MRHS C .GE. 1). C C NUMRHS is the number of right hand sides to be solved. C C And C C INCRHS is the increment between components within each C of the right hand side vectors in storage (INCRHS .GE. C 1). C C The parameters N, SUBD, DIAG, and SUPD may be input as the C parameters N, SUBDO, DIAGO, and SUPD output by subroutine C TRIDEC, respectively. C C On output-- C C RHS contains the solution vectors in the same storage C structure as for the right hand sides. C C And C C N, SUBD, DIAG, SUPD, MRHS, NUMRHS, and INCRHS are C unaltered. C C----------------------------------------------------------- C NP1 = N+1 C C Loop on right hand sides C DO 4 K = 1,NUMRHS C C Forward elimination C IRHS = 1+MRHS*(K-1) IF (N .EQ. 1) GO TO 2 DO 1 I = 2,N IM1RHS = IRHS IRHS = IRHS+INCRHS 1 RHS(IRHS) = RHS(IRHS)-SUBD(I)*RHS(IM1RHS) C C Back substitution C 2 RHS(IRHS) = DIAG(N)*RHS(IRHS) IF (N .EQ. 1) GO TO 4 DO 3 IBAK = 2,N I = NP1-IBAK RHS(IM1RHS) = DIAG(I)*(RHS(IM1RHS)-SUPD(I) * *RHS(IRHS)) IRHS = IM1RHS 3 IM1RHS = IM1RHS-INCRHS 4 CONTINUE RETURN END C C======================================================================= C C Part 2: C C======================================================================= C C C SUBROUTINE CURV2D (T,YY,YX,YXX,N,X,Y,YP,SIGMA) C INTEGER N REAL T,YY,YX,YXX,X(N),Y(N),YP(N),SIGMA C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C C This subroutine determines function value, first, and C second derivatives of a curve at a given point using a C spline under tension. The subroutine CURV1 should be C called earlier to determine certain necessary parameters. C C On input-- C C T contains a real value at which the function and C derivatives are to be evaluated. C C N contains the number of points which were specified to C determine the curve. C C X and Y are arrays containing the abscissae and C ordinates, respectively, of the specified points. C C YP is an array of second derivative values of the curve C at the nodes. C C And C C SIGMA contains the tension factor (its sign is ignored). C C The parameters N, X, Y, YP, and SIGMA should be input C unaltered from the output of CURV1. C C On output-- C C YY, YX, and YXX contain the function value, first and C second derivatives, respectively. C C None of the input parameters are altered. C C This subroutine references package modules INTRVL and C SNHCSH. C C----------------------------------------------------------- C C Determine interval C IM1 = INTRVL(T,X,N) I = IM1+1 C C Denormalize tension factor C SIGMAP = ABS(SIGMA)*FLOAT(N-1)/(X(N)-X(1)) C C Set up and perform interpolation C DEL1 = T-X(IM1) DEL2 = X(I)-T DELS = X(I)-X(IM1) YY = (Y(I)*DEL1+Y(IM1)*DEL2)/DELS YX = (Y(I)-Y(IM1))/DELS IF (SIGMAP .NE. 0.) GO TO 1 YY = YY-DEL1*DEL2*(YP(I)*(DEL1+DELS)+YP(IM1)* * (DEL2+DELS))/(6.*DELS) YX = YX+(YP(I)*(2.*DEL1*DEL1-DEL2*(DEL1+DELS))- * YP(IM1)*(2.*DEL2*DEL2-DEL1*(DEL2+DELS))) * /(6.*DELS) YXX = (YP(I)*DEL1+YP(IM1)*DEL2)/DELS RETURN 1 DELP1 = SIGMAP*(DEL1+DELS)/2. DELP2 = SIGMAP*(DEL2+DELS)/2. CALL SNHCSH (SINHM1,COSHM1,SIGMAP*DEL1,0) CALL SNHCSH (SINHM2,COSHM2,SIGMAP*DEL2,0) CALL SNHCSH (SINHMS,DUMMY,SIGMAP*DELS,-1) CALL SNHCSH (SINHP1,DUMMY,SIGMAP*DEL1/2.,-1) CALL SNHCSH (SINHP2,DUMMY,SIGMAP*DEL2/2.,-1) CALL SNHCSH (DUMMY,COSHP1,DELP1,1) CALL SNHCSH (DUMMY,COSHP2,DELP2,1) YY = YY+(YP(I)*(SINHM1*DEL2-DEL1*(2.*(COSHP1+1.)* * SINHP2+SIGMAP*COSHP1*DEL2))+YP(IM1)*(SINHM2* * DEL1-DEL2*(2.*(COSHP2+1.)*SINHP1+SIGMAP* * COSHP2*DEL1)))/(SIGMAP*SIGMAP*DELS*(SINHMS+ * SIGMAP*DELS)) YX = YX+(YP(I)*(DELS*SIGMAP*COSHM1-SINHMS)- * YP(IM1)*(DELS*SIGMAP*COSHM2-SINHMS))/ * (SIGMAP*SIGMAP*DELS*(SINHMS+SIGMAP*DELS)) YXX = (YP(I)*(SINHM1+SIGMAP*DEL1)+YP(IM1)*(SINHM2+ * SIGMAP*DEL2))/(SINHMS+SIGMAP*DELS) RETURN END C C======================================================================= C C C SUBROUTINE CURVBD (XX,W,WX,WXX,NX,X,C,VX,SIGMA) C INTEGER NX REAL XX,W,WX,WXX,X(NX),VX(5,NX),C(NX),SIGMA C C Complement to FITPACK C by Alan Kaylor Cline C Coded -- October 9, 1986 C by Ludek Klimes C Inst. Geol. Geotechn. C Czechosl. Acad. Sci., Prague C C This subroutine evaluates the function value, the C first partial derivative, and the second partial C derivative of a spline under tension in one variable. C C On input-- C C XX contains the X-coordinate of the point C at which the interpolation is to be performed C C NX is the number of grid points C C X is array containing the X-grid values. C C C is an array of coefficients describing the function in C terms of a B-spline under tension basis. In the C expansion of the function, for I = 1,...,NX , C the coefficient multiplying the basis C function I is stored in C(I). C C VX is the array of length 5*NX C containing the B-spline basis data C C SIGMA contains the tension factor (its sign is ignored). C C The parameters NX, X, C, VX, and SIGMA C should be input unaltered from the output of CURVB1. C C On output-- C C W contains the interpolated function value. C C WX contains the first derivative . C C WXX contains the second derivative . C C And C C None of the input parameters are altered. C C This subroutine references package modules DSPLNZ, INTRVL, C and SNHCSH. C C-------------------------------------------------------------- C REAL BX(3,4) C C Evaluate basis functions at XX C CALL DSPLNZ (XX,NX,X,VX,SIGMA,ISTART,BX) C C Accumulate basis functions C SUM = 0. SUMX = 0. SUMXX = 0. DO 1 I = 1,4 II = ISTART+I-1 IF (II .EQ. 0 .OR. II .GT. NX) GO TO 1 BX1I = BX(1,I) CI = C(II) SUM = SUM+CI*BX1I SUMX = SUMX+CI*BX(2,I) SUMXX = SUMXX+CI*BX(3,I) *V CALL VAR2(II,BX1I,BX(2,I),0.,0.) 1 CONTINUE W = SUM WX = SUMX WXX = SUMXX RETURN END C C======================================================================= C C C SUBROUTINE SURFBD (XX,YY,W,WX,WY,WXX,WXY,WYY,NX,NY,X, * Y,C,VX,VY,SIGMA) C INTEGER NX,NY REAL XX,YY,W,WX,WY,WXX,WXY,WYY,X(NX),Y(NY),VX(5,NX), * VY(5,NY),C(NX,NY),SIGMA C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C C This subroutine evaluates the function value, the two C first partial derivatives, and the six second partial C derivatives of a tensor product spline under tension in C two variables. C C On input-- C C XX and YY contain the X- and Y-coordinates of the point C at which the interpolation is to be performed. C C NX and NY are the number of grid lines in the X- and Y- C directions, respectively, of the rectangular grid which C specified the function. C C X and Y are arrays containing the X- and Y-grid values, C respectively. C C C is an array of coefficients describing the function in C terms of a B-spline under tension basis. In the C expansion of the function, for I = 1,...,NX and J = 1, C ...,NY, the coefficient multiplying the product of basis C function I in X and basis function J in Y is stored in C C(I,J). C C VX and VY VZ are arrays of length 5*NX and 5*NY, C respectively, containing the B-spline basis data for the C X- and Y-grids. C C And C C SIGMA contains the tension factor (its sign is ignored). C C The parameters NX, NY, X, Y, Z, C, VX, VY, and SIGMA C should be input unaltered from the output of SURFB1. C C On output-- C C W contains the interpolated function value. C C WX and WY contain the X- and Y-partial derivatives, C respectively. C C WXX, WXY, and WYY contain the XX-, XY-, and YY-partial C derivatives, respectively. C C And C C None of the input parameters are altered. C C This subroutine references package modules DSPLNZ, INTRVL, C and SNHCSH. C C--------------------------------------------------------- ---- C REAL BX(3,4),BY(3,4) C C Evaluate basis functions at XX and YY C CALL DSPLNZ (XX,NX,X,VX,SIGMA,ISTART,BX) CALL DSPLNZ (YY,NY,Y,VY,SIGMA,JSTART,BY) C C Accumulate tensor products C SUM = 0. SUMX = 0. SUMY = 0. SUMXX = 0. SUMXY = 0. SUMYY = 0. DO 2 J = 1,4 JJ = JSTART+J-1 IF (JJ .EQ. 0 .OR. JJ .GT. NY) GO TO 2 BY1J = BY(1,J) BY2J = BY(2,J) BY3J = BY(3,J) DO 1 I = 1,4 II = ISTART+I-1 IF (II .EQ. 0 .OR. II .GT. NX) GO TO 1 BX1I = BX(1,I) BX2I = BX(2,I) CIJ = C(II,JJ) SUM = SUM+CIJ*BX1I*BY1J SUMX = SUMX+CIJ*BX2I*BY1J SUMY = SUMY+CIJ*BX1I*BY2J SUMXX = SUMXX+CIJ*BX(3,I)*BY1J SUMXY = SUMXY+CIJ*BX2I*BY2J SUMYY = SUMYY+CIJ*BX1I*BY3J *V CALL VAR2(II+NX*(JJ-1),BX1I*BY1J,BX2I*BY1J,BX1I*BY2J,0.) 1 CONTINUE 2 CONTINUE W = SUM WX = SUMX WY = SUMY WXX = SUMXX WXY = SUMXY WYY = SUMYY RETURN END C C======================================================================= C C C SUBROUTINE VAL3BD (XX,YY,ZZ,W,WX,WY,WZ,WXX,WXY,WYY, * WYZ,WZZ,WXZ,NX,NY,NZ,X,Y,Z,C,VX,VY, * VZ,SIGMA) C INTEGER NX,NY,NZ REAL XX,YY,ZZ,W,WX,WY,WZ,WXX,WXY,WYY,WYZ,WZZ,WXZ, * X(NX),Y(NY),Z(NZ),VX(5,NX),VY(5,NY),VZ(5,NZ), * C(NX,NY,NZ),SIGMA C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C C This subroutine evaluates the function value, the three C first partial derivatives, and the six second partial C derivatives of a tensor product spline under tension in C three variables. C C On input-- C C XX, YY, and ZZ contain the X-, Y-, and Z-coordinates of C the point at which the interpolation is to be performed. C C NX, NY, and NZ are the number of grid lines in the X-, C Y-, and Z-directions, respectively, of the rectangular C grid which specified the function. C C X, Y, and Z are arrays containing the X-, Y-, and Z-grid C values, respectively. C C C is an array of coefficients describing the function in C terms of a B-spline under tension basis. In the C expansion of the function, for I = 1,...,NX, J = 1,..., C NY, AND K = 1,...,NZ, the coefficient multiplying the C product of basis function I in X, basis function J in Y, C and basis function K in Z is stored in C(I,J,K). C C VX, VY, and VZ are arrays of length 5*NX, 5*NY, and C 5*NZ, respectively, containing the B-spline basis data C for the X-, Y-, and Z-grids. C C And C C SIGMA contains the tension factor (its sign is ignored). C C The parameters NX, NY, NZ, X, Y, Z, C, VX, VY, VZ, and C SIGMA should be input unaltered from the output of C VAL3B1. C C On output-- C C W contains the interpolated function value. C C WX, WY, and WZ contain the X-, Y-, and Z-partial C derivatives, respectively. C C WXX, WXY, WYY, WYZ, WZZ, and WXZ contain the XX-, XY- C YY-, YZ-, ZZ-, and XZ-partial derivatives, respectively. C C And C C None of the input parameters are altered. C C This subroutine references package modules DSPLNZ, INTRVL, C and SNHCSH. C C-------------------------------------------------------------- C REAL BX(3,4),BY(3,4),BZ(3,4) C C Evaluate basis functions at XX, YY, and ZZ C CALL DSPLNZ (XX,NX,X,VX,SIGMA,ISTART,BX) CALL DSPLNZ (YY,NY,Y,VY,SIGMA,JSTART,BY) CALL DSPLNZ (ZZ,NZ,Z,VZ,SIGMA,KSTART,BZ) C C Accumulate tensor products C SUM = 0. SUMX = 0. SUMY = 0. SUMZ = 0. SUMXX = 0. SUMXY = 0. SUMYY = 0. SUMYZ = 0. SUMZZ = 0. SUMXZ = 0. DO 3 K = 1,4 KK = KSTART+K-1 IF (KK .EQ. 0 .OR. KK .GT. NZ) GO TO 3 BZ1K = BZ(1,K) BZ2K = BZ(2,K) BZ3K = BZ(3,K) DO 2 J = 1,4 JJ = JSTART+J-1 IF (JJ .EQ. 0 .OR. JJ .GT. NY) GO TO 2 BY1J = BY(1,J) BY2J = BY(2,J) BY3J = BY(3,J) DO 1 I = 1,4 II = ISTART+I-1 IF (II .EQ. 0 .OR. II .GT. NX) GO TO 1 BX1I = BX(1,I) BX2I = BX(2,I) CIJK = C(II,JJ,KK) SUM = SUM+CIJK*BX1I*BY1J*BZ1K SUMX = SUMX+CIJK*BX2I*BY1J*BZ1K SUMY = SUMY+CIJK*BX1I*BY2J*BZ1K SUMZ = SUMZ+CIJK*BX1I*BY1J*BZ2K SUMXX = SUMXX+CIJK*BX(3,I)*BY1J*BZ1K SUMXY = SUMXY+CIJK*BX2I*BY2J*BZ1K SUMYY = SUMYY+CIJK*BX1I*BY3J*BZ1K SUMYZ = SUMYZ+CIJK*BX1I*BY2J*BZ2K SUMZZ = SUMZZ+CIJK*BX1I*BY1J*BZ3K SUMXZ = SUMXZ+CIJK*BX2I*BY1J*BZ2K *V CALL VAR2(II+NX*(JJ-1+NY*(KK-1)),BX1I*BY1J*BZ1K, *V * BX2I*BY1J*BZ1K,BX1I*BY2J*BZ1K,BX1I*BY1J*BZ2K) 1 CONTINUE 2 CONTINUE 3 CONTINUE W = SUM WX = SUMX WY = SUMY WZ = SUMZ WXX = SUMXX WXY = SUMXY WYY = SUMYY WYZ = SUMYZ WZZ = SUMZZ WXZ = SUMXZ RETURN END C C======================================================================= C C C SUBROUTINE DSPLNZ (T,N,X,V,SIGMA,ISTART,B) C INTEGER N,ISTART REAL T,X(N),V(5,N),SIGMA,B(3,4) C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C C This subroutine evaluates at a given point the four non- C zero basis functions of a B-spline under tension basis and C their first and second derivatives. The index of the first C non-zero basis function is also determined. (the sense of C the word non-zero is extended to include the special case C where the given point coincides with a knot in which case C the last of the four returned function values may be zero. C ) the subroutine VGEN should be called earlier to C determine certain necessary coefficients. C C On input-- C C T contains a real value at which the basis functions are C to be evaluated. C C N contains the number of knots defining the basis. C C X contains the array of knots. C C V contains the array of coefficients determined by VGEN C for calculation of basis functions. C C SIGMA contains the tension factor (its sign is ignored). C C ISTART is an integer variable. C C And C C B is a real array with 3 rows and 4 columns. C C The parameters N, X, V, and SIGMA should be input C unaltered from the output of VGEN. C C On output-- C C ISTART contains the index of the first non-zero basis C function. Thus 0 .LE. ISTART .LE. N-2 and the non-zero C basis functions have indices ISTART, ... , ISTART+3. C C B contains the values at T of basis functions ISTART, C ... , ISTART+3 in B(1,1), ... , B(1,4), respectively. C First and second derivatives of the corresponding C functions are contained in B(2,1), ... , B(2,4), and C B(3,1), ... , B(3,4), respectively. C C T, N, X, V, and SIGMA are unaltered. C C This subroutine references package modules INTRVL and C SNHCSH. C C----------------------------------------------------------- C C Denormalize tension factor C SIGMAP = ABS(SIGMA)*FLOAT(N-1)/(X(N)-X(1)) C C Determine index of first non-zero basis function C I = INTRVL (T,X,N)-1 C C Compute distances to adjacent knots and lagrangian C weights C DEL1 = T-X(I+1) DEL2 = X(I+2)-T DELS = X(I+2)-X(I+1) C10 = DEL2/DELS C20 = DEL1/DELS C11 = -1./DELS C21 = 1./DELS IF (SIGMAP .NE. 0.) GO TO 1 FAC = -DEL1*DEL2/(6.*DELS) CP10 = FAC*(DEL2+DELS) CP20 = FAC*(DEL1+DELS) CP11 = -(2.*DEL2*DEL2-DEL1*(DEL2+DELS))/(6.*DELS) CP21 = (2.*DEL1*DEL1-DEL2*(DEL1+DELS))/(6.*DELS) CP12 = C10 CP22 = C20 GO TO 2 1 DELP1 = SIGMAP*(DEL1+DELS)/2. DELP2 = SIGMAP*(DEL2+DELS)/2. CALL SNHCSH (SINHM1,COSHM1,SIGMAP*DEL1,0) CALL SNHCSH (SINHM2,COSHM2,SIGMAP*DEL2,0) CALL SNHCSH (SINHMS,DUMMY,SIGMAP*DELS,-1) CALL SNHCSH (SINHP1,DUMMY,SIGMAP*DEL1/2.,-1) CALL SNHCSH (SINHP2,DUMMY,SIGMAP*DEL2/2.,-1) CALL SNHCSH (DUMMY,COSHP1,DELP1,1) CALL SNHCSH (DUMMY,COSHP2,DELP2,1) SINHS = SINHMS+SIGMAP*DELS DENOM = SIGMAP*SIGMAP*DELS*SINHS CP10 = (SINHM2*DEL1-DEL2*(2.*(COSHP2+1.)*SINHP1 * +SIGMAP*COSHP2*DEL1))/DENOM CP20 = (SINHM1*DEL2-DEL1*(2.*(COSHP1+1.)*SINHP2 * +SIGMAP*COSHP1*DEL2))/DENOM CP11 = -(DELS*SIGMAP*COSHM2-SINHMS)/DENOM CP21 = (DELS*SIGMAP*COSHM1-SINHMS)/DENOM CP12 = (SINHM2+SIGMAP*DEL2)/SINHS CP22 = (SINHM1+SIGMAP*DEL1)/SINHS C C Compute basis function values C 2 II = I IF (II .EQ. 0) II = N IIP1 = I+1 IIP2 = I+2 IIP3 = I+3 IF (IIP2 .EQ. N) IIP3 = 1 B(1,1) = C10*V(5,II)+CP10*V(3,II) B(1,2) = C10+C20*V(5,IIP1)+CP10*V(2,IIP1)+ * CP20*V(3,IIP1) B(1,3) = C10*V(4,IIP2)+C20+CP10*V(1,IIP2)+ * CP20*V(2,IIP2) B(1,4) = C20*V(4,IIP3)+CP20*V(1,IIP3) B(2,1) = C11*V(5,II)+CP11*V(3,II) B(2,2) = C11+C21*V(5,IIP1)+CP11*V(2,IIP1)+ * CP21*V(3,IIP1) B(2,3) = C11*V(4,IIP2)+C21+CP11*V(1,IIP2)+ * CP21*V(2,IIP2) B(2,4) = C21*V(4,IIP3)+CP21*V(1,IIP3) B(3,1) = CP12*V(3,II) B(3,2) = CP12*V(2,IIP1)+CP22*V(3,IIP1) B(3,3) = CP12*V(1,IIP2)+CP22*V(2,IIP2) B(3,4) = CP22*V(1,IIP3) ISTART = I RETURN END C C======================================================================= C C C FUNCTION INTRVL (T,X,N) C INTEGER N REAL T,X(N) C C From FITPACK -- August 31, 1981 C Coded by A. K. Cline and R. J. Renka C Department of Computer Sciences C University of Texas at Austin C C This function determines the index of the interval C (determined by a given increasing sequence) in which C a given value lies. C C On input-- C C T is the given value. C C X is a vector of strictly increasing values. C C And C C N is the length of X (N .GE. 2). C C On output-- C C INTRVL returns an integer I such that C C I = 1 if T .LT. X(2) , C I = N-1 if X(N-1) .LE. T , C otherwise X(I) .LE. T .LT. X(I+1), C C None of the input parameters are altered. C C----------------------------------------------------------- C TT = T IF (TT .LT. X(2)) GO TO 4 IF (TT .GE. X(N-1)) GO TO 5 IL = 2 IH = N-1 C C Linear interpolation C 1 I = MIN0(IL+IFIX(FLOAT(IH-IL)*(TT-X(IL))/(X(IH)-X(IL))), * IH-1) IF (TT .LT. X(I)) GO TO 2 IF (TT .LT. X(I+1)) GO TO 3 C C Too high C IL = I+1 GO TO 1 C C Too low C 2 IH = I GO TO 1 3 INTRVL = I RETURN C C Left end C 4 INTRVL = 1 RETURN C C Right end C 5 INTRVL = N-1 RETURN END C C======================================================================= Cfitv.for 100666 1750 1750 147275 6622461042 11677 0 ustar klimes klimes C
C Subroutines of the software package 'FITPACK' by A.K. Cline C used to specify the model for the complete ray tracing algorithm. C C This file consists of the following parts: C (0) Auxiliary subroutine C SNHCSH C SNHCSH C common to all the following parts. C (1) The subroutines preparing the parameters necessary to compute C an interpolatory function: C CURVN1 (Hermite representation of 1-D function), C CURVB1 (B-spline representation of 1-D function), C SURFB1 (B-spline representation of 2-D function), C VAL3B1 (B-spline representation of 3-D function), C VGEN (auxiliary subroutine), C TERMS (auxiliary subroutine), C TRIDEC (auxiliary subroutine), C TRISOL (auxiliary subroutine). C CURVN1 C CURVB1 C SURFB1 C VAL3B1 C VGEN C TERMS C TRIDEC C TRISOL C Subroutines CURVN1 and CURVB1 are alternatives. C (2) The subroutines evaluating the value, first and second partial C derivatives of the interpolatory function at a given point: C CURV2D (Hermite representation of 1-D function), C CURVBD (B-spline representation of 1-D function), C SURFBD (B-spline representation of 2-D function), C VAL3BD (B-spline representation of 3-D function), C DSPLNZ (auxiliary subroutine), C INTRVL (auxiliary external function). C CURV2D C CURVBD C SURFBD C VAL3BD C DSPLNZ C INTRVL C Subroutines CURV2D and CURVBD are alternatives. C C Taken from: C FITPACK - A Software Package for Curve and Surface Fitting C Employing Splines under Tension C by Alan Kaylor Cline, Department of Computer Sciences, C The University of Texas at Austin, August 31, 1981. C Note 1: C To conform with the FORTRAN77 standard, dummy array dimensions (1) C have been changed to (*), and subroutine TRISOL has been revised. C Note 2: C Subroutines CURVB1 and CURVBD do not belong to the original C version of FITPACK. C Note 3 C The lines denoted by '*V' in the first two columns of file C 'fit.for' calculate the model variations with respect to the model C parameters. C File 'fitv.for', intended for the model inversion, is created C from 'fit.for' by replacing each '*V' in the first two columns C by spaces using program 'clean.for'. Subroutines VAR4 and VAR5 C of file 'var.for' may then be called to handle the variations. C Note 4: C To get the original versions of the subroutines SURFBD and VAL3BD, C the statement with 'CALL VAR2' must be removed from each of them. C The statements have been added by L.Klimes for the sake of inverse C modelling to the subroutines CURVBD, SURFBD, and VAL3BD. C The three appearances of the statements 'CALL VAR2' are denoted by C '*V' in the first 2 columns. The three lines should be removed or C modified before compilation. C C======================================================================= C C Part 0: C C======================================================================= C C C SUBROUTINE SNHCSH (SINHM,COSHM,X,ISW) C INTEGER ISW REAL SINHM,COSHM,X C C From FITPACK -- August 31, 1981 C Coded by A. K. Cline and R. J. Renka C Department of Computer Sciences C University of Texas at Austin C C This subroutine returns approximations to C SINHM(X) = SINH(X)-X C COSHM(X) = COSH(X)-1 C and C COSHMM(X) = COSH(X)-1-X*X/2 C with relative error less than 6.16e-6 C C On input-- C C X contains the value of the independent variable. C C ISW indicates the function desired C = -1 if only SINHM is desired, C = 0 if both SINHM and coshm are desired, C = 1 if only COSHM is desired, C = 2 if only COSHMM is desired, C = 3 if both SINHM and COSHMM are desired. C C On output-- C C SINHM contains the value of SINHM(X) if ISW .LE. 0 or C ISW .EQ. 3 (SINHM is unaltered if ISW .EQ.1 or ISW .EQ. C 2). C C COSHM contains the value of COSHM(X) if ISW .EQ. 0 or C ISW .EQ. 1 and contains the value of COSHMM(X) if ISW C .GE. 2 (COSHM is unaltered if ISW .EQ. -1). C C And C C X and ISW are unaltered. C C----------------------------------------------------------- C DATA SP2/5.04850926418006E-04/, * SP1/3.62841692246321E-02/, * SQ1/-1.37157937097122E-02/ DATA CP2/1.31625490355985E-03/, * CP1/6.57866547762733E-02/, * CQ1/-1.75465241841312E-02/ DATA ZP2/1.40048186158693E-04/, * ZP1/1.67309141907440E-02/, * ZQ2/9.82154460147143E-05/, * ZQ1/-1.66024148976133E-02/ XX = X AX = ABS(XX) XS = XX*XX IF ((AX .GE. 2.20) .OR. (AX .GE. 1.17 .AND. * ISW .NE. 2)) EXPX = EXP(AX) C C SINHM approximation C IF (ISW .EQ. 1 .OR. ISW .EQ. 2) GO TO 2 IF (AX .GE. 1.17) GO TO 1 SINHM = (((SP2*XS+SP1)*XS+1.)*XS*XX)/((SQ1*XS+1.)*6.) GO TO 2 1 SINHM = (EXPX-1./EXPX)/2.-AX IF (XX .LT. 0.) SINHM = -SINHM C C COSHM approximation C 2 IF (ISW .NE. 0 .AND. ISW .NE. 1) GO TO 4 IF (AX .GE. 1.17) GO TO 3 COSHM = (((CP2*XS+CP1)*XS+1.)*XS)/((CQ1*XS+1.)*2.) GO TO 4 3 COSHM = (EXPX+1./EXPX)/2.-1. C C COSHMM approximation C 4 IF (ISW .LE. 1) RETURN IF (AX .GE. 2.20) GO TO 5 COSHM = (((ZP2*XS+ZP1)*XS+1.)*XS*XS)/(((ZQ2*XS+ZQ1)*XS * +1.)*24.) RETURN 5 COSHM = (EXPX+1./EXPX)/2.-1.-XS/2. RETURN END C C======================================================================= C C Part 1: C C======================================================================= C C C SUBROUTINE CURVN1 (N,X,Y,YP,TEMP,SIGMA,IERR) C INTEGER N,IERR REAL X(N),Y(N),YP(N),TEMP(N),SIGMA C C From FITPACK -- August 31, 1981 C Coded by a. K. Cline and s. E. Galinsky C Department of Computer Sciences C University of Texas at Austin C C This subroutine determines the parameters necessary to C compute a natural interpolatory spline under tension C through a sequence of functional values. For actual C computation of points on the curve it is necessary to call C the function CURV2. C C On input-- C C N is the number of values to be interpolated (N.GE.2). C C X is an array of the N increasing abscissae of the C functional values. C C Y is an array of the N ordinates of the values, (i. e. C Y(K) is the functional value corresponding to X(K) ). C C YP is an array of length at least N. C C TEMP is an array of length at least N which is used for C scratch storage. C C And C C SIGMA contains the tension factor. This value indicates C the curviness desired. If ABS(SIGMA) is nearly zero C (e.g. .001) the resulting curve is approximately a C cubic spline. If ABS(SIGMA) is large (e.g. 50.) the C resulting curve is nearly a polygonal line. If SIGMA C equals zero a cubic spline results. A standard value C for SIGMA is approximately 1. In absolute value. C C On output-- C C YP contains the values of the second derivative of the C curve at the given nodes. C C IERR contains an error flag, C = 0 for normal return, C = 1 if N is less than 2, C = 2 if X-values are not strictly increasing. C C And C C N, X, Y, and SIGMA are unaltered. C C This subroutine references package modules SNHCSH. C C----------------------------------------------------------- C NM1 = N-1 NP1 = N+1 IERR = 0 IF (N .LE. 1) GO TO 4 IF (X(N) .LE. X(1)) GO TO 5 C C Denormalize tension factor C SIGMAP = ABS(SIGMA)*FLOAT(N-1)/(X(N)-X(1)) C C Set up right hand side and tridiagonal system for YP and C perform forward elimination C DELX1 = X(2)-X(1) IF (DELX1 .LE. 0.) GO TO 5 DX1 = (Y(2)-Y(1))/DELX1 CALL TERMS (DIAG1,SDIAG1,SIGMAP,DELX1) SDIAG1 = 0. YP(1) = 0. TEMP(1) = 0. IF (N .EQ. 2) GO TO 2 DO 1 I = 2,NM1 DELX2 = X(I+1)-X(I) IF (DELX2 .LE. 0.) GO TO 5 DX2 = (Y(I+1)-Y(I))/DELX2 CALL TERMS (DIAG2,SDIAG2,SIGMAP,DELX2) DIAG = DIAG1+DIAG2-SDIAG1*TEMP(I-1) YP(I) = (DX2-DX1-SDIAG1*YP(I-1))/DIAG TEMP(I) = SDIAG2/DIAG DX1 = DX2 DIAG1 = DIAG2 1 SDIAG1 = SDIAG2 2 YP(N) = 0. TEMP(N-1) = 0. C C Perform back substitution C DO 3 I = 2,N IBAK = NP1-I 3 YP(IBAK) = YP(IBAK)-TEMP(IBAK)*YP(IBAK+1) RETURN C C Too few points C 4 IERR = 1 RETURN C C X-values not strictly increasing C 5 IERR = 2 RETURN END C C======================================================================= C C C SUBROUTINE CURVB1 (NX,X,W,C,VX,TEMP,SIGMA,IERR) C INTEGER NX,IERR REAL X(NX),W(NX),C(NX),VX(5,NX),TEMP(*),SIGMA C C Complement to FITPACK C by Alan Kaylor Cline C Coded -- October 9, 1986 C by Ludek Klimes C Inst. Geol. Geotechn. C Czechosl. Acad. Sci., Prague C C This subroutine determines the parameters necessary to C compute an interpolatory function on a one dimensional C grid. The function determined can be C represented by splines under tension. For actual C mapping of points it is necessary to call the subroutine C CURVBD, which also returns first and second derivatives. C C On input-- C C NX is the number of grid points. C (NX should be at least 2) C C X is array of the NX coordinates of the grid points. C These should be strictly increasing. C C W is an array of the NX functional values at the C the grid points, i. e. W(I,J) contains the functional C value at X(I) for I = 1,...,NX . C C C is an array of at least NX locations. This C parameter may coincide with W in which case W is C destroyed on output. C C VX is the array of at least 5 * NX locations. C C TEMP is an array of at least 3 * NX locations C which is used for scratch storage. C C SIGMA contains the tension factor. This value indicate C the curviness desired. If ABS(SIGMA) is nearly zero C (e. g. .001) the resulting surface is approximately the C tensor product of cubic splines. If ABS(SIGMA) is large C (e. g. 50.) the resulting surface is approximately C bi-linear. If SIGMA equals zero tensor products of cubic C splines result. A standard value for SIGMA is C approximately 1. In absolute value. C C On output-- C C C contains the coefficients of a representation of the C interpolated function in a B-spline form. C C VX contains B-spline under tension basis data. C C IERR contains an error flag. C = 0 for normal return, C = 1 if NX is less than 2, C = 2 if the X-array is not strictly C increasing. C C And C C None of the input parameters are altered (except W if C this parameter and C are identical in the calling C sequence). C C This subroutine references package modules VGEN, TERMS, C SNHCSH, TRIDEC, and TRISOL. C C----------------------------------------------------------- C C Copy W into C C DO 1 I = 1,NX 1 C(I) = W(I) C C Generate basis functions along X-grid C set up tridiagonal system and solve C CALL VGEN (NX,X,SIGMA,VX,IERR) IF (IERR .NE. 0) RETURN DO 2 I = 2,NX 2 TEMP(I) = VX(5,I-1) NXPI = NX DO 3 I = 1,NX NXPI = NXPI+1 3 TEMP(NXPI) = 1. DO 4 I = 2,NX NXPI = NXPI+1 4 TEMP(NXPI) = VX(4,I) CALL TRIDEC (NX,TEMP(1),TEMP(NX+1),TEMP(2*NX+1), * TEMP(1),TEMP(NX+1),IERR) CALL TRISOL (NX,TEMP(1),TEMP(NX+1),TEMP(2*NX+1),C,NX, * 1,1) RETURN END C C======================================================================= C C C SUBROUTINE SURFB1 (NX,NY,X,Y,W,NW1,C,VX,VY,TEMP,SIGMA, * IERR) C INTEGER NX,NY,NW1,IERR REAL X(NX),Y(NY),W(NW1,NY),C(NX,NY),VX(5,NX),VY(5,NY), * TEMP(*),SIGMA C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C C This subroutine determines the parameters necessary to C compute an interpolatory function on a two dimensional C rectangular grid. The function determined can be C represented as a tensor product of splines under tension C for actual mapping of points it is necessary to call the C subroutine SURFBD, which also returns first and second C partial derivatives. C C On input-- C C NX and NY are the number of grid lines in the X- and Y C directions, respectively, of the rectangular grid. (NX C and NY should be at least 2.) C C X and Y are arrays of the NX and NY coordinates of the C grid lines in X- and Y-directions, respectively. These C should be strictly increasing. C C W is an array of the NX * NY functional values at the C the grid points, i. e. W(I,J) contains the functional C value at (X(I),Y(J)) for I = 1,...,NX, and J = 1,...,NY. C C NW1 is the first dimension of the array W used in the C calling program (NW1 .GE. NX). C C C is an array of at least NX * NY locations. This C parameter may coincide with W in which case W is C destroyed on output. C C VX and VY are arrays of at least 5 * NX and 5 * NY C locations, respectively. C C Temp is an array of at least 3 * MAX(NX, NY) locations C which is used for scratch storage. C C And C C SIGMA contains the tension factor. This value indicate C the curviness desired. If ABS(SIGMA) is nearly zero C (e. G. .001) the resulting surface is approximately the C tensor product of cubic splines. If ABS(SIGMA) is large C (e. G. 50.) the resulting surface is approximately C bi-linear. If SIGMA equals zero tensor products of cubic C splines result. A standard value for SIGMA is C approximately 1. In absolute value. C C On output-- C C C contains the coefficients of a representation of the C interpolated function in a B-spline tensor production C form. C C VX and VY contain B-spline under tension basis data. C C IERR contains an error flag. C = 0 for normal return, C = 1 if NX or NY is less than 2, C = 2 if the X- or Y-arrays are not strictly C increasing. C C And C C None of the input parameters are altered (except W if C this parameter and C are identical in the calling C sequence). C C This subroutine references package modules VGEN, TERMS, C SNHCSH, TRIDEC, and TRISOL. C C--------------------------------------------------------- - C C Copy W into C C DO 1 J = 1,NY DO 1 I = 1,NX 1 C(I,J) = W(I,J) C C Generate basis functions along X-grid C set up tridiagonal system and solve C CALL VGEN (NX,X,SIGMA,VX,IERR) IF (IERR .NE. 0) RETURN DO 2 I = 2,NX 2 TEMP(I) = VX(5,I-1) NXPI = NX DO 3 I = 1,NX NXPI = NXPI+1 3 TEMP(NXPI) = 1. DO 4 I = 2,NX NXPI = NXPI+1 4 TEMP(NXPI) = VX(4,I) CALL TRIDEC (NX,TEMP(1),TEMP(NX+1),TEMP(2*NX+1), * TEMP(1),TEMP(NX+1),IERR) CALL TRISOL (NX,TEMP(1),TEMP(NX+1),TEMP(2*NX+1),C,NX, * NY,1) C C Generate basis functions along Y-grid C set up tridiagonal system and solve C CALL VGEN (NY,Y,SIGMA,VY,IERR) IF (IERR .NE. 0) RETURN DO 5 J = 2,NY 5 TEMP(J) = VY(5,J-1) NYPJ = NY DO 6 J = 1,NY NYPJ = NYPJ+1 6 TEMP(NYPJ) = 1. DO 7 J = 2,NY NYPJ = NYPJ+1 7 TEMP(NYPJ) = VY(4,J) CALL TRIDEC (NY,TEMP(1),TEMP(NY+1),TEMP(2*NY+1), * TEMP(1),TEMP(NY+1),IERR) CALL TRISOL (NY,TEMP(1),TEMP(NY+1),TEMP(2*NY+1),C,1, * NX,NX) RETURN END C C======================================================================= C C C SUBROUTINE VAL3B1 (NX,NY,NZ,X,Y,Z,W,NW1,NW2,C,VX,VY, * VZ,TEMP,SIGMA,IERR) C INTEGER NX,NY,NZ,NW1,NW2,IERR REAL X(NX),Y(NY),Z(NZ),W(NW1,NW2,NZ),C(NX,NY,NZ), * VX(5,NX),VY(5,NY),VZ(5,NZ),TEMP(*),SIGMA C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C C This subroutine determines the parameters necessary to C compute an interpolatory function on a three dimensional C rectangular grid. The function determined can be C represented as a tensor product of splines under tension. C For actual mapping of points it is necessary to call the C subroutine VAL3BD, which also returns first and second C partial derivatives. C C On input-- C C NX, NY, and NZ are the number of grid lines in the X-, C Y-, and Z-directions, respectively, of the rectangular C grid. (NX, NY, and NZ should be at least 2.) C C X, Y, and Z are arrays of the NX, NY, and NZ coordinates C of the grid lines in the X-, Y-, and Z-directions, C respectively. These should be strictly increasing. C C W is an array of the NX * NY * NZ functional values at C the grid points, i. e. W(I,J,K) contains the functional C value at (X(I),Y(J),Z(K)) for I = 1,...,NX, C J = 1,...,NY, and K = 1,...,NZ. C C NW1 and NW2 are the first two dimensions of the array W C used in the calling program (NW1 .GE. NX AND NW2 .GE. C NY). C C C is an array of at least NX * NY * NZ locations. This C parameter may coincide with W in which case W is C destroyed on output. C C VX, VY, and VZ are arrays of at least 5 * NX, 5 * NY, C and 5 * NZ locations, respectively. C C Temp is an array of at least 3 * MAX(NX, NY, NZ) C locations which is used for scratch storage. C C And C C SIGMA contains the tension factor. This value indicates C the curviness desired. If ABS(SIGMA) is nearly zero C (e. g. .001) the resulting surface is approximately the C tensor product of cubic splines. If ABS(SIGMA) is large C (e. g. 50.) the resulting surface is approximately C tri-linear. If SIGMA equals zero tensor products of C cubic splines result. A standard value for SIGMA is C approximately 1. In absolute value. C C On output-- C C C contains the coefficients of a representation of the C interpolated function in a B-spline tensor production C form. C C VX, VY, and VZ contain B-spline under tension basis C data. C C IERR contains an error flag. C = 0 for normal return, C = 1 if NX, NY, or NZ is less than 2, C = 2 if the X-, Y-, or Z-arrays are not strictly C increasing. C C And C C None of the input parameters are altered (except W if C this parameter and C are identical in the calling C sequence). C C This subroutine references package modules VGEN, TERMS, C SNHCSH, TRIDEC, and TRISOL. C C----------------------------------------------------------- C C Copy W into C C DO 1 K = 1,NZ DO 1 J = 1,NY DO 1 I = 1,NX 1 C(I,J,K) = W(I,J,K) C C Generate basis functions along X-grid C set up tridiagonal system and solve C CALL VGEN (NX,X,SIGMA,VX,IERR) IF (IERR .NE. 0) RETURN DO 2 I = 2,NX 2 TEMP(I) = VX(5,I-1) NXPI = NX DO 3 I = 1,NX NXPI = NXPI+1 3 TEMP(NXPI) = 1. DO 4 I = 2,NX NXPI = NXPI+1 4 TEMP(NXPI) = VX(4,I) CALL TRIDEC (NX,TEMP(1),TEMP(NX+1),TEMP(2*NX+1), * TEMP(1),TEMP(NX+1),IERR) CALL TRISOL (NX,TEMP(1),TEMP(NX+1),TEMP(2*NX+1),C,NX, * NY*NZ,1) C C Generate basis functions along Y-grid C set up tridiagonal system and solve C CALL VGEN (NY,Y,SIGMA,VY,IERR) IF (IERR .NE. 0) RETURN DO 5 J = 2,NY 5 TEMP(J) = VY(5,J-1) NYPJ = NY DO 6 J = 1,NY NYPJ = NYPJ+1 6 TEMP(NYPJ) = 1. DO 7 J = 2,NY NYPJ = NYPJ+1 7 TEMP(NYPJ) = VY(4,J) CALL TRIDEC (NY,TEMP(1),TEMP(NY+1),TEMP(2*NY+1), * TEMP(1),TEMP(NY+1),IERR) DO 8 K = 1,NZ 8 CALL TRISOL (NY,TEMP(1),TEMP(NY+1),TEMP(2*NY+1),C(1,1,K), * 1,NX,NX) C C Generate basis functions along Z-grid C set up tridiagonal system and solve C CALL VGEN (NZ,Z,SIGMA,VZ,IERR) IF (IERR .NE. 0) RETURN DO 9 K = 2,NZ 9 TEMP(K) = VZ(5,K-1) NZPK = NZ DO 10 K = 1,NZ NZPK = NZPK+1 10 TEMP(NZPK) = 1. DO 11 K = 2,NZ NZPK = NZPK+1 11 TEMP(NZPK) = VZ(4,K) CALL TRIDEC (NZ,TEMP(1),TEMP(NZ+1),TEMP(2*NZ+1), * TEMP(1),TEMP(NZ+1),IERR) CALL TRISOL (NZ,TEMP(1),TEMP(NZ+1),TEMP(2*NZ+1),C,1, * NX*NY,NX*NY) RETURN END C C======================================================================= C C C SUBROUTINE VGEN (N,X,SIGMA,V,IERR) C INTEGER N,IERR REAL X(N),SIGMA,V(5,N) C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C C This subroutine generates an array of coefficients used by C other subroutines for the determination of a B-spline C under tension basis. C C On input-- C C N is the number of knots defining the basis (N .GE. 2). C C X is the array of the N increasing knots. Any linear C combination of the resulting basis will have third C derivative discontinuities only at the interior knots, C (i. e. X(2),...,X(N-1) ). C C SIGMA contains the tension factor. This value indicates C the curviness desired. If ABS(SIGMA) is nearly zero C (e. g. .001) the basis functions are approximately cubic C splines. If ABS(SIGMA) is large (e. g. 50.) the basis C functions are nearly piecewise linear. If SIGMA equals C zero a cubic spline basis results. A standard value for C SIGMA is approximately 1. In absolute value. C C And C C V is an array of at least 5*N locations. C C On output-- C C V contains certain coefficients to be used by other C subprograms for the determination of the B-spline under C tension basis. Considered as a 5 by N array, for I = 1, C ... , N, B-spline basis function I is specified by-- C V(1,I) = second derivative at X(I-1), for I .NE. 1, C V(2,I) = second derivative at X(I), for all I, C V(3,I) = second derivative at X(I+1), for I .NE. N, C V(4,I) = function value at X(I-1), for I .NE. 1, C V(5,I) = function value at X(I+1), for I .NE. N, C and the properties that it has-- C 1. Function value 1 at X(I), C 2. Function value and second derivative = 0 at C X(1), ... , X(I-2), and X(I+2), ... , X(N). C In V(5,N) and V(3,N) are contained function value and C second derivative of basis function zero at X(1), C respectively. In V(4,1) and V(1,1) are contained C function value and second derivative of basis function C N+1 at X(N), respectively. Function value and second C derivative of these two basis functions are zero at all C other knots. Only basis function zero has non-zero C second derivative value at X(1) and only basis C function N+1 has non-zero second derivative at X(N). C C IERR contains an error flag, C = 0 for normal return, C = 1 if N is less than 2, C = 2 if X-values are not strictly increasing. C C And C C N, X, and SIGMA are unaltered. C C This subroutine references package modules TERMS and C SNHCSH. C C----------------------------------------------------------- C NM1 = N-1 IERR = 0 IF (N .LE. 1) GO TO 3 IF (X(N) .LE. X(1)) GO TO 4 C C Denormalize tension factor C SIGMAP = ABS(SIGMA)*FLOAT(N-1)/(X(N)-X(1)) C C Generate coefficients for left end basis functions C D3 = X(2)-X(1) IF (D3 .LE. 0.) GO TO 4 CALL TERMS (DIAG3,SDIAG3,SIGMAP,D3) D4 = D3 IF (N .GE. 3) D4 = X(3)-X(2) IF (D4 .LE. 0.) GO TO 4 CALL TERMS (DIAG4,SDIAG4,SIGMAP,D4) A22 = DIAG3+SDIAG3 A23 = DIAG3+DIAG4+SDIAG3+SDIAG4 V(2,1) = 0. V(3,1) = 1./(D3*(DIAG3+DIAG4)+(D3+D4)*SDIAG4) V(5,1) = SDIAG4*D4*V(3,1) IF (N .EQ. 2) GO TO 2 A22 = 2.*A22 D1 = D3 D2 = D3 D3 = D4 DIAG1 = DIAG3 DIAG2 = DIAG3 DIAG3 = DIAG4 SDIAG1 = SDIAG3 SDIAG2 = SDIAG3 SDIAG3 = SDIAG4 C C Generate coefficients for interior basis functions C DO 1 I = 2,NM1 IF (I .NE. NM1) D4 = X(I+2)-X(I+1) IF (D4 .LE. 0.) GO TO 4 IF (D4 .NE. D3) CALL TERMS (DIAG4,SDIAG4,SIGMAP,D4) A11 = DIAG1+DIAG2+SDIAG1*(1.+D1/D2) A12 = SDIAG2/A11 B1 = 1./(D2*A11) A33 = DIAG3+DIAG4+SDIAG4*(1.+D4/D3) A32 = SDIAG3/A33 B3 = 1./(D3*A33) A21 = A22 A22 = A23 A23 = DIAG3+DIAG4+SDIAG3+SDIAG4 V(2,I) = -(A21*B1+A23*B3)/(A22-A21*A12-A23*A32) V(1,I) = B1-A12*V(2,I) V(3,I) = B3-A32*V(2,I) V(4,I) = SDIAG1*D1*V(1,I) V(5,I) = SDIAG4*D4*V(3,I) C C Save constants for next iteration C D1 = D2 D2 = D3 D3 = D4 DIAG1 = DIAG2 DIAG2 = DIAG3 DIAG3 = DIAG4 SDIAG1 = SDIAG2 SDIAG2 = SDIAG3 1 SDIAG3 = SDIAG4 C C Generate coefficients for right end basis functions C V(2,N) = 0. V(1,N) = 1./(D2*(DIAG1+DIAG2)+(D2+D1)*SDIAG1) V(4,N) = SDIAG1*D1*V(1,N) V(3,N) = V(1,3) V(5,N) = V(4,3) V(1,1) = V(3,N-2) V(4,1) = V(5,N-2) C C Adjust basis for natural end conditions C V(4,2) = V(4,2)-V(1,2)*V(5,N)/V(3,N) V(1,2) = 0. V(5,NM1) = V(5,NM1)-V(3,NM1)*V(4,1)/V(1,1) V(3,NM1) = 0. RETURN C C N equal to 2 C 2 V(4,1) = V(5,1) V(1,1) = V(3,1) V(3,1) = 0. V(5,1) = 0. V(1,2) = 0. V(2,2) = 0. V(3,2) = V(1,1) V(4,2) = 0. V(5,2) = V(4,1) RETURN C C Too few knots C 3 IERR = 1 RETURN C C X-values not strictly increasing C 4 IERR = 2 RETURN END C C======================================================================= C C C SUBROUTINE TERMS (DIAG,SDIAG,SIGMA,DEL) C REAL DIAG,SDIAG,SIGMA,DEL C C From FITPACK -- August 31, 1981 C Coded by A. K. Cline and R. J. Renka C Department of Computer Sciences C University of Texas at Austin C C This subroutine computes the diagonal and superdiagonal C terms of the tridiagonal linear system associated with C spline under tension interpolation. C C On input-- C C SIGMA contains the tension factor. C C And C C DEL contains the step size. C C On output-- C C (SIGMA*DEL*COSH(SIGMA*DEL) - SINH(SIGMA*DEL) C DIAG = DEL*--------------------------------------------. C (SIGMA*DEL)**2 * SINH(SIGMA*DEL) C C SINH(SIGMA*DEL) - SIGMA*DEL C SDIAG = DEL*----------------------------------. C (SIGMA*DEL)**2 * SINH(SIGMA*DEL) C C And C C SIGMA and DEL are unaltered. C C This subroutine references package module SNHCSH. C C----------------------------------------------------------- C IF (SIGMA .NE. 0.) GO TO 1 DIAG = DEL/3. SDIAG = DEL/6. RETURN 1 SIGDEL = SIGMA*DEL CALL SNHCSH (SINHM,COSHM,SIGDEL,0) DENOM = DEL/((SINHM+SIGDEL)*SIGDEL*SIGDEL) DIAG = DENOM*(SIGDEL*COSHM-SINHM) SDIAG = DENOM*SINHM RETURN END C C======================================================================= C C C SUBROUTINE TRIDEC (N,SUBDI,DIAGI,SUPD,SUBDO,DIAGO, * IERR) C INTEGER N,IERR REAL SUBDI(N),DIAGI(N),SUPD(N),SUBDO(N),DIAGO(N) C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C C This subroutine factorizes a tridiagonal matrix in order C to solve systems of linear equations. The factorization C employs gaussian elimination without any interchanging of C columns or rows. The subroutine trisol may be called to C actually solve the system once the factorization has been C performed. C C On input-- C C N contains the order of the matrix (N .GE. 1). C C SUBDI is an array containing the subdiagonal elements of C the matrix in positions 2, ... , N. C C DIAGI is an array containing the diagonal elements of C the matrix. C C SUPD is an array containing the superdiagonal elements C of the matrix in positions 1, ... , N-1. C C And C C SUBDO and DIAGO are arrays of length N. (The storage C for these may coincide with that for SUBDI and DIAGI, C respectively, in which case the original contents of C SUBDI and DIAGI will be destroyed.) C C On output-- C C SUBDO and DIAGO contain the subdiagonal and diagonal of C the factorization matrix. C C IERR contains an error flag, C = 0 for normal return, C = 1 if N is less than 1, C = 2 if the system is singular. C C And C C N, SUBDI, DIAGI, and SUPD are unaltered (unless storage C for SUBDI or DIAGI coincided with that for SUBDO C or DIAGO, respectively). C C----------------------------------------------------------- C IF (N .LE. 0) GO TO 3 IERR = 2 DIAGO(1) = DIAGI(1) IF (N .EQ. 1) GO TO 2 C C Forward elimination C DO 1 I = 2,N IM1 = I-1 IF (DIAGO(IM1) .EQ. 0.) RETURN DIAGO(IM1) = 1./DIAGO(IM1) SUBDO(I) = SUBDI(I)*DIAGO(IM1) 1 DIAGO(I) = DIAGI(I)-SUBDO(I)*SUPD(IM1) 2 IF (DIAGO(N) .EQ. 0.) RETURN DIAGO(N) = 1./DIAGO(N) IERR = 0 RETURN C C N less than 1 C 3 IERR = 1 RETURN END C C======================================================================= C C C SUBROUTINE TRISOL (N,SUBD,DIAG,SUPD,RHS,MRHS,NUMRHS, * INCRHS) C INTEGER N,MRHS,NUMRHS,INCRHS REAL SUBD(N),DIAG(N),SUPD(N) REAL RHS(1+INCRHS*(N-1)+MRHS*(NUMRHS-1)) C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C Revised -- December 31, 1992 C by Ludek Klimes C Institute of Geotechnics C Czechosl. Acad. Sci., Prague C C This subroutine solves tridiagonal systems of linear C equations with multiple right hand sides. The right hand C sides may be stored row-wise or column-wise. The C subroutine TRIDEC should be called earlier to determine a C factorization of the tridiagonal matrix. The solution C vectors over-write the right hand sides. C C On input-- C C N contains the order of the matrix (N .GE. 1). C C SUBD, DIAG, and SUPD are arrays of length N containing C the subdiagonal, diagonal, and superdiagonal of the C factorization, respectively. C C RHS is an array containing the right hand sides of the C tridiagonal system. C C MRHS is the increment between the first components of C each of the right hand side vectors in storage (MRHS C .GE. 1). C C NUMRHS is the number of right hand sides to be solved. C C And C C INCRHS is the increment between components within each C of the right hand side vectors in storage (INCRHS .GE. C 1). C C The parameters N, SUBD, DIAG, and SUPD may be input as the C parameters N, SUBDO, DIAGO, and SUPD output by subroutine C TRIDEC, respectively. C C On output-- C C RHS contains the solution vectors in the same storage C structure as for the right hand sides. C C And C C N, SUBD, DIAG, SUPD, MRHS, NUMRHS, and INCRHS are C unaltered. C C----------------------------------------------------------- C NP1 = N+1 C C Loop on right hand sides C DO 4 K = 1,NUMRHS C C Forward elimination C IRHS = 1+MRHS*(K-1) IF (N .EQ. 1) GO TO 2 DO 1 I = 2,N IM1RHS = IRHS IRHS = IRHS+INCRHS 1 RHS(IRHS) = RHS(IRHS)-SUBD(I)*RHS(IM1RHS) C C Back substitution C 2 RHS(IRHS) = DIAG(N)*RHS(IRHS) IF (N .EQ. 1) GO TO 4 DO 3 IBAK = 2,N I = NP1-IBAK RHS(IM1RHS) = DIAG(I)*(RHS(IM1RHS)-SUPD(I) * *RHS(IRHS)) IRHS = IM1RHS 3 IM1RHS = IM1RHS-INCRHS 4 CONTINUE RETURN END C C======================================================================= C C Part 2: C C======================================================================= C C C SUBROUTINE CURV2D (T,YY,YX,YXX,N,X,Y,YP,SIGMA) C INTEGER N REAL T,YY,YX,YXX,X(N),Y(N),YP(N),SIGMA C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C C This subroutine determines function value, first, and C second derivatives of a curve at a given point using a C spline under tension. The subroutine CURV1 should be C called earlier to determine certain necessary parameters. C C On input-- C C T contains a real value at which the function and C derivatives are to be evaluated. C C N contains the number of points which were specified to C determine the curve. C C X and Y are arrays containing the abscissae and C ordinates, respectively, of the specified points. C C YP is an array of second derivative values of the curve C at the nodes. C C And C C SIGMA contains the tension factor (its sign is ignored). C C The parameters N, X, Y, YP, and SIGMA should be input C unaltered from the output of CURV1. C C On output-- C C YY, YX, and YXX contain the function value, first and C second derivatives, respectively. C C None of the input parameters are altered. C C This subroutine references package modules INTRVL and C SNHCSH. C C----------------------------------------------------------- C C Determine interval C IM1 = INTRVL(T,X,N) I = IM1+1 C C Denormalize tension factor C SIGMAP = ABS(SIGMA)*FLOAT(N-1)/(X(N)-X(1)) C C Set up and perform interpolation C DEL1 = T-X(IM1) DEL2 = X(I)-T DELS = X(I)-X(IM1) YY = (Y(I)*DEL1+Y(IM1)*DEL2)/DELS YX = (Y(I)-Y(IM1))/DELS IF (SIGMAP .NE. 0.) GO TO 1 YY = YY-DEL1*DEL2*(YP(I)*(DEL1+DELS)+YP(IM1)* * (DEL2+DELS))/(6.*DELS) YX = YX+(YP(I)*(2.*DEL1*DEL1-DEL2*(DEL1+DELS))- * YP(IM1)*(2.*DEL2*DEL2-DEL1*(DEL2+DELS))) * /(6.*DELS) YXX = (YP(I)*DEL1+YP(IM1)*DEL2)/DELS RETURN 1 DELP1 = SIGMAP*(DEL1+DELS)/2. DELP2 = SIGMAP*(DEL2+DELS)/2. CALL SNHCSH (SINHM1,COSHM1,SIGMAP*DEL1,0) CALL SNHCSH (SINHM2,COSHM2,SIGMAP*DEL2,0) CALL SNHCSH (SINHMS,DUMMY,SIGMAP*DELS,-1) CALL SNHCSH (SINHP1,DUMMY,SIGMAP*DEL1/2.,-1) CALL SNHCSH (SINHP2,DUMMY,SIGMAP*DEL2/2.,-1) CALL SNHCSH (DUMMY,COSHP1,DELP1,1) CALL SNHCSH (DUMMY,COSHP2,DELP2,1) YY = YY+(YP(I)*(SINHM1*DEL2-DEL1*(2.*(COSHP1+1.)* * SINHP2+SIGMAP*COSHP1*DEL2))+YP(IM1)*(SINHM2* * DEL1-DEL2*(2.*(COSHP2+1.)*SINHP1+SIGMAP* * COSHP2*DEL1)))/(SIGMAP*SIGMAP*DELS*(SINHMS+ * SIGMAP*DELS)) YX = YX+(YP(I)*(DELS*SIGMAP*COSHM1-SINHMS)- * YP(IM1)*(DELS*SIGMAP*COSHM2-SINHMS))/ * (SIGMAP*SIGMAP*DELS*(SINHMS+SIGMAP*DELS)) YXX = (YP(I)*(SINHM1+SIGMAP*DEL1)+YP(IM1)*(SINHM2+ * SIGMAP*DEL2))/(SINHMS+SIGMAP*DELS) RETURN END C C======================================================================= C C C SUBROUTINE CURVBD (XX,W,WX,WXX,NX,X,C,VX,SIGMA) C INTEGER NX REAL XX,W,WX,WXX,X(NX),VX(5,NX),C(NX),SIGMA C C Complement to FITPACK C by Alan Kaylor Cline C Coded -- October 9, 1986 C by Ludek Klimes C Inst. Geol. Geotechn. C Czechosl. Acad. Sci., Prague C C This subroutine evaluates the function value, the C first partial derivative, and the second partial C derivative of a spline under tension in one variable. C C On input-- C C XX contains the X-coordinate of the point C at which the interpolation is to be performed C C NX is the number of grid points C C X is array containing the X-grid values. C C C is an array of coefficients describing the function in C terms of a B-spline under tension basis. In the C expansion of the function, for I = 1,...,NX , C the coefficient multiplying the basis C function I is stored in C(I). C C VX is the array of length 5*NX C containing the B-spline basis data C C SIGMA contains the tension factor (its sign is ignored). C C The parameters NX, X, C, VX, and SIGMA C should be input unaltered from the output of CURVB1. C C On output-- C C W contains the interpolated function value. C C WX contains the first derivative . C C WXX contains the second derivative . C C And C C None of the input parameters are altered. C C This subroutine references package modules DSPLNZ, INTRVL, C and SNHCSH. C C-------------------------------------------------------------- C REAL BX(3,4) C C Evaluate basis functions at XX C CALL DSPLNZ (XX,NX,X,VX,SIGMA,ISTART,BX) C C Accumulate basis functions C SUM = 0. SUMX = 0. SUMXX = 0. DO 1 I = 1,4 II = ISTART+I-1 IF (II .EQ. 0 .OR. II .GT. NX) GO TO 1 BX1I = BX(1,I) CI = C(II) SUM = SUM+CI*BX1I SUMX = SUMX+CI*BX(2,I) SUMXX = SUMXX+CI*BX(3,I) CALL VAR2(II,BX1I,BX(2,I),0.,0.) 1 CONTINUE W = SUM WX = SUMX WXX = SUMXX RETURN END C C======================================================================= C C C SUBROUTINE SURFBD (XX,YY,W,WX,WY,WXX,WXY,WYY,NX,NY,X, * Y,C,VX,VY,SIGMA) C INTEGER NX,NY REAL XX,YY,W,WX,WY,WXX,WXY,WYY,X(NX),Y(NY),VX(5,NX), * VY(5,NY),C(NX,NY),SIGMA C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C C This subroutine evaluates the function value, the two C first partial derivatives, and the six second partial C derivatives of a tensor product spline under tension in C two variables. C C On input-- C C XX and YY contain the X- and Y-coordinates of the point C at which the interpolation is to be performed. C C NX and NY are the number of grid lines in the X- and Y- C directions, respectively, of the rectangular grid which C specified the function. C C X and Y are arrays containing the X- and Y-grid values, C respectively. C C C is an array of coefficients describing the function in C terms of a B-spline under tension basis. In the C expansion of the function, for I = 1,...,NX and J = 1, C ...,NY, the coefficient multiplying the product of basis C function I in X and basis function J in Y is stored in C C(I,J). C C VX and VY VZ are arrays of length 5*NX and 5*NY, C respectively, containing the B-spline basis data for the C X- and Y-grids. C C And C C SIGMA contains the tension factor (its sign is ignored). C C The parameters NX, NY, X, Y, Z, C, VX, VY, and SIGMA C should be input unaltered from the output of SURFB1. C C On output-- C C W contains the interpolated function value. C C WX and WY contain the X- and Y-partial derivatives, C respectively. C C WXX, WXY, and WYY contain the XX-, XY-, and YY-partial C derivatives, respectively. C C And C C None of the input parameters are altered. C C This subroutine references package modules DSPLNZ, INTRVL, C and SNHCSH. C C--------------------------------------------------------- ---- C REAL BX(3,4),BY(3,4) C C Evaluate basis functions at XX and YY C CALL DSPLNZ (XX,NX,X,VX,SIGMA,ISTART,BX) CALL DSPLNZ (YY,NY,Y,VY,SIGMA,JSTART,BY) C C Accumulate tensor products C SUM = 0. SUMX = 0. SUMY = 0. SUMXX = 0. SUMXY = 0. SUMYY = 0. DO 2 J = 1,4 JJ = JSTART+J-1 IF (JJ .EQ. 0 .OR. JJ .GT. NY) GO TO 2 BY1J = BY(1,J) BY2J = BY(2,J) BY3J = BY(3,J) DO 1 I = 1,4 II = ISTART+I-1 IF (II .EQ. 0 .OR. II .GT. NX) GO TO 1 BX1I = BX(1,I) BX2I = BX(2,I) CIJ = C(II,JJ) SUM = SUM+CIJ*BX1I*BY1J SUMX = SUMX+CIJ*BX2I*BY1J SUMY = SUMY+CIJ*BX1I*BY2J SUMXX = SUMXX+CIJ*BX(3,I)*BY1J SUMXY = SUMXY+CIJ*BX2I*BY2J SUMYY = SUMYY+CIJ*BX1I*BY3J CALL VAR2(II+NX*(JJ-1),BX1I*BY1J,BX2I*BY1J,BX1I*BY2J,0.) 1 CONTINUE 2 CONTINUE W = SUM WX = SUMX WY = SUMY WXX = SUMXX WXY = SUMXY WYY = SUMYY RETURN END C C======================================================================= C C C SUBROUTINE VAL3BD (XX,YY,ZZ,W,WX,WY,WZ,WXX,WXY,WYY, * WYZ,WZZ,WXZ,NX,NY,NZ,X,Y,Z,C,VX,VY, * VZ,SIGMA) C INTEGER NX,NY,NZ REAL XX,YY,ZZ,W,WX,WY,WZ,WXX,WXY,WYY,WYZ,WZZ,WXZ, * X(NX),Y(NY),Z(NZ),VX(5,NX),VY(5,NY),VZ(5,NZ), * C(NX,NY,NZ),SIGMA C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C C This subroutine evaluates the function value, the three C first partial derivatives, and the six second partial C derivatives of a tensor product spline under tension in C three variables. C C On input-- C C XX, YY, and ZZ contain the X-, Y-, and Z-coordinates of C the point at which the interpolation is to be performed. C C NX, NY, and NZ are the number of grid lines in the X-, C Y-, and Z-directions, respectively, of the rectangular C grid which specified the function. C C X, Y, and Z are arrays containing the X-, Y-, and Z-grid C values, respectively. C C C is an array of coefficients describing the function in C terms of a B-spline under tension basis. In the C expansion of the function, for I = 1,...,NX, J = 1,..., C NY, AND K = 1,...,NZ, the coefficient multiplying the C product of basis function I in X, basis function J in Y, C and basis function K in Z is stored in C(I,J,K). C C VX, VY, and VZ are arrays of length 5*NX, 5*NY, and C 5*NZ, respectively, containing the B-spline basis data C for the X-, Y-, and Z-grids. C C And C C SIGMA contains the tension factor (its sign is ignored). C C The parameters NX, NY, NZ, X, Y, Z, C, VX, VY, VZ, and C SIGMA should be input unaltered from the output of C VAL3B1. C C On output-- C C W contains the interpolated function value. C C WX, WY, and WZ contain the X-, Y-, and Z-partial C derivatives, respectively. C C WXX, WXY, WYY, WYZ, WZZ, and WXZ contain the XX-, XY- C YY-, YZ-, ZZ-, and XZ-partial derivatives, respectively. C C And C C None of the input parameters are altered. C C This subroutine references package modules DSPLNZ, INTRVL, C and SNHCSH. C C-------------------------------------------------------------- C REAL BX(3,4),BY(3,4),BZ(3,4) C C Evaluate basis functions at XX, YY, and ZZ C CALL DSPLNZ (XX,NX,X,VX,SIGMA,ISTART,BX) CALL DSPLNZ (YY,NY,Y,VY,SIGMA,JSTART,BY) CALL DSPLNZ (ZZ,NZ,Z,VZ,SIGMA,KSTART,BZ) C C Accumulate tensor products C SUM = 0. SUMX = 0. SUMY = 0. SUMZ = 0. SUMXX = 0. SUMXY = 0. SUMYY = 0. SUMYZ = 0. SUMZZ = 0. SUMXZ = 0. DO 3 K = 1,4 KK = KSTART+K-1 IF (KK .EQ. 0 .OR. KK .GT. NZ) GO TO 3 BZ1K = BZ(1,K) BZ2K = BZ(2,K) BZ3K = BZ(3,K) DO 2 J = 1,4 JJ = JSTART+J-1 IF (JJ .EQ. 0 .OR. JJ .GT. NY) GO TO 2 BY1J = BY(1,J) BY2J = BY(2,J) BY3J = BY(3,J) DO 1 I = 1,4 II = ISTART+I-1 IF (II .EQ. 0 .OR. II .GT. NX) GO TO 1 BX1I = BX(1,I) BX2I = BX(2,I) CIJK = C(II,JJ,KK) SUM = SUM+CIJK*BX1I*BY1J*BZ1K SUMX = SUMX+CIJK*BX2I*BY1J*BZ1K SUMY = SUMY+CIJK*BX1I*BY2J*BZ1K SUMZ = SUMZ+CIJK*BX1I*BY1J*BZ2K SUMXX = SUMXX+CIJK*BX(3,I)*BY1J*BZ1K SUMXY = SUMXY+CIJK*BX2I*BY2J*BZ1K SUMYY = SUMYY+CIJK*BX1I*BY3J*BZ1K SUMYZ = SUMYZ+CIJK*BX1I*BY2J*BZ2K SUMZZ = SUMZZ+CIJK*BX1I*BY1J*BZ3K SUMXZ = SUMXZ+CIJK*BX2I*BY1J*BZ2K CALL VAR2(II+NX*(JJ-1+NY*(KK-1)),BX1I*BY1J*BZ1K, * BX2I*BY1J*BZ1K,BX1I*BY2J*BZ1K,BX1I*BY1J*BZ2K) 1 CONTINUE 2 CONTINUE 3 CONTINUE W = SUM WX = SUMX WY = SUMY WZ = SUMZ WXX = SUMXX WXY = SUMXY WYY = SUMYY WYZ = SUMYZ WZZ = SUMZZ WXZ = SUMXZ RETURN END C C======================================================================= C C C SUBROUTINE DSPLNZ (T,N,X,V,SIGMA,ISTART,B) C INTEGER N,ISTART REAL T,X(N),V(5,N),SIGMA,B(3,4) C C From FITPACK -- August 31, 1981 C Coded by Alan Kaylor Cline C Department of Computer Sciences C University of Texas at Austin C C This subroutine evaluates at a given point the four non- C zero basis functions of a B-spline under tension basis and C their first and second derivatives. The index of the first C non-zero basis function is also determined. (the sense of C the word non-zero is extended to include the special case C where the given point coincides with a knot in which case C the last of the four returned function values may be zero. C ) the subroutine VGEN should be called earlier to C determine certain necessary coefficients. C C On input-- C C T contains a real value at which the basis functions are C to be evaluated. C C N contains the number of knots defining the basis. C C X contains the array of knots. C C V contains the array of coefficients determined by VGEN C for calculation of basis functions. C C SIGMA contains the tension factor (its sign is ignored). C C ISTART is an integer variable. C C And C C B is a real array with 3 rows and 4 columns. C C The parameters N, X, V, and SIGMA should be input C unaltered from the output of VGEN. C C On output-- C C ISTART contains the index of the first non-zero basis C function. Thus 0 .LE. ISTART .LE. N-2 and the non-zero C basis functions have indices ISTART, ... , ISTART+3. C C B contains the values at T of basis functions ISTART, C ... , ISTART+3 in B(1,1), ... , B(1,4), respectively. C First and second derivatives of the corresponding C functions are contained in B(2,1), ... , B(2,4), and C B(3,1), ... , B(3,4), respectively. C C T, N, X, V, and SIGMA are unaltered. C C This subroutine references package modules INTRVL and C SNHCSH. C C----------------------------------------------------------- C C Denormalize tension factor C SIGMAP = ABS(SIGMA)*FLOAT(N-1)/(X(N)-X(1)) C C Determine index of first non-zero basis function C I = INTRVL (T,X,N)-1 C C Compute distances to adjacent knots and lagrangian C weights C DEL1 = T-X(I+1) DEL2 = X(I+2)-T DELS = X(I+2)-X(I+1) C10 = DEL2/DELS C20 = DEL1/DELS C11 = -1./DELS C21 = 1./DELS IF (SIGMAP .NE. 0.) GO TO 1 FAC = -DEL1*DEL2/(6.*DELS) CP10 = FAC*(DEL2+DELS) CP20 = FAC*(DEL1+DELS) CP11 = -(2.*DEL2*DEL2-DEL1*(DEL2+DELS))/(6.*DELS) CP21 = (2.*DEL1*DEL1-DEL2*(DEL1+DELS))/(6.*DELS) CP12 = C10 CP22 = C20 GO TO 2 1 DELP1 = SIGMAP*(DEL1+DELS)/2. DELP2 = SIGMAP*(DEL2+DELS)/2. CALL SNHCSH (SINHM1,COSHM1,SIGMAP*DEL1,0) CALL SNHCSH (SINHM2,COSHM2,SIGMAP*DEL2,0) CALL SNHCSH (SINHMS,DUMMY,SIGMAP*DELS,-1) CALL SNHCSH (SINHP1,DUMMY,SIGMAP*DEL1/2.,-1) CALL SNHCSH (SINHP2,DUMMY,SIGMAP*DEL2/2.,-1) CALL SNHCSH (DUMMY,COSHP1,DELP1,1) CALL SNHCSH (DUMMY,COSHP2,DELP2,1) SINHS = SINHMS+SIGMAP*DELS DENOM = SIGMAP*SIGMAP*DELS*SINHS CP10 = (SINHM2*DEL1-DEL2*(2.*(COSHP2+1.)*SINHP1 * +SIGMAP*COSHP2*DEL1))/DENOM CP20 = (SINHM1*DEL2-DEL1*(2.*(COSHP1+1.)*SINHP2 * +SIGMAP*COSHP1*DEL2))/DENOM CP11 = -(DELS*SIGMAP*COSHM2-SINHMS)/DENOM CP21 = (DELS*SIGMAP*COSHM1-SINHMS)/DENOM CP12 = (SINHM2+SIGMAP*DEL2)/SINHS CP22 = (SINHM1+SIGMAP*DEL1)/SINHS C C Compute basis function values C 2 II = I IF (II .EQ. 0) II = N IIP1 = I+1 IIP2 = I+2 IIP3 = I+3 IF (IIP2 .EQ. N) IIP3 = 1 B(1,1) = C10*V(5,II)+CP10*V(3,II) B(1,2) = C10+C20*V(5,IIP1)+CP10*V(2,IIP1)+ * CP20*V(3,IIP1) B(1,3) = C10*V(4,IIP2)+C20+CP10*V(1,IIP2)+ * CP20*V(2,IIP2) B(1,4) = C20*V(4,IIP3)+CP20*V(1,IIP3) B(2,1) = C11*V(5,II)+CP11*V(3,II) B(2,2) = C11+C21*V(5,IIP1)+CP11*V(2,IIP1)+ * CP21*V(3,IIP1) B(2,3) = C11*V(4,IIP2)+C21+CP11*V(1,IIP2)+ * CP21*V(2,IIP2) B(2,4) = C21*V(4,IIP3)+CP21*V(1,IIP3) B(3,1) = CP12*V(3,II) B(3,2) = CP12*V(2,IIP1)+CP22*V(3,IIP1) B(3,3) = CP12*V(1,IIP2)+CP22*V(2,IIP2) B(3,4) = CP22*V(1,IIP3) ISTART = I RETURN END C C======================================================================= C C C FUNCTION INTRVL (T,X,N) C INTEGER N REAL T,X(N) C C From FITPACK -- August 31, 1981 C Coded by A. K. Cline and R. J. Renka C Department of Computer Sciences C University of Texas at Austin C C This function determines the index of the interval C (determined by a given increasing sequence) in which C a given value lies. C C On input-- C C T is the given value. C C X is a vector of strictly increasing values. C C And C C N is the length of X (N .GE. 2). C C On output-- C C INTRVL returns an integer I such that C C I = 1 if T .LT. X(2) , C I = N-1 if X(N-1) .LE. T , C otherwise X(I) .LE. T .LT. X(I+1), C C None of the input parameters are altered. C C----------------------------------------------------------- C TT = T IF (TT .LT. X(2)) GO TO 4 IF (TT .GE. X(N-1)) GO TO 5 IL = 2 IH = N-1 C C Linear interpolation C 1 I = MIN0(IL+IFIX(FLOAT(IH-IL)*(TT-X(IL))/(X(IH)-X(IL))), * IH-1) IF (TT .LT. X(I)) GO TO 2 IF (TT .LT. X(I+1)) GO TO 3 C C Too high C IL = I+1 GO TO 1 C C Too low C 2 IH = I GO TO 1 3 INTRVL = I RETURN C C Left end C 4 INTRVL = 1 RETURN C C Right end C 5 INTRVL = N-1 RETURN END C C======================================================================= Cfmod.pl 100666 1750 1750 602 6617231420 11376 0 ustar klimes klimes #!perl #
# # Perl script to compile package MODEL by means of perl script f.pl. # require 'f.pl'; # &COMPILE('modchk'); &COMPILE('grid'); &COMPILE('sec'); &COMPILE('intf'); &COMPILE('inv1soft'); &COMPILE('inv3'); &COMPILE('inv4'); # 1; #gels.for 100666 1750 1750 12622 6364037122 11625 0 ustar klimes klimes C SUBROUTINE 'GELS' FROM THE IBM SCIENTIFIC SUBROUTINE PACKAGE. C C NOTE: TO CONFORM WITH THE FORTRAN77 STANDARD, DUMMY ARRAY DIMENSIONS C (1) HAVE BEEN CHANGED TO (*). C C .................................................................. C C SUBROUTINE GELS C C PURPOSE C TO SOLVE A SYSTEM OF SIMULTANEOUS LINEAR EQUATIONS WITH C SYMMETRIC COEFFICIENT MATRIX UPPER TRIANGULAR PART OF WHICH C IS ASSUMED TO BE STORED COLUMNWISE. C C USAGE C CALL GELS(R,A,M,N,EPS,IER,AUX) C C DESCRIPTION OF PARAMETERS C R - M BY N RIGHT HAND SIDE MATRIX. (DESTROYED) C ON RETURN R CONTAINS THE SOLUTION OF THE EQUATIONS. C A - UPPER TRIANGULAR PART OF THE SYMMETRIC C M BY M COEFFICIENT MATRIX. (DESTROYED) C M - THE NUMBER OF EQUATIONS IN THE SYSTEM. C N - THE NUMBER OF RIGHT HAND SIDE VECTORS. C EPS - AN INPUT CONSTANT WHICH IS USED AS RELATIVE C TOLERANCE FOR TEST ON LOSS OF SIGNIFICANCE. C IER - RESULTING ERROR PARAMETER CODED AS FOLLOWS C IER=0 - NO ERROR, C IER=-1 - NO RESULT BECAUSE OF M LESS THAN 1 OR C PIVOT ELEMENT AT ANY ELIMINATION STEP C EQUAL TO 0, C IER=K - WARNING DUE TO POSSIBLE LOSS OF SIGNIFI- C CANCE INDICATED AT ELIMINATION STEP K+1, C WHERE PIVOT ELEMENT WAS LESS THAN OR C EQUAL TO THE INTERNAL TOLERANCE EPS TIMES C ABSOLUTELY GREATEST MAIN DIAGONAL C ELEMENT OF MATRIX A. C AUX - AN AUXILIARY STORAGE ARRAY WITH DIMENSION M-1. C C REMARKS C UPPER TRIANGULAR PART OF MATRIX A IS ASSUMED TO BE STORED C COLUMNWISE IN M*(M+1)/2 SUCCESSIVE STORAGE LOCATIONS, RIGHT C HAND SIDE MATRIX R COLUMNWISE IN N*M SUCCESSIVE STORAGE C LOCATIONS. ON RETURN SOLUTION MATRIX R IS STORED COLUMNWISE C TOO. C THE PROCEDURE GIVES RESULTS IF THE NUMBER OF EQUATIONS M IS C GREATER THAN 0 AND PIVOT ELEMENTS AT ALL ELIMINATION STEPS C ARE DIFFERENT FROM 0. HOWEVER WARNING IER=K - IF GIVEN - C INDICATES POSSIBLE LOSS OF SIGNIFICANCE. IN CASE OF A WELL C SCALED MATRIX A AND APPROPRIATE TOLERANCE EPS, IER=K MAY BE C INTERPRETED THAT MATRIX A HAS THE RANK K. NO WARNING IS C GIVEN IN CASE M=1. C ERROR PARAMETER IER=-1 DOES NOT NECESSARILY MEAN THAT C MATRIX A IS SINGULAR, AS ONLY MAIN DIAGONAL ELEMENTS C ARE USED AS PIVOT ELEMENTS. POSSIBLY SUBROUTINE GELG (WHICH C WORKS WITH TOTAL PIVOTING) WOULD BE ABLE TO FIND A SOLUTION. C C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED C NONE C C METHOD C SOLUTION IS DONE BY MEANS OF GAUSS-ELIMINATION WITH C PIVOTING IN MAIN DIAGONAL, IN ORDER TO PRESERVE C SYMMETRY IN REMAINING COEFFICIENT MATRICES. C C .................................................................. C SUBROUTINE GELS(R,A,M,N,EPS,IER,AUX) C C DIMENSION A(*),R(*),AUX(*) IF(M)24,24,1 C C SEARCH FOR GREATEST MAIN DIAGONAL ELEMENT 1 IER=0 PIV=0. L=0 DO 3 K=1,M L=L+K TB=ABS(A(L)) IF(TB-PIV)3,3,2 2 PIV=TB I=L J=K 3 CONTINUE TOL=EPS*PIV C MAIN DIAGONAL ELEMENT A(I)=A(J,J) IS FIRST PIVOT ELEMENT. C PIV CONTAINS THE ABSOLUTE VALUE OF A(I). C C C START ELIMINATION LOOP LST=0 NM=N*M LEND=M-1 DO 18 K=1,M C C TEST ON USEFULNESS OF SYMMETRIC ALGORITHM IF(PIV)24,24,4 4 IF(IER)7,5,7 5 IF(PIV-TOL)6,6,7 6 IER=K-1 7 LT=J-K LST=LST+K C C PIVOT ROW REDUCTION AND ROW INTERCHANGE IN RIGHT HAND SIDE R PIVI=1./A(I) DO 8 L=K,NM,M LL=L+LT TB=PIVI*R(LL) R(LL)=R(L) 8 R(L)=TB C C IS ELIMINATION TERMINATED IF(K-M)9,19,19 C C ROW AND COLUMN INTERCHANGE AND PIVOT ROW REDUCTION IN MATRIX A. C ELEMENTS OF PIVOT COLUMN ARE SAVED IN AUXILIARY VECTOR AUX. 9 LR=LST+(LT*(K+J-1))/2 LL=LR L=LST DO 14 II=K,LEND L=L+II LL=LL+1 IF(L-LR)12,10,11 10 A(LL)=A(LST) TB=A(L) GO TO 13 11 LL=L+LT 12 TB=A(LL) A(LL)=A(L) 13 AUX(II)=TB 14 A(L)=PIVI*TB C C SAVE COLUMN INTERCHANGE INFORMATION A(LST)=LT C C ELEMENT REDUCTION AND SEARCH FOR NEXT PIVOT PIV=0. LLST=LST LT=0 DO 18 II=K,LEND PIVI=-AUX(II) LL=LLST LT=LT+1 DO 15 LLD=II,LEND LL=LL+LLD L=LL+LT 15 A(L)=A(L)+PIVI*A(LL) LLST=LLST+II LR=LLST+LT TB=ABS(A(LR)) IF(TB-PIV)17,17,16 16 PIV=TB I=LR J=II+1 17 DO 18 LR=K,NM,M LL=LR+LT 18 R(LL)=R(LL)+PIVI*R(LR) C END OF ELIMINATION LOOP C C C BACK SUBSTITUTION AND BACK INTERCHANGE 19 IF(LEND)24,23,20 20 II=M DO 22 I=2,M LST=LST-II II=II-1 L=A(LST)+.5 DO 22 J=II,NM,M TB=R(J) LL=J K=LST DO 21 LT=II,LEND LL=LL+1 K=K+LT 21 TB=TB-A(K)*R(LL) K=J+L R(J)=R(K) 22 R(K)=TB 23 RETURN C C C ERROR RETURN 24 IER=-1 RETURN END C C======================================================================= C grid.dat 100666 1750 1750 50 6602073436 11515 0 ustar klimes klimes ' ' 'vel.out' 'icb.out' / 'der.out' / / grid.for 100666 1750 1750 62762 6616760560 11643 0 ustar klimes klimes C
C Program GRID to generate the velocities in a rectangular grid C required for the full wave finite differences, the shortest path C calculation of seismic rays, eikonal equation 'finite differences', C or raster imaging of the model. Also an oblique vertical 2-D section C across the 3-D model may be gridded. C C Version: 5.20 C Date: 1998, November 1 C C Coded by: Ludek Klimes C Department of Geophysics, Charles University Prague, C Ke Karlovu 3, 121 16 Praha 2, Czech Republic, C E-mail: klimes@seis.karlov.mff.cuni.cz C C....................................................................... C C The rectangular grid is specified in Cartesian coordinates, and then C transformed to the model coordinates. For the Cartesian coordinates C connected with a particular kind of curvilinear model coordinates see C subroutine CARTES of the file 'metric.for'. C Subroutine CARTES C The rectangular grid could also be specified in respect to the model C coordinates, and limited by coordinate planes specified in the model C coordinates. This option may be enabled by changing the first C executive statement ' LCART=.TRUE.' to ' LCART=.FALSE.'. C C....................................................................... C C C Description of data files: C C Name of the main input data file read from the * external unit: C (1) 'SEP','GRID' C 'SEP'...String in apostrophes containing the name of the input C file with the data specifying grid dimensions and the C name of the data specifying the model. C Description of file SEP C 'GRID'..Name of the input data file described below. C Defaults: 'SEP'='grid.h', 'GRID'='grid.dat'. C C Main input data file GRID: C (1) 'IND','VEL','ICB','VEL1','VEL2','VEL3','VEL11', C 'VEL12','VEL22','VEL13','VEL23','VEL33',/ C 'IND'...If not blank, the name of the index file. C This option enables to specify other than rectangular C region covered by a rectangular grid: C The rectangular volume bounded by coordinate limits C X1MIN,X1MAX, X2MIN,X2MAX, AND X3MIN,X3MAX is divided into C N1*N2*N3 big bricks. Each element (index) of the index C file corresponds to one big brick. If it equals zero, C the big brick does not belong to the region in which the C velocity is discretized. C 'VEL'...Name of the output formatted file, C containing the velocities at the given gridpoints. C Velocity=0 is inserted in a free space. C If blank, the file is not created. C 'ICB'...Name of the output formatted file, C containing the indices of complex geological blocks at the C given gridpoints. C If blank, the file is not created. C 'VEL1','VEL2','VEL3','VEL11','VEL12','VEL22','VEL13','VEL23', C 'VEL33'... Names of the output formatted files containing C individual first or second partial velocity derivatives C at the given gridpoints. C If the filename is blank, the corresponding file is not C created. C Defaults: 'IND'=' ', 'VEL'='vel.out', 'ICB'='icb.out', 'VEL1'=' ', C 'VEL2'=' ', 'VEL3'=' ', 'VEL11'=' ', 'VEL12'=' ', C 'VEL22'=' ', 'VEL13'=' ', 'VEL23'=' ', 'VEL33'=' '. C (2) (IPS(I),I=1,NPS),/ C IPS... List of indices of complex blocks terminated by a slash. C If a complex block is not listed, P-wave velocity is C evaluated at grid points. C IPS(I).LT.0: S-wave velocity is evaluated at grid points. C IPS(I).GT.0: free space (velocity=0) is assumed at grid C points. This option is likely be used to avoid C refraction in deep layers when computing reflected rays C by means of the shortest path network algorithm. C Default: P-wave velocity in all material complex blocks. C Example of data set GRID C C C Data file SEP has the form of the SEP (Stanford Exploration Project) C parameter file: C All the data are specified in the form of PARAMETER=VALUE, e.g. C N1=50, with PARAMETER directly preceding = without intervening C spaces and with VALUE directly following = without intervening C spaces. The PARAMETER=VALUE couple must be delimited by a space C or comma from both sides. C The PARAMETER string is not case-sensitive. C PARAMETER= followed by a space resets the default parameter value. C All other text in the input files is ignored. The file thus may C contain unused data or comments without leading comment character. C Everything between comment character # and the end of the C respective line is ignored, too. C The PARAMETER=VALUE couples may be specified in any order. C The last appearance takes precedence. C Input file specifying the model: C MODEL='string'... Input data file describing the model, it is C described in the subroutine file 'model.for'. C Description of file MODEL C Default: 'MODEL'='model.dat' C Data specifying grid dimensions: C N1=positive integer... Number of gridpoints along the X1 axis. C Default: N1=1 C Special option of N1=0: C 2-D oblique vertical section in 3-D: C The rectangular vertical section bounded by the vertical C lines (X1,X2)=(X1MIN,X2MIN) and (X1,X2)=(X1MAX,X2MAX), C from X3=X3MIN to X3=X3MAX is divided into N2*N3 cells. C Here C X1MIN=O1-0.5*D1, X1MAX=X1MIN+FLOAT(N1)*D1, C X2MIN=O2-0.5*D2, X2MAX=X2MIN+FLOAT(N2)*D2, C X3MIN=O3-0.5*D3, X3MAX=X3MIN+FLOAT(N3)*D3. C N2=positive integer... Number of gridpoints along the X2 axis. C Default: N2=1 C N3=positive integer... Number of gridpoints along the X3 axis. C Default: N3=1 C D1=real... Grid interval in the direction of the first coordinate C axis. C Default: D1=1. C D2=real... Grid interval in the direction of the second coordinate C axis. C Default: D2=1. C D3=real... Grid interval in the direction of the third coordinate C axis. C Default: D3=1. C O1=real... First coordinate of the grid origin (first point of the C grid). C Default: O1=0. C O2=real... Second coordinate of the grid origin. C Default: O2=0. C O3=real... Third coordinate of the grid origin. C Default: O3=0. C Additional parameters for a special option: C The rectangular volume bounded by coordinate limits C X1MIN,X1MAX, X2MIN,X2MAX, and X3MIN,X3MAX is divided into C N1*N2*N3 big bricks. Here C X1MIN=O1-0.5*D1, X1MAX=X1MIN+FLOAT(N1)*D1, C X2MIN=O2-0.5*D2, X2MAX=X2MIN+FLOAT(N2)*D2, C X3MIN=O3-0.5*D3, X3MAX=X3MIN+FLOAT(N3)*D3. C Then (if the numbers L1,L2,L3 are specified in addition to C N1,N2,N3) each big brick is subdivided into L1*L2*L3 small C bricks. C The output velocities are computed in the centres of small C bricks. C Outer loop is over big bricks, the discrete velocities C within each big brick being output consecutively. C A special option of N1=0: C 2-D oblique vertical section in 3-D: C The rectangular vertical section bounded by the vertical C lines (X1,X2)=(X1MIN,X2MIN) and (X1,X2)=(X1MAX,X2MAX), C from X3=X3MIN to X3=X3MAX is divided into N2*N3 big C cells, each big cell being divided into L2*L3 small C cells. C L1=positive integer... Number of small bricks in one big brick in C the direction of axis X1. If specified, must be positive. C Default: L1=1 C L2=positive integer... Number of small bricks in one big brick in C the direction of axis X2. If specified, must be positive. C Default: L2=1 C L3=positive integer... Number of small bricks in one big brick in C the direction of axis X3. If specified, must be positive. C Default: L3=1 C (If the numbers L1,L2,L3 are not specified, each big brick C contains just one small brick, as large as big one.) C Example of data set SEP C C Input file 'IND': C This option enables to specify other than rectangular C region covered by a rectangular grid: C The rectangular volume bounded by coordinate limits C X1MIN,X1MAX, X2MIN,X2MAX, and X3MIN,X3MAX is divided into C N1*N2*N3 big bricks. Each element (index) of the index C file corresponds to one big brick. If it equals zero, C the big brick does not belong to the region in which the C velocity is discretized. C Attention: The nonzero indices must be formed by the sequence C 1,2,3,... of positive integers. C (1) (IND(I),I=1,N1*N2*N3) C IND(I)..Zero if the I-th big brick does not belong to the region C in which the velocity is discretized. C Otherwise the index the big brick. The gridpoints within C the big brick are indexed by integers from C L1*L2*L3*(IND(I)-1)+1 to L1*L2*L3*IND(I). C Default: IND(I)=I. C C Output files 'VEL','VEL1','VEL2','VEL3','VEL11','VEL12','VEL22', C 'VEL13','VEL23': C (1) (V(I),I=1,L1234), where L1234 is the number of gridpoints. C L1234=L1*L2*L3*L4. If the file 'IND' is not specified, C L4=N1*N2*N3 by the default. C V(I)... Velocity or its partial derivative at the I-th gridpoint. C Free space is indicated by a zero velocity or derivative C V(I)=0. C C Output file 'ICB': C (1) (ICB(I),I=1,L1234), where L1234 is the number of gridpoints. C ICB(I)..Index of (geological) block in which the I-th gridpoint C is situated. C C....................................................................... C C Subroutines referenced: EXTERNAL KOOR,MODEL1,BLOCK,VELOC,PARM2,WARRAY INTEGER KOOR C KOOR... File 'metric.for'. C MODEL1,BLOCK,VELOC... File 'model.for'. C PARM2...File 'parm.for'. C WARRAY..File 'forms.for'. C Note that the above subroutines reference many other external C procedures from various source code files of the 'MODEL' subroutine C package. These indirectly referenced procedures are not named here, C but are listed in the particular subroutine source code files. C C----------------------------------------------------------------------- C C Common block /RAMC/: INCLUDE 'ram.inc' C ram.inc C C Allocation of arrays: INTEGER MVEL,MIND PARAMETER (MVEL=10000,MIND=MRAM-11*MVEL) INTEGER ICB(MVEL),IND(MIND) REAL VOUT(MVEL),VOUD(MVEL,9) EQUIVALENCE (VOUT,RAM) EQUIVALENCE (ICB,RAM(MVEL+1)) EQUIVALENCE (VOUD,RAM(2*MVEL+1)) EQUIVALENCE (IND,RAM(11*MVEL+1)) C C....................................................................... C C Storage locations: C C Input data: CHARACTER*80 FGRID,FMODEL,FSEP,FIND,FVEL,FICB,FVELD(9) INTEGER LU1,LU2,LUD(9),MPS PARAMETER (LU1=1,LU2=2,MPS=100) INTEGER N1,N2,N3,L1,L2,L3,IPS(MPS) REAL D1,D2,D3,O1,O2,O3 REAL X1MIN,X2MIN,X3MIN,X1MAX,X2MAX,X3MAX C C LU1,LU2,LUD... Logical unit numbers. C C Others: LOGICAL LCART,LIND,LVEL0,LICB,LVELD,LVEL(9),LOBLIQ INTEGER N123,L1234,I1234,IN1,IN2,IN3,IL1,IL2,IL3,IBRICK,INDOLD INTEGER NVEL,ISB1,ISRF2,ISB2,ICB2,I,II REAL DX1,DX2,DX3 REAL COOR(3),UP(10),US(10),VD(10),AUX0,AUX1,AUX2,AUX3,AUX4 REAL G(12),GAMMA(18),PDER(9),AUX11,AUX12,AUX22,AUX13,AUX23,AUX33 C C LCART.. True if the model specified in curvilinear coordinates is C gridded in Cartesian coordinates. C LIND... Indication of indexed grid to specify irregular subvolume C of the rectangular volume covered by the grid. C LVEL0,LICB,LVELD,LVEL... Indication of opening and generating C output files. C LOBLIQ..Indication of a special option enabling to grid an oblique C vertical profile. C ICB... Indices of complex blocks. C ISB1... Index of the simple block, see subroutine block. C ISRF2...Index of a surface, see subroutine block. C ISB2... Index of the simple block, see subroutine block. C ICB2... Index of the complex block, see subroutine block. C I... Index of a gridpoint, or loop variable. C DX1,DX2,DX3... Grid intervals. C VEL... Velocity. C COOR... Coordinates of a gridpoint. C UP,US,VD,AUX0,AUX1,AUX2,AUX3,AUX4... Auxiliary storage locations C for local model parameters or temporary variables. C G,GAMMA,PDER,AUX11,AUX12,AUX22,AUX13,AUX23,AUX33... Auxiliary C storage locations used in coordinate transformations. C DATA LUD/3,4,5,6,7,8,9,10,11/ C C....................................................................... C LCART=.TRUE. C C....................................................................... C C Opening files and reading input data: C C Name of main input data: FSEP='grid.h' FGRID='grid.dat' WRITE(*,'(A)') ' Enter input filenames [grid.h, grid.dat] ' READ(*,*) FSEP,FGRID WRITE(*,'(A)') '+ ' CALL RSEP1(LU1,FSEP) C C Reading main input data: OPEN(LU1,FILE=FGRID,STATUS='OLD') FIND=' ' FVEL='vel.out' FICB='icb.out' DO 10 I=1,9 FVELD(I)=' ' 10 CONTINUE READ(LU1,*) FIND,FVEL,FICB,(FVELD(I),I=1,9) DO 11 I=1,MPS IPS(I)=0 11 CONTINUE READ(LU1,*) IPS DO 15 I=1,MPS IF(IPS(I).NE.0) THEN IF(IABS(IPS(I)).LT.I) THEN IPS(IABS(IPS(I)))=IPS(I) ELSE IF(IABS(IPS(I)).GT.I) THEN DO 12 II=IABS(IPS(I)),MPS IF(IPS(II).EQ.0) THEN IPS(II)=IPS(I) IPS(I)=0 GO TO 13 END IF 12 CONTINUE C GRID-01 CALL ERROR('GRID-01: Too small array IPS(MPS)') 13 CONTINUE END IF END IF 15 CONTINUE DO 16 I=1,MPS IF(IPS(I).EQ.0) THEN IPS(I)=I ELSE IF(IPS(I).GT.0) THEN IPS(I)=0 END IF 16 CONTINUE CLOSE(LU1) C C Data for model: CALL RSEP3T('MODEL',FMODEL,'model.dat') OPEN(LU1,FILE=FMODEL,STATUS='OLD') CALL MODEL1(LU1) CLOSE(LU1) IF(KOOR().EQ.0) THEN C No transformation between Cartesian and model coordinates LCART=.FALSE. END IF C C Data for grid: CALL RSEP3I('N1',N1,1) CALL RSEP3I('N2',N2,1) CALL RSEP3I('N3',N3,1) CALL RSEP3I('L1',L1,1) CALL RSEP3I('L2',L2,1) CALL RSEP3I('L3',L3,1) IF(N1.EQ.0) THEN C Vertical oblique profile IF(L1.NE.0.AND.L1.NE.1) THEN C GRID-02 CALL ERROR('GRID-02: Incorrect L1 for an oblique profile') END IF LOBLIQ=.TRUE. N1=1 L1=1 ELSE LOBLIQ=.FALSE. END IF IF(N1.LT.1.OR.N2.LT.1.OR.N3.LT.1.OR.L1.LT.1.OR.L2.LT.1.OR.L3.LT.1) * THEN C GRID-03 CALL ERROR('GRID-03: Non-positive number of gridpoints') END IF CALL RSEP3R('D1',D1,1.) CALL RSEP3R('D2',D2,1.) CALL RSEP3R('D3',D3,1.) CALL RSEP3R('O1',O1,0.) CALL RSEP3R('O2',O2,0.) CALL RSEP3R('O3',O3,0.) X1MIN=O1-0.5*D1 X2MIN=O2-0.5*D2 X3MIN=O3-0.5*D3 X1MAX=X1MIN+FLOAT(N1)*D1 X2MAX=X2MIN+FLOAT(N2)*D2 X3MAX=X3MIN+FLOAT(N3)*D3 C C Reading the index array: IF(FIND.EQ.' ') THEN LIND=.FALSE. IND(1)=1 L1234=L1*L2*L3*N1*N2*N3 ELSE LIND=.TRUE. N123=N1*N2*N3 IF(N123.GT.MIND) THEN C GRID-04 CALL ERROR('GRID-04: Too many big bricks') END IF DO 31 IBRICK=1,N123 IND(IBRICK)=IBRICK 31 CONTINUE OPEN(LU1,FILE=FIND,STATUS='OLD') READ(LU1,*) (IND(IBRICK),IBRICK=1,N123) CLOSE(LU1) L1234=0 DO 32 IBRICK=1,N123 IF(IND(IBRICK).GT.0) THEN L1234=L1234+1 END IF 32 CONTINUE L1234=L1*L2*L3*L1234 END IF C C Output file with velocities at gridpoints: IF(FVEL.EQ.' ') THEN LVEL0=.FALSE. ELSE LVEL0=.TRUE. OPEN(LU1,FILE=FVEL) END IF C C Output file with indices of complex blocks: IF(FICB.EQ.' ') THEN LICB=.FALSE. ELSE LICB=.TRUE. OPEN(LU2,FILE=FICB) END IF C C Output file with velocity derivatives at gridpoints: LVELD=.FALSE. DO 33 I=1,9 IF(FVELD(I).EQ.' ') THEN LVEL(I)=.FALSE. ELSE LVELD =.TRUE. LVEL(I)=.TRUE. OPEN(LUD(I),FILE=FVELD(I)) END IF 33 CONTINUE C C....................................................................... C C Loops over gridpoints: C IF(LOBLIQ) THEN DX1=(X1MAX-X1MIN)/FLOAT(N2*L2) ELSE DX1=(X1MAX-X1MIN)/FLOAT(N1*L1) END IF DX2=(X2MAX-X2MIN)/FLOAT(N2*L2) DX3=(X3MAX-X3MIN)/FLOAT(N3*L3) ISB1=0 NVEL=0 IBRICK=0 INDOLD=0 I1234=0 WRITE(*,'(''+'',I18,'' gridpoints of'',I8)') I1234,L1234 C C Loop over big bricks: DO 83 IN3=0,N3-1 DO 82 IN2=0,N2-1 DO 81 IN1=0,N1-1 C C Check for the computational volume: IF(LIND) THEN IBRICK=IBRICK+1 IF(IND(IBRICK).EQ.0) THEN GO TO 80 END IF IF(IND(IBRICK).NE.INDOLD+1) THEN C GRID-05 CALL ERROR('GRID-05: Indices not consecutive') END IF INDOLD=IND(IBRICK) END IF C C Loop over small bricks: DO 73 IL3=1,L3 COOR(3)=X3MIN+DX3*(FLOAT(IN3*L3+IL3)-0.5) DO 72 IL2=1,L2 COOR(2)=X2MIN+DX2*(FLOAT(IN2*L2+IL2)-0.5) DO 71 IL1=1,L1 IF(LOBLIQ) THEN COOR(1)=X1MIN+DX1*(FLOAT(IN2*L2+IL2)-0.5) ELSE COOR(1)=X1MIN+DX1*(FLOAT(IN1*L1+IL1)-0.5) END IF C C Transformation from Cartesian to model coordinates: IF(LCART) THEN G(1)=COOR(1) G(2)=COOR(2) G(3)=COOR(3) CALL CARTES(COOR,.FALSE.,G,PDER) END IF C C Velocity evaluation: CALL BLOCK(.TRUE.,COOR,0,ISB1,ISRF2,ISB2,ICB2,VD) ISB1=ISB2 IF(ICB2.EQ.0) THEN C free space: DO 41 I=1,10 VD(I)=0. 41 CONTINUE ELSE IF(IPS(ICB2).EQ.0) THEN C Deemed free space: ICB2=0 DO 42 I=1,10 VD(I)=0. 42 CONTINUE ELSE CALL PARM2(IABS(ICB2),COOR,UP,US,AUX0,AUX1,AUX2) CALL VELOC(IPS(ICB2),UP,US, * AUX1,AUX2,AUX3,AUX4,VD,AUX0) END IF C C Writing output files: IF(NVEL.EQ.MVEL) THEN WRITE(*,'(''+Writing: '',I8)') I1234 IF(LVEL0) THEN CALL WARRAY(LU1,' ','FORMATTED', * .FALSE.,0.,.FALSE.,0.,MVEL,VOUT) C For velocities up to 9.99999, the above statement C might be replaced, for instance, by: C WRITE(LU1,'(10F8.5)') VOUT END IF IF(LICB) THEN WRITE(LU2,'(20(1X,I2))') ICB END IF DO 51 I=1,9 IF(LVEL(I)) THEN CALL WARRAY(LUD(I),' ','FORMATTED', * .FALSE.,0.,.FALSE.,0.,MVEL,VOUD(1,I)) END IF 51 CONTINUE NVEL=0 WRITE(*,'(''+ '')') END IF NVEL=NVEL+1 VOUT(NVEL)=VD(1) ICB (NVEL)=ICB2 IF(LVELD) THEN IF(LCART) THEN C Transformation from model to Cartesian coordinates C covariant derivatives CALL METRIC(COOR,AUX1,G,GAMMA) AUX1=VD(2) AUX2=VD(3) AUX3=VD(4) AUX11=VD( 5)-GAMMA(1)*AUX1-GAMMA( 7)*AUX2 * -GAMMA(13)*AUX3 AUX12=VD( 6)-GAMMA(2)*AUX1-GAMMA( 8)*AUX2 * -GAMMA(14)*AUX3 AUX22=VD( 7)-GAMMA(3)*AUX1-GAMMA( 9)*AUX2 * -GAMMA(15)*AUX3 AUX13=VD( 8)-GAMMA(4)*AUX1-GAMMA(10)*AUX2 * -GAMMA(16)*AUX3 AUX23=VD( 9)-GAMMA(5)*AUX1-GAMMA(11)*AUX2 * -GAMMA(17)*AUX3 AUX33=VD(10)-GAMMA(6)*AUX1-GAMMA(12)*AUX2 * -GAMMA(18)*AUX3 C Transformation of derivatives VD(2)= AUX1*PDER(1)+ AUX2*PDER(2)+ AUX3*PDER(3) VD(3)= AUX1*PDER(4)+ AUX2*PDER(5)+ AUX3*PDER(6) VD(4)= AUX1*PDER(7)+ AUX2*PDER(8)+ AUX3*PDER(9) AUX1 =AUX11*PDER(1)+AUX12*PDER(2)+AUX13*PDER(3) AUX2 =AUX12*PDER(1)+AUX22*PDER(2)+AUX23*PDER(3) AUX3 =AUX13*PDER(1)+AUX23*PDER(2)+AUX33*PDER(3) VD(5)= AUX1*PDER(1)+ AUX2*PDER(2)+ AUX3*PDER(3) AUX1 =AUX11*PDER(4)+AUX12*PDER(5)+AUX13*PDER(6) AUX2 =AUX12*PDER(4)+AUX22*PDER(5)+AUX23*PDER(6) AUX3 =AUX13*PDER(4)+AUX23*PDER(5)+AUX33*PDER(6) VD(6)= AUX1*PDER(1)+ AUX2*PDER(2)+ AUX3*PDER(3) VD(7)= AUX1*PDER(4)+ AUX2*PDER(5)+ AUX3*PDER(6) AUX1 =AUX11*PDER(7)+AUX12*PDER(8)+AUX13*PDER(9) AUX2 =AUX12*PDER(7)+AUX22*PDER(8)+AUX23*PDER(9) AUX3 =AUX13*PDER(7)+AUX23*PDER(8)+AUX33*PDER(9) VD(8)= AUX1*PDER(1)+ AUX2*PDER(2)+ AUX3*PDER(3) VD(9)= AUX1*PDER(4)+ AUX2*PDER(5)+ AUX3*PDER(6) VD(10)=AUX1*PDER(7)+ AUX2*PDER(8)+ AUX3*PDER(9) END IF DO 61 I=1,9 IF(LVEL(I)) THEN VOUD(NVEL,I)=VD(I+1) END IF 61 CONTINUE END IF C C Screen output: I1234=I1234+1 IF(MOD(I1234,1000).EQ.0) THEN WRITE(*,'(''+'',I18)') I1234 END IF C 71 CONTINUE 72 CONTINUE 73 CONTINUE C 80 CONTINUE 81 CONTINUE 82 CONTINUE 83 CONTINUE C C Rest of output files: IF(NVEL.GT.0) THEN WRITE(*,'(''+Writing: '',I8)') I1234 IF(LVEL0) THEN CALL WARRAY(LU1,' ','FORMATTED', * .FALSE.,0.,.FALSE.,0.,NVEL,VOUT) C For velocities up to 9.99999, the above statement C might be replaced, for instance, by: C WRITE(LU1,'(10F8.5)') (VOUT(I),I=1,NVEL) END IF IF(LICB) THEN WRITE(LU2,'(20(1X,I2))') (ICB(I),I=1,NVEL) END IF DO 91 I=1,9 IF(LVEL(I)) THEN CALL WARRAY(LUD(I),' ','FORMATTED', * .FALSE.,0.,.FALSE.,0.,NVEL,VOUD(1,I)) END IF 91 CONTINUE NVEL=0 END IF C C Screen output: WRITE(*,'(''+'',I18)') I1234 STOP END C C======================================================================= C INCLUDE 'error.for' C error.for INCLUDE 'sep.for' C sep.for INCLUDE 'length.for' C length.for INCLUDE 'forms.for' C forms.for INCLUDE 'model.for' C model.for INCLUDE 'metric.for' C metric.for INCLUDE 'srfc.for' C srfc.for INCLUDE 'parm.for' C parm.for INCLUDE 'val.for' C val.for INCLUDE 'fit.for' C fit.for C C======================================================================= Cgrid.h 100666 1750 1750 214 6603065570 11217 0 ustar klimes klimes MODEL='model.dat' N1=60 N2=40 N3=30 D1=1.0 D2=1.0 D3=1.0 O1=0.5 O2=-19.5 O3=-24.5 grid: 'grid.h' 'grid.dat' / hpcg.for 100666 1750 1750 27716 5306031102 11611 0 ustar klimes klimes C SUBROUTINE 'HPCG' FROM THE IBM SCIENTIFIC SUBROUTINE PACKAGE. C C NOTE: TO CONFORM WITH THE FORTRAN77 STANDARD, DUMMY ARRAY DIMENSIONS C (1) HAVE BEEN CHANGED TO (*). C C .................................................................. C C SUBROUTINE HPCG C C PURPOSE C TO SOLVE A SYSTEM OF FIRST ORDER ORDINARY GENERAL C DIFFERENTIAL EQUATIONS WITH GIVEN INITIAL VALUES. C C USAGE C CALL HPCG (PRMT,Y,DERY,NDIM,IHLF,FCT,OUTP,AUX) C PARAMETERS FCT AND OUTP REQUIRE AN EXTERNAL STATEMENT. C C DESCRIPTION OF PARAMETERS C PRMT - AN INPUT AND OUTPUT VECTOR WITH DIMENSION GREATER C OR EQUAL TO 5, WHICH SPECIFIES THE PARAMETERS OF C THE INTERVAL AND OF ACCURACY AND WHICH SERVES FOR C COMMUNICATION BETWEEN OUTPUT SUBROUTINE (FURNISHED C BY THE USER) AND SUBROUTINE HPCG. EXCEPT PRMT(5) C THE COMPONENTS ARE NOT DESTROYED BY SUBROUTINE C HPCG AND THEY ARE C PRMT(1)- LOWER BOUND OF THE INTERVAL (INPUT), C PRMT(2)- UPPER BOUND OF THE INTERVAL (INPUT), C PRMT(3)- INITIAL INCREMENT OF THE INDEPENDENT VARIABLE C (INPUT), C PRMT(4)- UPPER ERROR BOUND (INPUT). IF ABSOLUTE ERROR IS C GREATER THAN PRMT(4), INCREMENT GETS HALVED. C IF INCREMENT IS LESS THAN PRMT(3) AND ABSOLUTE C ERROR LESS THAN PRMT(4)/50, INCREMENT GETS DOUBLED. C THE USER MAY CHANGE PRMT(4) BY MEANS OF HIS C OUTPUT SUBROUTINE. C PRMT(5)- NO INPUT PARAMETER. SUBROUTINE HPCG INITIALIZES C PRMT(5)=0. IF THE USER WANTS TO TERMINATE C SUBROUTINE HPCG AT ANY OUTPUT POINT, HE HAS TO C CHANGE PRMT(5) TO NON-ZERO BY MEANS OF SUBROUTINE C OUTP. FURTHER COMPONENTS OF VECTOR PRMT ARE C FEASIBLE IF ITS DIMENSION IS DEFINED GREATER C THAN 5. HOWEVER SUBROUTINE HPCG DOES NOT REQUIRE C AND CHANGE THEM. NEVERTHELESS THEY MAY BE USEFUL C FOR HANDING RESULT VALUES TO THE MAIN PROGRAM C (CALLING HPCG) WHICH ARE OBTAINED BY SPECIAL C MANIPULATIONS WITH OUTPUT DATA IN SUBROUTINE OUTP. C Y - INPUT VECTOR OF INITIAL VALUES. (DESTROYED) C LATERON Y IS THE RESULTING VECTOR OF DEPENDENT C VARIABLES COMPUTED AT INTERMEDIATE POINTS X. C DERY - INPUT VECTOR OF ERROR WEIGHTS. (DESTROYED) C THE SUM OF ITS COMPONENTS MUST BE EQUAL TO 1. C LATERON DERY IS THE VECTOR OF DERIVATIVES, WHICH C BELONG TO FUNCTION VALUES Y AT A POINT X. C NDIM - AN INPUT VALUE, WHICH SPECIFIES THE NUMBER OF C EQUATIONS IN THE SYSTEM. C IHLF - AN OUTPUT VALUE, WHICH SPECIFIES THE NUMBER OF C BISECTIONS OF THE INITIAL INCREMENT. IF IHLF GETS C GREATER THAN 10, SUBROUTINE HPCG RETURNS WITH C ERROR MESSAGE IHLF=11 INTO MAIN PROGRAM. C ERROR MESSAGE IHLF=12 OR IHLF=13 APPEARS IN CASE C PRMT(3)=0 OR IN CASE SIGN(PRMT(3)).NE.SIGN(PRMT(2)- C PRMT(1)) RESPECTIVELY. C FCT - THE NAME OF AN EXTERNAL SUBROUTINE USED. IT C COMPUTES THE RIGHT HAND SIDES DERY OF THE SYSTEM C TO GIVEN VALUES OF X AND Y. ITS PARAMETER LIST C MUST BE X,Y,DERY. THE SUBROUTINE SHOULD NOT C DESTROY X AND Y. C OUTP - THE NAME OF AN EXTERNAL OUTPUT SUBROUTINE USED. C ITS PARAMETER LIST MUST BE X,Y,DERY,IHLF,NDIM,PRMT. C NONE OF THESE PARAMETERS (EXCEPT, IF NECESSARY, C PRMT(4),PRMT(5),...) SHOULD BE CHANGED BY C SUBROUTINE OUTP. IF PRMT(5) IS CHANGED TO NON-ZERO, C SUBROUTINE HPCG IS TERMINATED. C AUX - AN AUXILIARY STORAGE ARRAY WITH 16 ROWS AND NDIM C COLUMNS. C C REMARKS C THE PROCEDURE TERMINATES AND RETURNS TO CALLING PROGRAM, IF C (1) MORE THAN 10 BISECTIONS OF THE INITIAL INCREMENT ARE C NECESSARY TO GET SATISFACTORY ACCURACY (ERROR MESSAGE C IHLF=11), C (2) INITIAL INCREMENT IS EQUAL TO 0 OR HAS WRONG SIGN C (ERROR MESSAGES IHLF=12 OR IHLF=13), C (3) THE WHOLE INTEGRATION INTERVAL IS WORKED THROUGH, C (4) SUBROUTINE OUTP HAS CHANGED PRMT(5) TO NON-ZERO. C C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED C THE EXTERNAL SUBROUTINES FCT(X,Y,DERY) AND C OUTP(X,Y,DERY,IHLF,NDIM,PRMT) MUST BE FURNISHED BY THE USER. C C METHOD C EVALUATION IS DONE BY MEANS OF HAMMINGS MODIFIED PREDICTOR- C CORRECTOR METHOD. IT IS A FOURTH ORDER METHOD, USING 4 C PRECEEDING POINTS FOR COMPUTATION OF A NEW VECTOR Y OF THE C DEPENDENT VARIABLES. C FOURTH ORDER RUNGE-KUTTA METHOD SUGGESTED BY RALSTON IS C USED FOR ADJUSTMENT OF THE INITIAL INCREMENT AND FOR C COMPUTATION OF STARTING VALUES. C SUBROUTINE HPCG AUTOMATICALLY ADJUSTS THE INCREMENT DURING C THE WHOLE COMPUTATION BY HALVING OR DOUBLING. C TO GET FULL FLEXIBILITY IN OUTPUT, AN OUTPUT SUBROUTINE C MUST BE CODED BY THE USER. C FOR REFERENCE, SEE C (1) RALSTON/WILF, MATHEMATICAL METHODS FOR DIGITAL C COMPUTERS, WILEY, NEW YORK/LONDON, 1960, PP.95-109. C (2) RALSTON, RUNGE-KUTTA METHODS WITH MINIMUM ERROR BOUNDS, C MTAC, VOL.16, ISS.80 (1962), PP.431-437. C C .................................................................. C SUBROUTINE HPCG(PRMT,Y,DERY,NDIM,IHLF,FCT,OUTP,AUX) C DIMENSION PRMT(*),Y(*),DERY(*),AUX(16,*) N=1 IHLF=0 X=PRMT(1) H=PRMT(3) PRMT(5)=0. DO 1 I=1,NDIM AUX(16,I)=0. AUX(15,I)=DERY(I) 1 AUX(1,I)=Y(I) IF(H*(PRMT(2)-X))3,2,4 C C ERROR RETURNS 2 IHLF=12 GOTO 4 3 IHLF=13 C C COMPUTATION OF DERY FOR STARTING VALUES 4 CALL FCT(X,Y,DERY) C C RECORDING OF STARTING VALUES CALL OUTP(X,Y,DERY,IHLF,NDIM,PRMT) IF(PRMT(5))6,5,6 5 IF(IHLF)7,7,6 6 RETURN 7 DO 8 I=1,NDIM 8 AUX(8,I)=DERY(I) C C COMPUTATION OF AUX(2,I) ISW=1 GOTO 100 C 9 X=X+H DO 10 I=1,NDIM 10 AUX(2,I)=Y(I) C C INCREMENT H IS TESTED BY MEANS OF BISECTION 11 IHLF=IHLF+1 X=X-H DO 12 I=1,NDIM 12 AUX(4,I)=AUX(2,I) H=.5*H N=1 ISW=2 GOTO 100 C 13 X=X+H CALL FCT(X,Y,DERY) N=2 DO 14 I=1,NDIM AUX(2,I)=Y(I) 14 AUX(9,I)=DERY(I) ISW=3 GOTO 100 C C COMPUTATION OF TEST VALUE DELT 15 DELT=0. DO 16 I=1,NDIM 16 DELT=DELT+AUX(15,I)*ABS(Y(I)-AUX(4,I)) DELT=.06666667*DELT IF(DELT-PRMT(4))19,19,17 17 IF(IHLF-10)11,18,18 C C NO SATISFACTORY ACCURACY AFTER 10 BISECTIONS. ERROR MESSAGE. 18 IHLF=11 X=X+H GOTO 4 C C THERE IS SATISFACTORY ACCURACY AFTER LESS THAN 11 BISECTIONS. 19 X=X+H CALL FCT(X,Y,DERY) DO 20 I=1,NDIM AUX(3,I)=Y(I) 20 AUX(10,I)=DERY(I) N=3 ISW=4 GOTO 100 C 21 N=1 X=X+H CALL FCT(X,Y,DERY) X=PRMT(1) DO 22 I=1,NDIM AUX(11,I)=DERY(I) 220Y(I)=AUX(1,I)+H*(.375*AUX(8,I)+.7916667*AUX(9,I) 1-.2083333*AUX(10,I)+.04166667*DERY(I)) 23 X=X+H N=N+1 CALL FCT(X,Y,DERY) CALL OUTP(X,Y,DERY,IHLF,NDIM,PRMT) IF(PRMT(5))6,24,6 24 IF(N-4)25,200,200 25 DO 26 I=1,NDIM AUX(N,I)=Y(I) 26 AUX(N+7,I)=DERY(I) IF(N-3)27,29,200 C 27 DO 28 I=1,NDIM DELT=AUX(9,I)+AUX(9,I) DELT=DELT+DELT 28 Y(I)=AUX(1,I)+.3333333*H*(AUX(8,I)+DELT+AUX(10,I)) GOTO 23 C 29 DO 30 I=1,NDIM DELT=AUX(9,I)+AUX(10,I) DELT=DELT+DELT+DELT 30 Y(I)=AUX(1,I)+.375*H*(AUX(8,I)+DELT+AUX(11,I)) GOTO 23 C C THE FOLLOWING PART OF SUBROUTINE HPCG COMPUTES BY MEANS OF C RUNGE-KUTTA METHOD STARTING VALUES FOR THE NOT SELF-STARTING C PREDICTOR-CORRECTOR METHOD. 100 DO 101 I=1,NDIM Z=H*AUX(N+7,I) AUX(5,I)=Z 101 Y(I)=AUX(N,I)+.4*Z C Z IS AN AUXILIARY STORAGE LOCATION C Z=X+.4*H CALL FCT(Z,Y,DERY) DO 102 I=1,NDIM Z=H*DERY(I) AUX(6,I)=Z 102 Y(I)=AUX(N,I)+.2969776*AUX(5,I)+.1587596*Z C Z=X+.4557372*H CALL FCT(Z,Y,DERY) DO 103 I=1,NDIM Z=H*DERY(I) AUX(7,I)=Z 103 Y(I)=AUX(N,I)+.2181004*AUX(5,I)-3.050965*AUX(6,I)+3.832865*Z C Z=X+H CALL FCT(Z,Y,DERY) DO 104 I=1,NDIM 1040Y(I)=AUX(N,I)+.1747603*AUX(5,I)-.5514807*AUX(6,I) 1+1.205536*AUX(7,I)+.1711848*H*DERY(I) GOTO(9,13,15,21),ISW C C POSSIBLE BREAK-POINT FOR LINKAGE C C STARTING VALUES ARE COMPUTED. C NOW START HAMMINGS MODIFIED PREDICTOR-CORRECTOR METHOD. 200 ISTEP=3 201 IF(N-8)204,202,204 C C N=8 CAUSES THE ROWS OF AUX TO CHANGE THEIR STORAGE LOCATIONS 202 DO 203 N=2,7 DO 203 I=1,NDIM AUX(N-1,I)=AUX(N,I) 203 AUX(N+6,I)=AUX(N+7,I) N=7 C C N LESS THAN 8 CAUSES N+1 TO GET N 204 N=N+1 C C COMPUTATION OF NEXT VECTOR Y DO 205 I=1,NDIM AUX(N-1,I)=Y(I) 205 AUX(N+6,I)=DERY(I) X=X+H 206 ISTEP=ISTEP+1 DO 207 I=1,NDIM 0DELT=AUX(N-4,I)+1.333333*H*(AUX(N+6,I)+AUX(N+6,I)-AUX(N+5,I)+ 1AUX(N+4,I)+AUX(N+4,I)) Y(I)=DELT-.9256198*AUX(16,I) 207 AUX(16,I)=DELT C PREDICTOR IS NOW GENERATED IN ROW 16 OF AUX, MODIFIED PREDICTOR C IS GENERATED IN Y. DELT MEANS AN AUXILIARY STORAGE. C CALL FCT(X,Y,DERY) C DERIVATIVE OF MODIFIED PREDICTOR IS GENERATED IN DERY C DO 208 I=1,NDIM 0DELT=.125*(9.*AUX(N-1,I)-AUX(N-3,I)+3.*H*(DERY(I)+AUX(N+6,I)+ 1AUX(N+6,I)-AUX(N+5,I))) AUX(16,I)=AUX(16,I)-DELT 208 Y(I)=DELT+.07438017*AUX(16,I) C C TEST WHETHER H MUST BE HALVED OR DOUBLED DELT=0. DO 209 I=1,NDIM 209 DELT=DELT+AUX(15,I)*ABS(AUX(16,I)) IF(DELT-PRMT(4))210,222,222 C C H MUST NOT BE HALVED. THAT MEANS Y(I) ARE GOOD. 210 CALL FCT(X,Y,DERY) CALL OUTP(X,Y,DERY,IHLF,NDIM,PRMT) IF(PRMT(5))212,211,212 211 IF(IHLF-11)213,212,212 212 RETURN 213 IF(H*(X-PRMT(2)))214,212,212 214 IF(ABS(X-PRMT(2))-.1*ABS(H))212,215,215 215 IF(DELT-.02*PRMT(4))216,216,201 C C C H COULD BE DOUBLED IF ALL NECESSARY PRECEEDING VALUES ARE C AVAILABLE 216 IF(IHLF)201,201,217 217 IF(N-7)201,218,218 218 IF(ISTEP-4)201,219,219 219 IMOD=ISTEP/2 IF(ISTEP-IMOD-IMOD)201,220,201 220 H=H+H IHLF=IHLF-1 ISTEP=0 DO 221 I=1,NDIM AUX(N-1,I)=AUX(N-2,I) AUX(N-2,I)=AUX(N-4,I) AUX(N-3,I)=AUX(N-6,I) AUX(N+6,I)=AUX(N+5,I) AUX(N+5,I)=AUX(N+3,I) AUX(N+4,I)=AUX(N+1,I) DELT=AUX(N+6,I)+AUX(N+5,I) DELT=DELT+DELT+DELT 2210AUX(16,I)=8.962963*(Y(I)-AUX(N-3,I))-3.361111*H*(DERY(I)+DELT 1+AUX(N+4,I)) GOTO 201 C C C H MUST BE HALVED 222 IHLF=IHLF+1 IF(IHLF-10)223,223,210 223 H=.5*H ISTEP=0 DO 224 I=1,NDIM 0Y(I)=.00390625*(80.*AUX(N-1,I)+135.*AUX(N-2,I)+40.*AUX(N-3,I)+ 1AUX(N-4,I))-.1171875*(AUX(N+6,I)-6.*AUX(N+5,I)-AUX(N+4,I))*H 0AUX(N-4,I)=.00390625*(12.*AUX(N-1,I)+135.*AUX(N-2,I)+ 1108.*AUX(N-3,I)+AUX(N-4,I))-.0234375*(AUX(N+6,I)+18.*AUX(N+5,I)- 29.*AUX(N+4,I))*H AUX(N-3,I)=AUX(N-2,I) 224 AUX(N+4,I)=AUX(N+5,I) X=X-H DELT=X-(H+H) CALL FCT(DELT,Y,DERY) DO 225 I=1,NDIM AUX(N-2,I)=Y(I) AUX(N+5,I)=DERY(I) 225 Y(I)=AUX(N-4,I) DELT=DELT-(H+H) CALL FCT(DELT,Y,DERY) DO 226 I=1,NDIM DELT=AUX(N+5,I)+AUX(N+4,I) DELT=DELT+DELT+DELT 0AUX(16,I)=8.962963*(AUX(N-1,I)-Y(I))-3.361111*H*(AUX(N+6,I)+DELT 1+DERY(I)) 226 AUX(N+3,I)=DERY(I) GOTO 206 END C C======================================================================= C intf.for 100666 1750 1750 25651 6621466636 11655 0 ustar klimes klimes C
C Program INTF to check the positions of given points with respect to C interfaces in the model. C C Version: 5.20 C Date: 1998, November 9 C C Coded by: Ludek Klimes C Department of Geophysics, Charles University Prague, C Ke Karlovu 3, 121 16 Praha 2, Czech Republic, C E-mail: klimes@seis.karlov.mff.cuni.cz C C....................................................................... C C C Description of the data files: C C The data are read in by the list directed input (free format). C In the description of data files, each numbered paragraph indicates C the beginning of a new input operation (new READ statement). C If the symbolic name of the input variable is enclosed in apostrophes, C the corresponding value in input data is of the type CHARACTER, i.e. C it should be a character string enclosed in apostrophes. If the first C letter of the symbolic name is I-N, the corresponding value is of the C type INTEGER. Otherwise, the input parameter is of the type REAL and C may or may not contain a decimal point. C C Input data read from the * external unit: C The interactive * external unit may also be redirected to the file C containing the relevant data. C (1) 'MODEL','INTF','OUT',KSRFC,KOLUMN,/ C 'MODEL'... Input data file describing the model, it is described C in the subroutine file 'model.for'. C Description of file MODEL C 'INTF'..String with the name of the input data file containing the C points situated at (or close to) interface(s). C 'OUT'...String with the name of the output data file containing the C value F(X1,X2,X3) of the function describing the C corresponding surface, evaluated at the given points. C KSRFC...KSRFC=0: Points submitted in file 'INTF' correspond to C various surfaces in the model. Each point thus must be C supplemented with the index of the surface. C KSRFC.NE.0: Points submitted in file 'INTF' correspond to C surface number IABS(KSRFC). C KSRFC.GT.0: Input file 'INTF' has format C POINTS. C KSRFC.LT.0: Input file 'INTF' has format C LINES. C KOLUMN..Specifies the position in output file 'OUT' where to write C value F(X1,X2,X3) of the function describing the C corresponding surface, evaluated at the given points. C Default: 'MODEL'='model.dat', 'INTF'='intf.dat', 'OUT'='intf.out', C KSRFC=0, KOLUMN=4. C C Input file 'INTF': C For KSRFC.GT.0: C Input file 'INTF' has format POINTS, see 'formsdat.htm'. C Description of form POINTS C For KSRFC.LT.0: C Input file 'INTF' has format LINES, see 'formsdat.htm'. C Description of form LINES C For KSRFC.EQ.0: C Several lines terminated by a slash or EOF. Each line corresponds C to a given point and contains 4 numbers: C ISRFC,X1,X2,X3 C ISRFC...Index of the surface. C X1,X2,X3... Coordinates of the point. C In all cases, the possible quantities following the coordinates are C not considered. C C Output file 'OUT' has similar form as input file 'INTF', depending on C KSRFC: C For KOLUMN=1,2,3: C KOLUMN-th coordinate of the input point is replaced by the value C F(X1,X2,X3) of the function describing the corresponding surface. C This option may be used to project the points or lines given by 2 C of 3 coordinates on the surfaces described in the simple form of C F(X1,X2,X3)=W(X1,X2)-X3 or F(X1,X2,X3)=W(X1,X3)-X2 or C F(X1,X2,X3)=W(X2,X3)-X1. C For KSRFC=0 and KOLUMN=0: C All 3 coordinates are replaced by single value F(X1,X2,X3). C If the point is situated exactly at the surface, F(X1,X2,X3)=0. C Otherwise: C The 3 coordinates are supplemented with the 4th number, the value C of F(X1,X2,X3) to check the position of the point with respect to C the surface. C C======================================================================= C C External procedures directly referred: EXTERNAL LENGTH,MODEL1,SRFC2 INTEGER LENGTH C C Common block /MODELC/: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C----------------------------------------------------------------------- C C Filenames: CHARACTER*80 FILE0,FILE1,FILE2 C C Logical unit numbers: INTEGER LU1,LU2 PARAMETER (LU1=11) PARAMETER (LU2=12) C C Data: CHARACTER*80 TEXT LOGICAL NEWLIN INTEGER KSRFC,ISRFC,NPTS,I,KOLUMN REAL COOR(3),F(10),FMAX,FRMS,FABS,FAVE,GIANT PARAMETER (GIANT=9.9E9) C C....................................................................... C C Opening data files and reading the input data: C C Main input data file read from the interactive device (*): WRITE(*,'(A)') * ' Enter model, point, output filenames, and surface index: ' FILE0='model.dat' FILE1='intf.dat' FILE2='intf.out' KSRFC=0 KOLUMN=4 READ(*,*) FILE0,FILE1,FILE2,KSRFC,KOLUMN C WRITE(*,'(A)') * '+Reading input data for the model. ' OPEN(LU1,FILE=FILE0,STATUS='OLD') CALL MODEL1(LU1) CLOSE(LU1) C WRITE(*,'(A)') * '+ ' OPEN(LU1,FILE=FILE1,STATUS='OLD') OPEN(LU2,FILE=FILE2) C IF(KSRFC.NE.0) THEN ISRFC=IABS(KSRFC) READ(LU1,*,END=90) (TEXT,I=1,20) WRITE(LU2,'(A)') '/' END IF C C....................................................................... C C Check of the positions C NEWLIN=.TRUE. NPTS=0 FMAX=0. FRMS=0. FABS=0. FAVE=0. 10 CONTINUE IF(KSRFC.GT.0) THEN C Input format 'Points': TEXT='$' COOR(1)=0. COOR(2)=0. COOR(3)=0. READ(LU1,*,END=90) TEXT,COOR(1),COOR(2),COOR(3) IF(TEXT.EQ.'$') THEN GO TO 90 END IF ELSE IF(KSRFC.LT.0) THEN C Input format 'Lines': 20 CONTINUE IF(NEWLIN) THEN COOR(1)=GIANT COOR(2)=0. COOR(3)=0. TEXT='$' READ(LU1,*,END=90) TEXT,COOR(1),COOR(2),COOR(3) IF(TEXT.EQ.'$') THEN GO TO 90 END IF NEWLIN=.FALSE. I=LENGTH(TEXT)+1 TEXT(I:I)='''' WRITE(LU2,'(2A)') '''',TEXT(1:I) IF(COOR(1).EQ.GIANT) THEN C No reference point: WRITE(LU2,'(A)') '/' GO TO 20 ELSE C Check for the position of the reference point IF(BOUNDM(1).GT.COOR(1).OR.COOR(1).GT.BOUNDM(2).OR. * BOUNDM(3).GT.COOR(2).OR.COOR(2).GT.BOUNDM(4).OR. * BOUNDM(5).GT.COOR(3).OR.COOR(3).GT.BOUNDM(6)) THEN WRITE(LU2,'(A)') '/' END IF END IF ELSE COOR(1)=GIANT COOR(2)=0. COOR(3)=0. READ(LU1,*,END=90) COOR(1),COOR(2),COOR(3) IF(COOR(1).EQ.GIANT) THEN C End of line: NEWLIN=.TRUE. WRITE(LU2,'(A)') '/' GO TO 20 END IF END IF ELSE C Input format for mixed surfaces: ISRFC=0 READ(LU1,*,END=90) ISRFC,COOR(1),COOR(2),COOR(3) IF(ISRFC.EQ.0) THEN GO TO 90 END IF END IF IF(BOUNDM(1).LE.COOR(1).AND.COOR(1).LE.BOUNDM(2)) THEN IF(BOUNDM(3).LE.COOR(2).AND.COOR(2).LE.BOUNDM(4)) THEN IF(BOUNDM(5).LE.COOR(3).AND.COOR(3).LE.BOUNDM(6)) THEN NPTS=NPTS+1 CALL SRFC2(ISRFC,COOR,F) FMAX=AMAX1(ABS(F(1)),FMAX) FRMS=FRMS+F(1)*F(1) FABS=FABS+ ABS(F(1)) FAVE=FAVE+ F(1) IF(KSRFC.GT.0) THEN C Output format 'Points': I=LENGTH(TEXT)+1 TEXT(I:I)='''' I=MAX0(I,9) IF(1.LE.KOLUMN.AND.KOLUMN.LE.3) THEN COOR(KOLUMN)=F(1) WRITE(LU2,'(2A,3F12.6,A)') * '''',TEXT(1:I),COOR(1),COOR(2),COOR(3), ' /' ELSE WRITE(LU2,'(2A,4F12.6,A)') * '''',TEXT(1:I),COOR(1),COOR(2),COOR(3),F(1),' /' END IF ELSE IF(KSRFC.LT.0) THEN C Output format 'lines': IF(1.LE.KOLUMN.AND.KOLUMN.LE.3) THEN COOR(KOLUMN)=F(1) WRITE(LU2,'( 3F12.6,A)') * COOR(1),COOR(2),COOR(3), ' /' ELSE WRITE(LU2,'( 4F12.6,A)') * COOR(1),COOR(2),COOR(3),F(1),' /' END IF ELSE C Output format for mixed surfaces: IF(1.LE.KOLUMN.AND.KOLUMN.LE.3) THEN COOR(KOLUMN)=F(1) WRITE(LU2,'(I3,3F12.6)') * ISRFC,COOR(1),COOR(2),COOR(3) ELSE IF(KOLUMN.EQ.0) THEN WRITE(LU2,'(I3,2F12.6)') ISRFC,F(1) ELSE WRITE(LU2,'(I3,4F12.6)') * ISRFC,COOR(1),COOR(2),COOR(3),F(1) END IF END IF C WRITE(*,'(A,I5,I3,2F12.6)') '+',NPTS,ISRFC,F(1),FMAX END IF END IF END IF GO TO 10 C 90 CONTINUE IF(NPTS.GT.0) THEN FRMS=SQRT(FRMS/FLOAT(NPTS)) FABS= FABS/FLOAT(NPTS) FAVE= FAVE/FLOAT(NPTS) END IF WRITE(LU2,'(A,I4,9(A,F10.6))') '/',NPTS,' POINTS, MAX=',FMAX, * ', RMS=',FRMS,', ABS=',FABS,', AVERAGE=',FAVE WRITE( * ,'(A,I4,9(A,F10.6))') '+',NPTS,' POINTS, MAX=',FMAX, * ', RMS=',FRMS,', ABS=',FABS,', AVERAGE=',FAVE STOP END C C======================================================================= C INCLUDE 'error.for' C error.for INCLUDE 'model.for' C model.for INCLUDE 'metric.for' C metric.for INCLUDE 'srfc.for' C srfc.for INCLUDE 'parm.for' C parm.for INCLUDE 'val.for' C val.for INCLUDE 'fit.for' C fit.for INCLUDE 'length.for' C length.for C C======================================================================= Cinv1soft.for 100666 1750 1750 26264 6600630424 12450 0 ustar klimes klimes C
C Program INV1SOFT to evaluate the coefficients of the soft subjective C a priori information on the perturbations of the model parameters. C The subjective a priori information is composed of the squares of the C Sobolev norms of the functions describing the model. C C Version: 5.20 C Date: 1997, September 30 C C Coded by: Ludek Klimes C Department of Geophysics, Charles University Prague, C Ke Karlovu 3, 121 16 Praha 2, Czech Republic, C E-mail: klimes@seis.karlov.mff.cuni.cz C C....................................................................... C C Program INV1SOFT assumes all model parameters (coefficients) stored in C the common block /VALC/ as in the submitted versions of user-defined C model specification FORTRAN77 source code files 'srfc.for', 'parm.for', C and 'val.for'. Thus, unlike the other parts of the complete ray C tracing, the INV1SOFT program cannot work with user's modifications of C the subroutines SRFC1, SRFC2, PARM1, and PARM2. C C....................................................................... C C C Description of data files: C C All data are read in by the list directed input (free format). C In the lists of input data below, each numbered paragraph C indicates the beginning of a new input operation (new READ C statement). C The CHARACTER strings are denoted by symbolic names enclosed in C apostrophes. Otherwise, if the first letter of the symbolic name C of the input variable is I-N, the corresponding value in input C data must be of the type INTEGER. Otherwise, the input parameter C is of the type REAL. C The first 80 characters of the strings are significant. C C Main input data file read from the interactive device (*): C (1) 'MODEL','INV1SOFT','SOFT',/ C 'MODEL'... String containing the name of the input data file C specifying the model. For description of the data file C refer to file 'model.for' of package MODEL. C Description of file MODEL C 'INV1SOFT'... String containing the name of the input data file C containing the coefficients describing the Sobolev scalar C product under consideration. C Description of file INV1SOFT C 'SOFT'..String containing the name of the output file containing C the subjective prior information. C The structure of the file is described below. C Description of file SOFT C /... An obligatory slash at the end of line to enable for C future extensions. C Default: 'MODEL'='model.dat', 'INV1SOFT'='soft.dat', C 'SOFT'='soft.out'. C C C Input data INV1SOFT: C This data file contains the coefficients describing the Sobolev C scalar product under consideration. C (1) (NW1(I),NW2(I),NW3(I),I=1,NW),/ C List of partial derivatives included in the Sobolev scalar product C which is assumed to represent subjective prior information about C the model, terminated by a slash. C NW1,NW2,NW3... Orders of partial derivatives with respect to C X1,X2,X3 coordinates. For (bi-,tri-)cubic splines, the C third homogeneous partial derivatives are discontinuous. C NWi thus should not exceed 3, allowing for 64 different C partial derivatives at the most. C (2) ((WCS(I,J),I=1,J),J=1,NW) C Elements of the constant symmetric weighting matrix of the Sobolev C scalar product. C WCS(I,J)... Coefficient of the product of C (NW1(I),NW2(I),NW3(I))-th and (NW1(J),NW2(J),NW3(J))-th C partial derivatives of functions in the Sobolev scalar C product. The product of the derivatives is integrated C over the volume (surface, length) of the spline grid and C divided by the volume (surface, length) of the grid to C yield the average value of the product of the derivatives, C The average value is multiplied by WCS(I,J) to form the C contribution to the Sobolev scalar product. C Example of data INV1SOFT C C C Output file SOFT: C (1) NM C NM... Number of model parameters considered by this program. C (2) (INDM(I),I=1,NM) C INDM... Indices of the model parameters considered by this C program. The indices correspond to the relative location C in the memory, in array RPAR of common block /VALC/. C B-spline coefficients are listed in the same order as the C grid velocities in file MODEL. C Common block /VALC/ C (3) (RS(I),I=1,NM) C RS... Parameters (coefficients) of the initial (input) model. C (4) ((CS(I,J),I=1,J),J=1,NM): C CS... Relative inverse subjective prior information covariance C matrix. Note that subjective data are assumed to be minus C the above initial model parameters, and the matrix GS C projecting the perturbations of model parameters onto the C subjective data is assumed to be identity. C Matrix CS is the symmetric matrix of the Sobolev scalar C products of the basis functions corresponding to the model C parameters. C C----------------------------------------------------------------------- C C Common block /VALC/: INCLUDE 'val.inc' C val.inc C None of the storage locations of the common block are altered. C C Common block /RAMC/: INCLUDE 'ram.inc' C ram.inc INTEGER IRAM(MRAM) EQUIVALENCE (RAM,IRAM) C C----------------------------------------------------------------------- C C Filenames: CHARACTER*80 FMODEL,FINV1,FSOFT C C Logical unit number: INTEGER LU1 PARAMETER (LU1=1) C INTEGER NW,NM C NW... Number of specified partial derivatives. C NM... Number of the unknown model parameters. C C Addresses in array RAM: INTEGER IWCS0,INDM0,ICS0,IB0 C IRAM(1:3),IRAM(4:6),...,IRAM(3*NW-2:3*NW)... Orders of partial C derivatives. C IWCS0=3*NW... Origin of array WCS(I,J) of the weights describing C the Sobolev scalar product. C INDM0=IWCS0+NW*(NW+1)/2... Origin of array INDM of the indices of C model parameters. C ICS0=INDM0+NM... Origin of symmetric matrix CS of the Sobolev C scalar products of the basis functions corresponding to C the model parameters. C IB0=ICS0+NM*(NM+1)/2 C INTEGER MW,I,J REAL WEIGHT C C....................................................................... C C Opening data files and reading the input data: C C Main input data file read from the interactive device (*): WRITE(*,'(A)') ' Enter the names of files MODEL, INV1SOFT, SOFT: ' FMODEL='model.dat' FINV1='soft.dat' FSOFT='soft.out' READ(*,*) FMODEL,FINV1,FSOFT WRITE(*,'(A)') '+ ' C C Input data MODEL for the model: OPEN(LU1,FILE=FMODEL,STATUS='OLD') CALL MODEL1(LU1) CLOSE(LU1) C C Number of unknown model parameters: CALL SOFT(2,0,0,0,0,0,0,0.,NM,IRAM,RAM,1,RAM) C (We have just hoped here that array RAM is sufficiently large.) C WRITE(*,'(A,I4,A)') '+',NM,' model parameters' C C Input data INV1SOFT: OPEN(LU1,FILE=FINV1,STATUS='OLD') C Reading prior subjective information coefficients: C Maximum number MW of different partial derivatives MW=MIN0(64,(MRAM-1)/3) DO 21 I=1,3*MW+1 IRAM(I)=-1 21 CONTINUE READ(LU1,*) (IRAM(I),I=1,3*MW+1) DO 22 I=1,MW+1 IF(IRAM(I).LT.0) THEN NW=(I-1)/3 IF(3*NW.NE.I-1) THEN C INV1SOFT-01 CALL ERROR('INV1SOFT-01: Wrong partial derivatives') C The input partial derivatives do not form triplets, C or some of the derivatives is of a negative order. END IF GO TO 23 END IF 22 CONTINUE C INV1SOFT-02 CALL ERROR('INV1SOFT-02: Too many partial derivatives') C The number of input triplets of partial derivatives is greater C than the maximum number MW defined few lines above. 23 CONTINUE IWCS0=3*NW INDM0=IWCS0+NW*(NW+1)/2 ICS0=INDM0+NM IB0=ICS0+NM*(NM+1)/2 IF(IB0.GE.MRAM) THEN C INV1SOFT-03 CALL ERROR('INV1SOFT-03: Too small array RAM') C Dimension MRAM of array RAM in include file C ram.inc C should be increased to accommodate the input coefficients of the C Sobolev scalar product and the output symmetric matrix CS of the C Sobolev scalar products of the basis functions corresponding to C the model parameters. END IF READ(LU1,*) (RAM(I),I=IWCS0+1,INDM0) CLOSE(LU1) C C....................................................................... C C Opening output file: OPEN(LU1,FILE=FSOFT) I=MAX0(INDEX(FSOFT,' ')-1,11) WRITE(*,'('' Generating the output: '',A)') FSOFT(1:I) C C Generating prior subjective information covariance matrix: DO 41 I=ICS0+1,IB0 RAM(I)=0. 41 CONTINUE DO 49 J=1,NW DO 48 I=1,J WEIGHT=RAM(IWCS0+J*(J-1)/2+I) IF(WEIGHT.NE.0.) THEN CALL SOFT(2,IRAM(3*I-2),IRAM(3*I-1),IRAM(3*I), * IRAM(3*J-2),IRAM(3*J-1),IRAM(3*J),WEIGHT, * NM,IRAM(INDM0+1),RAM(ICS0+1),MRAM-IB0,RAM(IB0+1)) END IF 48 CONTINUE 49 CONTINUE C C (1,2,3) Writing the initial model parameters INDM: WRITE(LU1,'(I8)') NM WRITE(LU1,'(I8,5I13)') (IRAM(I),I=INDM0+1,INDM0+NM) WRITE(LU1,'(6(G12.6,1X))') (RPAR(IRAM(I)),I=INDM0+1,INDM0+NM) WRITE(LU1,'(6(G12.6,1X))') C C (4) Writing the prior subjective information covariance matrix CS: DO 90 J=1,NM WRITE(LU1,'(6(G12.6,1X))') * (RAM(I),I=ICS0+J*(J-1)/2+1,ICS0+J*(J+1)/2) 90 CONTINUE CLOSE(LU1) C STOP END C C======================================================================= C INCLUDE 'error.for' C error.for INCLUDE 'model.for' C model.for INCLUDE 'metric.for' C metric.for INCLUDE 'srfc.for' C srfc.for INCLUDE 'parm.for' C parm.for INCLUDE 'val.for' C val.for INCLUDE 'fit.for' C fit.for INCLUDE 'spsp.for' C spsp.for INCLUDE 'soft.for' C soft.for C C======================================================================= Cinv3.dat 100666 1750 1750 1055 6167362356 11525 0 ustar klimes klimes 'COMPLEX BLOCK' 1 'VP ' 1 (P wave velocity) 1 2 3 (0) (i.e. 3-D grid VP=VP(X1,X2,X3), tension ignored) 4 3 3 (numbers of grid points) 0 20 40 60 (X1 grid coordinates) -20 0 20 (X2 grid coordinates) 0 -10 -20 (X3 grid coordinates) 4. 4. 4. 4. 4. 4. 4. 4. 4. 4. 4. 4. 5. 5. 5. 5. 5. 5. 5. 5. 5. 5. 5. 5. 6. 6. 6. 6. 6. 6. 6. 6. 6. 6. 6. 6. ======================================================================== inv3.for 100666 1750 1750 30066 6613007626 11557 0 ustar klimes klimes C
C Program INV3 to update the input data for a function describing the C model. C C Version: 5.20 C Date: 1998, October 20 C C Coded by Ludek Klimes C C ...................................................................... C C Just a preliminary demo version, generating a table of values of a C given function describing the model. The given function may be a C function describing a sooth surface covering a structural interface, C or a function describing the spatial distribution of a material C parameter. The function is evaluated at gridpoints of a given C rectangular grid of points. The model parameters (coefficients of C functions) may be updated by increments resulting from an inversion of C the system of equations generated by the INV1 program. Consequently, C the tables generated by the INV3 program may be used to update the C input data for the model by means of manual editing. The inversion C program (reading results 'DATA' and 'SOFT' of program INV1, and C generating input 'ANSWER' of program INV3) should be contributed by a C user. C C Program INV3 assumes all model parameters (coefficients) stored in the C common block /VALC/ as in the submitted versions of user-defined model C specification FORTRAN77 source code files 'srfc.for', 'parm.for', and C 'val.for'. Thus, unlike the other parts of the complete ray tracing, C the INV3 program cannot work with user's modifications of the C subroutines SRFC1, SRFC2, PARM1, and PARM2. C C....................................................................... C C C Description of the data files: C C Main input data read from the interactive device (*): C (1) 'MODEL','ANSWER','INV3IN','INV3OUT',/ C 'MODEL','ANSWER','GRID'... Names of the input and output C files described below. C 'MODEL'... Input data file containing the model parameters. C 'ANSWER'... Updates to the model. If blank, model is not updated. C 'INV3IN'... Input file specifying the grid in which a selected C function is discretized. C 'INV3OUT'... Copy of the specification of the grid in which the C selected function is discretized from INV3IN, C supplemented with the function values at gridpoints. C /... Obligatory slash to enable future compatible extensions. C Default: 'MODEL'='model.dat', 'ANSWER'=' ', 'INV3IN'='inv3.dat', C 'INV3OUT'='inv3.out'. C C Input file MODEL: C Input data file containing the model parameters. See file 'model.for' C of package MODEL. C Description of file MODEL C C Input file ANSWER: C (1) NM C NM... Number of model parameters. C NM=0: initial model is discretized into the given grid. C Default: NM=0. C (2) NM-times the following data: C INDM,RM C INDM... Index of a model parameter. C RM... Increment of the model parameter. C (3) (CM(I,J),I=1,J),J=1,NM) C CM... Model parameter covariance matrix including the subjective C prior information. C C Input file INV3IN: C (1) TEXTG,IGROUP C Identification of the group. C TEXTG...A string. If its first character is 'I' or 'S', the C computed function describes a surface. Otherwise, it C describes a material parameter. C IGROUP..Index of a surface, or of a complex block. C (2) TEXTF C This input is not performed for a surface, i.e. if the first C character of TEXTG (see above) is 'I' or 'S'. C TEXTF...String identifying a material parameter. C (3) K1,K2,K3 C K1,K2,K3... Indices of coordinates. C (4) N1,N2,N3 C N1,N2,N3... Numbers of grid lines. C (5) X1(1),...,X1(N1) C The grid coordinates corresponding to the first independent C variable. C (6) X2(1),...,X2(N2) C The grid coordinates corresponding to the second independent C variable. C (7) X3(1),...,X3(N3) C The grid coordinates corresponding to the third independent C variable. C C Output file INV3OUT: C (1)-(7): Copy of (1)-(7) from input file 'INV3IN'. C (8) (((W(I1,I2,I3),I1=1,N1),I2=1,N2),I3=1,N3) C The values of function W at grid points. Function value C W(I1,I2,I3) corresponds to point (X1(I1),X2(I2),X3(I3)). C (9) 'STANDARD DEVIATIONS ....................' (a string) C (10) (((E(I1,I2,I3),I1=1,N1),I2=1,N2),I3=1,N3) C Standard deviations of function values. C C----------------------------------------------------------------------- C C Common block /VALC/: INCLUDE 'val.inc' C val.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: EXTERNAL LENGTH INTEGER LENGTH C C----------------------------------------------------------------------- C C Common block /RAMC/: INCLUDE 'ram.inc' C ram.inc C C Allocation of working arrays: INTEGER MX,ME PARAMETER (MX=100,ME=8000,MCM=MRAM-NPAR-4*MX-ME) INTEGER INDM(NPAR) REAL X(MX,3),W(MX),E(ME) REAL CM(MCM) EQUIVALENCE (INDM ,RAM ) EQUIVALENCE (X ,RAM(NPAR +1)) EQUIVALENCE (W ,RAM(NPAR+3*MX +1)) EQUIVALENCE (E ,RAM(NPAR+4*MX +1)) EQUIVALENCE (CM ,RAM(NPAR+4*MX+ME+1)) C C----------------------------------------------------------------------- C C Filenames: CHARACTER*80 FILE1,FILE2,FILE3,FILE4 C C Logical unit numbers: INTEGER LU1,LU2,LU3 PARAMETER (LU1=11) PARAMETER (LU2=12) PARAMETER (LU3=13) C C A line of the copied file: CHARACTER*160 LINE C C Input data: INTEGER NM INTEGER IGROUP,K1,K2,K3,N1,N2,N3 C C Auxiliary storage locations: CHARACTER*3 TEXT INTEGER MFUN PARAMETER (MFUN=64) INTEGER I1,I2,I3,IVAL,IFUN(MFUN),NFUN,IE,II,JJ,IJJ REAL COOR(3),UP(10),US(10),AUX0,AUX1,AUX2 REAL FUN(MFUN),B0I,B1I,B2I,B3I C INTEGER MM C MM... Maximum number of model parameters. MM=INT(SQRT(FLOAT(2*MCM)+0.25)-0.5) C C....................................................................... C C Reading main input data: WRITE(*,'(A)') ' Enter names of input and output files: ' FILE1='model.dat' FILE2=' ' FILE3='inv3.dat' FILE4='inv3.out' READ(*,*) FILE1,FILE2,FILE3 WRITE(*,'(A)') '+ ' C C Reading input data for model: OPEN(LU1,FILE=FILE1,STATUS='OLD') CALL MODEL1(LU1) CLOSE(LU1) C C Updating the model: NM=0 IF(FILE2.NE.' ') THEN OPEN(LU2,FILE=FILE2,STATUS='OLD') READ(LU2,*) NM IF(NM.GT.MM) THEN C INV3-01 CALL ERROR('INV3-01: Too many model parameters') END IF DO 1 I1=1,NM READ(LU2,*) INDM(I1),AUX0 IF(INDM(I1).GT.0) THEN RPAR(INDM(I1))=RPAR(INDM(I1))+AUX0 END IF 1 CONTINUE IF(NM.GT.0) THEN READ(LU2,*) (CM(I1),I1=1,NM*(NM+1)/2) END IF CLOSE(LU2) END IF C C Copying input file 'INV3IN' to output file 'INV3OUT': OPEN(LU2,FILE=FILE3,STATUS='OLD') OPEN(LU3,FILE=FILE4) 9 CONTINUE READ(LU2,'(A)',END=10) LINE WRITE(LU3,'(A)') LINE(1:LENGTH(LINE)) GO TO 9 10 CONTINUE CLOSE(LU2) REWIND(LU3) C CLOSE(LU3) C C Reading function and grid specifications: C OPEN(LU3,FILE=FILE4,STATUS='OLD') READ(LU3,*) TEXT,IGROUP IF(TEXT(1:1).NE.'I'.AND.TEXT(1:1).NE.'S') THEN READ(LU3,*) TEXT END IF READ(LU3,*) K1,K2,K3 READ(LU3,*) N1,N2,N3 IF(MAX0(N1,N2,N3).GT.MX) THEN C INV3-02 CALL ERROR('INV3-02: Too many grid lines') END IF IF(N1*N2*N3.GT.ME) THEN C INV3-03 CALL ERROR('INV3-03: Too large grid') END IF READ(LU3,*) (X(I1,K1),I1=1,N1) READ(LU3,*) (X(I2,K2),I2=1,N2) READ(LU3,*) (X(I3,K3),I3=1,N3) C C Evaluating grid values of the given function: IE=0 DO 23 I3=1,N3 COOR(K3)=X(I3,K3) DO 22 I2=1,N2 COOR(K2)=X(I2,K2) DO 21 I1=1,N1 C C Evaluating the functional value: COOR(K1)=X(I1,K1) IF(TEXT(1:1).EQ.'I'.OR.TEXT(1:1).EQ.'S') THEN CALL SRFC2(IGROUP,COOR,UP) IVAL=1 W(I1)=UP(1) ELSE CALL PARM2(IGROUP,COOR,UP,US,AUX0,AUX1,AUX2) IF(TEXT.EQ.'VP ') THEN IVAL=1 W(I1)=UP(1) ELSE IF(TEXT.EQ.'VS ') THEN IVAL=2 W(I1)=US(1) ELSE IF(TEXT.EQ.'DEN') THEN IVAL=3 W(I1)=AUX0 ELSE IF(TEXT.EQ.'QP ') THEN IVAL=4 W(I1)=AUX1 ELSE IF(TEXT.EQ.'QS ') THEN IVAL=5 W(I1)=AUX2 ELSE C INV3-04 CALL ERROR * ('INV3-04: Name of medium parameter not recognized') END IF END IF C C Evaluating the standard deviation: IF(NM.GT.0) THEN II=0 11 CONTINUE II=II+1 CALL VAR6(IVAL,II,NFUN,IFUN(II),B0I,B1I,B2I,B3I) IF(II.LE.NFUN) THEN IF(NFUN.GT.MFUN) THEN C C INV3-05 CALL ERROR('INV3-05: Array index out of range') END IF FUN(II)=B0I END IF IF(II.LT.NFUN) GO TO 11 DO 14 JJ=1,NFUN DO 12 II=1,NM IF(INDM(II).EQ.IFUN(JJ)) THEN IFUN(JJ)=II GO TO 13 END IF 12 CONTINUE C INV3-06 CALL ERROR * ('INV3-06: Model parameter index not recognized') 13 CONTINUE 14 CONTINUE AUX0=0. DO 17 JJ=1,NFUN IJJ=IFUN(JJ)*(IFUN(JJ)-1)/2 AUX2=0. DO 16 II=1,JJ-1 AUX2=AUX2+ CM(IJJ+IFUN(II))*FUN(II) 16 CONTINUE AUX0=AUX0+FUN(JJ)*(CM(IJJ+IFUN(JJ))*FUN(JJ)+2.*AUX2) 17 CONTINUE IE=IE+1 E(IE)=SQRT(AUX0) END IF C 21 CONTINUE C WRITE(LU3,'(8F10.6)') (W(I1),I1=1,N1) CALL WARRAY(LU3,' ','FORMATTED',.FALSE.,0.,.FALSE.,0.,N1,W) 22 CONTINUE IF(N1.NE.1.AND.N2.NE.1) WRITE(LU3,*) 23 CONTINUE C IF(NM.GT.0) THEN WRITE(LU3,'(A)') '''STANDARD DEVIATIONS ....................''' IE=0 DO 33 I3=1,N3 DO 32 I2=1,N2 WRITE(LU3,'(8F10.6)') (E(I1),I1=IE+1,IE+N1) IE=IE+N1 32 CONTINUE IF(N1.NE.1.AND.N2.NE.1) WRITE(LU3,*) 33 CONTINUE END IF C STOP END C C======================================================================= C INCLUDE 'error.for' C error.for INCLUDE 'sep.for' C sep.for INCLUDE 'forms.for' C forms.for INCLUDE 'length.for' C length.for INCLUDE 'modelv.for' C modelv.for INCLUDE 'metric.for' C metric.for INCLUDE 'srfc.for' C srfc.for INCLUDE 'parmv.for' C parmv.for INCLUDE 'valv.for' C valv.for INCLUDE 'fitv.for' C fitv.for INCLUDE 'var.for' C var.for C C======================================================================= Cinv4.for 100666 1750 1750 11421 6600357576 11562 0 ustar klimes klimes C
C Program INV4 to subtract two sets of grid values of a function C describing the model: GRID1-GRID2=GRID3. C C Date: 1996, September 30 C Coded by Ludek Klimes C C ...................................................................... C C C Description of the data files: C C Main input data file read from the interactive device (*): C (1) 'GRID1','GRID2','GRID3',/ C 'GRID1','GRID2','GRID3'... Names of the input and output C files described below. C /... Obligatory slash to enable future compatible extensions. C Default: 'GRID1'='inv3.dat', 'GRID2'='inv3.out', C 'GRID3'='dif.out'. C C Input files 'GRID1','GRID2': C (1) TEXTG,IGROUP C Identification of the group. C TEXTG...A string. If its first character is 'I' or 'S', the C computed function describes a surface. Otherwise, it C describes a material parameter. C IGROUP..Index of a surface, or of a complex block. C (2) TEXTF C This input is not performed for a surface, i.e. if the first C character of textg (see above) is 'I' or 'S'. C TEXTF...String identifying a material parameter. C (3) K1,K2,K3 C K1,K2,K3... Indices of coordinates. C (4) N1,N2,N3 C N1,N2,N3... Numbers of grid lines. C (5) X1(1),...,X1(N1) C The grid coordinates corresponding to the first independent C variable. C (6) X2(1),...,X2(N2) C The grid coordinates corresponding to the second independent C variable. C (7) X3(1),...,X3(N3) C The grid coordinates corresponding to the third independent C variable. C (8) (((W(I1,I2,I3),I1=1,N1),I2=1,N2),I3=1,N3) C The values of function W at grid points. Function value C W(I1,I2,I3) corresponds to point (X1(I1),X2(I2),X3(I3)). C C Output file 'GRID3': C (1) 'DIFFERENCES ............................' (a string) C (2) (((D(I1,I2,I3),I1=1,N1),I2=1,N2),I3=1,N3) C Differences of function values. C C----------------------------------------------------------------------- C C Filenames: CHARACTER*80 FILE1,FILE2,FILE3 C C Logical unit numbers: INTEGER LU1,LU2,LU3 PARAMETER (LU1=11) PARAMETER (LU2=12) PARAMETER (LU3=13) C C Auxiliary storage locations: CHARACTER*3 TEXT INTEGER MX PARAMETER (MX=100) INTEGER ICB,K1,K2,K3,N1,N2,N3,I1,I2,I3 REAL X(MX,3),V1(MX),V2(MX) C C....................................................................... C C Opening data files and reading the input data: WRITE(*,'(A)') ' Enter names of input and output files: ' FILE1='inv3.dat' FILE2='inv3.out' FILE3='dif.out' READ(*,*) FILE1,FILE2,FILE3 OPEN(LU1,FILE=FILE1,STATUS='OLD') OPEN(LU2,FILE=FILE2,STATUS='OLD') OPEN(LU3,FILE=FILE3) WRITE(*,'(A)') '+ ' C READ(LU1,*) TEXT,ICB READ(LU2,*) TEXT,I2 IF(ICB.NE.I2) THEN C INV4-01 CALL ERROR('INV4-01: Different index of a function') END IF IF(TEXT(1:1).NE.'I'.AND.TEXT(1:1).NE.'S') THEN READ(LU1,*) TEXT READ(LU2,*) TEXT END IF READ(LU1,*) K1,K2,K3 READ(LU2,*) I1,I2,I3 IF(K1.NE.I1.OR.K2.NE.I2.OR.K3.NE.I3) THEN C INV4-02 CALL ERROR('INV4-02: Different indices of coordinates') END IF READ(LU1,*) N1,N2,N3 READ(LU2,*) I1,I2,I3 IF(N1.NE.I1.OR.N2.NE.I2.OR.N3.NE.I3) THEN C INV4-03 CALL ERROR('INV4-03: Different numbers of grid lines') END IF IF(MAX0(N1,N2,N3).GT.MX) THEN C INV4-04 CALL ERROR('INV4-04: Too many grid lines') END IF READ(LU1,*) (X(I1,K1),I1=1,N1) READ(LU2,*) (X(I1,K1),I1=1,N1) READ(LU1,*) (X(I2,K2),I2=1,N2) READ(LU2,*) (X(I2,K2),I2=1,N2) READ(LU1,*) (X(I3,K3),I3=1,N3) READ(LU2,*) (X(I3,K3),I3=1,N3) WRITE(LU3,'(A)') '''DIFFERENCES ............................''' DO 23 I3=1,N3 DO 22 I2=1,N2 READ(LU1,*) (V1(I1),I1=1,N1) READ(LU2,*) (V2(I1),I1=1,N1) DO 21 I1=1,N1 V1(I1)=V1(I1)-V2(I1) 21 CONTINUE WRITE(LU3,'(8F10.6)') (V1(I1),I1=1,N1) 22 CONTINUE IF(N1.NE.1.AND.N2.NE.1) WRITE(LU3,*) 23 CONTINUE C STOP END C C======================================================================= C INCLUDE 'error.for' C error.for C C======================================================================= Cl7/ 40777 1750 1750 0 6613213036 10362 5 ustar klimes klimes l7/l7-mod.dat 100666 1750 1750 123606 6223642710 12322 0 ustar klimes klimes 'MODEL L7 - 2 UPPER LAYERS' / 3.13000 11.10134 1.30100 10.70100 -.00100 3.00000 / (MODEL BOUNDARIES) 3 SURFACES 3 SIMPLE BLOCKS: -1 2 / -2 3 / -3 / 3 COMPLEX BLOCKS: 1 / 2 / 3 / 'EARTH SURFACE' 1 -3 0 0 0 / (I.E. W-X3=0, TENSION=0) 0 (VALUE OF ELEVATION W) 'SURFACE BTERT' 2 1 2 -3 0 / (I.E. W(X1,X2)-X3=0, TENSION=0) 50 50 (NUMBERS OF GRIDPOINTS) 2.96040 3.13000 3.29960 3.46921 3.63881 3.80841 3.97801 4.14762 4.31722 4.48682 4.65643 4.82603 4.99563 5.16523 5.33484 5.50444 5.67404 5.84365 6.01325 6.18285 6.35245 6.52206 6.69166 6.86126 7.03087 7.20047 7.37007 7.53967 7.70928 7.87888 8.04848 8.21809 8.38769 8.55729 8.72690 8.89650 9.06610 9.23571 9.40531 9.57491 9.74452 9.91412 10.08372 10.25333 10.42293 10.59253 10.76213 10.93174 11.10134 11.27094 1.10100 1.30100 1.50100 1.70100 1.90100 2.10100 2.30100 2.50100 2.70100 2.90100 3.10100 3.30100 3.50100 3.70100 3.90100 4.10100 4.30100 4.50100 4.70100 4.90100 5.10100 5.30100 5.50100 5.70100 5.90100 6.10100 6.30100 6.50100 6.70100 6.90100 7.10100 7.30100 7.50100 7.70100 7.90100 8.10100 8.30100 8.50100 8.70100 8.90100 9.10100 9.30100 9.50100 9.70100 9.90100 10.1010 10.3010 10.5010 10.7010 10.9010 1.27813 1.36453 1.39120 1.37347 1.39938 1.40954 1.39391 1.38983 1.36539 1.33655 1.43668 1.39789 1.38532 1.44252 1.42058 1.35852 1.34208 1.36084 1.34453 1.34406 1.36777 1.35020 1.32895 1.30080 1.30729 1.29968 1.28615 1.26650 1.28418 1.29968 1.28073 1.32400 1.31104 1.28344 1.30819 1.34768 1.33923 1.29728 1.29001 1.35720 1.35519 1.30558 1.33044 1.34959 1.33161 1.33723 1.31190 1.28706 1.29228 1.29100 1.28868 1.38674 1.39561 1.40320 1.40916 1.40929 1.40616 1.39616 1.40613 1.40631 1.41366 1.43467 1.42453 1.42991 1.41703 1.40350 1.39452 1.40713 1.38624 1.37659 1.38452 1.35482 1.34295 1.33426 1.33858 1.32518 1.32957 1.32692 1.32675 1.32587 1.32158 1.32927 1.33052 1.33406 1.32722 1.32952 1.32837 1.32863 1.32820 1.32931 1.32765 1.33176 1.33799 1.35121 1.34121 1.33944 1.33858 1.34649 1.35078 1.34999 1.38316 1.39784 1.40385 1.40917 1.41098 1.41403 1.41077 1.40776 1.40800 1.41505 1.40060 1.40776 1.42607 1.42990 1.42153 1.39538 1.39713 1.39965 1.39229 1.37888 1.38762 1.35299 1.33720 1.32950 1.33383 1.32148 1.32479 1.32185 1.32573 1.32980 1.32993 1.33041 1.33936 1.33915 1.33983 1.33336 1.33258 1.33904 1.33983 1.33612 1.33757 1.34039 1.34168 1.35044 1.34871 1.34071 1.33836 1.34158 1.34058 1.35758 1.44595 1.40267 1.41114 1.41213 1.42022 1.42021 1.41877 1.41231 1.41011 1.40963 1.40708 1.39124 1.40640 1.41329 1.40767 1.39115 1.36609 1.39068 1.38296 1.38024 1.36370 1.33130 1.29802 1.30378 1.31152 1.31365 1.31665 1.32051 1.31988 1.33080 1.32772 1.33489 1.34121 1.33920 1.33953 1.33972 1.33928 1.34039 1.34097 1.34035 1.33850 1.33980 1.33811 1.34816 1.34959 1.34934 1.34037 1.33997 1.33904 1.32829 1.37877 1.41037 1.41915 1.42204 1.42700 1.42824 1.42757 1.41667 1.41129 1.41061 1.40921 1.39576 1.38545 1.38654 1.37626 1.36771 1.34155 1.36581 1.37179 1.36153 1.33535 1.28949 1.26722 1.27855 1.28359 1.29662 1.30792 1.31520 1.31988 1.32884 1.32982 1.33087 1.33898 1.33933 1.33990 1.33963 1.34035 1.34887 1.34881 1.34857 1.34807 1.34755 1.34575 1.34897 1.34903 1.35028 1.33995 1.34104 1.33548 1.27334 1.33248 1.41134 1.41863 1.43037 1.42938 1.43379 1.43586 1.42623 1.41931 1.41153 1.41010 1.39964 1.38228 1.36725 1.34401 1.32805 1.30456 1.34513 1.35962 1.34551 1.29214 1.24172 1.24518 1.24010 1.25603 1.27689 1.29643 1.30730 1.31744 1.32343 1.32960 1.33002 1.34061 1.33902 1.34025 1.33814 1.34584 1.35068 1.34962 1.35046 1.34927 1.35083 1.35038 1.35019 1.34920 1.35026 1.34194 1.34052 1.34091 1.32453 1.38669 1.41833 1.42360 1.43115 1.43218 1.43826 1.44017 1.43456 1.42676 1.41505 1.41145 1.40352 1.38344 1.35553 1.31750 1.28925 1.26171 1.32996 1.34329 1.30650 1.22877 1.20511 1.20457 1.20291 1.23052 1.25715 1.28093 1.29675 1.31015 1.31658 1.32293 1.33115 1.33639 1.33858 1.33929 1.34356 1.35018 1.34827 1.34902 1.34850 1.34972 1.34890 1.34862 1.34968 1.34888 1.35071 1.34225 1.33807 1.33558 1.31142 1.40121 1.43542 1.44034 1.43772 1.43899 1.44019 1.43959 1.43686 1.42848 1.42220 1.41365 1.40724 1.37719 1.34277 1.29728 1.25273 1.24169 1.30810 1.32147 1.23246 1.16475 1.17044 1.15392 1.17833 1.20575 1.23512 1.26224 1.28167 1.29919 1.31057 1.31787 1.32909 1.32844 1.33863 1.34211 1.35097 1.34852 1.35356 1.35637 1.35412 1.35891 1.35381 1.34904 1.35019 1.34850 1.34981 1.34037 1.33947 1.32644 1.24134 1.37035 1.44789 1.45318 1.45701 1.44915 1.44037 1.44139 1.43959 1.43308 1.42523 1.41837 1.39722 1.36902 1.32340 1.27625 1.21196 1.23037 1.28026 1.27748 1.16040 1.11502 1.11903 1.11812 1.14860 1.18012 1.21180 1.24183 1.26658 1.28546 1.30432 1.31813 1.32716 1.33133 1.33848 1.34772 1.35016 1.35145 1.35993 1.35995 1.36069 1.35953 1.36037 1.34943 1.35034 1.34977 1.35236 1.34523 1.34686 1.34649 1.32775 1.41018 1.45809 1.46722 1.46779 1.45811 1.45479 1.44972 1.44293 1.43573 1.42359 1.41239 1.38744 1.34931 1.28935 1.23239 1.16276 1.17214 1.22394 1.17220 1.06237 1.05152 1.05390 1.06841 1.11589 1.15059 1.18614 1.21699 1.24686 1.26884 1.28908 1.30289 1.31152 1.32488 1.33526 1.34425 1.34957 1.36066 1.36015 1.35919 1.35947 1.35924 1.35644 1.34962 1.34892 1.34746 1.35081 1.34889 1.34373 1.34298 1.29424 1.39631 1.46831 1.47552 1.47036 1.46650 1.46451 1.46297 1.45534 1.44234 1.42499 1.40495 1.36765 1.32040 1.25590 1.18209 1.11688 1.12907 1.14339 1.06454 0.97738 0.99124 1.00243 1.02641 1.06899 1.11084 1.15143 1.18748 1.21850 1.24540 1.26741 1.28812 1.30704 1.32162 1.33365 1.34321 1.35067 1.35266 1.35887 1.35962 1.35913 1.35929 1.35349 1.34942 1.34883 1.34704 1.35141 1.34351 1.33759 1.33469 1.26685 1.39779 1.47646 1.48205 1.47949 1.47780 1.47140 1.46918 1.46608 1.44760 1.42620 1.39932 1.35291 1.28599 1.20496 1.11615 1.07260 1.06913 1.04820 0.99000 0.88941 0.88492 0.91374 0.97166 1.01894 1.06289 1.10921 1.14775 1.18239 1.21459 1.24164 1.27115 1.29936 1.31876 1.33337 1.34249 1.34976 1.34830 1.35898 1.35942 1.36024 1.35944 1.35636 1.34899 1.34954 1.34611 1.34568 1.34268 1.34181 1.33821 1.35866 1.44492 1.48550 1.49222 1.49259 1.49046 1.48354 1.47305 1.46853 1.45167 1.42551 1.38733 1.32240 1.22787 1.11870 1.03787 1.03871 1.00394 0.97147 0.97114 0.83609 0.77248 0.81714 0.89686 0.96443 1.01341 1.06272 1.10497 1.14559 1.17842 1.21602 1.25480 1.28301 1.30835 1.32675 1.33885 1.34813 1.35362 1.36019 1.35864 1.35954 1.35926 1.36068 1.35220 1.34955 1.34573 1.33833 1.34641 1.35003 1.34109 1.36913 1.45662 1.49790 1.50320 1.50020 1.49929 1.49507 1.48518 1.47116 1.45581 1.42436 1.36916 1.27160 1.16341 1.03632 0.99153 1.01774 0.98262 0.93782 0.98276 0.83035 0.73013 0.78109 0.83673 0.90758 0.96636 1.01892 1.06643 1.10938 1.14407 1.19377 1.23990 1.27095 1.29707 1.31837 1.33726 1.34875 1.35278 1.36026 1.35984 1.35987 1.35946 1.35911 1.35595 1.34865 1.34863 1.34150 1.34251 1.35062 1.33794 1.27334 1.48371 1.50796 1.50936 1.51039 1.50417 1.49980 1.49308 1.47831 1.45667 1.42121 1.35965 1.26116 1.15172 1.01618 0.99810 0.98889 0.96007 0.92398 0.93228 0.77013 0.70703 0.75807 0.81333 0.87096 0.91927 0.97930 1.02491 1.06713 1.12274 1.17132 1.21169 1.25576 1.29277 1.32280 1.33903 1.34934 1.35877 1.35931 1.35852 1.35974 1.35874 1.34911 1.34807 1.34899 1.35012 1.34798 1.34011 1.35016 1.34274 1.29365 1.46041 1.50824 1.51612 1.51555 1.51447 1.50753 1.50207 1.48940 1.46818 1.42490 1.37478 1.24922 1.12425 0.99708 1.01395 0.96026 0.92553 0.92966 0.81843 0.68006 0.68645 0.71217 0.77467 0.83275 0.89580 0.93865 0.99043 1.04616 1.10076 1.14659 1.19761 1.24965 1.28849 1.31974 1.33851 1.35269 1.35906 1.36019 1.36155 1.35965 1.35589 1.35181 1.35140 1.34985 1.34973 1.34819 1.34679 1.34767 1.34651 1.33644 1.43750 1.51591 1.52293 1.52353 1.52229 1.51743 1.51195 1.49691 1.47915 1.43686 1.39061 1.26312 1.11446 1.02200 0.99646 0.94349 0.91497 0.90840 0.69939 0.64818 0.65176 0.69663 0.75021 0.79069 0.83958 0.89380 0.96964 1.02983 1.08650 1.14178 1.19063 1.24148 1.28177 1.31493 1.33867 1.35327 1.36244 1.36785 1.36668 1.36535 1.36213 1.36112 1.35694 1.35601 1.35722 1.35604 1.35498 1.35330 1.35056 1.30642 1.47047 1.52519 1.53299 1.53242 1.53142 1.52632 1.51945 1.50242 1.48298 1.44627 1.39678 1.29904 1.14896 1.07378 0.97708 0.93784 0.91920 0.89692 0.66647 0.64490 0.62702 0.67850 0.71561 0.77113 0.82748 0.89645 0.97361 1.02265 1.07707 1.13503 1.18423 1.23564 1.27818 1.31242 1.33882 1.35339 1.36686 1.37119 1.37106 1.37096 1.36810 1.36721 1.36257 1.36082 1.36077 1.36044 1.35881 1.35942 1.35843 1.34582 1.50542 1.53300 1.54458 1.54104 1.54181 1.53504 1.52531 1.51021 1.48755 1.45203 1.40616 1.32579 1.20002 1.07972 0.97534 0.93184 0.91158 0.91036 0.75136 0.63515 0.61608 0.65886 0.71333 0.80561 0.88422 0.93135 0.98395 1.02813 1.07208 1.12377 1.18154 1.23472 1.27719 1.31020 1.33690 1.35479 1.36689 1.37003 1.37555 1.37486 1.37044 1.37021 1.36837 1.36248 1.35926 1.35805 1.35999 1.35913 1.36046 1.37427 1.51308 1.55085 1.55186 1.55209 1.54651 1.54268 1.53484 1.51884 1.49716 1.46368 1.41967 1.34574 1.23831 1.07398 0.96714 0.92735 0.89832 0.89386 0.85573 0.67523 0.62393 0.70980 0.79934 0.86320 0.90100 0.92879 0.97785 1.03209 1.08069 1.13618 1.18491 1.23284 1.27516 1.31011 1.33591 1.35485 1.36722 1.37591 1.38144 1.38083 1.37876 1.37410 1.36998 1.37031 1.36794 1.36661 1.36001 1.36243 1.35818 1.30393 1.50481 1.55590 1.56078 1.55900 1.55441 1.54942 1.54278 1.52868 1.50456 1.47575 1.42067 1.37884 1.27187 1.19571 0.98693 0.94042 0.87087 0.85935 0.83882 0.74919 0.71988 0.77039 0.80947 0.85579 0.89996 0.94460 0.99044 1.04506 1.09326 1.14408 1.19637 1.24184 1.28121 1.31291 1.33731 1.35591 1.36686 1.37733 1.37967 1.37856 1.37897 1.37969 1.37888 1.37639 1.37156 1.36832 1.36701 1.36873 1.36691 1.34043 1.49393 1.55940 1.56799 1.56367 1.55668 1.55105 1.54114 1.53261 1.50884 1.47982 1.42884 1.38969 1.32472 1.24285 1.01528 0.95686 0.85913 0.86415 0.81343 0.78726 0.76053 0.77751 0.81947 0.85509 0.90139 0.94646 1.00115 1.06235 1.11628 1.16307 1.20834 1.25022 1.28711 1.31341 1.33677 1.35414 1.36802 1.37890 1.37918 1.38038 1.38073 1.38081 1.37935 1.37962 1.37799 1.37498 1.37240 1.37058 1.36978 1.36448 1.48120 1.55798 1.57146 1.56821 1.56010 1.55131 1.53948 1.53141 1.51224 1.48307 1.44050 1.39132 1.35426 1.27282 1.08403 0.98123 0.86714 0.87392 0.84099 0.76975 0.76314 0.78519 0.84043 0.87708 0.92262 0.96610 1.02519 1.08370 1.13651 1.18248 1.22242 1.25874 1.28930 1.31582 1.33742 1.35439 1.36632 1.37776 1.38134 1.38701 1.38750 1.38404 1.38167 1.38011 1.38050 1.37978 1.37588 1.36772 1.36913 1.36015 1.46568 1.55593 1.56857 1.56913 1.56402 1.55642 1.54530 1.53058 1.51246 1.48695 1.44499 1.39859 1.35052 1.32278 1.15100 1.01953 0.91058 0.88243 0.86088 0.75891 0.78557 0.81739 0.86450 0.90387 0.95285 1.00324 1.06028 1.10905 1.15385 1.19785 1.23654 1.27020 1.29632 1.32062 1.34090 1.35774 1.36710 1.37706 1.38134 1.39092 1.39095 1.38891 1.38754 1.38437 1.37803 1.38036 1.37734 1.37017 1.36839 1.33037 1.52833 1.56631 1.56827 1.56725 1.56144 1.56013 1.55129 1.53503 1.51256 1.48784 1.44704 1.40466 1.35107 1.32844 1.17271 1.05812 0.97719 0.90620 0.84238 0.79270 0.81673 0.84388 0.89465 0.93362 0.97927 1.02781 1.08392 1.13105 1.17433 1.21316 1.24639 1.27912 1.30725 1.32623 1.34528 1.36067 1.37234 1.37952 1.38063 1.38868 1.38856 1.38913 1.38876 1.39057 1.37964 1.38035 1.37761 1.37716 1.36957 1.29868 1.56132 1.56591 1.57304 1.56984 1.56081 1.55655 1.55192 1.54140 1.52076 1.49013 1.45246 1.41104 1.36013 1.33693 1.20823 1.08905 1.01996 0.91877 0.84699 0.83236 0.84564 0.87607 0.91458 0.96036 1.00118 1.05085 1.10023 1.14349 1.18454 1.22183 1.25507 1.28169 1.30996 1.33445 1.35028 1.36321 1.37133 1.38008 1.38590 1.38446 1.38950 1.39006 1.39008 1.38995 1.38566 1.37780 1.38112 1.38029 1.37889 1.35640 1.38123 1.53907 1.54813 1.54424 1.56290 1.56827 1.55740 1.54840 1.52290 1.48982 1.44908 1.41227 1.36076 1.34781 1.23874 1.15469 1.06146 0.96518 0.87968 0.85627 0.86537 0.89268 0.93406 0.98179 1.01959 1.06484 1.11188 1.15491 1.19296 1.22751 1.25947 1.28631 1.31142 1.33509 1.35169 1.36484 1.37188 1.37821 1.38758 1.39039 1.38969 1.38955 1.38888 1.38912 1.38894 1.38132 1.37879 1.37820 1.37619 1.35989 1.44940 1.47928 1.50902 1.53235 1.56895 1.57595 1.56517 1.54871 1.52670 1.49650 1.45204 1.41948 1.36465 1.35653 1.28534 1.20286 1.13325 1.03747 0.92304 0.87756 0.88040 0.90624 0.95016 0.99558 1.03766 1.07748 1.11980 1.16264 1.20085 1.23547 1.26402 1.29136 1.31530 1.33805 1.35406 1.36738 1.37450 1.38377 1.38852 1.38951 1.38893 1.38976 1.39013 1.39001 1.39015 1.38843 1.38598 1.38514 1.38198 1.36138 1.35824 1.41475 1.48953 1.52336 1.56085 1.56706 1.56158 1.54414 1.52675 1.49881 1.45804 1.42249 1.37503 1.35314 1.32677 1.22589 1.17928 1.08076 0.94934 0.89284 0.89292 0.91826 0.96142 1.00586 1.05118 1.08851 1.12628 1.16718 1.20637 1.24144 1.26780 1.29332 1.31925 1.34310 1.35899 1.37133 1.38075 1.38962 1.39195 1.39223 1.38928 1.39051 1.38877 1.38932 1.38916 1.39033 1.39082 1.39041 1.38923 1.38607 1.16763 1.43244 1.49387 1.51991 1.55235 1.56107 1.55397 1.53989 1.52066 1.49302 1.45942 1.42036 1.38282 1.34448 1.34736 1.24904 1.18740 1.09510 0.97076 0.90387 0.90129 0.92574 0.96695 1.01142 1.05485 1.09299 1.12968 1.16874 1.20761 1.24208 1.26995 1.29353 1.31972 1.34386 1.36211 1.37432 1.38460 1.38909 1.39605 1.40043 1.39369 1.39357 1.39015 1.38950 1.38930 1.38845 1.38845 1.38920 1.38851 1.37247 1.43248 1.51609 1.50083 1.54471 1.56729 1.57057 1.55838 1.53934 1.51928 1.49474 1.46544 1.42829 1.38950 1.34313 1.35607 1.26847 1.20649 1.11674 1.00740 0.92623 0.90569 0.93135 0.96659 1.00844 1.05098 1.09082 1.12695 1.16502 1.20356 1.24022 1.27028 1.29399 1.31719 1.34075 1.35892 1.37447 1.38452 1.38989 1.39894 1.39940 1.40250 1.40042 1.39822 1.39548 1.39249 1.39237 1.39321 1.39601 1.39482 1.35692 1.49666 1.47902 1.49435 1.54967 1.57389 1.57894 1.56510 1.54681 1.52543 1.50469 1.47727 1.44144 1.40230 1.35444 1.34485 1.28373 1.20246 1.11393 1.02151 0.95086 0.90961 0.93130 0.96484 1.00483 1.04702 1.08514 1.12340 1.16005 1.19725 1.23492 1.26509 1.29152 1.31434 1.33698 1.35136 1.37734 1.39233 1.39693 1.39959 1.41052 1.40971 1.40874 1.40260 1.40143 1.39914 1.39853 1.40144 1.40706 1.40088 1.36969 1.50556 1.50901 1.50669 1.53773 1.56336 1.57288 1.56462 1.54912 1.52892 1.50502 1.48021 1.44545 1.40565 1.35709 1.34155 1.27768 1.18227 1.07478 1.01412 0.94025 0.91142 0.92242 0.95337 0.99095 1.03361 1.07257 1.11206 1.14911 1.18810 1.22584 1.25696 1.28563 1.31119 1.33398 1.35077 1.36926 1.39065 1.40034 1.40536 1.40946 1.40744 1.41018 1.40666 1.40598 1.40156 1.40285 1.40570 1.40969 1.40617 1.38860 1.64083 1.51128 1.50106 1.54595 1.57413 1.57878 1.56726 1.55212 1.53270 1.51123 1.48443 1.45194 1.41110 1.37094 1.34873 1.30928 1.18822 1.08001 1.00580 0.94381 0.90980 0.90940 0.93822 0.97269 1.01455 1.05494 1.09371 1.13272 1.17411 1.21371 1.24810 1.27846 1.30524 1.33050 1.35091 1.36588 1.38410 1.39643 1.40639 1.41151 1.41152 1.41253 1.41570 1.41501 1.40965 1.40887 1.41220 1.41430 1.41259 1.39473 1.46019 1.46793 1.50364 1.55161 1.58702 1.58608 1.57334 1.55746 1.54021 1.52135 1.49299 1.46210 1.42292 1.38936 1.35699 1.35136 1.24900 1.14391 1.04996 0.95816 0.91088 0.89765 0.92102 0.95293 0.99161 1.03090 1.06939 1.11001 1.15182 1.19559 1.23401 1.26795 1.29638 1.32399 1.34705 1.36691 1.37983 1.39189 1.40319 1.41845 1.41865 1.41903 1.42121 1.41931 1.41794 1.41619 1.41853 1.42043 1.41813 1.39847 1.20103 1.50366 1.55395 1.54794 1.57441 1.57873 1.57837 1.56293 1.54749 1.52457 1.49909 1.46838 1.43160 1.39384 1.36210 1.34789 1.31791 1.20842 1.13551 0.98867 0.91475 0.88418 0.89888 0.92651 0.96080 0.99848 1.03699 1.07801 1.11977 1.16797 1.20976 1.24866 1.28381 1.31283 1.33984 1.35975 1.37631 1.39090 1.40388 1.41841 1.41991 1.42530 1.42253 1.41888 1.41885 1.41972 1.42027 1.42281 1.42144 1.40993 1.41422 1.57443 1.59295 1.58600 1.57119 1.58193 1.58429 1.56852 1.55131 1.53169 1.50716 1.47682 1.43967 1.40071 1.36214 1.33882 1.33018 1.25966 1.17897 1.08939 0.92494 0.86540 0.87079 0.89171 0.92693 0.96208 0.99638 1.03544 1.07962 1.12952 1.17794 1.22092 1.26395 1.29804 1.32767 1.34978 1.37189 1.38992 1.40470 1.41628 1.42570 1.43070 1.43123 1.42801 1.42455 1.42295 1.42569 1.43070 1.42832 1.41368 1.56121 1.59059 1.59407 1.58528 1.57936 1.57541 1.57214 1.55950 1.54419 1.52810 1.50707 1.48216 1.44622 1.40758 1.36698 1.33285 1.32627 1.29461 1.19379 1.12911 0.96246 0.87640 0.82545 0.85257 0.86932 0.91126 0.95043 0.99248 1.03349 1.08535 1.14172 1.19817 1.24350 1.28089 1.31233 1.33968 1.36521 1.38655 1.40398 1.41718 1.42544 1.43042 1.42819 1.42881 1.42773 1.43058 1.43233 1.43512 1.43128 1.40192 1.60961 1.58752 1.59044 1.58181 1.58165 1.57418 1.56344 1.55361 1.54205 1.52828 1.51097 1.49041 1.45774 1.41957 1.37554 1.33779 1.31617 1.31692 1.22453 1.13614 1.04265 0.89300 0.80266 0.80178 0.83173 0.86263 0.89113 0.92927 0.96985 1.02381 1.08632 1.15286 1.20846 1.25480 1.29394 1.32624 1.35655 1.38174 1.40102 1.41553 1.42494 1.42998 1.42992 1.43259 1.43528 1.43724 1.43727 1.44062 1.43488 1.35538 1.60687 1.59150 1.59080 1.58166 1.57709 1.57263 1.56401 1.55236 1.54356 1.52993 1.51441 1.49518 1.46774 1.42816 1.38537 1.34143 1.31222 1.31685 1.25657 1.11835 1.07982 0.95836 0.83900 0.76129 0.75509 0.80128 0.83406 0.87246 0.90853 0.95836 1.02122 1.08943 1.16110 1.22525 1.27276 1.31270 1.34833 1.37729 1.39864 1.41421 1.42636 1.43167 1.43823 1.43830 1.43932 1.44037 1.44346 1.44680 1.44250 1.37328 1.53369 1.58592 1.58633 1.57877 1.57440 1.56750 1.56357 1.55132 1.54221 1.52794 1.51125 1.49316 1.47022 1.43348 1.39248 1.34512 1.31195 1.30410 1.26826 1.12759 1.04540 1.00518 0.90715 0.78258 0.70074 0.72999 0.76970 0.80832 0.84432 0.88849 0.94433 1.01573 1.09859 1.19022 1.24969 1.29764 1.33830 1.37104 1.39743 1.41436 1.42650 1.43186 1.44124 1.43961 1.44192 1.44498 1.44976 1.45096 1.44843 1.39969 1.52070 1.57889 1.58349 1.57816 1.57172 1.56663 1.55890 1.55182 1.53907 1.52495 1.50820 1.49042 1.47026 1.44173 1.39882 1.35781 1.30925 1.29501 1.26760 1.19034 1.04013 0.96158 0.93508 0.84669 0.75620 0.70428 0.70599 0.72526 0.76669 0.80788 0.85639 0.92890 1.01463 1.12877 1.22466 1.27720 1.32490 1.36197 1.39260 1.41019 1.42441 1.42912 1.43789 1.43932 1.44998 1.45060 1.44999 1.45205 1.44969 1.39364 1.52980 1.57579 1.57772 1.56916 1.56663 1.56195 1.55660 1.54692 1.53398 1.51941 1.50598 1.49055 1.47185 1.44648 1.40957 1.36588 1.32088 1.27841 1.24702 1.19542 1.12235 0.96904 0.89749 0.85198 0.75756 0.74883 0.70675 0.70644 0.71432 0.74678 0.79879 0.84991 0.93055 1.04002 1.19770 1.26223 1.31690 1.35074 1.38235 1.40429 1.42173 1.42943 1.43880 1.44095 1.44974 1.44882 1.44847 1.44786 1.44883 1.45261 1.53159 1.57039 1.57179 1.56964 1.56439 1.55933 1.55137 1.54484 1.53243 1.51985 1.50509 1.48853 1.46995 1.44763 1.41411 1.37153 1.32744 1.27389 1.22417 1.17356 1.10242 1.01831 0.89096 0.79526 0.72126 0.69667 0.66458 0.66156 0.66394 0.69087 0.72592 0.77024 0.85930 1.00180 1.16288 1.24117 1.30392 1.34536 1.38016 1.40407 1.42099 1.43054 1.43939 1.44014 1.45054 1.44837 1.45359 1.45404 1.44856 1.40375 1.55171 1.56818 1.56972 1.57026 1.56331 1.55824 1.54933 1.54131 1.53067 1.51915 1.50450 1.48870 1.46932 1.44670 1.41657 1.37664 1.33306 1.28072 1.21225 1.15899 1.08353 0.99599 0.89421 0.77076 0.69061 0.63318 0.62033 0.61142 0.62301 0.63846 0.66493 0.70564 0.81817 0.97903 1.14053 1.22424 1.29273 1.33980 1.37749 1.40243 1.41753 1.43003 1.44005 1.44685 1.44991 1.45180 1.45923 1.46019 1.44841 1.34897 1.53150 1.55937 1.56524 1.56193 1.55657 1.55230 1.54461 1.53664 1.52753 1.51520 1.50343 1.48903 1.47024 1.44760 1.42088 1.38201 1.33679 1.28104 1.19483 1.10441 1.04963 0.95683 0.85647 0.75166 0.66945 0.62621 0.60805 0.58955 0.59859 0.59699 0.62183 0.66446 0.77202 0.94649 1.12907 1.20594 1.27874 1.32494 1.36372 1.38829 1.40776 1.42500 1.43828 1.44963 1.44918 1.45093 1.45388 1.45448 1.44877 1.40571 1.49179 1.54364 1.55158 1.54891 1.54520 1.54209 1.53838 1.53270 1.52467 1.51271 1.50088 1.48737 1.47029 1.44961 1.42319 1.38649 1.33864 1.27863 1.18729 1.05417 0.97508 0.95001 0.82265 0.70453 0.63696 0.61932 0.59791 0.58543 0.58140 0.57599 0.59601 0.64948 0.73981 0.92783 1.12215 1.18577 1.25938 1.30780 1.34711 1.37128 1.39834 1.41890 1.43402 1.44231 1.45106 1.44801 1.44811 1.44787 1.44378 1.39639 1.50461 1.53593 1.54011 1.53924 1.53896 1.53927 1.53977 1.52964 1.52127 1.51262 1.49868 1.48717 1.47141 1.44912 1.42328 1.39191 1.34983 1.29041 1.22072 1.10658 0.99147 0.89553 0.81976 0.70244 0.61398 0.59536 0.58291 0.58025 0.57022 0.57612 0.60336 0.65035 0.77219 0.92071 1.12430 1.17630 1.24693 1.29516 1.33729 1.36306 1.39263 1.41409 1.43044 1.44163 1.44817 1.45030 1.44997 1.45033 1.43826 1.35717 1.44534 1.52702 1.53603 1.53601 1.53552 1.53514 1.52815 1.52692 1.51894 1.51162 1.49843 1.48558 1.46977 1.44768 1.42455 1.39469 1.35379 1.29490 1.21902 1.09401 0.98288 0.89091 0.76493 0.69223 0.60935 0.57623 0.58498 0.56986 0.57497 0.58379 0.59567 0.64406 0.76112 0.92708 1.10952 1.16357 1.22750 1.27624 1.31796 1.34721 1.37816 1.40173 1.42012 1.43007 1.43680 1.44040 1.43802 1.43913 1.43561 1.39928 1.32860 1.50404 1.51110 1.48434 1.49204 1.50871 1.54056 1.50365 1.50837 1.50345 1.48003 1.48937 1.48451 1.44405 1.40823 1.38171 1.32946 1.28159 1.22340 1.15071 0.96251 0.80702 0.91986 0.72992 0.46613 0.47498 0.59161 0.57568 0.52199 0.58541 0.61414 0.67498 0.81167 1.03137 1.12229 1.17135 1.21890 1.27110 1.31330 1.34119 1.36814 1.38828 1.40994 1.42637 1.42434 1.43922 1.45363 1.45734 1.41773 1.32183 'SURFACE' 3 1 2 -3 0 / (I.E. W(X1,X2)-X3=0, TENSION=0) 50 50 (NUMBERS OF GRIDPOINTS) 2.96040 3.13000 3.29960 3.46921 3.63881 3.80841 3.97801 4.14762 4.31722 4.48682 4.65643 4.82603 4.99563 5.16523 5.33484 5.50444 5.67404 5.84365 6.01325 6.18285 6.35245 6.52206 6.69166 6.86126 7.03087 7.20047 7.37007 7.53967 7.70928 7.87888 8.04848 8.21809 8.38769 8.55729 8.72690 8.89650 9.06610 9.23571 9.40531 9.57491 9.74452 9.91412 10.08372 10.25333 10.42293 10.59253 10.76213 10.93174 11.10134 11.27094 1.10100 1.30100 1.50100 1.70100 1.90100 2.10100 2.30100 2.50100 2.70100 2.90100 3.10100 3.30100 3.50100 3.70100 3.90100 4.10100 4.30100 4.50100 4.70100 4.90100 5.10100 5.30100 5.50100 5.70100 5.90100 6.10100 6.30100 6.50100 6.70100 6.90100 7.10100 7.30100 7.50100 7.70100 7.90100 8.10100 8.30100 8.50100 8.70100 8.90100 9.10100 9.30100 9.50100 9.70100 9.90100 10.1010 10.3010 10.5010 10.7010 10.9010 2.24864 2.27367 2.29496 2.31364 2.34118 2.36801 2.38526 2.36723 2.30205 2.13468 2.01124 1.98890 2.01737 2.05856 2.08856 2.09630 2.07686 2.02523 1.95848 1.89071 1.86231 1.89371 1.96817 2.07307 2.16002 2.21398 2.25619 2.29029 2.32128 2.34934 2.36833 2.38038 2.38957 2.39981 2.40717 2.40142 2.40042 2.39864 2.40026 2.39585 2.38286 2.35715 2.30915 2.22477 2.13540 2.05837 1.99962 1.97063 1.97326 1.98821 2.25805 2.28159 2.30213 2.32105 2.34267 2.36390 2.38172 2.37990 2.30717 2.14552 2.03800 2.00825 2.01829 2.04629 2.06734 2.07027 2.04912 1.99872 1.93200 1.86812 1.83672 1.86904 1.95049 2.05419 2.14290 2.20285 2.24562 2.28013 2.30940 2.33393 2.35206 2.36519 2.37571 2.38710 2.39594 2.39851 2.39687 2.39195 2.38794 2.38396 2.37344 2.34567 2.29700 2.22780 2.14431 2.07136 2.02228 1.99332 1.99242 2.03008 2.25941 2.28354 2.30475 2.32495 2.34425 2.36226 2.38107 2.38809 2.33699 2.19860 2.07895 2.03126 2.02500 2.03325 2.03644 2.02522 1.99282 1.93645 1.87010 1.81340 1.79237 1.83192 1.92383 2.03118 2.11911 2.17952 2.22291 2.25872 2.28991 2.31537 2.33424 2.34760 2.35760 2.36584 2.37278 2.37613 2.37497 2.37045 2.36614 2.36119 2.34694 2.31884 2.27427 2.21398 2.14517 2.08451 2.04322 2.01746 2.01052 2.03565 2.25372 2.27773 2.29920 2.31969 2.33981 2.36013 2.38123 2.39413 2.36864 2.25245 2.11166 2.04780 2.03080 2.02053 2.00048 1.96776 1.91855 1.85150 1.78183 1.73146 1.72297 1.77818 1.88867 2.00555 2.09543 2.15634 2.20083 2.23735 2.26781 2.29387 2.31464 2.32962 2.34019 2.34768 2.35359 2.35681 2.35690 2.35455 2.34969 2.34116 2.32287 2.29256 2.25246 2.20205 2.14635 2.09734 2.06334 2.04059 2.02886 2.04159 2.24831 2.26934 2.29058 2.31094 2.33240 2.35449 2.37582 2.39244 2.37616 2.26487 2.11753 2.05348 2.03634 2.01437 1.97465 1.91656 1.84108 1.74961 1.66456 1.62362 1.64923 1.73845 1.86165 1.97715 2.06588 2.12970 2.17792 2.21751 2.24938 2.27720 2.29967 2.31513 2.32651 2.33567 2.34333 2.34698 2.34674 2.34292 2.33622 2.32482 2.30442 2.27449 2.23856 2.19606 2.14921 2.10684 2.07705 2.05689 2.04430 2.05126 2.23889 2.26164 2.28326 2.30245 2.32375 2.34664 2.36926 2.39023 2.37967 2.27538 2.12802 2.06410 2.04361 2.01229 1.95634 1.87831 1.77733 1.65681 1.56307 1.54332 1.61329 1.73247 1.85416 1.95801 2.03981 2.10284 2.15357 2.19660 2.23291 2.26281 2.28592 2.30268 2.31478 2.32464 2.33333 2.33786 2.33731 2.33248 2.32320 2.30880 2.28761 2.25863 2.22455 2.18552 2.14462 2.10695 2.07972 2.06269 2.05457 2.05971 2.22920 2.25437 2.27685 2.29574 2.31524 2.33616 2.35949 2.38696 2.38810 2.29774 2.15256 2.07813 2.04922 2.00100 1.92821 1.83357 1.70958 1.57371 1.49936 1.50923 1.61206 1.74134 1.85091 1.94099 2.01627 2.07795 2.12869 2.17263 2.21191 2.24487 2.26972 2.28798 2.30064 2.31062 2.31970 2.32583 2.32727 2.32286 2.31180 2.29574 2.27351 2.24292 2.20679 2.16788 2.12945 2.09648 2.07237 2.06008 2.05822 2.06838 2.22459 2.24871 2.27157 2.29094 2.30863 2.32765 2.35044 2.38116 2.40058 2.33905 2.19444 2.10691 2.06264 1.99425 1.90594 1.80094 1.66620 1.53044 1.46921 1.49582 1.61335 1.73995 1.83956 1.92041 1.98996 2.05044 2.10314 2.14831 2.18810 2.22298 2.25099 2.27192 2.28665 2.29713 2.30589 2.31234 2.31388 2.31031 2.30091 2.28574 2.26285 2.23171 2.19532 2.15702 2.11998 2.08846 2.06658 2.05662 2.05795 2.07361 2.22475 2.24444 2.26646 2.28691 2.30475 2.32292 2.34458 2.37463 2.40450 2.37730 2.25827 2.15518 2.07615 1.98029 1.88057 1.77214 1.63311 1.49006 1.42565 1.47104 1.59300 1.71524 1.81387 1.89416 1.96037 2.01996 2.07634 2.12488 2.16659 2.20433 2.23676 2.26088 2.27653 2.28729 2.29603 2.30154 2.30255 2.30010 2.29279 2.27726 2.25421 2.22562 2.19242 2.15884 2.12418 2.09102 2.06882 2.05857 2.06097 2.08093 2.22668 2.24327 2.26279 2.28243 2.29984 2.31661 2.33739 2.36758 2.40260 2.40744 2.33443 2.21375 2.08816 1.96137 1.84684 1.72642 1.56577 1.40167 1.34842 1.42020 1.53845 1.65523 1.75924 1.85017 1.92320 1.98779 2.04890 2.10405 2.15225 2.19255 2.22653 2.25281 2.27006 2.28071 2.28915 2.29550 2.29803 2.29685 2.29053 2.27351 2.25078 2.22596 2.19487 2.16233 2.12754 2.09324 2.07018 2.06188 2.06878 2.09211 2.22770 2.24428 2.26142 2.27905 2.29527 2.31170 2.33323 2.36130 2.38907 2.39995 2.35447 2.24499 2.11659 1.98523 1.84356 1.68578 1.49160 1.31106 1.26772 1.36166 1.47249 1.57598 1.68403 1.79431 1.88223 1.95094 2.01249 2.07188 2.12883 2.17362 2.20848 2.23553 2.25474 2.26859 2.27936 2.28728 2.29113 2.28777 2.27974 2.26433 2.24337 2.21859 2.18779 2.15500 2.12099 2.09127 2.07203 2.06782 2.08127 2.10737 2.22821 2.24353 2.25954 2.27691 2.29291 2.30892 2.33007 2.35247 2.36921 2.37263 2.32417 2.17541 2.04966 1.96002 1.83224 1.64902 1.42606 1.23250 1.19970 1.31931 1.42673 1.51400 1.60847 1.72488 1.82745 1.89833 1.95568 2.01837 2.08468 2.14248 2.18517 2.21522 2.23655 2.25325 2.26659 2.27526 2.27866 2.27423 2.26577 2.25253 2.23276 2.20675 2.17862 2.14813 2.11757 2.09318 2.07798 2.07892 2.09721 2.12569 2.22742 2.24406 2.25973 2.27614 2.29163 2.30659 2.32385 2.34118 2.34849 2.33859 2.23148 2.02653 1.89508 1.83132 1.74254 1.58933 1.37666 1.18391 1.16952 1.30290 1.40252 1.47793 1.55160 1.64525 1.73957 1.81177 1.87469 1.94826 2.03056 2.10357 2.15825 2.19465 2.21897 2.23602 2.24863 2.25638 2.25951 2.25836 2.25278 2.24251 2.22465 2.20080 2.17613 2.14853 2.12139 2.10022 2.08751 2.09040 2.11031 2.13536 2.22809 2.24602 2.26184 2.27688 2.29089 2.30415 2.31608 2.32818 2.32878 2.29924 2.16137 1.97947 1.84735 1.75878 1.66634 1.53022 1.34023 1.15287 1.13188 1.25570 1.35305 1.42472 1.48621 1.55673 1.62822 1.69404 1.75925 1.83716 1.93540 2.03429 2.11262 2.16621 2.19961 2.21971 2.23257 2.24081 2.24502 2.24577 2.24116 2.23240 2.21874 2.19904 2.17693 2.15391 2.13270 2.11594 2.10511 2.10684 2.12494 2.14984 2.22718 2.24438 2.26028 2.27546 2.28975 2.30273 2.31226 2.31951 2.31574 2.26728 2.11520 1.96021 1.84371 1.74130 1.63167 1.49317 1.31230 1.12210 1.06345 1.15401 1.25509 1.32970 1.39014 1.44827 1.50113 1.55267 1.60643 1.67945 1.79126 1.92892 2.06196 2.16157 2.21560 2.23881 2.24783 2.25330 2.25529 2.25223 2.24379 2.23161 2.21884 2.20504 2.18895 2.17115 2.15388 2.13945 2.12896 2.12814 2.14302 2.16951 2.22887 2.24287 2.25745 2.27148 2.28441 2.29564 2.30437 2.30972 2.30361 2.23919 2.07769 1.94100 1.82612 1.71319 1.58325 1.43035 1.24669 1.06782 1.00476 1.07201 1.16846 1.24757 1.31115 1.36508 1.41111 1.45179 1.49049 1.55178 1.66930 1.84421 2.04031 2.20719 2.30868 2.35190 2.35981 2.35590 2.34708 2.32993 2.30639 2.28289 2.26375 2.24662 2.22820 2.20692 2.18603 2.16899 2.15682 2.15390 2.16488 2.18717 2.23139 2.24222 2.25411 2.26675 2.27872 2.28909 2.29863 2.30574 2.30047 2.23830 2.06448 1.91995 1.79316 1.65978 1.51454 1.35827 1.18065 1.03144 0.97717 1.02697 1.11603 1.19296 1.25570 1.30751 1.35048 1.38516 1.42049 1.49487 1.63930 1.84293 2.06886 2.26435 2.39530 2.46766 2.49347 2.49138 2.47515 2.44471 2.40386 2.36551 2.33367 2.30229 2.27051 2.24008 2.21318 2.19256 2.17942 2.17681 2.18597 2.20267 2.23596 2.24480 2.25418 2.26612 2.27727 2.28890 2.30085 2.31697 2.32272 2.29368 2.10166 1.90902 1.74951 1.58949 1.44605 1.31465 1.16583 1.01675 0.93220 0.97542 1.07066 1.14703 1.20729 1.25610 1.29476 1.32914 1.38368 1.50219 1.68433 1.89524 2.09907 2.26861 2.39465 2.48181 2.52051 2.52284 2.50864 2.48219 2.44369 2.40366 2.36635 2.32980 2.29493 2.26268 2.23451 2.21230 2.19844 2.19502 2.20215 2.21417 2.24867 2.25439 2.26038 2.26991 2.27936 2.28877 2.29736 2.31504 2.32773 2.32979 2.17060 1.91400 1.72292 1.55776 1.42420 1.30773 1.17782 1.01572 0.90083 0.93973 1.04499 1.12091 1.17530 1.21809 1.26232 1.31791 1.40472 1.54446 1.72798 1.91780 2.08855 2.22861 2.34458 2.43773 2.48256 2.49003 2.47953 2.46236 2.43686 2.40702 2.37476 2.34107 2.30814 2.27737 2.25152 2.23051 2.21598 2.21092 2.21651 2.23046 2.26512 2.26559 2.26953 2.27447 2.28022 2.28609 2.29190 2.30086 2.31046 2.31176 2.22542 1.95272 1.71868 1.55473 1.42491 1.31006 1.18519 1.03009 0.93979 0.99165 1.08890 1.16151 1.21483 1.26067 1.30786 1.36841 1.45615 1.58219 1.74186 1.90704 2.05805 2.18517 2.29162 2.37624 2.42411 2.43984 2.43846 2.43129 2.41823 2.39786 2.37090 2.34137 2.31168 2.28412 2.26197 2.24354 2.22966 2.22434 2.23074 2.24583 2.27365 2.27644 2.27894 2.28064 2.28300 2.28425 2.28531 2.28570 2.28705 2.28373 2.25371 2.05614 1.76189 1.53713 1.39481 1.28589 1.17156 1.03950 0.99353 1.08170 1.18722 1.26191 1.31799 1.36239 1.39995 1.44323 1.51325 1.61775 1.75086 1.89319 2.02633 2.13923 2.23303 2.30984 2.35933 2.38346 2.39400 2.39871 2.39508 2.38008 2.35803 2.33357 2.30816 2.28552 2.26787 2.25299 2.24239 2.23997 2.24710 2.25995 2.28675 2.28411 2.28307 2.28224 2.28372 2.28472 2.28229 2.27763 2.27223 2.26440 2.23919 2.13713 1.83473 1.52953 1.36921 1.27593 1.17178 1.06339 1.04738 1.15581 1.26498 1.33649 1.38180 1.41166 1.43773 1.47391 1.53704 1.63148 1.74995 1.87773 1.99938 2.10144 2.18393 2.25216 2.30392 2.33718 2.35750 2.36789 2.36664 2.35547 2.33902 2.31954 2.29996 2.28350 2.27188 2.26168 2.25418 2.25251 2.25902 2.27101 2.28654 2.28982 2.28520 2.28072 2.27975 2.28226 2.28277 2.28011 2.27181 2.25886 2.22236 2.15504 1.88418 1.52893 1.37529 1.28260 1.18330 1.08988 1.09794 1.20288 1.29255 1.34718 1.37745 1.39508 1.41325 1.44907 1.51713 1.61897 1.73877 1.86023 1.97210 2.06555 2.14204 2.20456 2.25515 2.29393 2.31973 2.33264 2.33449 2.32781 2.31654 2.30357 2.29027 2.28040 2.27322 2.26615 2.26041 2.25962 2.26631 2.27800 2.30660 2.29676 2.29260 2.28784 2.28275 2.28318 2.28570 2.28439 2.27575 2.25285 2.21422 2.15681 2.00014 1.63820 1.42226 1.30328 1.19876 1.11296 1.12461 1.22049 1.29473 1.33838 1.36113 1.37523 1.39382 1.43711 1.51553 1.62307 1.73882 1.84883 1.94624 2.03082 2.10300 2.16213 2.21000 2.25127 2.28140 2.29911 2.30627 2.30460 2.29928 2.29308 2.28640 2.28023 2.27496 2.27064 2.26847 2.27012 2.27713 2.28744 2.29707 2.30416 2.29947 2.29565 2.29270 2.29142 2.29325 2.29167 2.28067 2.25121 2.21174 2.15174 2.05523 1.78564 1.49795 1.34847 1.22808 1.13064 1.12923 1.21848 1.29186 1.33589 1.35842 1.37287 1.39566 1.44535 1.52734 1.63087 1.73809 1.84005 1.93040 2.00834 2.07536 2.13170 2.17777 2.21796 2.24968 2.27162 2.28377 2.28729 2.28807 2.28785 2.28527 2.28145 2.27818 2.27686 2.27803 2.28181 2.28905 2.29942 2.38002 2.31936 2.30668 2.30478 2.30277 2.30628 2.30753 2.30394 2.28957 2.25998 2.22078 2.16815 2.08947 1.90729 1.62656 1.41658 1.25647 1.13246 1.11552 1.19787 1.27656 1.32739 1.35628 1.37659 1.40365 1.45412 1.53265 1.63078 1.73380 1.83267 1.92115 1.99685 2.06124 2.11668 2.16233 2.20014 2.23086 2.25224 2.26720 2.27611 2.28223 2.28506 2.28544 2.28419 2.28299 2.28356 2.28759 2.29375 2.30211 2.31251 2.30831 2.34748 2.32568 2.31085 2.31343 2.31819 2.31882 2.31418 2.30082 2.27382 2.23531 2.18156 2.10188 1.96064 1.72334 1.47929 1.28028 1.13554 1.09785 1.17039 1.25599 1.31445 1.35072 1.37769 1.41020 1.46103 1.53479 1.62721 1.72624 1.82259 1.91037 1.98648 2.05026 2.10544 2.15241 2.19121 2.22105 2.24226 2.25857 2.27046 2.27879 2.28341 2.28659 2.28792 2.28822 2.29102 2.29721 2.30539 2.31584 2.32791 2.45792 2.38332 2.40503 2.37624 2.33458 2.33369 2.33016 2.32448 2.31090 2.28539 2.24879 2.19459 2.11214 1.99038 1.78834 1.53479 1.31172 1.15607 1.09910 1.15586 1.24300 1.30631 1.34899 1.38182 1.41920 1.47013 1.53967 1.62600 1.71937 1.81053 1.89459 1.96914 2.03299 2.08773 2.13581 2.17737 2.20988 2.23431 2.25292 2.26592 2.27584 2.28292 2.28895 2.29316 2.29563 2.29947 2.30668 2.31724 2.32977 2.34283 2.42002 2.39825 2.41304 2.43830 2.38089 2.35181 2.34712 2.33772 2.32232 2.29752 2.26439 2.21447 2.13905 2.03716 1.86376 1.59749 1.35376 1.19099 1.11667 1.14906 1.23133 1.29962 1.34928 1.38692 1.42586 1.47460 1.54086 1.62380 1.71336 1.80117 1.88256 1.95493 2.01884 2.07374 2.12128 2.16353 2.19819 2.22615 2.24690 2.26058 2.27298 2.28326 2.29074 2.29713 2.30191 2.30697 2.31473 2.32630 2.34095 2.35523 2.39608 2.44300 2.42774 2.44327 2.40129 2.36824 2.36592 2.35682 2.34264 2.31794 2.28407 2.23529 2.16584 2.07633 1.91777 1.64375 1.39214 1.22965 1.13618 1.14166 1.21851 1.29144 1.34614 1.38633 1.42543 1.47270 1.53608 1.61604 1.70375 1.78940 1.86967 1.94225 2.00751 2.06340 2.11129 2.15337 2.18978 2.21981 2.24115 2.25529 2.26842 2.28025 2.28949 2.29741 2.30437 2.31170 2.32123 2.33400 2.35044 2.36782 2.37131 2.42796 2.42750 2.43740 2.40737 2.38651 2.38006 2.37157 2.35925 2.33552 2.30017 2.25196 2.18798 2.10422 1.94481 1.67172 1.42112 1.25718 1.14860 1.12863 1.20125 1.27967 1.33913 1.38236 1.42103 1.46658 1.52688 1.60333 1.68867 1.77282 1.85218 1.92597 1.99457 2.05377 2.10318 2.14557 2.18318 2.21568 2.23738 2.25231 2.26574 2.27821 2.28901 2.29909 2.30791 2.31644 2.32782 2.34353 2.36281 2.38357 2.41375 2.43695 2.43323 2.43735 2.42368 2.40635 2.39612 2.38591 2.37418 2.35397 2.32381 2.28103 2.22368 2.14864 2.00328 1.73533 1.46261 1.27459 1.15453 1.11336 1.17983 1.26479 1.32957 1.37579 1.41398 1.45564 1.51076 1.58295 1.66591 1.75075 1.83195 1.90816 1.98053 2.04356 2.09569 2.13922 2.17794 2.21227 2.23608 2.25299 2.26782 2.28099 2.29183 2.30210 2.31295 2.32407 2.33783 2.35668 2.37852 2.39863 2.39577 2.44096 2.44331 2.44515 2.44236 2.43026 2.41998 2.40816 2.39506 2.37637 2.35190 2.31619 2.26585 2.19583 2.06317 1.79162 1.48929 1.27791 1.15421 1.09909 1.15345 1.24436 1.31568 1.36615 1.40556 1.44360 1.49317 1.55984 1.63958 1.72454 1.80805 1.88768 1.96229 2.02907 2.08582 2.13350 2.17496 2.20956 2.23571 2.25513 2.27114 2.28481 2.29758 2.31047 2.32340 2.33606 2.34943 2.36845 2.39179 2.41524 2.44585 2.46341 2.46577 2.46794 2.46142 2.44898 2.44051 2.42932 2.41584 2.39825 2.37792 2.34785 2.30258 2.23732 2.11924 1.85250 1.52327 1.29242 1.15846 1.09110 1.11817 1.20807 1.28780 1.34593 1.38815 1.42473 1.46864 1.52977 1.60736 1.69466 1.78213 1.86451 1.94075 2.01231 2.07517 2.12824 2.17420 2.21081 2.23785 2.25711 2.27323 2.28919 2.30733 2.32563 2.33995 2.35022 2.36168 2.38125 2.40594 2.42849 2.43282 2.48197 2.48389 2.49040 2.47378 2.46302 2.45521 2.44608 2.43307 2.41847 2.40072 2.37377 2.33213 2.27273 2.18327 1.97573 1.64275 1.37664 1.20928 1.11032 1.08885 1.15696 1.24048 1.30585 1.35457 1.39303 1.43470 1.49142 1.56735 1.65753 1.75067 1.83904 1.91910 1.99481 2.06262 2.12074 2.17064 2.21046 2.23961 2.26141 2.28175 2.30190 2.32283 2.34159 2.35489 2.36381 2.37564 2.39496 2.41876 2.44197 2.50347 2.50207 2.52873 2.49618 2.48199 2.47115 2.46755 2.46063 2.44999 2.43765 2.42114 2.39611 2.35635 2.30374 2.23225 2.10420 1.81171 1.49291 1.27402 1.13313 1.06679 1.10359 1.18608 1.25724 1.31266 1.35585 1.39938 1.45427 1.52703 1.61597 1.71148 1.80581 1.89324 1.97437 2.04756 2.11022 2.16419 2.20787 2.24234 2.27119 2.29648 2.31746 2.33666 2.35432 2.36770 2.37645 2.38781 2.40705 2.43146 2.45670 2.30106 2.55841 2.57770 2.50645 2.48650 2.48041 2.48032 2.47837 2.47152 2.46019 2.44276 2.41905 2.38314 2.33773 2.27918 2.19257 1.98373 1.64173 1.35761 1.16881 1.06351 1.05676 1.12622 1.20231 1.26529 1.31211 1.35428 1.40570 1.47640 1.56601 1.66384 1.76336 1.85983 1.95065 2.03054 2.09822 2.15736 2.20747 2.24989 2.28449 2.31060 2.33058 2.34904 2.36687 2.38014 2.38926 2.40162 2.42276 2.44933 2.47751 2.41263 2.66378 2.59837 2.51435 2.50103 2.49568 2.49669 2.49777 2.49545 2.48543 2.46661 2.44184 2.41106 2.37224 2.32812 2.26669 2.14792 1.84664 1.48813 1.23673 1.08551 1.02966 1.06003 1.13144 1.19983 1.25357 1.29575 1.34205 1.40588 1.49451 1.59893 1.70627 1.81464 1.91869 2.01013 2.08625 2.15528 2.21499 2.26440 2.30228 2.32804 2.34698 2.36367 2.37920 2.39191 2.40418 2.41994 2.44154 2.46824 2.49689 2.49752 2.66142 2.59499 2.53279 2.51934 2.51226 2.51370 2.51722 2.51757 2.50992 2.49361 2.46924 2.43854 2.40525 2.37045 2.32506 2.25605 2.04237 1.64644 1.32256 1.12958 1.04440 1.02527 1.06186 1.12495 1.18542 1.23422 1.27909 1.33598 1.41697 1.52086 1.63624 1.75626 1.87548 1.98603 2.08095 2.16430 2.23508 2.28840 2.32531 2.34820 2.36314 2.37580 2.38956 2.40493 2.42129 2.43980 2.46119 2.48704 2.51702 2.53106 2.64076 2.59609 2.55818 2.54289 2.53064 2.52826 2.53155 2.53403 2.52998 2.51795 2.49771 2.46895 2.43762 2.40504 2.36745 2.31311 2.16249 1.78687 1.41650 1.18059 1.07206 1.02273 1.01077 1.05096 1.11399 1.17128 1.22478 1.28051 1.35247 1.44757 1.55718 1.67667 1.80834 1.94504 2.06847 2.17550 2.25989 2.31316 2.34184 2.35419 2.36285 2.37570 2.39649 2.41951 2.44046 2.46021 2.48134 2.50777 2.53623 2.59119 2.66400 2.63367 2.59250 2.57042 2.55197 2.54417 2.54400 2.54717 2.54729 2.53962 2.52352 2.49971 2.46998 2.43788 2.40470 2.35944 2.25002 1.92627 1.53327 1.24896 1.09998 1.03240 0.98661 0.99665 1.05565 1.12045 1.18437 1.24345 1.30779 1.38806 1.47772 1.57762 1.71050 1.88107 2.04104 2.17027 2.26562 2.31501 2.32979 2.33623 2.35167 2.37601 2.40556 2.43379 2.45938 2.48162 2.50335 2.52881 2.55563 2.61474 2.66289 2.64374 2.61682 2.59831 2.57956 2.56869 2.56300 2.56213 2.56199 2.55721 2.54513 2.52554 2.49900 2.46774 2.43338 2.38880 2.30645 2.06951 1.68865 1.35972 1.15251 1.05014 1.00057 0.99282 1.02563 1.07995 1.14103 1.19852 1.26030 1.33555 1.41697 1.49469 1.60047 1.79323 1.98731 2.12881 2.21842 2.26315 2.28663 2.31437 2.34909 2.38495 2.41970 2.45154 2.47928 2.50157 2.52338 2.54906 2.57535 2.64377 2.65762 2.65203 2.64544 2.63492 2.61937 2.60307 2.58841 2.58010 2.57562 2.57026 2.55970 2.54314 2.51874 2.48674 2.44525 2.38767 2.30088 2.13677 1.83692 1.49032 1.22444 1.06200 0.98179 0.95744 0.96591 0.99542 1.03136 1.07502 1.14012 1.23545 1.33100 1.40451 1.47989 1.67959 1.88664 2.02394 2.12207 2.19040 2.24993 2.30330 2.35258 2.39498 2.43381 2.46852 2.49524 2.51554 2.53789 2.56462 2.59213 2.66166 2.66106 2.66184 2.65852 2.65374 2.64275 2.62646 2.61117 2.60137 2.59386 2.58583 2.57480 2.55857 2.53689 2.50815 2.46423 2.39607 2.30889 2.18055 1.94441 1.61366 1.30602 1.09001 0.95065 0.86669 0.82946 0.82473 0.83509 0.87044 0.94840 1.07229 1.19199 1.28293 1.37124 1.56630 1.76855 1.91272 2.03963 2.14403 2.22832 2.29524 2.35282 2.40095 2.44304 2.47861 2.50517 2.52686 2.54909 2.57418 2.60440 2.65148 2.65817 2.65581 2.65130 2.65028 2.64731 2.64019 2.63077 2.62216 2.61203 2.59979 2.58686 2.57066 2.55008 2.52560 2.48888 2.43219 2.36026 2.24957 2.03341 1.70438 1.36628 1.11046 0.93469 0.80912 0.73593 0.71012 0.71004 0.73017 0.79377 0.91790 1.05296 1.17263 1.32250 1.50758 1.69878 1.85323 1.99898 2.11932 2.21471 2.28955 2.35103 2.40306 2.44947 2.48764 2.51644 2.53986 2.56076 2.58283 2.61154 2.65273 2.65752 2.65379 2.64980 2.65004 2.65058 2.64855 2.64408 2.63796 2.62750 2.61230 2.59561 2.57997 2.56250 2.54199 2.51454 2.47089 2.40124 2.29201 2.11019 1.81676 1.47208 1.17146 0.94611 0.78384 0.69415 0.66400 0.66179 0.67110 0.70453 0.80791 0.94833 1.09774 1.27812 1.48486 1.67154 1.82936 1.98013 2.10589 2.20529 2.28382 2.34828 2.40263 2.45161 2.49336 2.52536 2.54958 2.57017 2.59089 2.61415 2.65172 2.65949 2.65328 2.64903 2.64988 2.65145 2.65337 2.65547 2.65459 2.64691 2.63195 2.61483 2.59881 2.58232 2.56537 2.54138 2.50163 2.43120 2.32844 2.16871 1.90854 1.58580 1.26636 0.99672 0.79987 0.68965 0.64952 0.64264 0.64852 0.67104 0.76016 0.90275 1.05348 1.23162 1.44746 1.64868 1.81216 1.96559 2.09616 2.19763 2.27756 2.34549 2.40289 2.45286 2.49585 2.52869 2.55260 2.57348 2.59410 2.61396 2.66112 2.66964 2.66517 2.66022 2.65849 2.65788 2.65946 2.66522 2.66973 2.66680 2.65555 2.64217 2.62765 2.61006 2.59278 2.57114 2.53973 2.46960 2.34465 2.17779 1.91736 1.62174 1.32476 1.05118 0.82813 0.69535 0.64567 0.63841 0.64623 0.66886 0.74829 0.88375 1.01831 1.19347 1.43387 1.64033 1.79925 1.94903 2.08317 2.18702 2.26820 2.33877 2.39976 2.45077 2.49261 2.52551 2.54977 2.57117 2.59165 2.61380 2.67911 2.68226 2.68267 2.67971 2.67380 2.66678 2.66445 2.67072 2.67880 2.68145 2.67818 2.67132 2.66006 2.64425 2.62821 2.60657 2.58144 2.50844 2.35584 2.15826 1.90207 1.63343 1.37869 1.12801 0.89608 0.72504 0.65159 0.64032 0.64731 0.66783 0.73674 0.86529 1.00613 1.20028 1.43650 1.62129 1.77590 1.92821 2.06754 2.17548 2.26036 2.33230 2.39392 2.44534 2.48782 2.52075 2.54473 2.56559 2.58686 2.61150 2.72987 2.70116 2.69711 2.69701 2.68987 2.67797 2.67032 2.67221 2.67881 2.68131 2.68716 2.69105 2.68705 2.67252 2.65792 2.63819 2.63935 2.65130 2.41105 2.25916 1.93439 1.72731 1.47117 1.24960 1.02455 0.81609 0.67968 0.65235 0.65050 0.67623 0.74915 0.87064 0.99570 1.15632 1.48633 1.58448 1.75795 1.90516 2.05503 2.16933 2.26047 2.33436 2.39401 2.44144 2.48226 2.51631 2.53506 2.55190 2.57548 2.61613 'END OF SURFACES' / 'COMPLEX BLOCK' 1 'VP ' 1 (P WAVE VELOCITY) (GRADIENT 0.549) 3 0 0 0 / (I.E. VP=W(X3), TENSION=0) 2 (NUMBERS OF GRID POINTS) 0 1 (X3 GRID COORDINATES) 1.627 2.176 (VELOCITIES AT GRID POINTS) 'COMPLEX BLOCK' 2 'VP ' 1 (P WAVE VELOCITY) (GRADIENT 1.056) 3 0 0 0 / (I.E. VP=W(X3), TENSION=0) 2 (NUMBERS OF GRID POINTS) 0 1 (X3 GRID COORDINATES) 2.156 3.212 (VELOCITIES AT GRID POINTS) 'COMPLEX BLOCK' 3 'VP ' 1 (P WAVE VELOCITY) 0 0 0 0 / (I.E. VP=CONSTANT, TENSION=0) 4.000 (VELOCITY) 'END OF COMPLEX BLOCKS, END OF THE INPUT DATA FOR THE MODEL' / l7/l7-grd.h 100666 1750 1750 4667 6612015444 11743 0 ustar klimes klimes # History file 'l7-grd.h' to generate PostScript files with # the sections across model L7, displaying P-wave velocities # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Input files required: #chk.pl: "forms/" "echo.pl" #chk.pl: "forms/" "append.pl" #chk.pl: "model/l7/" "l7-mod.dat" # Creating input data file for 'grid.for': echo.pl: "' ' 'l7-vel.out' ' ' /" >grid.tmp echo.pl: "/" >>grid.tmp # Grid dimensions, initial position, and plotting parameters: MODEL='l7-mod.dat' N1=400 N2=1 N3=151 D1=0.020 D2=0.020 D3=0.020 O1=3.130 O2=1.301 O3=0.000 VCIRC=-4.5 VREF=1.5 YSIGN=-1 HOFFSET=4.5 VOFFSET=22.16 # Running programs to plot velocities: grid: 'l7-grd.h' 'grid.tmp' / # Gridding velocities grdps: 'l7-grd.h' 'l7-vel.out' 'l7-vel1.ps' / # Plotting velocities # Shifting the grid: O2=3.651 HOFFSET=3.5 VOFFSET=17.16 grid: 'l7-grd.h' 'grid.tmp' / # Gridding velocities grdps: 'l7-grd.h' 'l7-vel.out' 'l7-vel2.ps' / # Plotting velocities # Shifting the grid: O2=6.001 HOFFSET=2.5 VOFFSET=12.16 grid: 'l7-grd.h' 'grid.tmp' / # Gridding velocities grdps: 'l7-grd.h' 'l7-vel.out' 'l7-vel3.ps' / # Plotting velocities # Shifting the grid: O2=8.351 HOFFSET=1.5 VOFFSET=7.16 grid: 'l7-grd.h' 'grid.tmp' / # Gridding velocities grdps: 'l7-grd.h' 'l7-vel.out' 'l7-vel4.ps' / # Plotting velocities # Shifting the grid: O2=10.701 HOFFSET=0.5 VOFFSET=2.16 grid: 'l7-grd.h' 'grid.tmp' / # Gridding velocities grdps: 'l7-grd.h' 'l7-vel.out' 'l7-vel5.ps' / # Plotting velocities # Composing a single figure of the 5 grids: echo.pl: "%!" >l7-vel.ps echo.pl: "%%BoundingBox: 14 61 581 799" >>l7-vel.ps echo.pl: "/gsave" >>l7-vel.ps echo.pl: "/showpage {} def" >>l7-vel.ps append.pl: "l7-vel.ps" "l7-vel1.ps" append.pl: "l7-vel.ps" "l7-vel2.ps" append.pl: "l7-vel.ps" "l7-vel3.ps" append.pl: "l7-vel.ps" "l7-vel4.ps" append.pl: "l7-vel.ps" "l7-vel5.ps" echo.pl: "grestore" >>l7-vel.ps echo.pl: "showpage" >>l7-vel.ps # ====================================================================== # List of output PostScript figures: # 'l7-vel1.ps', ..., 'l7-vel5.ps' Individual sections across model L7 # 'l7-vel.ps' All five sections across model L7 in one figure len-grd.h 100666 1750 1750 2653 6612015360 11643 0 ustar klimes klimes # History file 'len-grd.h' to generate PostScript files with the sections # across the model with aLENticular inclusion, displaying the velocities # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Input files required: #chk.pl: "forms/" "echo.pl" #chk.pl: "model/" "model.dat" # Creating input data file for 'grid.for': echo.pl: "' ' 'len-vel.out' ' ' /" >grid.tmp echo.pl: "/ " >>grid.tmp # Grid dimensions, initial position, and plotting parameters: MODEL='model.dat' N1=601 N2=1 N3=301 D1=0.1 D2=0.1 D3=0.1 O1=0 O2=0 O3=-25 VMIN=0 VCIRC=-6 VREF=3 HSIZE=15.025 # Running programs to plot the velocities: grid: 'len-grd.h' 'grid.tmp' / # Gridding velocities grdps: 'len-grd.h' 'len-vel.out' 'len-vel1.ps' / # Plotting velocities # Shifting the grid: O2=5 grid: 'len-grd.h' 'grid.tmp' / # Gridding velocities grdps: 'len-grd.h' 'len-vel.out' 'len-vel2.ps' / # Plotting velocities # Shifting the grid: O2=10 grid: 'len-grd.h' 'grid.tmp' / # Gridding velocities grdps: 'len-grd.h' 'len-vel.out' 'len-vel3.ps' / # Plotting velocities # ====================================================================== # List of output PostScript figures: # len-vel1.ps \ Individual sections across the model with LENticular # len-vel2.ps > inclusion, displaying the P-wave velocities # len-vel3.ps / mar/ 40777 1750 1750 0 6613213040 10612 5 ustar klimes klimes mar/marh-mod.dat 100666 1750 1750 1053775 6223642700 13215 0 ustar klimes klimes 'MARmousi Hard model, 384*122 gridpoints (cells 0.024*0.024)' 0 1 1 / (Cartesian coordinates, velocities, loss factors) 0.000 9.192 0.000 2.904 0 1 (boundaries of the model) 0 surfaces 1 simple block: / 1 complex block: 1 / 'END of input data for smooth surfaces' / 'COMPLEX BLOCK' 1 'VP ' -1 (P wave slowness interpolated) 2 1 0 0 -1 / (i.e. VP=W(X2,X1), tension=0, velocity given) 122 384 (numbers of gridpoints) 0.000 0.024 0.048 0.072 0.096 0.120 0.144 0.168 0.192 0.216 0.240 0.264 0.288 0.312 0.336 0.360 0.384 0.408 0.432 0.456 0.480 0.504 0.528 0.552 0.576 0.600 0.624 0.648 0.672 0.696 0.720 0.744 0.768 0.792 0.816 0.840 0.864 0.888 0.912 0.936 0.960 0.984 1.008 1.032 1.056 1.080 1.104 1.128 1.152 1.176 1.200 1.224 1.248 1.272 1.296 1.320 1.344 1.368 1.392 1.416 1.440 1.464 1.488 1.512 1.536 1.560 1.584 1.608 1.632 1.656 1.680 1.704 1.728 1.752 1.776 1.800 1.824 1.848 1.872 1.896 1.920 1.944 1.968 1.992 2.016 2.040 2.064 2.088 2.112 2.136 2.160 2.184 2.208 2.232 2.256 2.280 2.304 2.328 2.352 2.376 2.400 2.424 2.448 2.472 2.496 2.520 2.544 2.568 2.592 2.616 2.640 2.664 2.688 2.712 2.736 2.760 2.784 2.808 2.832 2.856 2.880 2.904 0.000 0.024 0.048 0.072 0.096 0.120 0.144 0.168 0.192 0.216 0.240 0.264 0.288 0.312 0.336 0.360 0.384 0.408 0.432 0.456 0.480 0.504 0.528 0.552 0.576 0.600 0.624 0.648 0.672 0.696 0.720 0.744 0.768 0.792 0.816 0.840 0.864 0.888 0.912 0.936 0.960 0.984 1.008 1.032 1.056 1.080 1.104 1.128 1.152 1.176 1.200 1.224 1.248 1.272 1.296 1.320 1.344 1.368 1.392 1.416 1.440 1.464 1.488 1.512 1.536 1.560 1.584 1.608 1.632 1.656 1.680 1.704 1.728 1.752 1.776 1.800 1.824 1.848 1.872 1.896 1.920 1.944 1.968 1.992 2.016 2.040 2.064 2.088 2.112 2.136 2.160 2.184 2.208 2.232 2.256 2.280 2.304 2.328 2.352 2.376 2.400 2.424 2.448 2.472 2.496 2.520 2.544 2.568 2.592 2.616 2.640 2.664 2.688 2.712 2.736 2.760 2.784 2.808 2.832 2.856 2.880 2.904 2.928 2.952 2.976 3.000 3.024 3.048 3.072 3.096 3.120 3.144 3.168 3.192 3.216 3.240 3.264 3.288 3.312 3.336 3.360 3.384 3.408 3.432 3.456 3.480 3.504 3.528 3.552 3.576 3.600 3.624 3.648 3.672 3.696 3.720 3.744 3.768 3.792 3.816 3.840 3.864 3.888 3.912 3.936 3.960 3.984 4.008 4.032 4.056 4.080 4.104 4.128 4.152 4.176 4.200 4.224 4.248 4.272 4.296 4.320 4.344 4.368 4.392 4.416 4.440 4.464 4.488 4.512 4.536 4.560 4.584 4.608 4.632 4.656 4.680 4.704 4.728 4.752 4.776 4.800 4.824 4.848 4.872 4.896 4.920 4.944 4.968 4.992 5.016 5.040 5.064 5.088 5.112 5.136 5.160 5.184 5.208 5.232 5.256 5.280 5.304 5.328 5.352 5.376 5.400 5.424 5.448 5.472 5.496 5.520 5.544 5.568 5.592 5.616 5.640 5.664 5.688 5.712 5.736 5.760 5.784 5.808 5.832 5.856 5.880 5.904 5.928 5.952 5.976 6.000 6.024 6.048 6.072 6.096 6.120 6.144 6.168 6.192 6.216 6.240 6.264 6.288 6.312 6.336 6.360 6.384 6.408 6.432 6.456 6.480 6.504 6.528 6.552 6.576 6.600 6.624 6.648 6.672 6.696 6.720 6.744 6.768 6.792 6.816 6.840 6.864 6.888 6.912 6.936 6.960 6.984 7.008 7.032 7.056 7.080 7.104 7.128 7.152 7.176 7.200 7.224 7.248 7.272 7.296 7.320 7.344 7.368 7.392 7.416 7.440 7.464 7.488 7.512 7.536 7.560 7.584 7.608 7.632 7.656 7.680 7.704 7.728 7.752 7.776 7.800 7.824 7.848 7.872 7.896 7.920 7.944 7.968 7.992 8.016 8.040 8.064 8.088 8.112 8.136 8.160 8.184 8.208 8.232 8.256 8.280 8.304 8.328 8.352 8.376 8.400 8.424 8.448 8.472 8.496 8.520 8.544 8.568 8.592 8.616 8.640 8.664 8.688 8.712 8.736 8.760 8.784 8.808 8.832 8.856 8.880 8.904 8.928 8.952 8.976 9.000 9.024 9.048 9.072 9.096 9.120 9.144 9.168 9.192 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.778 1.644 1.650 1.656 1.662 1.708 1.714 1.720 1.776 1.782 1.788 1.744 1.830 1.836 1.842 1.698 1.824 1.750 1.756 1.722 1.728 1.764 1.910 1.866 1.872 1.948 1.954 1.960 1.806 1.922 1.928 1.864 1.870 1.806 1.882 1.888 1.894 2.020 2.026 1.852 1.858 2.486 2.495 2.534 2.543 2.502 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.701 2.650 2.659 4.148 4.327 4.366 4.225 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 2.990 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.600 3.600 3.600 3.600 4.120 4.440 4.440 4.550 4.550 3.500 3.500 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.778 1.644 1.650 1.656 1.702 1.708 1.714 1.770 1.776 1.782 1.738 1.744 1.830 1.836 1.842 1.698 1.824 1.750 1.756 1.722 1.728 1.764 1.910 1.866 1.872 1.948 1.954 1.830 1.806 1.922 1.928 1.864 1.800 1.806 1.882 1.888 1.894 2.020 2.026 1.852 1.858 2.486 2.495 2.534 2.543 2.502 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.701 2.650 2.659 4.148 4.327 4.366 4.225 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 2.990 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.600 3.600 3.600 4.120 4.440 4.440 4.550 4.550 3.500 3.500 3.500 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.778 1.644 1.650 1.656 1.702 1.708 1.714 1.770 1.776 1.782 1.738 1.744 1.830 1.836 1.842 1.698 1.824 1.750 1.756 1.722 1.728 1.764 1.860 1.866 1.872 1.948 1.954 1.830 1.806 1.922 1.928 1.864 1.800 1.806 1.882 1.888 1.894 2.020 2.026 1.852 1.858 2.486 2.495 2.534 2.543 2.502 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.701 2.650 2.659 4.148 4.327 4.366 4.225 2.840 2.755 3.120 2.835 2.880 2.895 2.930 2.945 2.960 2.855 2.990 3.005 2.950 3.035 3.250 4.000 4.000 4.000 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.600 3.600 4.120 4.440 4.440 4.550 4.550 3.500 3.500 3.500 3.380 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.778 1.644 1.650 1.656 1.702 1.708 1.714 1.770 1.776 1.782 1.738 1.744 1.830 1.836 1.762 1.698 1.824 1.750 1.756 1.722 1.728 1.904 1.860 1.866 1.872 1.948 1.954 1.830 1.806 1.922 1.928 1.864 1.800 1.806 1.882 1.888 1.894 2.020 2.026 1.852 1.858 2.486 2.495 2.534 2.543 2.502 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.701 2.650 2.659 4.148 4.327 4.366 4.225 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 2.990 3.005 2.950 3.035 3.250 4.000 4.000 4.000 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.600 4.120 4.440 4.440 4.550 4.550 4.550 3.500 3.500 3.500 3.380 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.778 1.644 1.650 1.656 1.702 1.708 1.714 1.770 1.776 1.782 1.738 1.744 1.830 1.836 1.762 1.748 1.744 1.750 1.756 1.722 1.758 1.904 1.860 1.866 1.872 1.948 1.954 1.830 1.806 1.922 1.928 1.864 1.800 1.806 1.882 1.888 1.894 2.020 1.896 1.852 1.858 2.486 2.495 2.534 2.543 2.502 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.641 2.650 2.659 4.148 4.327 4.366 4.225 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 2.990 3.005 2.950 3.035 3.250 4.000 4.000 4.000 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.120 4.440 4.440 4.550 4.550 4.550 3.500 3.500 3.500 3.380 3.380 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.778 1.644 1.650 1.656 1.702 1.708 1.714 1.770 1.776 1.782 1.738 1.744 1.830 1.836 1.762 1.748 1.744 1.750 1.756 1.722 1.758 1.904 1.860 1.866 1.872 1.948 1.954 1.830 1.806 1.922 1.928 1.864 1.800 1.806 1.882 1.888 1.894 2.020 1.896 1.852 1.858 2.486 2.495 2.534 2.543 2.502 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.641 2.650 2.659 4.148 4.327 4.366 4.225 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 2.990 3.005 2.950 3.035 3.250 4.000 4.000 4.000 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.120 4.440 4.440 4.550 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.778 1.644 1.650 1.656 1.702 1.708 1.714 1.770 1.776 1.782 1.738 1.824 1.830 1.836 1.762 1.748 1.744 1.750 1.756 1.722 1.758 1.904 1.860 1.866 1.942 1.948 1.954 1.830 1.916 1.922 1.858 1.864 1.800 1.806 1.882 1.888 1.894 2.020 1.896 1.852 1.918 2.486 2.495 2.534 2.543 2.502 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.641 2.650 2.659 4.148 4.327 4.366 4.225 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 2.990 3.005 2.950 3.035 3.250 4.000 4.000 4.000 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.440 4.440 4.550 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.778 1.644 1.650 1.656 1.702 1.708 1.714 1.770 1.776 1.782 1.738 1.824 1.830 1.836 1.762 1.748 1.744 1.750 1.756 1.722 1.758 1.904 1.860 1.866 1.942 1.948 1.954 1.830 1.916 1.922 1.858 1.864 1.800 1.806 1.882 1.888 1.894 2.020 1.896 1.852 1.918 2.486 2.495 2.534 2.543 2.502 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.641 2.650 2.659 4.148 4.327 4.366 4.325 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 2.990 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.440 4.550 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.380 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.778 1.644 1.650 1.656 1.702 1.708 1.714 1.770 1.776 1.782 1.738 1.824 1.830 1.836 1.692 1.748 1.744 1.750 1.756 1.722 1.758 1.904 1.860 1.866 1.942 1.948 1.954 1.830 1.916 1.922 1.858 1.864 1.800 1.876 1.882 1.888 1.894 2.020 1.896 1.852 1.918 2.486 2.495 2.534 2.543 2.502 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.641 2.650 2.659 4.148 4.327 4.366 4.325 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 2.990 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.440 4.550 4.550 3.500 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.750 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.778 1.644 1.650 1.696 1.702 1.708 1.714 1.770 1.776 1.782 1.738 1.824 1.830 1.836 1.692 1.748 1.744 1.750 1.756 1.722 1.758 1.904 1.860 1.866 1.942 1.948 1.954 1.800 1.916 1.922 1.858 1.864 1.800 1.876 1.882 1.888 1.894 2.020 1.896 1.852 1.918 2.486 2.495 2.534 2.543 2.502 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.148 4.327 4.186 4.325 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.550 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.750 3.750 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.778 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.776 1.782 1.738 1.824 1.830 1.836 1.692 1.818 1.744 1.750 1.716 1.722 1.898 1.904 1.860 1.866 1.942 1.948 1.954 1.800 1.916 1.922 1.858 1.864 1.800 1.876 1.882 1.888 1.894 2.020 1.846 1.852 1.918 2.486 2.495 2.534 2.543 2.552 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.148 4.327 4.186 4.325 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.380 3.750 3.450 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.778 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.776 1.732 1.738 1.824 1.830 1.836 1.692 1.818 1.744 1.750 1.716 1.722 1.898 1.854 1.860 1.866 1.942 1.948 1.824 1.800 1.916 1.922 1.858 1.864 1.800 1.876 1.882 1.888 1.894 2.020 1.846 1.852 1.918 2.486 2.495 2.534 2.543 2.552 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.148 4.327 4.186 4.325 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.380 3.750 3.450 3.450 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.778 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.776 1.732 1.738 1.824 1.830 1.756 1.692 1.818 1.744 1.750 1.716 1.752 1.898 1.854 1.860 1.866 1.942 1.948 1.824 1.800 1.916 1.922 1.858 1.864 1.800 1.876 1.882 1.888 2.014 2.020 1.846 1.852 1.918 2.486 2.495 2.534 2.543 2.552 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.148 4.327 4.186 4.325 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.500 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.750 3.750 3.450 3.450 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.778 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.776 1.732 1.738 1.824 1.830 1.756 1.692 1.818 1.744 1.750 1.716 1.752 1.898 1.854 1.860 1.866 1.942 1.948 1.824 1.800 1.916 1.922 1.858 1.864 1.800 1.876 1.882 1.888 2.014 2.020 1.846 1.852 1.918 2.486 2.495 2.534 2.543 2.552 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.148 4.327 4.186 4.325 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.380 3.750 3.450 3.450 3.450 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.778 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.776 1.732 1.738 1.824 1.830 1.756 1.742 1.818 1.744 1.750 1.716 1.752 1.898 1.854 1.860 1.866 1.942 1.948 1.824 1.800 1.916 1.922 1.858 1.794 1.800 1.876 1.882 1.888 2.014 2.020 1.846 1.852 1.918 2.486 2.495 2.534 2.543 2.552 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.148 4.327 4.186 4.325 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.500 3.500 3.380 3.380 3.380 3.380 3.380 3.750 3.450 3.450 3.450 3.120 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.638 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.776 1.732 1.738 1.824 1.830 1.756 1.742 1.818 1.744 1.750 1.716 1.752 1.898 1.854 1.860 1.866 1.942 1.948 1.824 1.800 1.916 1.922 1.858 1.794 1.800 1.876 1.882 1.888 2.014 2.020 1.846 1.852 1.918 2.486 2.495 2.534 2.543 2.552 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.148 4.327 4.186 4.325 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.500 3.380 3.380 3.380 3.380 3.380 3.750 3.450 3.450 3.450 3.120 3.120 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.638 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.776 1.732 1.738 1.824 1.830 1.756 1.742 1.818 1.744 1.750 1.716 1.752 1.898 1.854 1.860 1.866 1.942 1.948 1.824 1.800 1.916 1.922 1.858 1.794 1.800 1.876 1.882 1.888 2.014 2.020 1.846 1.852 1.918 2.486 2.495 2.534 2.543 2.552 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.148 4.327 4.186 4.325 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.500 3.380 3.380 3.380 3.380 3.750 3.750 3.450 3.450 3.450 3.120 3.120 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.638 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.776 1.732 1.738 1.824 1.830 1.756 1.742 1.738 1.744 1.750 1.716 1.752 1.898 1.854 1.860 1.866 1.942 1.948 1.794 1.800 1.916 1.922 1.858 1.794 1.800 1.876 1.882 1.888 2.014 2.020 1.846 1.852 1.918 2.486 2.495 2.534 2.543 2.552 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 4.325 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.650 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.380 3.380 3.380 3.380 3.750 3.450 3.450 3.450 3.120 3.120 3.120 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.716 1.772 1.638 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.776 1.732 1.738 1.824 1.830 1.756 1.742 1.738 1.744 1.750 1.716 1.752 1.898 1.854 1.860 1.866 1.942 1.948 1.794 1.800 1.916 1.922 1.858 1.794 1.800 1.876 1.882 1.888 2.014 2.020 1.846 1.852 2.477 2.486 2.495 2.534 2.543 2.552 2.511 2.520 2.639 2.558 2.527 2.536 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 4.325 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.650 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.380 3.380 3.380 3.750 3.450 3.450 3.450 3.450 3.120 3.120 3.900 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.776 1.732 1.738 1.824 1.830 1.686 1.742 1.738 1.744 1.750 1.716 1.752 1.898 1.854 1.860 1.936 1.942 1.948 1.794 1.800 1.916 1.922 1.858 1.794 1.800 1.876 1.882 1.888 2.014 2.020 1.846 1.852 2.477 2.486 2.495 2.534 2.543 2.552 2.511 2.630 2.639 2.558 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 4.325 2.840 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.650 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.380 3.380 3.750 3.750 3.450 3.450 3.450 3.120 3.120 3.900 3.800 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.646 1.732 1.738 1.824 1.830 1.686 1.742 1.738 1.744 1.750 1.716 1.752 1.898 1.854 1.860 1.936 1.942 1.948 1.794 1.800 1.916 1.922 1.858 1.794 1.800 1.876 1.882 1.888 2.014 2.020 1.846 1.852 2.477 2.486 2.495 2.534 2.543 2.552 2.511 2.630 2.639 2.558 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 4.325 2.740 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.650 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.380 3.380 3.750 3.450 3.450 3.450 3.120 3.120 3.120 3.900 3.800 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.646 1.732 1.738 1.824 1.830 1.686 1.742 1.738 1.744 1.750 1.716 1.752 1.898 1.854 1.860 1.936 1.942 1.948 1.794 1.800 1.916 1.852 1.858 1.794 1.800 1.876 1.882 1.888 2.014 2.020 1.846 1.912 2.477 2.486 2.495 2.534 2.543 2.552 2.511 2.630 2.639 2.558 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 4.325 2.740 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.650 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.380 3.750 3.450 3.450 3.450 3.450 3.120 3.120 3.900 3.800 3.800 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.646 1.732 1.738 1.824 1.830 1.686 1.742 1.738 1.744 1.750 1.716 1.752 1.898 1.854 1.860 1.936 1.942 1.948 1.794 1.910 1.916 1.852 1.858 1.794 1.800 1.876 1.882 1.888 2.014 1.890 1.846 1.912 2.477 2.486 2.495 2.534 2.543 2.552 2.511 2.630 2.639 2.558 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 4.325 2.740 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.650 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.750 3.750 3.450 3.450 3.450 3.120 3.120 3.120 3.900 3.800 3.800 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.646 1.652 1.738 1.824 1.830 1.686 1.812 1.738 1.744 1.750 1.716 1.752 1.898 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.916 1.852 1.858 1.794 1.870 1.876 1.882 1.888 2.014 1.890 1.846 1.912 2.477 2.486 2.495 2.534 2.543 2.552 2.511 2.630 2.639 2.558 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 4.325 2.740 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.650 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.750 3.450 3.450 3.450 3.120 3.120 3.120 3.900 3.800 3.800 3.800 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.770 1.646 1.652 1.818 1.824 1.830 1.686 1.812 1.738 1.744 1.750 1.716 1.752 1.898 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.916 1.852 1.858 1.794 1.870 1.876 1.882 1.888 2.014 1.890 1.846 1.912 2.477 2.486 2.495 2.534 2.543 2.552 2.511 2.630 2.639 2.558 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 4.325 2.740 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.650 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.750 3.450 3.450 3.450 3.450 3.120 3.120 3.900 3.800 3.800 3.800 3.800 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.770 1.646 1.652 1.818 1.824 1.830 1.686 1.812 1.738 1.744 1.750 1.716 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.916 1.852 1.858 1.794 1.870 1.876 1.882 1.888 2.014 1.890 1.846 1.912 2.477 2.486 2.495 2.534 2.543 2.552 2.511 2.630 2.639 2.558 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 4.325 2.740 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.650 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.750 3.450 3.450 3.450 3.120 3.120 3.120 3.900 3.800 3.800 3.800 3.540 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.770 1.646 1.652 1.818 1.824 1.830 1.686 1.812 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.916 1.852 1.858 1.794 1.870 1.876 1.882 1.888 2.014 1.890 1.846 1.912 2.477 2.486 2.495 2.534 2.543 2.552 2.511 2.630 2.549 2.558 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 4.325 2.740 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.650 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.450 3.450 3.450 3.450 3.120 3.120 3.900 3.800 3.800 3.800 3.540 3.540 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.640 1.646 1.652 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.916 1.852 1.858 1.794 1.870 1.876 1.882 1.888 2.014 1.890 1.846 1.912 2.477 2.486 2.495 2.534 2.543 2.552 2.511 2.630 2.549 2.558 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 4.325 2.740 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.450 3.450 3.450 3.120 3.120 3.120 3.900 3.800 3.800 3.800 3.540 3.540 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.640 1.646 1.652 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.916 1.852 1.858 1.794 1.870 1.876 1.882 1.888 2.014 1.890 1.846 1.912 2.477 2.486 2.495 2.534 2.543 2.552 2.511 2.630 2.549 2.558 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 4.325 2.740 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.450 3.450 3.450 3.120 3.120 3.900 3.800 3.800 3.800 3.540 3.540 3.540 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.640 1.646 1.652 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.916 1.852 1.858 1.794 1.870 1.876 1.882 1.888 2.014 1.890 1.846 1.912 2.477 2.486 2.495 2.534 2.543 2.552 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 4.325 2.740 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.450 3.450 3.120 3.120 3.120 3.900 3.800 3.800 3.800 3.540 3.540 3.380 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.640 1.646 1.652 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.916 1.852 1.858 1.794 1.870 1.876 1.882 1.888 2.014 1.890 1.846 1.912 2.477 2.486 2.495 2.534 2.543 2.552 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 2.825 2.740 2.755 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.450 3.450 3.120 3.120 3.120 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.640 1.646 1.652 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.904 1.910 1.916 1.852 1.858 1.794 1.870 1.876 1.882 1.888 2.014 1.890 1.846 1.912 2.477 2.486 2.495 2.534 2.543 2.552 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.450 3.450 3.120 3.120 3.120 3.900 3.800 3.800 3.800 3.540 3.540 3.380 3.380 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.640 1.646 1.652 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.904 1.910 1.916 1.852 1.858 1.794 1.870 1.876 1.882 1.888 2.014 1.890 1.846 1.912 2.477 2.486 2.495 2.534 2.543 2.552 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.450 3.120 3.120 3.120 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.380 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.640 1.646 1.652 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.904 1.910 1.916 1.852 1.858 1.794 1.870 1.876 1.882 1.888 2.014 1.890 1.846 1.912 2.477 2.486 2.525 2.534 2.543 2.552 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.450 3.120 3.120 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.380 3.380 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.640 1.646 1.652 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.904 1.910 1.916 1.852 1.858 1.794 1.870 1.876 1.882 1.888 2.014 1.890 1.846 1.912 2.477 2.486 2.525 2.534 2.543 2.552 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 2.870 3.005 2.950 3.035 3.250 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.120 3.120 3.120 3.900 3.800 3.800 3.800 3.540 3.540 3.380 3.380 3.380 3.380 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.640 1.646 1.652 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.930 1.936 1.942 1.818 1.904 1.910 1.916 1.852 1.858 1.794 1.870 1.876 1.882 1.888 2.014 1.890 1.846 2.468 2.477 2.486 2.525 2.534 2.543 2.552 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 2.870 3.005 2.950 3.035 3.250 4.000 4.000 4.000 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.120 3.120 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.380 3.380 3.380 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.640 1.646 1.652 1.818 1.824 1.750 1.736 1.812 1.738 1.744 1.710 1.716 1.892 1.848 1.854 1.930 1.936 1.942 1.818 1.904 1.910 1.916 1.852 1.788 1.794 1.870 1.876 1.882 2.008 2.014 1.890 1.906 2.468 2.477 2.486 2.525 2.534 2.543 2.552 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.930 2.945 2.960 2.855 2.870 3.005 2.950 3.035 3.250 4.000 4.000 4.000 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.120 3.120 3.900 3.800 3.800 3.800 3.540 3.540 3.380 3.380 3.380 3.380 3.380 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.770 1.646 1.652 1.818 1.824 1.750 1.736 1.812 1.738 1.704 1.710 1.716 1.892 1.848 1.854 1.930 1.936 1.942 1.818 1.904 1.910 1.916 1.852 1.788 1.794 1.870 1.876 1.882 2.008 2.014 1.890 1.906 2.468 2.477 2.486 2.525 2.534 2.543 2.502 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 2.870 3.005 2.950 3.035 3.250 4.000 4.000 4.000 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.120 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.380 3.380 3.380 3.400 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.770 1.646 1.732 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.716 1.892 1.848 1.854 1.930 1.936 1.942 1.818 1.904 1.910 1.916 1.852 1.788 1.794 1.870 1.876 1.882 2.008 2.014 1.890 1.906 2.468 2.477 2.486 2.525 2.534 2.543 2.502 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 2.870 3.005 2.950 3.035 3.250 4.000 4.000 4.000 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.120 3.900 3.800 3.800 3.540 3.540 3.540 3.380 3.380 3.380 3.380 3.380 3.400 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.770 1.646 1.732 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.716 1.892 1.848 1.854 1.930 1.936 1.942 1.818 1.904 1.910 1.916 1.852 1.788 1.794 1.870 1.876 1.882 2.008 2.014 1.890 1.906 2.468 2.477 2.486 2.525 2.534 2.543 2.502 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.327 4.186 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 4.000 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.900 3.800 3.800 3.800 3.540 3.540 3.380 3.380 3.380 3.380 3.380 3.400 3.400 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.770 1.646 1.732 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.716 1.892 1.848 1.854 1.930 1.936 1.942 1.818 1.904 1.910 1.846 1.852 1.788 1.794 1.870 1.876 1.882 2.008 2.014 1.890 1.906 2.468 2.477 2.486 2.525 2.534 2.543 2.502 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.147 4.286 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 4.000 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.900 3.800 3.800 3.540 3.540 3.540 3.380 3.380 3.380 3.380 3.400 3.400 3.400 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.690 1.696 1.702 1.758 1.764 1.770 1.646 1.732 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.716 1.892 1.848 1.854 1.930 1.936 1.942 1.818 1.904 1.910 1.846 1.852 1.788 1.794 1.870 1.876 1.882 2.008 2.014 1.840 1.906 2.468 2.477 2.486 2.525 2.534 2.543 2.502 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.147 4.286 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 4.000 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.800 3.800 3.540 3.540 3.540 3.380 3.380 3.380 3.380 3.380 3.400 3.400 3.900 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.704 1.710 1.766 1.772 1.638 1.644 1.690 1.696 1.702 1.758 1.764 1.770 1.646 1.732 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.716 1.892 1.848 1.854 1.930 1.936 1.942 1.818 1.904 1.910 1.846 1.852 1.788 1.794 1.870 1.876 1.882 2.008 2.014 1.840 1.906 2.468 2.477 2.486 2.525 2.534 2.543 2.502 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.147 4.286 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 4.000 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.800 3.800 3.540 3.540 3.540 3.380 3.380 3.380 3.380 3.400 3.400 3.400 3.900 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.654 1.710 1.766 1.772 1.638 1.644 1.690 1.696 1.702 1.758 1.764 1.770 1.646 1.732 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.930 1.936 1.942 1.818 1.904 1.910 1.846 1.782 1.788 1.794 1.870 1.876 1.882 2.008 1.884 1.840 1.906 2.468 2.477 2.486 2.525 2.534 2.543 2.502 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.147 4.286 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 4.000 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.800 3.540 3.540 3.540 3.380 3.380 3.380 3.380 3.380 3.400 3.400 3.900 4.200 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.798 1.654 1.710 1.766 1.772 1.638 1.644 1.690 1.696 1.702 1.758 1.764 1.640 1.646 1.732 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.930 1.936 1.942 1.818 1.904 1.910 1.846 1.782 1.788 1.794 1.870 1.876 1.882 2.008 1.884 1.840 1.906 2.468 2.477 2.486 2.525 2.534 2.543 2.502 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.147 4.286 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 4.000 4.000 4.000 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.800 3.540 3.540 3.380 3.380 3.380 3.380 3.380 3.400 3.400 3.400 4.200 4.200 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.766 1.772 1.638 1.644 1.690 1.696 1.702 1.758 1.764 1.640 1.646 1.732 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.904 1.910 1.846 1.782 1.788 1.794 1.870 1.876 1.882 2.008 1.884 1.840 1.906 2.468 2.477 2.516 2.525 2.534 2.543 2.502 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.147 4.286 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.540 3.540 3.540 3.380 3.380 3.380 3.380 3.400 3.400 3.400 3.900 4.200 4.300 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.766 1.772 1.638 1.644 1.690 1.696 1.702 1.758 1.764 1.640 1.646 1.732 1.818 1.824 1.750 1.686 1.812 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.904 1.910 1.846 1.782 1.788 1.794 1.870 1.876 1.882 2.008 1.884 1.900 2.459 2.468 2.477 2.516 2.525 2.534 2.543 2.502 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.147 4.286 2.825 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.800 3.540 3.540 3.380 3.380 3.380 3.380 3.380 3.400 3.400 3.900 4.200 4.200 4.300 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.766 1.772 1.638 1.644 1.690 1.696 1.702 1.758 1.764 1.770 1.646 1.732 1.818 1.824 1.750 1.686 1.742 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.846 1.782 1.788 1.794 1.870 1.876 1.882 2.008 1.834 1.900 2.459 2.468 2.477 2.516 2.525 2.534 2.543 2.502 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.147 4.286 2.825 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.540 3.540 3.380 3.380 3.380 3.380 3.380 3.400 3.400 3.400 3.900 4.200 4.300 4.300 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.766 1.772 1.638 1.644 1.690 1.696 1.702 1.758 1.764 1.770 1.646 1.732 1.818 1.824 1.750 1.686 1.742 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.846 1.782 1.788 1.794 1.870 1.876 1.882 2.008 1.834 1.900 2.459 2.468 2.477 2.516 2.525 2.534 2.543 2.502 2.511 2.630 2.549 2.518 2.527 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.147 4.286 2.825 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.540 3.540 3.380 3.380 3.380 3.380 3.380 3.400 3.400 3.900 4.200 4.200 4.300 4.300 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.766 1.772 1.638 1.644 1.690 1.696 1.702 1.758 1.764 1.770 1.646 1.732 1.818 1.824 1.750 1.686 1.742 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.846 1.782 1.788 1.794 1.870 1.876 1.882 2.008 1.834 1.900 2.459 2.468 2.477 2.516 2.525 2.534 2.543 2.502 2.511 2.630 2.549 2.518 2.647 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.147 4.286 2.825 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.540 3.380 3.380 3.380 3.380 3.380 3.400 3.400 3.400 4.200 4.200 4.300 4.300 4.300 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.766 1.772 1.638 1.644 1.690 1.696 1.702 1.758 1.764 1.770 1.646 1.732 1.818 1.824 1.750 1.686 1.742 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.846 1.782 1.788 1.794 1.870 1.876 2.002 2.008 1.834 1.900 2.459 2.468 2.477 2.516 2.525 2.534 2.543 2.502 2.511 2.630 2.549 2.518 2.647 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.147 4.286 2.825 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.540 3.380 3.380 3.380 3.380 3.400 3.400 3.400 3.900 4.200 4.300 4.300 4.300 3.300 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.766 1.772 1.638 1.644 1.690 1.696 1.702 1.758 1.764 1.770 1.646 1.732 1.818 1.824 1.750 1.686 1.742 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.846 1.782 1.788 1.794 1.870 1.876 2.002 2.008 1.834 1.900 2.459 2.468 2.477 2.516 2.525 2.534 2.543 2.502 2.511 2.630 2.549 2.518 2.647 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.147 4.286 2.825 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.380 3.380 3.380 3.380 3.400 3.400 3.900 4.200 4.200 4.300 4.300 4.300 3.300 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.716 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.770 1.646 1.732 1.818 1.824 1.830 1.686 1.742 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.846 1.782 1.788 1.794 1.870 1.876 2.002 2.008 1.834 1.900 2.459 2.468 2.477 2.516 2.525 2.534 2.493 2.502 2.511 2.630 2.549 2.518 2.647 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.147 4.286 2.825 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.380 3.380 3.380 3.400 3.400 3.400 4.200 4.200 4.300 4.300 4.300 3.300 3.300 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.716 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.770 1.646 1.732 1.818 1.824 1.830 1.686 1.742 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.846 1.782 1.788 1.794 1.870 1.876 2.002 2.008 1.834 1.900 2.459 2.468 2.477 2.516 2.525 2.534 2.493 2.502 2.511 2.630 2.509 2.518 2.647 2.656 2.665 2.674 2.683 2.692 2.641 2.650 4.109 4.288 4.147 4.286 2.825 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.380 3.380 3.400 3.400 3.400 3.900 4.200 4.200 4.300 4.300 3.300 3.300 3.300 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.716 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.770 1.646 1.732 1.818 1.824 1.830 1.686 1.742 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.846 1.782 1.788 1.794 1.870 1.876 2.002 2.008 1.834 1.900 2.459 2.468 2.477 2.516 2.525 2.534 2.493 2.502 2.511 2.630 2.509 2.518 2.647 2.656 2.665 2.674 2.683 2.692 2.641 4.070 4.109 4.288 4.147 4.286 2.825 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.380 3.380 3.400 3.400 3.900 4.200 4.200 4.300 4.300 4.300 3.300 3.300 3.200 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.716 1.772 1.638 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.646 1.732 1.818 1.824 1.830 1.686 1.742 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.860 1.936 1.942 1.818 1.794 1.910 1.846 1.782 1.788 1.794 1.870 1.876 2.002 2.008 1.834 1.900 2.459 2.468 2.507 2.516 2.525 2.534 2.493 2.502 2.511 2.630 2.509 2.518 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.109 4.288 4.147 4.286 2.825 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.380 3.400 3.400 3.400 4.200 4.200 4.300 4.300 4.300 3.300 3.300 3.300 3.200 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.716 1.772 1.638 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.646 1.732 1.818 1.824 1.830 1.686 1.742 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.930 1.936 1.942 1.818 1.794 1.910 1.846 1.782 1.788 1.794 1.870 1.876 2.002 2.008 1.834 1.900 2.459 2.468 2.507 2.516 2.525 2.534 2.493 2.502 2.621 2.540 2.509 2.518 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.109 4.288 4.147 4.286 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.650 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.380 3.400 3.400 3.900 4.200 4.200 4.300 4.300 3.300 3.300 3.300 3.200 3.200 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.716 1.772 1.638 1.644 1.650 1.696 1.702 1.708 1.764 1.770 1.646 1.732 1.818 1.824 1.830 1.686 1.812 1.738 1.744 1.710 1.746 1.892 1.848 1.854 1.930 1.936 1.942 1.818 1.794 1.910 1.846 1.782 1.788 1.794 1.870 1.876 2.002 2.008 1.834 1.900 2.459 2.468 2.507 2.516 2.525 2.534 2.493 2.502 2.621 2.540 2.509 2.518 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.109 4.288 4.147 2.810 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.975 3.140 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.650 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.400 3.400 3.900 4.200 4.200 4.300 4.300 4.300 3.300 3.300 3.200 3.200 3.200 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.716 1.772 1.638 1.644 1.650 1.696 1.702 1.708 1.764 1.640 1.726 1.732 1.818 1.824 1.830 1.686 1.812 1.738 1.704 1.710 1.746 1.892 1.848 1.854 1.930 1.936 1.942 1.818 1.794 1.910 1.846 1.782 1.788 1.794 1.870 1.876 2.002 2.008 1.894 1.900 2.459 2.468 2.507 2.516 2.525 2.534 2.493 2.502 2.621 2.540 2.509 2.518 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.109 4.288 4.147 2.810 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.650 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.400 3.400 3.400 4.200 4.200 4.300 4.300 4.300 3.300 3.300 3.300 3.200 3.200 3.200 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.716 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.640 1.726 1.732 1.818 1.824 1.830 1.686 1.812 1.738 1.704 1.710 1.746 1.892 1.848 1.854 1.930 1.936 1.812 1.818 1.904 1.910 1.846 1.782 1.788 1.794 1.870 1.876 2.002 2.008 1.894 1.900 2.459 2.468 2.507 2.516 2.525 2.534 2.493 2.502 2.621 2.540 2.509 2.518 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.288 4.147 2.810 2.825 2.740 3.105 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 3.035 3.250 3.265 3.280 4.000 2.500 2.650 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.400 3.400 3.900 4.200 4.200 4.300 4.300 3.300 3.300 3.300 3.200 3.200 3.200 3.200 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.640 1.726 1.732 1.818 1.824 1.830 1.686 1.812 1.738 1.704 1.710 1.746 1.892 1.848 1.854 1.930 1.936 1.812 1.788 1.904 1.910 1.846 1.782 1.788 1.794 1.870 1.876 2.002 1.828 1.894 2.450 2.459 2.468 2.507 2.516 2.525 2.534 2.493 2.502 2.621 2.540 2.509 2.518 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.288 4.147 2.810 2.725 2.740 3.105 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 3.035 3.250 3.265 3.280 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.400 3.900 4.200 4.200 4.300 4.300 4.300 3.300 3.300 3.200 3.200 3.200 3.200 3.050 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.640 1.726 1.732 1.818 1.824 1.750 1.686 1.812 1.738 1.704 1.740 1.886 1.892 1.848 1.854 1.930 1.936 1.812 1.788 1.904 1.910 1.846 1.782 1.788 1.794 1.870 1.876 2.002 1.828 1.894 2.450 2.459 2.468 2.507 2.516 2.525 2.534 2.493 2.502 2.621 2.540 2.509 2.518 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.288 4.147 2.810 2.725 2.740 3.105 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 2.965 3.250 3.265 3.280 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.900 4.200 4.200 4.300 4.300 4.300 3.300 3.300 3.300 3.200 3.200 3.200 3.200 3.050 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.766 1.772 1.638 1.644 1.650 1.696 1.702 1.758 1.764 1.640 1.726 1.732 1.818 1.824 1.750 1.686 1.812 1.738 1.704 1.740 1.886 1.892 1.848 1.854 1.930 1.936 1.812 1.788 1.904 1.910 1.846 1.782 1.788 1.794 1.870 1.876 2.002 1.828 1.894 2.450 2.459 2.468 2.507 2.516 2.525 2.534 2.493 2.502 2.621 2.540 2.509 2.518 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.288 4.147 2.810 2.725 2.740 3.105 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 2.965 3.250 3.265 3.280 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.200 4.200 4.200 4.300 4.300 4.300 3.300 3.300 3.200 3.200 3.200 3.200 3.050 3.050 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.654 1.710 1.766 1.772 1.638 1.644 1.690 1.696 1.702 1.758 1.764 1.640 1.726 1.812 1.818 1.824 1.750 1.736 1.732 1.738 1.704 1.740 1.886 1.892 1.848 1.854 1.930 1.936 1.812 1.788 1.904 1.910 1.846 1.782 1.788 1.794 1.870 1.876 2.002 1.828 1.894 2.450 2.459 2.468 2.507 2.516 2.525 2.534 2.493 2.502 2.621 2.540 2.509 2.518 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.288 4.147 2.810 2.725 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 2.965 3.250 3.265 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.900 4.200 4.200 4.300 4.300 4.300 3.300 3.300 3.200 3.200 3.200 3.200 3.200 3.050 3.550 1.500 1.500 1.662 1.668 1.674 1.680 1.786 1.792 1.648 1.704 1.710 1.766 1.772 1.638 1.644 1.690 1.696 1.702 1.758 1.764 1.640 1.726 1.812 1.818 1.824 1.750 1.736 1.732 1.738 1.704 1.740 1.886 1.892 1.848 1.924 1.930 1.936 1.812 1.788 1.904 1.840 1.846 1.782 1.788 1.864 1.870 1.876 2.002 1.828 1.894 2.450 2.459 2.468 2.507 2.516 2.525 2.534 2.493 2.502 2.621 2.540 2.509 2.518 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.288 4.147 2.810 2.725 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 2.965 3.250 3.265 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.200 4.200 4.300 4.300 4.300 3.300 3.300 3.300 3.200 3.200 3.200 3.200 3.050 3.550 3.550 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.642 1.648 1.704 1.710 1.766 1.772 1.638 1.644 1.690 1.696 1.702 1.758 1.764 1.640 1.726 1.812 1.818 1.824 1.750 1.736 1.732 1.738 1.704 1.740 1.886 1.892 1.848 1.924 1.930 1.936 1.812 1.788 1.904 1.840 1.846 1.782 1.788 1.864 1.870 1.876 2.002 1.828 1.894 2.450 2.459 2.468 2.507 2.516 2.525 2.534 2.493 2.502 2.621 2.540 2.509 2.518 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.288 4.247 2.810 2.725 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 2.965 3.250 3.265 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.200 4.300 4.300 4.300 3.300 3.300 3.300 3.200 3.200 3.200 3.200 3.050 3.050 3.550 3.550 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.642 1.648 1.704 1.710 1.766 1.772 1.638 1.644 1.690 1.696 1.702 1.758 1.764 1.640 1.726 1.812 1.818 1.824 1.750 1.736 1.732 1.738 1.704 1.740 1.886 1.842 1.848 1.924 1.930 1.806 1.812 1.898 1.904 1.840 1.776 1.782 1.788 1.864 1.870 1.996 2.002 1.828 1.894 2.450 2.459 2.468 2.507 2.516 2.525 2.534 2.493 2.502 2.621 2.540 2.509 2.518 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.288 4.247 2.810 2.725 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 2.965 3.250 3.265 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.200 4.300 4.300 4.300 3.300 3.300 3.300 3.200 3.200 3.200 3.200 3.050 3.550 3.550 3.550 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.642 1.648 1.704 1.710 1.766 1.772 1.638 1.644 1.690 1.696 1.702 1.758 1.634 1.720 1.726 1.812 1.818 1.824 1.680 1.736 1.732 1.698 1.704 1.740 1.886 1.842 1.848 1.924 1.930 1.806 1.812 1.898 1.904 1.840 1.776 1.782 1.788 1.864 1.870 1.996 2.002 1.828 1.894 2.450 2.459 2.468 2.507 2.516 2.525 2.534 2.493 2.502 2.621 2.540 2.509 2.638 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.288 4.247 2.810 2.725 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 2.965 3.250 3.265 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.300 4.300 4.300 3.300 3.300 3.300 3.200 3.200 3.200 3.200 3.050 3.050 3.550 3.550 3.550 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.642 1.698 1.704 1.760 1.766 1.772 1.638 1.644 1.690 1.696 1.752 1.758 1.634 1.720 1.726 1.812 1.818 1.824 1.680 1.806 1.732 1.698 1.704 1.880 1.886 1.842 1.848 1.924 1.930 1.806 1.812 1.898 1.834 1.840 1.776 1.782 1.788 1.864 1.870 1.996 2.002 1.828 1.894 2.450 2.459 2.468 2.507 2.516 2.525 2.534 2.493 2.502 2.621 2.540 2.509 2.638 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.288 4.247 2.810 2.725 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.925 2.960 2.975 2.870 3.005 2.950 2.965 3.250 3.265 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.300 4.300 3.300 3.300 3.300 3.200 3.200 3.200 3.200 3.200 3.050 3.550 3.550 3.550 3.550 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.642 1.698 1.704 1.760 1.766 1.632 1.638 1.644 1.690 1.696 1.752 1.758 1.634 1.720 1.726 1.812 1.818 1.824 1.680 1.806 1.732 1.698 1.734 1.880 1.886 1.842 1.848 1.924 1.930 1.806 1.782 1.898 1.834 1.840 1.776 1.782 1.788 1.864 1.870 1.996 2.002 1.828 1.894 2.450 2.459 2.468 2.507 2.516 2.525 2.534 2.493 2.502 2.621 2.540 2.509 2.638 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.288 4.247 2.810 2.725 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.925 2.960 2.975 2.870 3.005 2.950 2.965 3.250 3.265 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.300 3.300 3.300 3.300 3.200 3.200 3.200 3.200 3.200 3.050 3.050 3.550 3.550 3.550 3.250 1.500 1.500 1.662 1.668 1.674 1.780 1.786 1.692 1.698 1.704 1.760 1.766 1.632 1.638 1.684 1.690 1.696 1.752 1.758 1.634 1.720 1.726 1.812 1.818 1.824 1.680 1.806 1.732 1.698 1.734 1.880 1.886 1.842 1.848 1.924 1.930 1.806 1.782 1.898 1.834 1.840 1.776 1.782 1.788 1.864 1.870 1.996 2.002 1.828 1.894 2.450 2.459 2.468 2.507 2.516 2.525 2.484 2.493 2.502 2.621 2.540 2.509 2.638 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.288 4.247 2.810 2.725 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.925 2.960 2.975 2.870 3.005 2.950 2.965 3.050 3.265 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.300 3.300 3.300 3.300 3.200 3.200 3.200 3.200 3.050 3.050 3.550 3.550 3.550 3.550 3.250 1.500 1.500 1.662 1.668 1.774 1.780 1.786 1.692 1.698 1.704 1.760 1.766 1.632 1.638 1.684 1.690 1.696 1.752 1.758 1.634 1.720 1.806 1.812 1.818 1.744 1.680 1.806 1.732 1.698 1.734 1.880 1.886 1.842 1.918 1.924 1.930 1.806 1.892 1.898 1.834 1.770 1.776 1.782 1.858 1.864 1.870 1.996 1.872 1.828 1.894 2.450 2.459 2.468 2.507 2.516 2.525 2.484 2.493 2.502 2.621 2.540 2.509 2.638 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.108 4.247 2.810 2.725 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.925 2.960 2.975 2.870 3.005 2.950 2.965 3.050 3.265 4.000 4.000 2.500 2.500 2.440 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.300 3.300 3.300 3.200 3.200 3.200 3.200 3.200 3.050 3.050 3.550 3.550 3.550 3.250 3.250 1.500 1.500 1.662 1.668 1.774 1.780 1.786 1.692 1.698 1.704 1.760 1.766 1.632 1.638 1.684 1.690 1.696 1.752 1.758 1.634 1.720 1.806 1.812 1.818 1.744 1.730 1.726 1.732 1.698 1.734 1.880 1.836 1.842 1.918 1.924 1.800 1.806 1.892 1.898 1.834 1.770 1.776 1.782 1.858 1.864 1.870 1.996 1.872 1.828 1.894 2.450 2.459 2.498 2.507 2.516 2.525 2.484 2.493 2.502 2.621 2.500 2.509 2.638 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.108 4.247 2.810 2.725 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.925 2.960 2.975 2.870 3.005 2.950 2.965 3.050 3.265 4.000 4.000 2.500 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.300 3.300 3.200 3.200 3.200 3.200 3.200 3.050 3.050 3.550 3.550 3.550 3.250 3.250 3.250 1.500 1.500 1.662 1.668 1.774 1.780 1.636 1.692 1.698 1.704 1.760 1.766 1.632 1.638 1.684 1.690 1.696 1.752 1.758 1.714 1.720 1.806 1.812 1.818 1.744 1.730 1.726 1.732 1.698 1.734 1.880 1.836 1.842 1.918 1.924 1.800 1.776 1.892 1.898 1.834 1.770 1.776 1.782 1.858 1.864 1.870 1.996 1.872 1.828 1.894 2.450 2.459 2.498 2.507 2.516 2.525 2.484 2.493 2.502 2.621 2.500 2.509 2.638 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.108 4.247 2.810 2.725 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.925 2.960 2.975 2.870 3.005 2.950 2.965 3.050 3.265 4.000 4.000 2.500 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.300 3.300 3.200 3.200 3.200 3.200 3.050 3.050 3.050 3.550 3.550 3.550 3.250 3.250 3.900 1.500 1.500 1.662 1.668 1.774 1.780 1.686 1.692 1.698 1.704 1.760 1.766 1.632 1.638 1.684 1.690 1.746 1.752 1.628 1.714 1.720 1.806 1.812 1.818 1.744 1.730 1.726 1.732 1.698 1.874 1.880 1.836 1.842 1.918 1.924 1.800 1.776 1.892 1.828 1.834 1.770 1.776 1.782 1.858 1.864 1.870 1.996 1.872 1.828 1.894 2.450 2.459 2.498 2.507 2.516 2.525 2.484 2.493 2.612 2.621 2.500 2.509 2.638 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.108 4.247 2.810 2.725 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.925 2.960 2.975 2.870 3.005 2.950 2.965 3.050 3.265 4.000 4.000 2.500 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.300 3.200 3.200 3.200 3.200 3.200 3.050 3.050 3.550 3.550 3.550 3.250 3.250 3.250 3.700 1.500 1.500 1.662 1.768 1.774 1.780 1.686 1.692 1.698 1.754 1.760 1.626 1.632 1.638 1.684 1.690 1.746 1.752 1.628 1.714 1.720 1.806 1.812 1.818 1.674 1.800 1.726 1.732 1.728 1.874 1.880 1.836 1.842 1.918 1.924 1.800 1.776 1.892 1.828 1.834 1.770 1.776 1.782 1.858 1.864 1.990 1.996 1.872 1.828 1.894 2.450 2.459 2.498 2.507 2.516 2.525 2.484 2.493 2.612 2.531 2.500 2.509 2.638 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.108 4.247 2.810 2.725 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.925 2.960 2.975 2.870 3.005 2.950 2.965 3.050 3.265 4.000 4.000 2.500 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.200 3.200 3.200 3.200 3.200 3.050 3.050 3.550 3.550 3.550 3.550 3.250 3.250 3.900 3.700 1.500 1.500 1.662 1.768 1.774 1.780 1.686 1.692 1.698 1.754 1.760 1.626 1.632 1.678 1.684 1.690 1.746 1.752 1.628 1.714 1.720 1.806 1.812 1.818 1.674 1.800 1.726 1.692 1.728 1.874 1.880 1.836 1.842 1.918 1.924 1.800 1.886 1.892 1.828 1.764 1.770 1.776 1.782 1.858 1.864 1.990 1.996 1.872 1.828 2.441 2.450 2.459 2.498 2.507 2.516 2.525 2.484 2.493 2.612 2.531 2.500 2.509 2.638 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.108 4.247 2.810 2.725 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.925 2.960 2.975 2.870 3.005 2.950 2.965 3.050 3.265 4.000 4.000 2.500 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.200 3.200 3.200 3.200 3.050 3.050 3.050 3.550 3.550 3.550 3.250 3.250 3.900 3.700 3.700 1.500 1.500 1.662 1.768 1.774 1.780 1.686 1.692 1.698 1.754 1.760 1.626 1.632 1.678 1.684 1.690 1.746 1.752 1.628 1.714 1.720 1.806 1.812 1.738 1.674 1.800 1.726 1.692 1.728 1.874 1.880 1.836 1.842 1.918 1.794 1.770 1.886 1.892 1.828 1.764 1.770 1.776 1.852 1.858 1.864 1.990 1.996 1.872 1.828 2.441 2.450 2.459 2.498 2.507 2.516 2.525 2.484 2.493 2.612 2.531 2.500 2.509 2.638 2.647 2.656 2.665 2.674 2.683 2.632 2.641 4.070 4.249 4.108 4.247 2.810 2.725 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.925 2.960 2.975 2.870 3.005 2.950 2.965 3.050 3.265 4.000 4.000 2.500 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.200 3.200 3.200 3.200 3.050 3.050 3.550 3.550 3.550 3.250 3.250 3.250 3.900 3.700 3.700 1.500 1.500 1.662 1.768 1.774 1.780 1.686 1.692 1.698 1.754 1.760 1.626 1.632 1.678 1.684 1.690 1.746 1.752 1.708 1.714 1.800 1.806 1.812 1.738 1.674 1.800 1.726 1.692 1.728 1.874 1.830 1.836 1.842 1.918 1.794 1.770 1.886 1.892 1.828 1.764 1.770 1.776 1.852 1.858 1.864 1.990 1.996 1.822 1.888 2.441 2.450 2.459 2.498 2.507 2.516 2.525 2.484 2.493 2.612 2.531 2.500 2.509 2.638 2.647 2.656 2.665 2.674 2.623 2.632 2.641 4.070 4.249 4.108 4.247 2.810 2.725 2.740 2.835 2.850 2.835 2.880 2.895 2.910 2.925 2.960 2.975 2.870 3.005 2.950 2.965 3.050 3.265 4.000 4.000 2.500 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.200 3.200 3.200 3.050 3.050 3.050 3.550 3.550 3.550 3.250 3.250 3.900 3.700 3.700 3.700 1.500 1.500 1.762 1.768 1.774 1.680 1.686 1.692 1.698 1.754 1.760 1.626 1.632 1.678 1.684 1.740 1.746 1.622 1.708 1.714 1.800 1.806 1.812 1.738 1.724 1.720 1.726 1.692 1.868 1.874 1.830 1.836 1.912 1.918 1.794 1.770 1.886 1.822 1.828 1.764 1.770 1.776 1.852 1.858 1.864 1.990 1.866 1.822 1.888 2.441 2.450 2.459 2.498 2.507 2.516 2.525 2.484 2.493 2.612 2.531 2.500 2.509 2.638 2.647 2.656 2.665 2.674 2.623 2.632 2.641 4.070 4.249 4.108 4.247 2.810 2.725 3.090 2.835 2.820 2.835 2.880 2.895 2.910 2.925 2.960 2.975 2.870 3.005 2.950 2.965 3.050 3.265 4.000 4.000 2.500 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.200 3.200 3.050 3.050 3.050 3.550 3.550 3.550 3.250 3.250 3.250 3.900 3.700 3.700 3.600 1.500 1.500 1.762 1.768 1.774 1.680 1.686 1.692 1.698 1.754 1.760 1.626 1.632 1.678 1.684 1.740 1.746 1.622 1.708 1.714 1.800 1.806 1.812 1.738 1.724 1.720 1.726 1.692 1.868 1.874 1.830 1.836 1.912 1.918 1.794 1.880 1.886 1.822 1.758 1.764 1.770 1.776 1.852 1.858 1.864 1.990 1.866 1.822 1.888 2.441 2.450 2.459 2.498 2.507 2.516 2.475 2.484 2.493 2.612 2.531 2.500 2.509 2.638 2.647 2.656 2.665 2.674 2.623 2.632 2.641 4.070 4.249 4.108 2.795 2.810 2.725 3.090 2.835 2.820 2.835 2.880 2.895 2.910 2.925 2.960 2.975 2.870 3.155 2.950 2.965 3.050 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.200 3.200 3.050 3.050 3.550 3.550 3.550 3.550 3.250 3.250 3.900 3.700 3.700 3.700 3.600 1.500 1.500 1.762 1.768 1.774 1.680 1.686 1.692 1.698 1.754 1.620 1.626 1.632 1.678 1.684 1.740 1.746 1.622 1.708 1.714 1.800 1.806 1.812 1.668 1.724 1.720 1.726 1.722 1.868 1.874 1.830 1.836 1.912 1.918 1.764 1.880 1.886 1.822 1.758 1.764 1.770 1.776 1.852 1.858 1.864 1.990 1.866 1.822 1.888 2.441 2.450 2.459 2.498 2.507 2.516 2.475 2.484 2.493 2.612 2.531 2.500 2.509 2.638 2.647 2.656 2.665 2.674 2.623 2.632 4.031 4.070 4.249 4.108 2.795 2.810 2.725 3.090 2.835 2.820 2.835 2.880 2.895 2.910 2.925 2.960 2.975 2.870 3.155 2.950 2.965 3.050 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.200 3.050 3.050 3.050 3.550 3.550 3.550 3.250 3.250 3.250 3.900 3.700 3.700 3.600 3.600 1.500 1.500 1.762 1.768 1.774 1.680 1.686 1.692 1.748 1.754 1.620 1.626 1.672 1.678 1.684 1.740 1.746 1.622 1.708 1.714 1.800 1.806 1.812 1.668 1.794 1.720 1.726 1.722 1.868 1.874 1.830 1.836 1.912 1.788 1.764 1.880 1.886 1.822 1.758 1.764 1.770 1.846 1.852 1.858 1.864 1.990 1.866 1.822 1.888 2.441 2.450 2.489 2.498 2.507 2.516 2.475 2.484 2.493 2.612 2.531 2.500 2.629 2.638 2.647 2.656 2.665 2.674 2.623 2.632 4.031 4.210 4.249 4.108 2.795 2.810 2.725 3.090 2.835 2.820 2.835 2.880 2.895 2.910 2.925 2.960 2.975 2.870 3.155 2.950 2.965 3.250 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.200 3.050 3.050 3.050 3.550 3.550 3.550 3.550 3.250 3.250 3.900 3.700 3.700 3.600 3.600 3.600 1.500 1.500 1.762 1.768 1.624 1.680 1.686 1.692 1.748 1.754 1.620 1.626 1.672 1.678 1.684 1.740 1.746 1.622 1.708 1.794 1.800 1.806 1.732 1.668 1.794 1.720 1.726 1.722 1.868 1.874 1.830 1.836 1.912 1.788 1.764 1.880 1.816 1.822 1.758 1.764 1.770 1.846 1.852 1.858 1.984 1.990 1.866 1.822 1.888 2.441 2.450 2.489 2.498 2.507 2.516 2.475 2.484 2.493 2.612 2.531 2.500 2.629 2.638 2.647 2.656 2.665 2.674 2.623 2.632 4.031 4.210 4.249 4.208 2.795 2.810 2.725 3.090 2.835 2.820 2.835 2.880 2.895 2.910 2.925 2.960 2.975 2.870 3.155 2.950 2.965 3.250 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.200 3.050 3.050 3.050 3.550 3.550 3.550 3.250 3.250 3.250 3.900 3.700 3.700 3.600 3.600 3.350 1.500 1.500 1.762 1.768 1.674 1.680 1.686 1.692 1.748 1.754 1.620 1.626 1.672 1.678 1.734 1.740 1.616 1.622 1.708 1.794 1.800 1.806 1.732 1.718 1.794 1.720 1.686 1.722 1.868 1.874 1.830 1.836 1.912 1.788 1.764 1.880 1.816 1.822 1.758 1.764 1.770 1.846 1.852 1.858 1.984 1.990 1.866 1.822 1.888 2.441 2.450 2.489 2.498 2.507 2.516 2.475 2.484 2.493 2.612 2.491 2.500 2.629 2.638 2.647 2.656 2.665 2.674 2.623 2.632 4.031 4.210 4.249 4.208 2.795 2.810 2.725 3.090 2.835 2.820 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.155 2.950 2.965 3.250 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.050 3.050 3.050 3.550 3.550 3.550 3.250 3.250 3.250 3.900 3.700 3.700 3.600 3.600 3.350 3.350 1.500 1.500 1.762 1.768 1.674 1.680 1.686 1.692 1.748 1.754 1.620 1.626 1.672 1.678 1.734 1.740 1.616 1.622 1.708 1.794 1.800 1.806 1.732 1.718 1.714 1.720 1.686 1.862 1.868 1.824 1.830 1.836 1.912 1.788 1.874 1.880 1.816 1.822 1.758 1.764 1.770 1.846 1.852 1.858 1.984 1.990 1.866 1.822 1.888 2.441 2.450 2.489 2.498 2.507 2.516 2.475 2.484 2.493 2.612 2.491 2.500 2.629 2.638 2.647 2.656 2.665 2.674 2.623 2.632 4.031 4.210 4.249 4.208 2.795 2.710 2.725 3.090 2.835 2.820 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.155 2.950 2.965 3.250 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.050 3.050 3.550 3.550 3.550 3.550 3.250 3.250 3.250 3.700 3.700 3.700 3.600 3.600 3.350 3.350 1.500 1.500 1.762 1.768 1.674 1.680 1.686 1.692 1.748 1.754 1.620 1.626 1.672 1.678 1.734 1.740 1.616 1.622 1.708 1.794 1.800 1.806 1.732 1.718 1.714 1.720 1.686 1.862 1.868 1.824 1.830 1.906 1.912 1.758 1.874 1.880 1.816 1.752 1.758 1.764 1.770 1.846 1.852 1.858 1.984 1.860 1.866 1.822 1.888 2.441 2.450 2.489 2.498 2.507 2.516 2.475 2.484 2.603 2.612 2.491 2.500 2.629 2.638 2.647 2.656 2.665 2.674 2.623 2.632 4.031 4.210 4.069 4.208 2.795 2.710 2.725 3.090 2.835 2.820 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.155 2.950 2.965 3.250 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.050 3.050 3.550 3.550 3.550 3.250 3.250 3.250 3.900 3.700 3.700 3.600 3.600 3.350 3.350 3.350 1.500 1.500 1.762 1.618 1.674 1.680 1.686 1.742 1.748 1.614 1.620 1.666 1.672 1.678 1.734 1.740 1.616 1.622 1.708 1.794 1.800 1.806 1.662 1.718 1.714 1.720 1.686 1.862 1.868 1.824 1.830 1.906 1.782 1.758 1.874 1.880 1.816 1.752 1.758 1.764 1.770 1.846 1.852 1.858 1.984 1.860 1.816 1.882 2.432 2.441 2.450 2.489 2.498 2.507 2.516 2.475 2.484 2.603 2.522 2.491 2.500 2.629 2.638 2.647 2.656 2.665 2.674 2.623 2.632 4.031 4.210 4.069 4.208 2.795 2.710 2.725 3.090 2.835 2.820 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.155 2.950 2.965 3.250 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.050 3.550 3.550 3.550 3.550 3.250 3.250 3.250 3.700 3.700 3.700 3.600 3.600 3.350 3.350 3.200 1.500 1.500 1.762 1.668 1.674 1.680 1.686 1.742 1.748 1.614 1.620 1.666 1.672 1.678 1.734 1.740 1.616 1.622 1.788 1.794 1.800 1.726 1.662 1.788 1.714 1.720 1.716 1.862 1.868 1.824 1.830 1.906 1.782 1.758 1.874 1.880 1.816 1.752 1.758 1.764 1.840 1.846 1.852 1.858 1.984 1.860 1.816 1.882 2.432 2.441 2.450 2.489 2.498 2.507 2.516 2.475 2.484 2.603 2.522 2.491 2.500 2.629 2.638 2.647 2.656 2.665 2.674 2.623 2.632 4.031 4.210 4.069 4.208 2.795 2.710 2.725 2.820 2.835 2.820 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.155 2.950 2.965 3.250 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.050 3.550 3.550 3.550 3.250 3.250 3.250 3.900 3.700 3.700 3.600 3.600 3.350 3.350 3.350 3.200 1.500 1.500 1.762 1.668 1.674 1.680 1.686 1.742 1.748 1.614 1.620 1.666 1.672 1.728 1.734 1.610 1.616 1.622 1.788 1.794 1.800 1.726 1.712 1.788 1.714 1.720 1.716 1.862 1.868 1.824 1.830 1.906 1.782 1.758 1.874 1.810 1.816 1.752 1.758 1.764 1.840 1.846 1.852 1.858 1.984 1.860 1.816 1.882 2.432 2.441 2.480 2.489 2.498 2.507 2.516 2.475 2.484 2.603 2.522 2.491 2.500 2.629 2.638 2.647 2.656 2.665 2.674 2.623 2.632 4.031 4.210 4.069 4.208 2.795 2.710 2.725 2.820 2.835 2.820 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.155 2.950 2.965 3.250 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.550 3.550 3.550 3.550 3.250 3.250 3.900 3.700 3.700 3.600 3.600 3.600 3.350 3.350 3.200 3.200 1.500 1.500 1.662 1.668 1.674 1.680 1.686 1.742 1.748 1.614 1.620 1.666 1.672 1.728 1.734 1.610 1.616 1.702 1.788 1.794 1.800 1.726 1.712 1.788 1.714 1.720 1.716 1.862 1.868 1.824 1.830 1.906 1.782 1.758 1.874 1.810 1.816 1.752 1.758 1.764 1.840 1.846 1.852 1.978 1.984 1.860 1.816 1.882 2.432 2.441 2.480 2.489 2.498 2.507 2.466 2.475 2.484 2.603 2.522 2.491 2.500 2.629 2.638 2.647 2.656 2.665 2.674 2.623 2.632 4.031 4.210 4.069 4.208 2.795 2.710 2.725 2.820 2.835 2.820 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.155 2.950 2.965 3.250 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.550 3.550 3.550 3.250 3.250 3.250 3.900 3.700 3.700 3.600 3.600 3.350 3.350 3.350 3.200 3.200 1.500 1.500 1.662 1.668 1.674 1.680 1.686 1.742 1.748 1.614 1.620 1.666 1.672 1.728 1.734 1.610 1.616 1.702 1.788 1.794 1.800 1.726 1.712 1.708 1.714 1.680 1.716 1.862 1.868 1.824 1.830 1.906 1.782 1.868 1.874 1.810 1.816 1.752 1.758 1.764 1.840 1.846 1.852 1.978 1.984 1.860 1.816 1.882 2.432 2.441 2.480 2.489 2.498 2.507 2.466 2.475 2.484 2.603 2.522 2.491 2.620 2.629 2.638 2.647 2.656 2.665 2.674 2.623 2.632 4.031 4.210 4.069 4.208 2.795 2.710 2.725 2.820 2.835 2.820 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 2.965 3.250 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.550 3.550 3.550 3.250 3.250 3.900 3.700 3.700 3.600 3.600 3.350 3.350 3.350 3.200 3.200 3.600 1.500 1.500 1.662 1.668 1.674 1.680 1.736 1.742 1.748 1.614 1.660 1.666 1.672 1.728 1.734 1.610 1.616 1.782 1.788 1.794 1.800 1.656 1.712 1.708 1.714 1.680 1.856 1.862 1.818 1.824 1.830 1.906 1.782 1.868 1.874 1.810 1.816 1.752 1.758 1.764 1.840 1.846 1.852 1.978 1.984 1.860 1.816 1.882 2.432 2.441 2.480 2.489 2.498 2.507 2.466 2.475 2.484 2.603 2.482 2.491 2.620 2.629 2.638 2.647 2.656 2.665 2.614 2.623 3.992 4.031 4.210 4.069 4.208 2.795 2.710 2.725 2.820 2.835 2.820 2.835 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 2.965 3.250 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.550 3.550 3.250 3.250 3.250 3.700 3.700 3.700 3.600 3.600 3.350 3.350 3.350 3.200 3.600 3.600 1.500 1.500 1.662 1.668 1.674 1.680 1.736 1.742 1.608 1.614 1.660 1.666 1.672 1.728 1.734 1.610 1.616 1.782 1.788 1.794 1.800 1.656 1.782 1.708 1.714 1.680 1.856 1.862 1.818 1.824 1.900 1.776 1.752 1.868 1.874 1.810 1.816 1.752 1.758 1.764 1.840 1.846 1.852 1.978 1.854 1.810 1.816 2.423 2.432 2.441 2.480 2.489 2.498 2.507 2.466 2.475 2.484 2.603 2.482 2.491 2.620 2.629 2.638 2.647 2.656 2.665 2.614 2.623 3.992 4.171 4.210 4.069 2.780 2.795 2.710 2.725 2.820 2.835 2.820 2.865 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 2.965 3.250 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.550 3.550 3.250 3.250 3.900 3.700 3.700 3.600 3.600 3.350 3.350 3.350 3.200 3.200 3.600 3.600 1.500 1.500 1.662 1.668 1.674 1.680 1.736 1.742 1.608 1.614 1.660 1.666 1.722 1.728 1.604 1.610 1.696 1.782 1.788 1.794 1.720 1.656 1.782 1.708 1.714 1.710 1.856 1.862 1.818 1.824 1.900 1.776 1.752 1.868 1.874 1.810 1.816 1.752 1.758 1.834 1.840 1.846 1.852 1.978 1.854 1.810 1.876 2.423 2.432 2.441 2.480 2.489 2.498 2.507 2.466 2.475 2.594 2.603 2.482 2.491 2.620 2.629 2.638 2.647 2.656 2.665 2.614 2.623 3.992 4.171 4.210 4.069 2.780 2.795 2.710 2.725 2.820 2.835 2.820 2.865 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 2.965 3.250 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.550 3.250 3.250 3.250 3.700 3.700 3.600 3.600 3.600 3.350 3.350 3.200 3.200 3.600 3.600 3.600 1.500 1.500 1.662 1.668 1.674 1.680 1.736 1.742 1.608 1.614 1.660 1.666 1.722 1.728 1.604 1.610 1.696 1.782 1.788 1.794 1.720 1.656 1.782 1.708 1.714 1.710 1.856 1.862 1.818 1.824 1.900 1.776 1.752 1.868 1.804 1.810 1.816 1.752 1.758 1.834 1.840 1.846 1.852 1.978 1.854 1.810 1.876 2.423 2.432 2.441 2.480 2.489 2.498 2.507 2.466 2.475 2.594 2.513 2.482 2.491 2.620 2.629 2.638 2.647 2.656 2.665 2.614 2.623 3.992 4.171 4.210 4.169 2.780 2.795 2.710 2.725 2.820 2.835 2.820 2.865 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 2.965 3.050 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.550 3.250 3.250 3.900 3.700 3.700 3.600 3.600 3.350 3.350 3.350 3.200 3.200 3.600 3.600 4.120 1.500 1.500 1.662 1.668 1.674 1.680 1.736 1.742 1.608 1.614 1.660 1.666 1.722 1.728 1.604 1.610 1.776 1.782 1.788 1.794 1.720 1.706 1.782 1.708 1.714 1.710 1.856 1.862 1.818 1.824 1.900 1.776 1.752 1.868 1.804 1.810 1.816 1.752 1.758 1.834 1.840 1.846 1.852 1.978 1.854 1.810 1.876 2.423 2.432 2.471 2.480 2.489 2.498 2.507 2.466 2.475 2.594 2.513 2.482 2.491 2.620 2.629 2.638 2.647 2.656 2.665 2.614 2.623 3.992 4.171 4.210 4.169 2.780 2.795 2.710 2.725 2.820 2.835 2.820 2.865 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 2.965 3.050 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.250 3.250 3.900 3.700 3.700 3.600 3.600 3.350 3.350 3.350 3.200 3.200 3.600 3.600 3.600 4.440 1.500 1.500 1.662 1.668 1.674 1.730 1.736 1.602 1.608 1.654 1.660 1.666 1.722 1.728 1.604 1.610 1.776 1.782 1.788 1.794 1.720 1.706 1.702 1.708 1.674 1.710 1.856 1.862 1.818 1.824 1.900 1.776 1.862 1.868 1.804 1.810 1.816 1.752 1.758 1.834 1.840 1.846 1.972 1.978 1.854 1.810 1.876 2.423 2.432 2.471 2.480 2.489 2.498 2.457 2.466 2.475 2.594 2.513 2.482 2.491 2.620 2.629 2.638 2.647 2.656 2.665 2.614 2.623 3.992 4.171 4.030 4.169 2.780 2.695 2.710 3.075 2.820 2.835 2.820 2.865 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 3.035 3.050 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.250 3.250 3.900 3.700 3.700 3.600 3.600 3.350 3.350 3.350 3.200 3.600 3.600 3.600 4.120 4.440 1.500 1.500 1.662 1.668 1.674 1.730 1.736 1.602 1.608 1.654 1.660 1.666 1.722 1.728 1.604 1.690 1.776 1.782 1.788 1.794 1.650 1.706 1.702 1.708 1.704 1.850 1.856 1.812 1.818 1.824 1.900 1.776 1.862 1.868 1.804 1.810 1.816 1.752 1.758 1.834 1.840 1.846 1.972 1.978 1.854 1.810 1.876 2.423 2.432 2.471 2.480 2.489 2.498 2.457 2.466 2.475 2.594 2.513 2.482 2.491 2.620 2.629 2.638 2.647 2.656 2.665 2.614 2.623 3.992 4.171 4.030 4.169 2.780 2.695 2.710 3.075 2.820 2.835 2.820 2.865 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 3.035 3.050 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.250 3.900 3.700 3.700 3.600 3.600 3.350 3.350 3.350 3.200 3.200 3.600 3.600 3.600 4.440 4.440 1.500 1.500 1.662 1.668 1.674 1.730 1.736 1.602 1.608 1.654 1.660 1.716 1.722 1.598 1.604 1.690 1.776 1.782 1.788 1.794 1.650 1.776 1.702 1.708 1.704 1.850 1.856 1.812 1.818 1.894 1.900 1.776 1.862 1.868 1.804 1.810 1.816 1.752 1.758 1.834 1.840 1.846 1.972 1.978 1.804 1.870 2.414 2.423 2.432 2.471 2.480 2.489 2.498 2.457 2.466 2.475 2.594 2.513 2.482 2.611 2.620 2.629 2.638 2.647 2.656 2.665 2.614 2.623 3.992 4.171 4.030 4.169 2.780 2.695 2.710 3.075 2.820 2.835 2.820 2.865 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 3.035 3.050 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.250 3.700 3.700 3.700 3.600 3.600 3.350 3.350 3.200 3.200 3.600 3.600 3.600 4.440 4.440 4.440 1.500 1.500 1.662 1.668 1.674 1.730 1.736 1.602 1.608 1.654 1.660 1.716 1.722 1.598 1.604 1.690 1.776 1.782 1.788 1.714 1.650 1.776 1.702 1.708 1.704 1.850 1.856 1.812 1.818 1.894 1.900 1.746 1.862 1.868 1.804 1.810 1.816 1.752 1.828 1.834 1.840 1.846 1.972 1.978 1.804 1.870 2.414 2.423 2.432 2.471 2.480 2.489 2.498 2.457 2.466 2.475 2.594 2.513 2.482 2.611 2.620 2.629 2.638 2.647 2.656 2.665 2.614 3.953 4.132 4.171 4.030 4.169 2.780 2.695 2.710 3.075 2.820 2.835 2.820 2.865 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 3.035 3.050 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.900 3.700 3.700 3.600 3.600 3.350 3.350 3.350 3.200 3.200 3.600 3.600 4.120 4.440 4.440 4.550 1.500 1.500 1.662 1.668 1.724 1.730 1.596 1.602 1.648 1.654 1.660 1.716 1.722 1.598 1.604 1.690 1.776 1.782 1.788 1.714 1.650 1.776 1.702 1.668 1.704 1.850 1.856 1.812 1.818 1.894 1.770 1.746 1.862 1.798 1.804 1.810 1.816 1.752 1.828 1.834 1.840 1.846 1.972 1.848 1.804 1.870 2.414 2.423 2.432 2.471 2.480 2.489 2.498 2.457 2.466 2.475 2.594 2.513 2.482 2.611 2.620 2.629 2.638 2.647 2.656 2.605 2.614 3.953 4.132 4.171 4.030 4.169 2.780 2.695 2.710 3.075 2.820 2.805 2.820 2.865 2.880 2.895 2.910 2.945 2.960 2.975 2.870 3.005 2.950 3.035 3.250 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.900 3.700 3.700 3.600 3.600 3.600 3.350 3.350 3.200 3.200 3.600 3.600 3.600 4.440 4.440 4.440 4.550 1.500 1.500 1.662 1.668 1.724 1.730 1.596 1.602 1.648 1.654 1.660 1.716 1.722 1.598 1.684 1.770 1.776 1.782 1.788 1.714 1.700 1.776 1.702 1.668 1.704 1.850 1.856 1.812 1.818 1.894 1.770 1.746 1.862 1.798 1.804 1.810 1.816 1.752 1.828 1.834 1.840 1.846 1.972 1.848 1.804 1.870 2.414 2.423 2.462 2.471 2.480 2.489 2.498 2.457 2.466 2.585 2.594 2.473 2.482 2.611 2.620 2.629 2.638 2.647 2.656 2.605 2.614 3.953 4.132 4.171 4.030 4.169 2.780 2.695 2.710 3.075 2.820 2.805 2.820 2.865 2.880 2.895 2.910 2.945 2.960 2.855 2.870 3.005 2.950 3.035 3.250 3.265 3.280 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.900 3.700 3.700 3.600 3.600 3.350 3.350 3.200 3.200 3.200 3.600 3.600 4.120 4.440 4.440 4.550 4.550 1.500 1.500 1.662 1.668 1.724 1.730 1.596 1.602 1.648 1.654 1.660 1.716 1.722 1.598 1.684 1.770 1.776 1.782 1.788 1.714 1.700 1.696 1.702 1.668 1.704 1.850 1.806 1.812 1.818 1.894 1.770 1.856 1.862 1.798 1.804 1.810 1.746 1.752 1.828 1.834 1.840 1.966 1.972 1.848 1.804 1.870 2.414 2.423 2.462 2.471 2.480 2.489 2.448 2.457 2.466 2.585 2.594 2.473 2.482 2.611 2.620 2.629 2.638 2.647 2.656 2.605 2.614 3.953 4.132 4.171 4.030 2.765 2.780 2.695 2.710 3.075 2.820 2.805 2.820 2.865 2.880 2.895 2.910 2.945 2.960 2.855 2.870 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.700 3.700 3.600 3.600 3.350 3.350 3.350 3.200 3.200 3.600 3.600 3.600 4.440 4.440 4.440 4.550 4.550 1.500 1.500 1.662 1.668 1.724 1.730 1.596 1.602 1.648 1.654 1.710 1.716 1.722 1.598 1.684 1.770 1.776 1.782 1.788 1.644 1.700 1.696 1.702 1.698 1.704 1.850 1.806 1.812 1.818 1.894 1.770 1.856 1.862 1.798 1.804 1.810 1.746 1.752 1.828 1.834 1.840 1.966 1.972 1.798 1.804 2.405 2.414 2.423 2.462 2.471 2.480 2.489 2.448 2.457 2.466 2.585 2.504 2.473 2.482 2.611 2.620 2.629 2.638 2.647 2.656 2.605 2.614 3.953 4.132 4.171 4.130 2.765 2.780 2.695 2.710 3.075 2.820 2.805 2.820 2.865 2.880 2.895 2.910 2.945 2.960 2.855 2.870 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.700 3.700 3.600 3.600 3.350 3.350 3.200 3.200 3.200 3.600 3.600 4.120 4.440 4.440 4.550 4.550 3.500 1.500 1.500 1.662 1.718 1.724 1.730 1.596 1.602 1.648 1.654 1.710 1.716 1.592 1.678 1.684 1.770 1.776 1.782 1.708 1.644 1.770 1.696 1.662 1.698 1.844 1.850 1.806 1.812 1.888 1.894 1.770 1.856 1.862 1.798 1.804 1.810 1.746 1.752 1.828 1.834 1.840 1.966 1.972 1.798 1.864 2.405 2.414 2.423 2.462 2.471 2.480 2.489 2.448 2.457 2.466 2.585 2.504 2.473 2.482 2.611 2.620 2.629 2.638 2.647 2.656 2.605 2.614 3.953 4.132 3.991 4.130 2.765 2.780 2.695 2.710 2.805 2.820 2.805 2.820 2.865 2.880 2.895 2.910 2.945 2.960 2.855 2.870 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.700 3.600 3.600 3.350 3.350 3.350 3.200 3.200 3.600 3.600 3.600 4.440 4.440 4.550 4.550 4.550 3.500 1.500 1.500 1.662 1.718 1.724 1.590 1.596 1.642 1.648 1.654 1.710 1.716 1.592 1.678 1.684 1.770 1.776 1.782 1.708 1.644 1.770 1.696 1.662 1.698 1.844 1.850 1.806 1.812 1.888 1.894 1.740 1.856 1.862 1.798 1.804 1.740 1.746 1.752 1.828 1.834 1.840 1.966 1.972 1.798 1.864 2.405 2.414 2.423 2.462 2.471 2.480 2.489 2.448 2.457 2.466 2.585 2.504 2.473 2.482 2.611 2.620 2.629 2.638 2.647 2.656 2.605 3.914 3.953 4.132 3.991 4.130 2.765 2.780 2.695 2.710 2.805 2.820 2.805 2.820 2.865 2.880 2.895 2.910 2.945 2.960 2.855 2.870 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.700 3.600 3.600 3.350 3.350 3.200 3.200 3.200 3.600 3.600 4.120 4.440 4.440 4.550 4.550 3.500 3.500 1.500 1.500 1.662 1.718 1.724 1.590 1.596 1.642 1.648 1.654 1.710 1.716 1.592 1.678 1.684 1.770 1.776 1.782 1.708 1.694 1.770 1.696 1.662 1.698 1.844 1.850 1.806 1.812 1.888 1.894 1.740 1.856 1.862 1.798 1.804 1.740 1.746 1.752 1.828 1.834 1.840 1.966 1.972 1.798 1.864 2.405 2.414 2.423 2.462 2.471 2.480 2.489 2.448 2.457 2.466 2.585 2.504 2.473 2.602 2.611 2.620 2.629 2.638 2.647 2.596 2.605 3.914 3.953 4.132 3.991 4.130 2.765 2.680 2.695 3.060 2.805 2.820 2.805 2.820 2.865 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.600 3.600 3.350 3.350 3.350 3.200 3.200 3.600 3.600 3.600 4.440 4.440 4.550 4.550 4.550 3.500 3.500 1.500 1.500 1.662 1.718 1.724 1.590 1.596 1.642 1.648 1.654 1.710 1.716 1.672 1.678 1.764 1.770 1.776 1.782 1.708 1.694 1.690 1.696 1.662 1.698 1.844 1.850 1.806 1.812 1.888 1.764 1.850 1.856 1.792 1.798 1.804 1.740 1.746 1.822 1.828 1.834 1.960 1.966 1.842 1.798 1.864 2.405 2.414 2.423 2.462 2.471 2.480 2.489 2.448 2.457 2.576 2.585 2.504 2.473 2.602 2.611 2.620 2.629 2.638 2.647 2.596 2.605 3.914 4.093 4.132 3.991 4.130 2.765 2.680 2.695 3.060 2.805 2.820 2.805 2.820 2.865 2.880 2.895 2.910 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.600 3.350 3.350 3.350 3.200 3.200 3.200 3.600 3.600 4.440 4.440 4.440 4.550 4.550 3.500 3.500 3.380 1.500 1.500 1.712 1.718 1.724 1.590 1.596 1.642 1.648 1.704 1.710 1.716 1.672 1.678 1.764 1.770 1.776 1.782 1.638 1.694 1.690 1.696 1.662 1.698 1.844 1.800 1.806 1.812 1.888 1.764 1.850 1.856 1.792 1.798 1.734 1.740 1.746 1.822 1.828 1.834 1.960 1.966 1.792 1.858 2.396 2.405 2.414 2.453 2.462 2.471 2.480 2.439 2.448 2.457 2.576 2.585 2.464 2.473 2.602 2.611 2.620 2.629 2.638 2.647 2.596 2.605 3.914 4.093 4.132 3.991 4.130 2.765 2.680 2.695 3.060 2.805 2.820 2.805 2.850 2.865 3.150 2.895 2.930 2.945 2.960 2.855 3.140 3.005 2.950 3.035 3.250 3.265 4.000 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.600 3.350 3.350 3.200 3.200 3.200 3.600 3.600 4.120 4.440 4.440 4.550 4.550 4.550 3.500 3.500 3.380 1.500 1.500 1.712 1.718 1.724 1.590 1.596 1.642 1.648 1.704 1.710 1.716 1.672 1.678 1.764 1.770 1.776 1.702 1.638 1.764 1.690 1.656 1.662 1.698 1.844 1.800 1.806 1.812 1.888 1.764 1.850 1.856 1.792 1.798 1.734 1.740 1.746 1.822 1.828 1.834 1.960 1.966 1.792 1.858 2.396 2.405 2.414 2.453 2.462 2.471 2.480 2.439 2.448 2.457 2.576 2.495 2.464 2.473 2.602 2.611 2.620 2.629 2.638 2.647 2.596 2.605 3.914 4.093 4.132 3.991 4.130 2.765 2.680 2.695 3.060 2.805 2.820 2.805 2.850 2.865 2.880 2.895 2.930 2.945 2.960 2.855 3.140 2.935 2.950 3.235 3.250 3.265 4.000 4.000 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.350 3.350 3.350 3.200 3.200 3.600 3.600 3.600 4.440 4.440 4.440 4.550 4.550 3.500 3.500 3.380 3.380 1.500 1.500 1.712 1.718 1.584 1.590 1.636 1.642 1.648 1.704 1.710 1.716 1.672 1.678 1.764 1.770 1.776 1.702 1.638 1.764 1.690 1.656 1.662 1.698 1.844 1.800 1.806 1.882 1.888 1.764 1.850 1.856 1.792 1.798 1.734 1.740 1.746 1.822 1.828 1.834 1.960 1.966 1.792 1.858 2.396 2.405 2.414 2.453 2.462 2.471 2.480 2.439 2.448 2.457 2.576 2.495 2.464 2.473 2.602 2.611 2.620 2.629 2.638 2.647 2.596 2.605 3.914 4.093 4.132 3.991 2.750 2.765 2.680 2.695 2.790 2.805 2.820 2.805 2.850 2.865 2.880 2.895 2.930 2.945 2.960 2.855 3.140 2.935 3.020 3.235 3.250 4.000 4.000 2.500 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.350 3.350 3.200 3.200 3.200 3.600 3.600 4.120 4.440 4.440 4.550 4.550 3.500 3.500 3.500 3.380 3.380 1.500 1.500 1.712 1.718 1.584 1.590 1.636 1.642 1.648 1.704 1.710 1.586 1.672 1.678 1.764 1.770 1.776 1.702 1.688 1.764 1.690 1.656 1.692 1.838 1.844 1.800 1.806 1.882 1.888 1.734 1.850 1.856 1.792 1.728 1.734 1.740 1.746 1.822 1.828 1.834 1.960 1.836 1.792 1.858 2.396 2.405 2.414 2.453 2.462 2.471 2.480 2.439 2.448 2.457 2.576 2.495 2.464 2.473 2.602 2.611 2.620 2.629 2.638 2.587 2.596 3.875 3.914 4.093 3.952 4.091 2.750 2.765 2.680 2.695 2.790 2.805 2.790 2.805 2.850 3.135 2.880 2.895 2.930 2.945 2.960 2.855 2.990 2.935 3.020 3.235 3.250 4.000 4.000 2.500 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.350 3.350 3.200 3.200 3.600 3.600 3.600 4.440 4.440 4.550 4.550 4.550 3.500 3.500 3.380 3.380 3.380 1.500 1.500 1.712 1.718 1.584 1.590 1.636 1.642 1.648 1.704 1.710 1.666 1.672 1.678 1.764 1.770 1.776 1.702 1.688 1.684 1.690 1.656 1.692 1.838 1.844 1.800 1.806 1.882 1.758 1.844 1.850 1.786 1.792 1.728 1.734 1.740 1.746 1.822 1.828 1.954 1.960 1.836 1.792 1.858 2.396 2.405 2.414 2.453 2.462 2.471 2.480 2.439 2.448 2.457 2.576 2.495 2.464 2.593 2.602 2.611 2.620 2.629 2.638 2.587 2.596 3.875 3.914 4.093 3.952 4.091 2.750 2.765 2.680 2.695 2.790 2.805 2.790 2.805 2.850 3.135 2.880 2.895 2.930 2.945 2.960 2.855 2.990 2.935 3.020 3.235 3.250 4.000 4.000 2.500 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.350 3.200 3.200 3.200 3.600 3.600 4.120 4.440 4.440 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 1.500 1.500 1.712 1.718 1.584 1.590 1.636 1.642 1.698 1.704 1.710 1.666 1.672 1.758 1.764 1.770 1.776 1.632 1.688 1.684 1.690 1.656 1.692 1.838 1.794 1.800 1.806 1.882 1.758 1.844 1.850 1.786 1.792 1.728 1.734 1.740 1.746 1.822 1.828 1.954 1.960 1.786 1.852 2.387 2.396 2.405 2.444 2.453 2.462 2.471 2.430 2.439 2.448 2.567 2.576 2.455 2.464 2.593 2.602 2.611 2.620 2.629 2.638 2.587 2.596 3.875 4.054 4.093 3.952 4.091 2.750 2.665 2.680 3.045 2.790 2.805 2.790 2.805 2.850 3.135 2.880 2.895 2.930 2.945 2.960 2.855 2.990 2.935 3.020 3.235 3.250 4.000 4.000 2.500 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.350 3.200 3.200 3.600 3.600 3.600 4.440 4.440 4.550 4.550 4.550 3.500 3.500 3.380 3.380 3.380 3.380 1.500 1.500 1.712 1.718 1.584 1.590 1.636 1.642 1.698 1.704 1.710 1.666 1.672 1.758 1.764 1.770 1.696 1.632 1.758 1.684 1.690 1.656 1.692 1.838 1.794 1.800 1.806 1.882 1.758 1.844 1.850 1.786 1.792 1.728 1.734 1.740 1.816 1.822 1.828 1.954 1.960 1.786 1.852 2.387 2.396 2.405 2.444 2.453 2.462 2.471 2.430 2.439 2.448 2.567 2.576 2.455 2.464 2.593 2.602 2.611 2.620 2.629 2.638 2.587 2.596 3.875 4.054 4.093 3.952 4.091 2.750 2.665 2.680 3.045 2.790 2.805 2.790 2.835 2.850 3.135 2.880 2.895 2.930 2.945 2.960 2.855 2.990 2.935 3.020 3.235 3.250 4.000 4.000 2.500 2.500 2.500 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.200 3.200 3.200 3.600 3.600 4.120 4.440 4.550 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 1.500 1.500 1.712 1.718 1.584 1.590 1.636 1.642 1.698 1.704 1.580 1.666 1.672 1.758 1.764 1.770 1.696 1.632 1.758 1.684 1.650 1.686 1.692 1.838 1.794 1.800 1.876 1.882 1.758 1.844 1.850 1.786 1.722 1.728 1.734 1.740 1.816 1.822 1.828 1.954 1.830 1.786 1.852 2.387 2.396 2.405 2.444 2.453 2.462 2.471 2.430 2.439 2.448 2.567 2.486 2.455 2.464 2.593 2.602 2.611 2.620 2.629 2.578 2.587 3.836 3.875 4.054 4.093 3.952 4.091 2.750 2.665 2.680 3.045 2.790 2.775 2.790 2.835 3.120 3.135 2.880 2.895 2.930 2.945 2.840 2.855 2.990 2.935 3.020 3.235 3.250 4.000 4.000 2.500 2.500 2.650 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.200 3.200 3.600 3.600 4.120 4.440 4.440 4.550 4.550 4.550 3.500 3.500 3.380 3.380 3.380 3.380 3.380 1.500 1.500 1.712 1.578 1.584 1.590 1.636 1.642 1.698 1.704 1.580 1.666 1.672 1.758 1.764 1.770 1.696 1.682 1.678 1.684 1.650 1.686 1.832 1.838 1.794 1.800 1.876 1.882 1.758 1.844 1.850 1.786 1.722 1.728 1.734 1.740 1.816 1.822 1.828 1.954 1.830 1.786 1.852 2.387 2.396 2.405 2.444 2.453 2.462 2.471 2.430 2.439 2.448 2.567 2.486 2.455 2.464 2.593 2.602 2.611 2.620 2.629 2.578 2.587 3.836 3.875 4.054 4.093 3.952 4.091 2.750 2.665 2.680 3.045 2.790 2.775 2.790 2.835 3.120 3.135 2.880 2.895 2.930 2.945 2.840 2.855 2.990 2.935 3.020 3.235 3.250 4.000 2.500 2.500 2.500 2.650 2.650 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.200 3.200 3.600 3.600 4.440 4.440 4.550 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.200 1.500 1.500 1.712 1.578 1.584 1.590 1.636 1.642 1.698 1.704 1.580 1.666 1.672 1.758 1.764 1.770 1.626 1.682 1.678 1.684 1.650 1.686 1.832 1.838 1.794 1.800 1.876 1.752 1.838 1.844 1.780 1.786 1.722 1.728 1.734 1.740 1.816 1.822 1.948 1.954 1.780 1.786 2.378 2.387 2.396 2.405 2.444 2.453 2.462 2.471 2.430 2.439 2.448 2.567 2.486 2.455 2.464 2.593 2.602 2.611 2.620 2.629 2.578 2.587 3.836 3.875 4.054 4.093 3.952 2.735 2.750 2.665 2.680 2.775 2.790 2.775 2.790 2.835 3.120 2.865 2.880 2.915 2.930 2.945 2.840 2.855 2.990 2.935 3.220 3.235 4.000 4.000 2.500 2.500 2.500 2.650 2.440 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.200 3.600 3.600 4.120 4.440 4.440 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.380 3.200 1.500 1.500 1.712 1.578 1.584 1.630 1.636 1.642 1.698 1.704 1.580 1.666 1.672 1.758 1.764 1.770 1.626 1.682 1.678 1.684 1.650 1.686 1.832 1.788 1.794 1.800 1.876 1.752 1.838 1.844 1.780 1.786 1.722 1.728 1.734 1.740 1.816 1.822 1.948 1.824 1.780 1.846 2.378 2.387 2.396 2.405 2.444 2.453 2.462 2.471 2.430 2.439 2.558 2.567 2.446 2.455 2.584 2.593 2.602 2.611 2.620 2.629 2.578 2.587 3.836 4.015 4.054 3.913 4.052 2.735 2.750 2.665 3.030 2.775 2.790 2.775 2.820 3.105 3.120 2.865 2.880 2.915 3.650 2.945 2.840 3.125 2.990 3.005 3.220 3.235 4.000 4.000 2.500 2.500 2.500 2.650 2.440 2.440 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.200 3.600 3.600 4.440 4.440 4.550 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.200 3.750 1.500 1.500 1.572 1.578 1.584 1.630 1.636 1.692 1.698 1.574 1.580 1.666 1.672 1.758 1.764 1.690 1.626 1.752 1.678 1.684 1.680 1.686 1.832 1.788 1.794 1.800 1.876 1.752 1.838 1.844 1.780 1.716 1.722 1.728 1.734 1.810 1.816 1.822 1.948 1.824 1.780 1.846 2.378 2.387 2.396 2.435 2.444 2.453 2.462 2.421 2.430 2.439 2.558 2.567 2.446 2.455 2.584 2.593 2.602 2.611 2.620 2.629 2.578 2.587 3.836 4.015 4.054 3.913 4.052 2.735 2.750 2.665 3.030 2.775 2.760 2.775 2.820 3.105 3.120 2.865 2.880 2.915 3.350 2.945 2.840 3.125 2.920 3.005 3.220 3.235 4.000 4.000 2.500 2.500 2.650 2.650 2.440 2.440 2.500 2.500 5.500 5.500 5.500 5.500 3.200 3.600 3.600 4.120 4.440 4.550 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.380 3.200 3.750 1.500 1.500 1.572 1.578 1.584 1.630 1.636 1.692 1.698 1.574 1.660 1.666 1.752 1.758 1.764 1.690 1.676 1.752 1.678 1.644 1.680 1.686 1.832 1.788 1.794 1.870 1.876 1.752 1.838 1.844 1.780 1.716 1.722 1.728 1.734 1.810 1.816 1.822 1.948 1.824 1.780 1.846 2.378 2.387 2.396 2.435 2.444 2.453 2.462 2.421 2.430 2.439 2.558 2.477 2.446 2.455 2.584 2.593 2.602 2.611 2.620 2.569 2.578 3.797 3.836 4.015 4.054 3.913 4.052 2.735 2.650 2.665 3.030 2.775 2.760 2.775 2.820 3.105 3.120 2.865 2.880 2.915 3.350 2.945 2.840 3.125 2.920 3.005 3.220 3.235 4.000 4.000 2.500 2.500 2.650 2.440 2.440 2.500 2.500 3.200 5.500 5.500 5.500 5.500 3.200 3.600 3.600 4.440 4.440 4.550 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.200 3.750 3.750 1.500 1.500 1.572 1.578 1.584 1.630 1.636 1.692 1.698 1.574 1.660 1.666 1.752 1.758 1.764 1.620 1.676 1.672 1.678 1.644 1.680 1.826 1.832 1.788 1.794 1.870 1.746 1.752 1.838 1.774 1.780 1.716 1.722 1.728 1.734 1.810 1.816 1.942 1.948 1.774 1.780 1.846 2.378 2.387 2.396 2.435 2.444 2.453 2.462 2.421 2.430 2.439 2.558 2.477 2.446 2.455 2.584 2.593 2.602 2.611 2.620 2.569 2.578 3.797 3.836 4.015 4.054 3.913 4.052 2.735 2.650 2.665 3.030 2.775 2.760 2.775 2.820 3.105 3.120 2.865 2.900 2.915 3.350 2.945 2.840 3.125 2.920 3.005 3.220 3.235 4.000 2.500 2.500 2.500 2.650 2.440 2.440 2.500 2.500 3.200 5.500 5.500 5.500 5.500 3.600 3.600 4.120 4.440 4.550 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.200 3.200 3.750 3.750 1.500 1.500 1.572 1.578 1.584 1.630 1.636 1.692 1.698 1.574 1.660 1.666 1.752 1.758 1.764 1.620 1.676 1.672 1.678 1.644 1.680 1.826 1.832 1.788 1.794 1.870 1.746 1.832 1.838 1.774 1.780 1.716 1.722 1.728 1.734 1.810 1.816 1.942 1.818 1.774 1.840 2.369 2.378 2.387 2.396 2.435 2.444 2.453 2.462 2.421 2.430 2.439 2.558 2.477 2.446 2.575 2.584 2.593 2.602 2.611 2.620 2.569 2.578 3.797 3.836 4.015 4.054 3.913 2.720 2.735 2.650 2.665 2.760 2.745 2.760 2.805 3.090 3.105 2.850 2.865 2.900 3.500 3.350 2.945 2.840 2.975 2.920 3.005 3.220 3.235 4.000 2.500 2.500 2.500 2.650 2.440 2.500 2.500 3.200 3.200 5.500 5.500 5.500 5.500 3.600 3.600 4.440 4.440 4.550 4.550 3.500 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 1.500 1.500 1.572 1.578 1.624 1.630 1.636 1.692 1.568 1.574 1.660 1.666 1.752 1.758 1.684 1.620 1.746 1.672 1.678 1.644 1.680 1.826 1.782 1.788 1.794 1.870 1.746 1.832 1.838 1.774 1.780 1.716 1.722 1.728 1.734 1.810 1.816 1.942 1.818 1.774 1.840 2.369 2.378 2.387 2.396 2.435 2.444 2.453 2.412 2.421 2.430 2.549 2.558 2.437 2.446 2.575 2.584 2.593 2.602 2.611 2.620 2.569 2.578 3.797 3.976 4.015 3.874 4.013 2.720 2.735 2.650 3.015 2.760 2.745 2.760 2.805 3.090 3.105 2.850 2.865 2.900 3.500 2.930 2.945 2.840 2.975 2.920 3.205 3.220 4.000 4.000 2.500 2.500 2.650 2.440 2.440 2.500 2.500 3.200 3.200 5.500 5.500 5.500 5.500 3.600 4.440 4.440 4.550 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.200 3.200 3.750 3.750 3.750 1.500 1.500 1.572 1.578 1.624 1.630 1.686 1.692 1.568 1.574 1.660 1.666 1.752 1.758 1.684 1.670 1.746 1.672 1.638 1.674 1.680 1.826 1.782 1.788 1.864 1.870 1.746 1.832 1.838 1.774 1.710 1.716 1.722 1.728 1.804 1.810 1.936 1.942 1.818 1.774 1.840 2.369 2.378 2.387 2.426 2.435 2.444 2.453 2.412 2.421 2.430 2.549 2.468 2.437 2.446 2.575 2.584 2.593 2.602 2.611 2.560 2.569 3.758 3.797 3.976 4.015 3.874 4.013 2.720 2.735 2.650 3.015 2.760 2.745 2.760 2.805 3.090 3.105 2.850 2.865 2.900 3.500 2.930 2.825 2.840 2.975 2.990 3.205 3.220 4.000 4.000 2.500 2.500 2.650 2.440 2.440 2.500 2.500 3.200 3.200 5.500 5.500 5.500 5.500 4.120 4.440 4.440 4.550 4.550 3.500 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 1.500 1.500 1.572 1.578 1.624 1.630 1.686 1.692 1.568 1.574 1.660 1.746 1.752 1.758 1.614 1.670 1.666 1.672 1.638 1.674 1.820 1.826 1.782 1.788 1.864 1.740 1.716 1.832 1.768 1.774 1.710 1.716 1.722 1.728 1.804 1.810 1.936 1.942 1.768 1.774 1.840 2.369 2.378 2.387 2.426 2.435 2.444 2.453 2.412 2.421 2.430 2.549 2.468 2.437 2.566 2.575 2.584 2.593 2.602 2.611 2.560 2.569 3.758 3.797 3.976 4.015 3.874 4.013 2.720 2.635 2.650 2.745 2.760 2.745 2.760 3.075 3.090 3.105 2.850 2.865 2.900 3.350 2.930 2.825 2.840 2.905 2.990 3.205 3.220 4.000 2.500 2.500 2.500 2.650 2.440 2.500 2.500 3.200 3.200 3.200 5.500 5.500 5.500 5.500 4.440 4.440 4.550 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.200 3.200 3.750 3.750 3.750 3.450 1.500 1.500 1.572 1.578 1.624 1.630 1.686 1.692 1.568 1.574 1.660 1.746 1.752 1.758 1.614 1.670 1.666 1.672 1.638 1.674 1.820 1.826 1.782 1.788 1.864 1.740 1.716 1.832 1.768 1.774 1.710 1.716 1.722 1.728 1.804 1.810 1.936 1.812 1.768 1.834 2.360 2.369 2.378 2.387 2.426 2.435 2.444 2.453 2.412 2.421 2.430 2.549 2.468 2.437 2.566 2.575 2.584 2.593 2.602 2.611 2.560 2.569 3.758 3.797 3.976 4.015 3.874 4.013 2.720 2.635 2.650 2.745 2.730 2.745 2.790 3.075 3.090 2.835 2.850 2.885 3.500 3.350 2.930 2.825 3.110 2.905 2.990 3.205 3.220 4.000 2.500 2.500 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 5.500 5.500 5.500 5.500 4.440 4.550 4.550 4.550 3.500 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 1.500 1.500 1.572 1.618 1.624 1.630 1.686 1.562 1.568 1.574 1.660 1.746 1.752 1.678 1.614 1.740 1.666 1.672 1.638 1.674 1.820 1.776 1.782 1.788 1.864 1.740 1.716 1.832 1.768 1.774 1.710 1.716 1.722 1.728 1.804 1.810 1.936 1.812 1.768 1.834 2.360 2.369 2.378 2.387 2.426 2.435 2.444 2.453 2.412 2.421 2.540 2.549 2.468 2.437 2.566 2.575 2.584 2.593 2.602 2.551 2.560 2.569 3.758 3.797 3.976 4.015 3.874 2.705 2.720 2.635 3.000 2.745 2.730 2.745 2.790 3.075 3.090 2.835 2.850 2.885 3.500 3.350 2.930 2.825 3.110 2.905 2.990 3.205 3.220 4.000 2.500 2.500 2.650 2.440 2.440 2.500 3.200 3.200 3.200 3.200 5.500 5.500 5.500 5.500 4.440 4.550 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.200 3.200 3.750 3.750 3.750 3.450 3.450 1.500 1.500 1.572 1.618 1.624 1.630 1.686 1.562 1.568 1.574 1.740 1.746 1.752 1.678 1.614 1.740 1.666 1.632 1.638 1.814 1.820 1.776 1.782 1.858 1.864 1.740 1.826 1.832 1.768 1.774 1.710 1.716 1.722 1.798 1.804 1.810 1.936 1.812 1.768 1.834 2.360 2.369 2.378 2.417 2.426 2.435 2.444 2.403 2.412 2.421 2.540 2.459 2.428 2.437 2.566 2.575 2.584 2.593 2.602 2.551 2.560 3.719 3.758 3.937 3.976 3.835 3.974 2.705 2.720 2.635 3.000 2.745 2.730 2.745 2.790 3.075 3.090 2.835 2.850 2.885 3.500 3.350 2.930 2.825 3.110 2.905 2.990 3.205 3.220 4.000 2.500 2.500 2.650 2.440 2.500 2.500 3.200 3.200 3.200 3.200 5.500 5.500 5.500 5.500 4.550 4.550 4.550 3.500 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 1.500 1.500 1.612 1.618 1.624 1.680 1.686 1.562 1.568 1.654 1.740 1.746 1.752 1.608 1.664 1.660 1.666 1.632 1.668 1.814 1.820 1.776 1.782 1.858 1.734 1.710 1.826 1.832 1.768 1.704 1.710 1.716 1.722 1.798 1.804 1.930 1.936 1.762 1.828 1.834 2.360 2.369 2.378 2.417 2.426 2.435 2.444 2.403 2.412 2.421 2.540 2.459 2.428 2.557 2.566 2.575 2.584 2.593 2.602 2.551 2.560 3.719 3.758 3.937 3.976 3.835 3.974 2.705 2.720 2.635 2.730 2.715 2.730 2.775 3.060 3.075 3.090 2.835 2.850 2.885 3.500 3.350 2.930 2.825 2.960 2.905 3.190 3.205 4.000 4.000 2.500 2.500 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 5.500 5.500 5.500 5.500 4.550 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.200 3.200 3.750 3.750 3.750 3.450 3.450 3.120 1.500 1.500 1.612 1.618 1.624 1.680 1.686 1.562 1.568 1.654 1.740 1.746 1.752 1.608 1.664 1.660 1.666 1.632 1.668 1.814 1.820 1.776 1.782 1.858 1.734 1.710 1.826 1.762 1.768 1.704 1.710 1.716 1.722 1.798 1.804 1.930 1.806 1.762 1.828 2.351 2.360 2.369 2.378 2.417 2.426 2.435 2.444 2.403 2.412 2.421 2.540 2.459 2.428 2.557 2.566 2.575 2.584 2.593 2.602 2.551 2.560 3.719 3.758 3.937 3.976 3.835 2.690 2.705 2.620 2.985 2.730 2.715 2.730 2.775 3.060 3.075 2.820 2.835 2.870 2.885 3.500 3.350 2.930 2.825 2.960 2.975 3.190 3.205 4.000 2.500 2.500 2.650 2.440 2.440 2.500 3.200 3.200 3.200 3.200 3.200 5.500 5.500 5.500 5.500 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 1.500 1.500 1.612 1.618 1.624 1.680 1.686 1.562 1.568 1.654 1.740 1.746 1.672 1.608 1.734 1.660 1.626 1.632 1.808 1.814 1.770 1.776 1.852 1.858 1.734 1.710 1.826 1.762 1.768 1.704 1.710 1.716 1.722 1.798 1.804 1.930 1.806 1.762 1.828 2.351 2.360 2.369 2.378 2.417 2.426 2.435 2.394 2.403 2.412 2.531 2.540 2.459 2.428 2.557 2.566 2.575 2.584 2.593 2.542 2.551 3.680 3.719 3.898 3.937 3.796 3.935 2.690 2.705 2.620 2.985 2.730 2.715 2.730 2.775 3.060 3.075 2.820 2.835 2.870 3.500 3.650 3.350 2.930 2.825 2.890 2.975 3.190 3.205 4.000 2.500 2.500 2.650 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 5.500 5.500 5.500 5.500 4.550 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 1.500 1.500 1.612 1.618 1.624 1.680 1.556 1.562 1.648 1.734 1.740 1.746 1.672 1.608 1.734 1.660 1.626 1.662 1.808 1.814 1.770 1.776 1.852 1.858 1.734 1.820 1.826 1.762 1.768 1.704 1.710 1.716 1.792 1.798 1.804 1.930 1.806 1.762 1.828 2.351 2.360 2.369 2.408 2.417 2.426 2.435 2.394 2.403 2.412 2.531 2.450 2.419 2.428 2.557 2.566 2.575 2.584 2.593 2.542 2.551 3.680 3.719 3.898 3.937 3.796 3.935 2.690 2.705 2.620 2.715 2.700 2.715 2.760 2.775 3.060 3.075 2.820 2.835 2.870 3.500 3.650 2.915 2.810 3.095 2.890 2.975 3.190 3.205 4.000 2.500 2.500 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 5.500 5.500 5.500 5.500 4.550 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 1.500 1.500 1.612 1.618 1.674 1.680 1.556 1.562 1.648 1.734 1.740 1.746 1.602 1.658 1.654 1.660 1.626 1.662 1.808 1.814 1.770 1.776 1.852 1.728 1.704 1.820 1.826 1.762 1.768 1.704 1.710 1.716 1.792 1.798 1.924 1.930 1.756 1.822 1.828 2.351 2.360 2.369 2.408 2.417 2.426 2.435 2.394 2.403 2.412 2.531 2.450 2.419 2.548 2.557 2.566 2.575 2.584 2.593 2.542 2.551 3.680 3.719 3.898 3.937 3.796 3.935 2.690 2.605 2.970 2.715 2.700 2.715 2.760 3.045 3.060 3.075 2.820 2.835 2.870 3.500 3.650 2.915 2.810 3.095 2.890 2.975 3.190 3.205 4.000 2.500 2.650 2.440 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 5.500 5.500 5.500 5.500 3.500 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 1.500 1.500 1.612 1.618 1.674 1.680 1.556 1.642 1.648 1.734 1.740 1.746 1.602 1.658 1.654 1.660 1.626 1.802 1.808 1.814 1.770 1.776 1.852 1.728 1.704 1.820 1.826 1.762 1.698 1.704 1.710 1.716 1.792 1.798 1.924 1.800 1.756 1.822 2.342 2.351 2.360 2.369 2.408 2.417 2.426 2.435 2.394 2.403 2.522 2.531 2.450 2.419 2.548 2.557 2.566 2.575 2.584 2.533 2.542 2.551 3.680 3.719 3.898 3.757 3.896 2.675 2.690 2.605 2.970 2.715 2.700 2.715 2.760 3.045 3.060 2.805 2.820 2.835 2.870 3.500 3.350 2.915 2.810 3.095 2.890 2.975 3.190 3.205 4.000 2.500 2.650 2.440 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 5.500 5.500 5.500 5.500 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 1.500 1.500 1.612 1.618 1.674 1.680 1.556 1.642 1.648 1.734 1.740 1.666 1.602 1.728 1.654 1.620 1.656 1.802 1.808 1.764 1.770 1.846 1.852 1.728 1.704 1.820 1.756 1.762 1.698 1.704 1.710 1.716 1.792 1.798 1.924 1.800 1.756 1.822 2.342 2.351 2.360 2.369 2.408 2.417 2.426 2.385 2.394 2.403 2.522 2.531 2.410 2.419 2.548 2.557 2.566 2.575 2.584 2.533 2.542 3.641 3.680 3.859 3.898 3.757 3.896 2.675 2.690 2.605 2.700 2.685 2.700 2.715 2.760 3.045 3.060 2.805 2.820 2.855 2.870 3.650 3.350 2.915 2.810 3.095 2.890 3.175 3.190 4.000 4.000 2.500 2.440 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 5.500 5.500 5.500 5.500 3.500 3.500 3.500 3.380 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 1.500 1.500 1.612 1.668 1.674 1.550 1.636 1.642 1.728 1.734 1.740 1.666 1.652 1.728 1.654 1.620 1.656 1.802 1.808 1.764 1.770 1.846 1.722 1.728 1.814 1.820 1.756 1.762 1.698 1.704 1.710 1.786 1.792 1.798 1.924 1.750 1.756 1.822 2.342 2.351 2.360 2.399 2.408 2.417 2.426 2.385 2.394 2.403 2.522 2.441 2.410 2.539 2.548 2.557 2.566 2.575 2.584 2.533 2.542 3.641 3.680 3.859 3.898 3.757 3.896 2.675 2.590 2.955 2.700 2.685 2.700 2.745 3.030 3.045 3.060 2.805 2.820 2.855 3.500 3.650 3.350 2.915 2.810 2.945 2.890 3.175 3.190 4.000 2.500 2.500 2.440 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 5.500 5.500 5.500 5.500 3.500 3.500 3.380 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 3.800 1.500 1.500 1.612 1.668 1.674 1.550 1.636 1.642 1.728 1.734 1.740 1.596 1.652 1.648 1.654 1.620 1.796 1.802 1.808 1.764 1.770 1.846 1.722 1.698 1.814 1.820 1.756 1.762 1.698 1.704 1.710 1.786 1.792 1.918 1.794 1.750 1.816 2.333 2.342 2.351 2.360 2.399 2.408 2.417 2.426 2.385 2.394 2.403 2.522 2.441 2.410 2.539 2.548 2.557 2.566 2.575 2.524 2.533 2.542 3.641 3.680 3.859 3.718 3.857 2.660 2.675 2.590 2.955 2.700 2.685 2.700 2.745 3.030 3.045 3.060 2.805 2.820 2.855 3.500 3.650 3.350 2.915 2.810 2.875 2.960 3.175 3.190 4.000 2.500 2.650 2.440 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 5.500 5.500 5.500 5.500 3.500 3.500 3.380 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 3.800 1.500 1.500 1.612 1.668 1.674 1.630 1.636 1.642 1.728 1.734 1.660 1.596 1.652 1.648 1.614 1.650 1.796 1.802 1.758 1.764 1.840 1.846 1.722 1.698 1.814 1.820 1.756 1.692 1.698 1.704 1.710 1.786 1.792 1.918 1.794 1.750 1.816 2.333 2.342 2.351 2.360 2.399 2.408 2.417 2.376 2.385 2.394 2.513 2.522 2.401 2.410 2.539 2.548 2.557 2.566 2.575 2.524 2.533 3.602 3.641 3.820 3.859 3.718 3.857 2.660 2.675 2.590 2.685 2.700 2.685 2.700 2.745 3.030 3.045 2.790 2.805 2.820 2.855 3.500 3.650 2.900 2.795 2.810 2.875 2.960 3.175 3.190 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 5.500 5.500 5.500 5.500 3.500 3.380 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 3.800 3.800 1.500 1.500 1.662 1.668 1.674 1.630 1.636 1.722 1.728 1.734 1.660 1.596 1.722 1.648 1.614 1.650 1.796 1.802 1.758 1.764 1.840 1.716 1.722 1.808 1.814 1.820 1.756 1.692 1.698 1.704 1.780 1.786 1.792 1.918 1.744 1.750 1.816 2.333 2.342 2.351 2.390 2.399 2.408 2.417 2.376 2.385 2.394 2.513 2.432 2.401 2.530 2.539 2.548 2.557 2.566 2.575 2.524 2.533 3.602 3.641 3.820 3.859 3.718 3.857 2.660 2.575 2.940 2.685 2.670 2.685 2.730 3.015 3.030 3.045 2.790 2.805 2.840 2.855 3.500 3.350 2.900 2.795 3.080 2.875 2.960 3.175 3.190 4.000 2.500 2.440 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 5.500 5.500 5.500 3.500 3.380 3.380 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 3.800 3.540 1.500 1.500 1.662 1.668 1.544 1.630 1.636 1.722 1.728 1.734 1.660 1.646 1.642 1.648 1.614 1.790 1.796 1.802 1.758 1.764 1.840 1.716 1.722 1.808 1.814 1.750 1.756 1.692 1.698 1.704 1.780 1.786 1.912 1.918 1.744 1.810 1.816 2.333 2.342 2.351 2.390 2.399 2.408 2.417 2.376 2.385 2.394 2.513 2.432 2.401 2.530 2.539 2.548 2.557 2.566 2.515 2.524 2.533 3.602 3.781 3.820 3.679 3.818 2.645 2.660 2.575 2.940 2.685 2.670 2.685 2.730 3.015 3.030 3.045 2.790 2.805 2.840 3.500 3.650 3.350 2.900 2.795 3.080 2.875 2.960 3.175 3.190 4.000 2.500 2.440 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 5.500 5.500 5.500 3.500 3.380 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 3.800 3.800 3.540 1.500 1.500 1.662 1.668 1.544 1.630 1.636 1.722 1.728 1.734 1.590 1.646 1.642 1.648 1.644 1.790 1.796 1.752 1.758 1.834 1.840 1.716 1.692 1.808 1.814 1.750 1.756 1.692 1.698 1.704 1.780 1.786 1.912 1.918 1.744 1.810 2.324 2.333 2.342 2.351 2.390 2.399 2.408 2.417 2.376 2.385 2.504 2.513 2.392 2.401 2.530 2.539 2.548 2.557 2.566 2.515 2.524 3.563 3.602 3.781 3.820 3.679 3.818 2.645 2.660 2.575 2.670 2.685 2.670 2.685 2.730 3.015 3.030 2.775 2.790 2.805 2.840 3.500 3.650 3.350 2.900 2.795 3.080 2.875 2.960 3.175 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 5.500 5.500 5.500 3.380 3.380 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 3.800 3.540 3.540 1.500 1.500 1.662 1.668 1.624 1.630 1.716 1.722 1.728 1.654 1.590 1.716 1.642 1.608 1.644 1.790 1.796 1.752 1.758 1.834 1.840 1.716 1.692 1.808 1.814 1.750 1.686 1.692 1.698 1.774 1.780 1.786 1.912 1.788 1.744 1.810 2.324 2.333 2.342 2.351 2.390 2.399 2.408 2.367 2.376 2.385 2.504 2.423 2.392 2.521 2.530 2.539 2.548 2.557 2.566 2.515 2.524 3.563 3.602 3.781 3.820 3.679 2.630 2.645 2.560 2.925 2.670 2.655 2.670 2.715 3.000 3.015 3.030 2.775 2.790 2.805 2.840 3.500 3.650 3.350 2.900 2.795 2.930 2.875 2.960 3.175 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 5.500 5.500 5.500 3.380 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 3.800 3.800 3.540 3.540 1.500 1.500 1.662 1.538 1.624 1.630 1.716 1.722 1.728 1.654 1.640 1.636 1.642 1.608 1.784 1.790 1.796 1.752 1.758 1.834 1.710 1.716 1.802 1.808 1.814 1.750 1.686 1.692 1.698 1.774 1.780 1.786 1.912 1.738 1.744 1.810 2.324 2.333 2.342 2.381 2.390 2.399 2.408 2.367 2.376 2.385 2.504 2.423 2.392 2.521 2.530 2.539 2.548 2.557 2.506 2.515 3.524 3.563 3.742 3.781 3.640 3.779 2.630 2.645 2.560 2.925 2.670 2.655 2.670 2.715 3.000 3.015 3.030 2.775 2.790 2.825 2.840 3.500 3.650 3.500 2.780 2.795 2.860 2.945 2.960 3.175 4.000 2.500 2.440 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 5.500 5.500 5.500 3.380 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 3.800 3.540 3.540 3.540 1.500 1.500 1.662 1.538 1.624 1.710 1.716 1.722 1.728 1.584 1.640 1.636 1.642 1.638 1.784 1.790 1.746 1.752 1.828 1.834 1.710 1.716 1.802 1.808 1.744 1.750 1.686 1.692 1.698 1.774 1.780 1.906 1.912 1.738 1.804 2.315 2.324 2.333 2.342 2.381 2.390 2.399 2.408 2.367 2.376 2.495 2.504 2.383 2.392 2.521 2.530 2.539 2.548 2.557 2.506 2.515 3.524 3.563 3.742 3.781 3.640 3.779 2.630 2.545 2.560 2.655 2.670 2.655 2.670 2.715 3.000 3.015 3.030 2.775 2.790 2.825 2.840 3.500 3.650 2.885 2.780 2.795 2.860 2.945 3.160 3.175 4.000 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 5.500 5.500 5.500 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 3.800 3.800 3.540 3.540 3.540 1.500 1.500 1.662 1.538 1.624 1.710 1.716 1.722 1.648 1.584 1.710 1.636 1.602 1.638 1.784 1.790 1.746 1.752 1.828 1.834 1.710 1.716 1.802 1.808 1.744 1.680 1.686 1.692 1.768 1.774 1.780 1.906 1.912 1.738 1.804 2.315 2.324 2.333 2.342 2.381 2.390 2.399 2.358 2.367 2.376 2.495 2.414 2.383 2.512 2.521 2.530 2.539 2.548 2.557 2.506 2.515 3.524 3.703 3.742 3.601 3.740 2.615 2.630 2.545 2.910 2.655 2.640 2.655 2.700 2.985 3.000 3.015 2.760 2.775 2.790 2.825 3.500 3.650 3.350 2.885 2.780 3.065 2.860 2.945 3.160 3.175 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 5.500 5.500 5.500 3.380 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 3.800 3.540 3.540 3.540 3.540 1.500 1.500 1.532 1.538 1.624 1.710 1.716 1.722 1.578 1.634 1.630 1.636 1.602 1.778 1.784 1.790 1.746 1.752 1.828 1.834 1.710 1.716 1.802 1.808 1.744 1.680 1.686 1.692 1.768 1.774 1.780 1.906 1.732 1.738 1.804 2.315 2.324 2.333 2.372 2.381 2.390 2.399 2.358 2.367 2.486 2.495 2.414 2.383 2.512 2.521 2.530 2.539 2.548 2.497 2.506 3.485 3.524 3.703 3.742 3.601 3.740 2.615 2.630 2.545 2.910 2.655 2.640 2.655 2.700 2.985 3.000 3.015 2.760 2.775 2.790 2.825 3.500 3.650 3.350 2.885 2.780 3.065 2.860 2.945 3.160 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 5.500 5.500 5.500 3.380 3.380 3.380 3.200 3.200 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 1.500 1.500 1.532 1.618 1.704 1.710 1.716 1.722 1.578 1.634 1.630 1.596 1.632 1.778 1.784 1.740 1.746 1.752 1.828 1.834 1.710 1.796 1.802 1.808 1.744 1.680 1.686 1.692 1.768 1.774 1.900 1.906 1.732 1.798 2.306 2.315 2.324 2.333 2.372 2.381 2.390 2.399 2.358 2.367 2.486 2.495 2.374 2.383 2.512 2.521 2.530 2.539 2.548 2.497 2.506 3.485 3.524 3.703 3.742 3.601 2.600 2.615 2.530 2.545 2.640 2.655 2.640 2.655 2.700 2.985 3.000 3.015 2.760 2.775 2.810 2.825 3.500 3.650 3.500 2.885 2.780 2.915 2.860 2.945 3.160 4.000 2.500 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 5.500 5.500 5.500 3.380 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 3.800 3.540 3.540 3.540 3.540 3.380 1.500 1.500 1.532 1.618 1.704 1.710 1.716 1.642 1.578 1.704 1.630 1.596 1.632 1.778 1.784 1.740 1.746 1.822 1.828 1.834 1.710 1.796 1.802 1.738 1.674 1.680 1.686 1.762 1.768 1.774 1.900 1.776 1.732 1.798 2.306 2.315 2.324 2.333 2.372 2.381 2.390 2.349 2.358 2.367 2.486 2.405 2.374 2.503 2.512 2.521 2.530 2.539 2.488 2.497 3.446 3.485 3.664 3.703 3.562 3.701 2.600 2.615 2.530 2.895 2.640 2.625 2.640 2.685 2.970 2.985 3.000 2.745 2.760 2.775 2.810 2.825 3.500 3.350 2.870 2.765 2.780 2.845 2.930 3.145 3.160 4.000 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 5.500 5.500 5.500 3.380 3.380 3.200 3.200 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 1.500 1.500 1.612 1.698 1.704 1.710 1.716 1.572 1.628 1.624 1.630 1.626 1.772 1.778 1.784 1.740 1.746 1.822 1.828 1.704 1.710 1.796 1.802 1.738 1.674 1.680 1.686 1.762 1.768 1.894 1.900 1.726 1.732 1.798 2.306 2.315 2.324 2.363 2.372 2.381 2.390 2.349 2.358 2.477 2.486 2.405 2.374 2.503 2.512 2.521 2.530 2.539 2.488 2.497 3.446 3.485 3.664 3.703 3.562 3.701 2.600 2.515 2.530 2.895 2.640 2.625 2.640 2.685 2.970 2.985 3.000 2.745 2.760 2.775 2.810 2.825 3.650 3.350 2.870 2.765 3.050 2.845 2.930 3.145 3.160 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 5.500 5.500 5.500 3.380 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 3.800 3.540 3.540 3.540 3.540 3.380 3.700 1.500 1.500 1.612 1.698 1.704 1.710 1.716 1.572 1.698 1.624 1.590 1.626 1.772 1.778 1.734 1.740 1.746 1.822 1.828 1.704 1.790 1.796 1.802 1.668 1.674 1.680 1.686 1.762 1.768 1.894 1.900 1.726 1.792 1.798 2.306 2.315 2.324 2.363 2.372 2.381 2.390 2.349 2.358 2.477 2.486 2.365 2.374 2.503 2.512 2.521 2.530 2.539 2.488 3.407 3.446 3.625 3.664 3.523 3.662 2.585 2.600 2.515 2.530 2.625 2.640 2.625 2.670 2.685 2.970 2.985 3.000 2.745 2.760 2.775 2.810 3.500 3.650 3.500 2.870 2.765 3.050 2.845 2.930 3.145 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 5.500 5.500 3.380 3.200 3.200 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 4.230 1.500 1.500 1.692 1.698 1.704 1.710 1.636 1.572 1.698 1.624 1.590 1.626 1.772 1.778 1.734 1.740 1.816 1.822 1.828 1.704 1.790 1.796 1.732 1.668 1.674 1.680 1.756 1.762 1.768 1.894 1.770 1.726 1.792 2.297 2.306 2.315 2.324 2.363 2.372 2.381 2.340 2.349 2.358 2.477 2.396 2.365 2.494 2.503 2.512 2.521 2.530 2.479 2.488 3.407 3.446 3.625 3.664 3.523 3.662 2.585 2.500 2.515 2.880 2.625 2.610 2.625 2.670 2.955 2.970 2.985 3.000 2.745 2.760 2.795 2.810 3.500 3.650 3.500 2.870 2.765 2.900 2.845 2.930 3.145 4.000 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 5.500 5.500 3.380 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.900 3.800 3.800 3.540 3.540 3.540 3.540 3.380 3.700 4.230 1.500 1.500 1.692 1.698 1.704 1.710 1.566 1.622 1.618 1.624 1.620 1.766 1.772 1.728 1.734 1.740 1.816 1.822 1.698 1.704 1.790 1.796 1.732 1.668 1.674 1.680 1.756 1.762 1.888 1.894 1.720 1.726 1.792 2.297 2.306 2.315 2.324 2.363 2.372 2.381 2.340 2.349 2.468 2.477 2.396 2.365 2.494 2.503 2.512 2.521 2.530 2.479 3.368 3.407 3.586 3.625 3.484 3.623 2.570 2.585 2.500 2.515 2.880 2.625 2.610 2.625 2.670 2.955 2.970 2.985 2.730 2.745 2.760 2.795 2.810 3.500 3.350 2.855 2.750 2.765 2.830 2.915 3.130 3.145 2.500 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 5.500 5.500 3.200 3.200 3.750 3.750 3.750 3.450 3.120 3.900 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 3.700 4.230 1.500 1.500 1.692 1.698 1.704 1.630 1.566 1.692 1.618 1.584 1.620 1.766 1.772 1.728 1.734 1.740 1.816 1.822 1.698 1.784 1.790 1.726 1.662 1.668 1.674 1.750 1.756 1.762 1.888 1.764 1.720 1.786 1.792 2.297 2.306 2.315 2.354 2.363 2.372 2.381 2.340 2.349 2.468 2.387 2.356 2.365 2.494 2.503 2.512 2.521 2.470 2.479 3.368 3.407 3.586 3.625 3.484 3.623 2.570 2.585 2.500 2.515 2.610 2.595 2.610 2.655 2.940 2.955 2.970 2.985 2.730 2.745 2.760 2.795 3.500 3.650 3.350 2.855 2.750 3.035 2.830 2.915 3.130 3.145 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 5.500 5.500 3.200 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.540 3.380 3.700 4.230 4.230 1.500 1.500 1.692 1.698 1.704 1.630 1.616 1.692 1.618 1.614 1.760 1.766 1.772 1.728 1.734 1.810 1.816 1.692 1.698 1.784 1.790 1.726 1.662 1.668 1.674 1.750 1.756 1.762 1.888 1.764 1.720 1.786 2.288 2.297 2.306 2.315 2.354 2.363 2.372 2.331 2.340 2.459 2.468 2.387 2.356 2.485 2.494 2.503 2.512 2.521 2.470 3.329 3.368 3.547 3.586 3.445 3.584 2.555 2.570 2.485 2.500 2.865 2.610 2.595 2.610 2.655 2.940 2.955 2.970 2.985 2.730 2.745 2.780 2.795 3.500 3.650 3.500 2.855 2.750 3.035 2.830 2.915 3.130 4.000 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 5.500 5.500 3.200 3.750 3.750 3.750 3.450 3.120 3.900 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 3.700 4.230 4.560 1.500 1.500 1.692 1.698 1.704 1.560 1.616 1.612 1.618 1.614 1.760 1.766 1.722 1.728 1.734 1.810 1.816 1.692 1.698 1.784 1.790 1.726 1.662 1.668 1.674 1.750 1.756 1.882 1.758 1.764 1.720 1.786 2.288 2.297 2.306 2.315 2.354 2.363 2.372 2.331 2.340 2.459 2.468 2.387 2.356 2.485 2.494 2.503 2.512 2.461 2.470 3.329 3.368 3.547 3.586 3.445 3.584 2.555 2.570 2.485 2.500 2.595 2.580 2.595 2.640 2.655 2.940 2.955 2.970 2.715 2.730 2.745 2.780 2.795 3.500 3.350 3.500 2.855 2.750 2.885 2.830 2.915 3.130 4.000 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 5.500 5.500 3.750 3.750 3.750 3.450 3.450 3.120 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.560 1.500 1.500 1.692 1.698 1.624 1.560 1.686 1.612 1.578 1.614 1.760 1.766 1.722 1.728 1.734 1.810 1.686 1.692 1.778 1.784 1.720 1.656 1.662 1.668 1.744 1.750 1.756 1.882 1.758 1.714 1.780 2.279 2.288 2.297 2.306 2.345 2.354 2.363 2.372 2.331 2.340 2.459 2.378 2.347 2.356 2.485 2.494 2.503 2.512 2.461 3.290 3.329 3.368 3.547 3.406 3.545 2.540 2.555 2.470 2.485 2.850 2.595 2.580 2.595 2.640 2.925 2.940 2.955 2.970 2.715 2.730 2.745 2.780 3.500 3.650 3.350 2.840 2.735 2.750 2.815 2.900 3.115 3.130 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 5.500 5.500 3.750 3.750 3.750 3.450 3.120 3.900 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 3.700 4.230 4.560 4.560 1.500 1.500 1.692 1.698 1.554 1.610 1.606 1.612 1.608 1.754 1.760 1.766 1.722 1.728 1.804 1.810 1.686 1.692 1.778 1.784 1.720 1.656 1.662 1.668 1.744 1.750 1.756 1.882 1.758 1.714 1.780 2.279 2.288 2.297 2.306 2.345 2.354 2.363 2.322 2.331 2.450 2.459 2.378 2.347 2.476 2.485 2.494 2.503 2.452 2.461 3.290 3.329 3.508 3.547 3.406 3.545 2.540 2.555 2.470 2.485 2.580 2.595 2.580 2.595 2.640 2.925 2.940 2.955 2.970 2.715 2.730 2.765 2.780 3.500 3.650 3.500 2.840 2.735 3.020 2.815 2.900 3.115 4.000 2.500 2.440 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 5.500 5.500 3.750 3.750 3.450 3.450 3.120 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.560 4.560 1.500 1.500 1.692 1.618 1.554 1.680 1.606 1.572 1.608 1.754 1.760 1.716 1.722 1.728 1.804 1.810 1.686 1.772 1.778 1.714 1.650 1.656 1.662 1.738 1.744 1.750 1.876 1.752 1.708 1.714 1.780 2.279 2.288 2.297 2.336 2.345 2.354 2.363 2.322 2.331 2.450 2.369 2.338 2.347 2.476 2.485 2.494 2.503 2.452 3.251 3.290 3.329 3.508 3.367 3.406 2.525 2.540 2.455 2.470 2.835 2.580 2.565 2.580 2.625 2.910 2.925 2.940 2.955 2.700 2.715 2.730 2.765 2.780 3.500 3.350 3.500 2.840 2.735 2.870 2.815 2.900 3.115 4.000 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 5.500 5.500 3.750 3.750 3.450 3.120 3.900 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 3.700 4.230 4.560 4.560 4.670 1.500 1.500 1.692 1.618 1.604 1.680 1.606 1.602 1.748 1.754 1.760 1.716 1.722 1.728 1.804 1.680 1.686 1.772 1.708 1.714 1.650 1.656 1.662 1.738 1.744 1.750 1.876 1.752 1.708 1.774 2.270 2.279 2.288 2.297 2.336 2.345 2.354 2.313 2.322 2.441 2.450 2.369 2.338 2.467 2.476 2.485 2.494 2.503 2.452 3.251 3.290 3.469 3.508 3.367 3.506 2.525 2.540 2.455 2.470 2.565 2.580 2.565 2.580 2.625 2.910 2.925 2.940 2.955 2.700 2.715 2.730 2.765 3.500 3.650 3.350 2.825 2.840 2.735 2.800 2.885 3.100 3.115 2.500 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 5.500 5.500 3.750 3.450 3.450 3.120 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.560 4.560 4.670 1.500 1.500 1.692 1.548 1.604 1.600 1.566 1.602 1.748 1.754 1.710 1.716 1.722 1.798 1.804 1.680 1.686 1.772 1.708 1.644 1.650 1.656 1.732 1.738 1.744 1.870 1.876 1.752 1.708 1.774 2.270 2.279 2.288 2.297 2.336 2.345 2.354 2.313 2.322 2.441 2.360 2.329 2.338 2.467 2.476 2.485 2.494 2.443 3.212 3.251 3.290 3.469 3.328 3.367 3.506 2.525 2.440 2.455 2.820 2.565 2.550 2.565 2.610 2.895 2.910 2.925 2.940 2.685 2.700 2.715 2.750 2.765 3.500 3.650 3.500 2.825 2.720 2.735 2.800 2.885 3.100 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 5.500 3.750 3.750 3.450 3.120 3.900 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 3.700 4.230 4.560 4.560 4.670 4.670 1.500 1.500 1.612 1.548 1.674 1.600 1.566 1.602 1.748 1.754 1.710 1.716 1.722 1.798 1.674 1.680 1.766 1.702 1.708 1.644 1.650 1.656 1.732 1.738 1.744 1.870 1.746 1.702 1.708 1.774 2.270 2.279 2.288 2.327 2.336 2.345 2.304 2.313 2.322 2.441 2.360 2.329 2.458 2.467 2.476 2.485 2.494 2.443 3.212 3.251 3.430 3.469 3.328 3.467 2.510 2.525 2.440 2.455 2.550 2.565 2.550 2.565 2.610 2.895 2.910 2.925 2.940 2.685 2.700 2.715 2.750 3.500 3.500 3.350 3.500 2.825 2.720 2.855 2.800 2.885 3.100 4.000 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 5.500 3.750 3.450 3.450 3.120 3.900 3.800 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.560 4.560 4.670 4.670 1.500 1.500 1.542 1.598 1.594 1.600 1.596 1.742 1.748 1.704 1.710 1.716 1.722 1.798 1.674 1.680 1.766 1.702 1.708 1.644 1.650 1.656 1.732 1.738 1.744 1.870 1.746 1.702 1.768 2.261 2.270 2.279 2.288 2.327 2.336 2.345 2.304 2.313 2.432 2.351 2.320 2.329 2.458 2.467 2.476 2.485 2.434 3.173 3.212 3.251 3.430 3.289 3.328 3.467 2.510 2.425 2.440 2.805 2.550 2.535 2.550 2.595 2.610 2.895 2.910 2.925 2.940 2.685 2.700 2.735 2.750 3.500 3.650 3.350 2.810 2.825 2.720 2.785 2.870 3.085 3.100 4.000 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 5.500 3.750 3.450 3.120 3.900 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.560 4.560 4.670 4.670 3.580 1.500 1.500 1.542 1.668 1.594 1.560 1.596 1.742 1.748 1.704 1.710 1.716 1.792 1.798 1.674 1.760 1.766 1.702 1.638 1.644 1.650 1.726 1.732 1.738 1.864 1.870 1.746 1.702 1.768 2.261 2.270 2.279 2.318 2.327 2.336 2.295 2.304 2.313 2.432 2.351 2.320 2.449 2.458 2.467 2.476 2.485 2.434 3.173 3.212 3.391 3.430 3.289 3.428 2.495 2.510 2.425 2.440 2.535 2.550 2.535 2.550 2.595 2.880 2.895 2.910 2.925 2.670 2.685 2.700 2.735 2.750 3.500 3.650 3.500 2.810 2.705 2.720 2.785 2.870 3.085 3.100 2.500 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 5.500 3.450 3.450 3.120 3.900 3.800 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.560 4.560 4.670 4.670 3.580 1.500 1.500 1.592 1.588 1.594 1.560 1.736 1.742 1.748 1.704 1.710 1.716 1.792 1.668 1.674 1.760 1.766 1.702 1.638 1.644 1.650 1.726 1.732 1.738 1.864 1.740 1.696 1.702 2.252 2.261 2.270 2.279 2.318 2.327 2.336 2.295 2.304 2.423 2.342 2.311 2.320 2.449 2.458 2.467 2.476 2.425 3.134 3.173 3.212 3.391 3.250 3.389 3.428 2.495 2.410 2.425 2.790 2.535 2.520 2.535 2.580 2.595 2.880 2.895 2.910 2.925 2.670 2.685 2.700 2.735 3.500 3.650 3.350 3.500 2.810 2.705 2.990 2.785 2.870 3.085 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 5.500 3.450 3.120 3.900 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 1.500 1.500 1.662 1.588 1.594 1.590 1.736 1.742 1.698 1.704 1.710 1.786 1.792 1.668 1.754 1.760 1.696 1.632 1.638 1.644 1.720 1.726 1.732 1.858 1.864 1.740 1.696 1.762 2.252 2.261 2.270 2.309 2.318 2.327 2.286 2.295 2.304 2.423 2.342 2.311 2.440 2.449 2.458 2.467 2.476 2.425 3.134 3.173 3.352 3.391 3.250 3.389 2.480 2.495 2.410 2.425 2.520 2.535 2.520 2.535 2.580 2.865 2.880 2.895 2.910 2.925 2.670 2.685 2.720 2.735 3.500 3.650 3.350 2.795 2.810 2.705 2.770 2.855 3.070 3.085 4.000 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 5.500 3.450 3.120 3.900 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 1.500 1.500 1.662 1.588 1.554 1.590 1.736 1.742 1.698 1.704 1.710 1.786 1.792 1.668 1.754 1.760 1.696 1.632 1.638 1.644 1.720 1.726 1.732 1.858 1.864 1.690 1.696 1.762 2.252 2.261 2.270 2.309 2.318 2.327 2.286 2.295 2.414 2.333 2.302 2.311 2.440 2.449 2.458 2.467 2.416 3.095 3.134 3.313 3.352 3.211 3.350 2.465 2.480 2.395 2.410 2.775 2.520 2.505 2.520 2.565 2.580 2.865 2.880 2.895 2.910 2.655 2.670 2.685 2.720 3.500 3.500 3.650 3.350 2.795 2.810 2.705 2.770 2.855 3.070 3.085 2.500 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 5.500 3.120 3.900 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.230 4.560 4.670 4.670 3.580 3.580 3.580 1.500 1.500 1.612 1.588 1.554 1.730 1.736 1.692 1.698 1.704 1.780 1.786 1.662 1.748 1.754 1.760 1.626 1.632 1.638 1.714 1.720 1.726 1.852 1.858 1.734 1.690 1.756 2.243 2.252 2.261 2.300 2.309 2.318 2.277 2.286 2.295 2.414 2.333 2.302 2.431 2.440 2.449 2.458 2.467 2.416 3.095 3.134 3.313 3.352 3.211 3.350 2.465 2.480 2.395 2.410 2.505 2.520 2.505 2.520 2.565 2.850 2.865 2.880 2.895 2.910 2.655 2.670 2.705 2.720 3.500 3.650 3.650 3.500 2.795 2.690 2.975 2.770 2.855 3.070 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 5.500 3.120 3.900 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 1.500 1.500 1.612 1.618 1.584 1.730 1.736 1.692 1.698 1.774 1.780 1.786 1.662 1.748 1.754 1.690 1.626 1.632 1.638 1.714 1.720 1.726 1.852 1.858 1.684 1.690 1.756 2.243 2.252 2.261 2.300 2.309 2.318 2.277 2.286 2.405 2.324 2.293 2.302 2.431 2.440 2.449 2.458 2.407 3.056 3.095 3.274 3.313 3.172 3.311 2.450 2.465 2.380 2.395 2.760 2.505 2.490 2.505 2.550 2.565 2.850 2.865 2.880 2.895 2.640 2.655 2.670 2.705 2.720 3.500 3.650 3.350 2.780 2.795 2.690 2.825 2.840 3.055 3.070 4.000 2.500 2.650 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 5.500 3.900 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.230 4.560 4.670 4.670 3.580 3.580 3.580 3.580 1.500 1.500 1.612 1.668 1.544 1.630 1.686 1.692 1.698 1.774 1.780 1.656 1.742 1.748 1.754 1.690 1.626 1.632 1.708 1.714 1.720 1.726 1.852 1.858 1.684 1.750 2.234 2.243 2.252 2.291 2.300 2.309 2.268 2.277 2.396 2.405 2.284 2.293 2.422 2.431 2.440 2.449 2.458 2.407 3.056 3.095 3.274 3.313 3.172 3.311 2.450 2.365 2.380 2.745 2.490 2.475 2.490 2.505 2.550 2.835 2.850 2.865 2.880 2.895 2.640 2.655 2.670 2.705 3.500 3.500 3.650 3.350 2.780 2.795 2.690 2.755 2.840 3.055 3.070 4.000 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 5.500 3.900 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 1.500 1.500 1.612 1.668 1.544 1.630 1.636 1.692 1.768 1.774 1.780 1.656 1.742 1.748 1.684 1.620 1.626 1.632 1.708 1.714 1.720 1.846 1.852 1.678 1.684 1.750 2.234 2.243 2.282 2.291 2.300 2.259 2.268 2.277 2.396 2.315 2.284 2.293 2.422 2.431 2.440 2.449 2.398 3.017 3.056 3.235 3.274 3.133 3.272 2.435 2.450 2.365 2.380 2.745 2.490 2.475 2.490 2.535 2.550 2.835 2.850 2.865 2.880 2.625 2.640 2.655 2.690 2.705 3.500 3.650 3.650 3.500 2.780 2.675 2.960 2.755 2.840 3.055 4.000 2.500 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 3.300 5.500 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.230 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 1.500 1.500 1.662 1.538 1.624 1.630 1.636 1.722 1.728 1.774 1.650 1.736 1.742 1.748 1.684 1.620 1.626 1.702 1.708 1.714 1.720 1.846 1.852 1.678 1.744 2.225 2.234 2.243 2.282 2.291 2.300 2.259 2.268 2.387 2.306 2.275 2.284 2.413 2.422 2.431 2.440 2.449 2.398 3.017 3.056 3.235 3.094 3.133 2.420 2.435 2.350 2.365 2.730 2.475 2.460 2.475 2.490 2.535 2.820 2.835 2.850 2.865 2.880 2.625 2.640 2.655 2.690 3.500 3.500 3.650 3.350 2.765 2.780 2.675 2.810 2.825 3.040 3.055 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 3.300 5.500 3.900 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 1.500 1.500 1.532 1.538 1.624 1.630 1.716 1.722 1.728 1.584 1.650 1.736 1.742 1.678 1.614 1.620 1.626 1.702 1.708 1.714 1.840 1.846 1.672 1.738 1.744 2.225 2.234 2.273 2.282 2.291 2.250 2.259 2.268 2.387 2.306 2.275 2.284 2.413 2.422 2.431 2.440 2.389 2.978 3.017 3.196 3.235 3.094 3.233 2.420 2.435 2.350 2.365 2.460 2.475 2.460 2.475 2.520 2.535 2.820 2.835 2.850 2.865 2.610 2.625 2.640 2.675 2.690 3.500 3.650 3.650 3.350 2.765 2.780 2.675 2.740 2.825 3.040 3.055 4.000 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 3.300 5.500 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.230 4.560 4.670 4.670 4.670 3.580 3.580 3.580 3.470 3.470 1.500 1.500 1.532 1.618 1.624 1.710 1.716 1.722 1.648 1.584 1.710 1.736 1.742 1.678 1.614 1.620 1.696 1.702 1.708 1.714 1.840 1.716 1.672 1.738 2.216 2.225 2.264 2.273 2.282 2.241 2.250 2.259 2.378 2.297 2.266 2.275 2.404 2.413 2.422 2.431 2.380 2.939 2.978 3.157 3.196 3.055 3.194 2.405 2.420 2.335 2.350 2.715 2.460 2.445 2.460 2.475 2.520 2.805 2.820 2.835 2.850 2.865 2.610 2.625 2.640 2.675 2.690 3.500 3.650 3.350 3.500 2.765 2.660 2.945 2.740 2.825 3.040 4.000 2.500 2.500 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 3.600 5.500 3.800 3.800 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 1.500 1.500 1.532 1.618 1.624 1.710 1.716 1.642 1.578 1.634 1.630 1.636 1.742 1.678 1.614 1.620 1.696 1.702 1.708 1.834 1.840 1.666 1.732 2.207 2.216 2.225 2.264 2.273 2.282 2.241 2.250 2.369 2.378 2.257 2.266 2.395 2.404 2.413 2.422 2.431 2.380 2.939 2.978 3.157 3.196 3.055 3.194 2.405 2.320 2.335 2.700 2.445 2.460 2.445 2.460 2.505 2.520 2.805 2.820 2.835 2.850 2.595 2.610 2.625 2.660 2.675 3.500 3.500 3.650 3.350 2.750 2.765 2.660 2.795 2.810 2.825 3.040 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 3.600 5.500 3.800 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.230 4.560 4.670 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 1.500 1.500 1.612 1.618 1.704 1.710 1.636 1.572 1.628 1.704 1.630 1.636 1.602 1.608 1.614 1.690 1.696 1.702 1.828 1.834 1.660 1.726 1.732 2.207 2.216 2.255 2.264 2.273 2.232 2.241 2.250 2.369 2.288 2.257 2.266 2.395 2.404 2.413 2.422 2.371 2.900 2.939 3.118 3.157 3.016 3.155 2.390 2.405 2.320 2.335 2.700 2.445 2.430 2.445 2.460 2.505 2.790 2.805 2.820 2.835 2.850 2.595 2.610 2.625 2.660 2.675 3.500 3.650 3.650 3.350 2.750 2.765 2.660 2.725 2.810 3.025 3.040 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 5.500 3.800 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.470 1.500 1.500 1.612 1.698 1.704 1.710 1.636 1.572 1.698 1.624 1.630 1.596 1.632 1.638 1.614 1.690 1.696 1.702 1.828 1.654 1.660 1.726 2.198 2.207 2.246 2.255 2.264 2.223 2.232 2.241 2.360 2.279 2.248 2.257 2.386 2.395 2.404 2.413 2.422 2.371 2.900 2.939 3.118 3.157 3.016 2.375 2.390 2.305 2.320 2.685 2.430 2.445 2.430 2.445 2.490 2.505 2.790 2.805 2.820 2.835 2.580 2.595 2.610 2.645 2.660 3.500 3.500 3.650 3.350 3.500 2.750 2.645 2.930 2.725 2.810 3.025 4.000 2.500 2.500 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 5.500 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 1.500 1.500 1.612 1.698 1.704 1.630 1.566 1.622 1.618 1.624 1.630 1.626 1.632 1.778 1.784 1.690 1.696 1.822 1.698 1.654 1.720 2.189 2.198 2.207 2.246 2.255 2.264 2.223 2.232 2.241 2.360 2.279 2.248 2.257 2.386 2.395 2.404 2.413 2.362 2.861 2.900 3.079 3.118 2.977 3.116 2.375 2.390 2.305 2.320 2.685 2.430 2.415 2.430 2.445 2.490 2.775 2.790 2.805 2.820 2.835 2.580 2.595 2.610 2.645 2.660 3.500 3.650 3.650 3.350 2.735 2.750 2.645 2.710 2.795 2.810 3.025 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 5.500 3.800 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.470 3.300 1.500 1.500 1.692 1.698 1.624 1.560 1.616 1.692 1.618 1.624 1.590 1.626 1.772 1.778 1.734 1.740 1.696 1.822 1.648 1.714 1.720 2.189 2.198 2.237 2.246 2.255 2.214 2.223 2.232 2.351 2.270 2.239 2.248 2.377 2.386 2.395 2.404 2.413 2.362 2.861 3.040 3.079 2.938 3.077 2.360 2.375 2.290 2.305 2.670 2.415 2.430 2.415 2.430 2.475 2.490 2.775 2.790 2.805 2.820 2.565 2.580 2.595 2.630 2.645 3.500 3.500 3.650 3.650 3.350 2.735 2.630 2.645 2.710 2.795 3.010 3.025 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 5.500 3.540 3.540 3.540 3.380 3.380 3.700 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.530 1.500 1.500 1.692 1.698 1.624 1.560 1.686 1.612 1.618 1.584 1.620 1.766 1.772 1.778 1.734 1.740 1.746 1.642 1.708 1.714 2.180 2.189 2.228 2.237 2.246 2.205 2.214 2.223 2.342 2.261 2.230 2.239 2.368 2.377 2.386 2.395 2.404 2.353 2.822 2.861 3.040 3.079 2.938 2.345 2.360 2.275 2.290 2.655 2.400 2.415 2.400 2.415 2.430 2.475 2.760 2.775 2.790 2.805 2.820 2.565 2.580 2.595 2.630 2.645 3.500 3.500 3.650 3.350 3.500 2.735 2.630 2.765 2.710 2.795 3.010 4.000 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 5.500 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.230 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.530 1.500 1.500 1.692 1.618 1.554 1.610 1.686 1.612 1.578 1.614 1.620 1.766 1.772 1.728 1.734 1.740 1.816 1.822 1.708 2.171 2.180 2.219 2.228 2.237 2.246 2.205 2.214 2.333 2.342 2.261 2.230 2.239 2.368 2.377 2.386 2.395 2.344 2.783 2.822 3.001 3.040 2.899 3.038 2.345 2.360 2.275 2.290 2.655 2.400 2.415 2.400 2.415 2.460 2.745 2.760 2.775 2.790 2.805 2.550 2.565 2.580 2.615 2.630 3.500 3.500 3.650 3.650 3.350 2.720 2.735 2.630 2.695 2.710 2.795 3.010 4.000 2.500 2.500 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 5.500 3.540 3.540 3.380 3.380 3.700 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 1.500 1.500 1.692 1.548 1.604 1.610 1.606 1.612 1.578 1.614 1.760 1.766 1.722 1.728 1.734 1.810 1.816 1.692 1.698 2.171 2.210 2.219 2.228 2.237 2.196 2.205 2.214 2.333 2.252 2.221 2.230 2.359 2.368 2.377 2.386 2.395 2.344 2.783 2.962 3.001 3.040 2.999 2.330 2.345 2.260 2.275 2.640 2.385 2.400 2.385 2.400 2.415 2.460 2.745 2.760 2.775 2.790 2.805 2.550 2.565 2.580 2.615 2.630 3.500 3.500 3.650 3.350 3.350 2.720 2.615 2.900 2.695 2.780 2.995 3.010 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.540 3.540 3.540 3.380 3.700 4.230 4.230 4.230 4.560 4.670 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.530 3.530 1.500 1.500 1.612 1.548 1.604 1.680 1.606 1.572 1.608 1.754 1.760 1.716 1.722 1.728 1.734 1.810 1.816 1.692 1.778 1.714 2.210 2.219 2.228 2.187 2.196 2.205 2.324 2.243 2.212 2.221 2.350 2.359 2.368 2.377 2.386 2.335 2.744 2.783 2.962 3.001 2.860 2.315 2.330 2.245 2.260 2.275 2.370 2.385 2.370 2.385 2.400 2.445 2.730 2.745 2.760 2.775 2.790 2.535 2.550 2.565 2.600 2.615 3.500 3.500 3.650 3.650 3.350 3.500 2.720 2.615 2.750 2.695 2.780 2.995 3.010 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.540 3.540 3.380 3.700 3.700 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 1.500 1.500 1.542 1.598 1.674 1.600 1.566 1.572 1.748 1.754 1.710 1.716 1.722 1.728 1.804 1.810 1.686 1.772 1.778 1.714 2.210 2.219 2.178 2.187 2.196 2.315 2.324 2.243 2.212 2.221 2.350 2.359 2.368 2.377 2.326 2.705 2.744 2.923 2.962 2.821 2.960 2.315 2.330 2.245 2.260 2.625 2.370 2.385 2.370 2.385 2.430 2.445 2.730 2.745 2.760 2.775 2.790 2.535 2.550 2.565 2.600 2.615 3.500 3.500 3.650 3.350 3.350 2.705 2.720 2.615 2.750 2.695 2.780 2.995 4.000 2.500 2.500 2.440 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.540 3.540 3.380 3.700 4.230 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.530 3.530 3.530 1.500 1.500 1.542 1.668 1.594 1.600 1.566 1.602 1.748 1.704 1.710 1.716 1.722 1.798 1.804 1.680 1.766 1.772 1.708 1.714 1.650 2.219 2.178 2.187 2.306 2.315 2.234 2.203 2.212 2.341 2.350 2.359 2.368 2.317 2.326 2.705 2.884 2.923 2.782 2.921 2.300 2.315 2.230 2.245 2.610 2.355 2.370 2.355 2.370 2.385 2.430 2.715 2.730 2.745 2.760 2.775 2.520 2.535 2.550 2.585 2.600 3.500 3.500 3.650 3.650 3.350 3.500 2.705 2.600 2.885 2.680 2.765 2.980 2.995 4.000 2.500 2.500 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.540 3.380 3.700 3.700 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 1.500 1.500 1.592 1.588 1.594 1.560 1.596 1.742 1.748 1.704 1.710 1.716 1.792 1.798 1.804 1.680 1.766 1.702 1.708 1.714 1.650 1.656 2.178 2.297 2.306 2.225 2.194 2.203 2.332 2.341 2.350 2.359 2.368 2.317 2.666 2.845 2.884 2.923 2.782 2.285 2.300 2.215 2.230 2.245 2.340 2.355 2.370 2.355 2.370 2.415 2.700 2.715 2.730 2.745 2.760 2.775 2.520 2.535 2.550 2.585 2.600 3.500 3.500 3.650 3.650 3.350 3.500 2.705 2.600 2.735 2.680 2.765 2.980 2.995 4.000 2.500 2.650 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.380 3.380 3.700 4.230 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.530 3.530 3.530 4.230 1.500 1.500 1.582 1.588 1.554 1.590 1.736 1.742 1.698 1.704 1.710 1.786 1.792 1.798 1.674 1.760 1.766 1.702 1.708 1.644 1.650 1.656 1.732 2.297 2.216 2.185 2.194 2.323 2.332 2.341 2.350 2.359 2.308 2.627 2.666 2.845 2.884 2.743 2.882 2.285 2.200 2.215 2.230 2.595 2.340 2.355 2.340 2.355 2.400 2.415 2.700 2.715 2.730 2.745 2.760 2.505 2.520 2.535 2.570 2.585 3.500 3.500 3.650 3.650 3.350 3.500 2.690 2.585 2.870 2.665 2.680 2.765 2.980 2.995 4.000 2.500 2.650 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.380 3.700 3.700 4.230 4.230 4.230 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 4.230 4.230 1.500 1.500 1.582 1.588 1.554 1.730 1.736 1.692 1.698 1.704 1.710 1.786 1.792 1.668 1.754 1.760 1.696 1.702 1.638 1.644 1.650 1.726 1.732 1.738 2.176 2.185 2.314 2.323 2.332 2.341 2.350 2.299 2.588 2.627 2.806 2.845 2.704 2.843 2.270 2.285 2.200 2.215 2.580 2.325 2.340 2.325 2.340 2.355 2.400 2.685 2.700 2.715 2.730 2.745 2.760 2.505 2.520 2.535 2.570 2.585 3.500 3.500 3.650 3.650 3.350 3.500 2.690 2.585 2.870 2.665 2.750 2.965 2.980 4.000 2.500 2.500 2.440 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.380 3.700 4.230 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 1.500 1.500 1.582 1.548 1.584 1.730 1.686 1.692 1.698 1.704 1.780 1.786 1.662 1.668 1.754 1.760 1.696 1.632 1.638 1.644 1.720 1.726 1.732 1.738 1.864 2.185 2.314 2.323 2.332 2.341 2.290 2.299 2.588 2.767 2.806 2.665 2.804 2.255 2.270 2.185 2.200 2.215 2.310 2.325 2.310 2.325 2.340 2.385 2.670 2.685 2.700 2.715 2.730 2.745 2.490 2.505 2.520 2.555 2.570 3.500 3.500 3.650 3.650 3.350 3.500 2.675 2.690 2.585 2.720 2.665 2.750 2.965 2.980 4.000 2.500 2.500 2.440 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.700 3.700 4.230 4.230 4.230 4.560 4.670 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.530 3.530 4.230 4.230 4.230 1.500 1.500 1.542 1.578 1.724 1.730 1.686 1.692 1.698 1.774 1.780 1.786 1.662 1.748 1.754 1.690 1.626 1.632 1.638 1.714 1.720 1.726 1.732 1.738 1.864 1.690 2.314 2.323 2.332 2.281 2.290 2.549 2.728 2.767 2.626 2.765 2.240 2.255 2.170 2.185 2.200 2.565 2.310 2.295 2.310 2.325 2.370 2.385 2.670 2.685 2.700 2.715 2.730 2.745 2.490 2.505 2.520 2.555 2.570 3.500 3.500 3.650 3.650 3.350 3.500 2.675 2.570 2.855 2.650 2.665 2.750 2.965 2.980 4.000 2.500 2.650 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.700 4.230 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 1.500 1.500 1.572 1.718 1.724 1.680 1.686 1.692 1.768 1.774 1.780 1.656 1.742 1.748 1.684 1.620 1.626 1.632 1.638 1.714 1.720 1.726 1.732 1.858 1.684 1.690 1.756 2.323 2.272 2.281 2.510 2.549 2.728 2.587 2.726 2.765 2.240 2.155 2.170 2.185 2.550 2.295 2.280 2.295 2.310 2.355 2.370 2.655 2.670 2.685 2.700 2.715 2.730 2.475 2.490 2.505 2.540 2.555 3.500 3.500 3.650 3.650 3.350 3.500 2.660 2.675 2.570 2.855 2.650 2.735 2.950 2.965 2.980 4.000 2.500 2.650 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.700 4.230 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.000 1.500 1.500 1.712 1.718 1.674 1.680 1.686 1.762 1.768 1.774 1.650 1.656 1.742 1.678 1.614 1.620 1.626 1.632 1.708 1.714 1.720 1.726 1.852 1.858 1.684 1.750 2.234 2.243 2.272 2.471 2.510 2.689 2.548 2.587 2.726 2.225 2.140 2.155 2.170 2.535 2.280 2.295 2.280 2.295 2.310 2.355 2.640 2.655 2.670 2.685 2.700 2.715 2.730 2.475 2.490 2.525 2.540 3.500 3.500 3.650 3.650 3.350 3.350 3.500 2.660 2.555 2.570 2.705 2.650 2.735 2.950 2.965 2.980 2.500 2.500 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 4.230 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 1.500 1.500 1.712 1.718 1.674 1.680 1.686 1.762 1.768 1.774 1.650 1.736 1.672 1.678 1.614 1.620 1.626 1.702 1.708 1.714 1.720 1.846 1.852 1.678 1.744 2.225 2.234 2.243 2.252 2.471 2.650 2.509 2.548 2.687 2.210 2.225 2.140 2.155 2.520 2.265 2.280 2.265 2.280 2.295 2.340 2.625 2.640 2.655 2.670 2.685 2.700 2.715 2.460 2.475 2.490 2.525 3.500 3.500 3.500 3.650 3.650 3.350 3.500 2.645 2.660 2.555 2.840 2.635 2.650 2.735 2.950 2.965 4.000 2.500 2.500 2.440 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 4.230 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 1.500 1.500 1.712 1.668 1.674 1.680 1.756 1.762 1.768 1.644 1.730 1.736 1.672 1.608 1.614 1.620 1.696 1.702 1.708 1.714 1.840 1.846 1.672 1.738 2.216 2.225 2.234 2.243 2.252 2.291 2.650 2.509 2.648 2.195 2.210 2.125 2.140 2.505 2.250 2.265 2.250 2.265 2.280 2.325 2.340 2.625 2.640 2.655 2.670 2.685 2.700 2.445 2.460 2.475 2.510 2.525 3.500 3.500 3.650 3.650 3.350 3.350 3.500 2.645 2.540 2.555 2.840 2.635 2.650 2.735 2.950 2.965 4.000 2.500 2.650 2.440 2.440 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 1.500 1.500 1.662 1.668 1.674 1.750 1.756 1.762 1.638 1.724 1.730 1.666 1.602 1.608 1.614 1.690 1.696 1.702 1.708 1.834 1.840 1.666 1.732 2.207 2.216 2.225 2.234 2.243 2.282 2.291 2.300 2.609 2.180 2.195 2.110 2.125 2.490 2.235 2.250 2.235 2.250 2.265 2.310 2.325 2.610 2.625 2.640 2.655 2.670 2.685 2.430 2.445 2.460 2.495 2.510 3.500 3.500 3.650 3.650 3.650 3.350 3.500 2.630 2.645 2.540 2.555 2.690 2.635 2.720 2.935 2.950 2.965 4.000 2.500 2.650 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 4.230 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 1.500 1.500 1.662 1.668 1.744 1.750 1.756 1.632 1.638 1.724 1.660 1.666 1.602 1.608 1.684 1.690 1.696 1.702 1.828 1.834 1.660 1.726 1.732 2.207 2.216 2.225 2.234 2.273 2.282 2.291 2.300 2.259 2.180 2.095 2.110 2.475 2.220 2.235 2.220 2.235 2.250 2.295 2.310 2.595 2.610 2.625 2.640 2.655 2.670 2.685 2.430 2.445 2.480 2.495 3.500 3.500 3.500 3.650 3.650 3.350 3.500 3.500 2.630 2.645 2.540 2.825 2.690 2.635 2.720 2.935 2.950 2.965 4.000 2.500 2.650 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 4.230 4.560 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 1.500 1.500 1.662 1.668 1.744 1.750 1.626 1.632 1.718 1.654 1.660 1.596 1.602 1.678 1.684 1.690 1.696 1.822 1.828 1.654 1.720 1.726 2.198 2.207 2.216 2.225 2.264 2.273 2.282 2.291 2.300 2.259 2.268 2.095 2.460 2.205 2.220 2.205 2.220 2.235 2.280 2.295 2.580 2.595 2.610 2.625 2.640 2.655 2.670 2.415 2.430 2.445 2.480 2.495 3.500 3.500 3.650 3.650 3.650 3.350 3.500 2.615 2.630 2.525 2.540 2.825 2.620 2.635 2.720 2.935 2.950 2.965 2.500 2.500 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 1.500 1.500 1.712 1.738 1.744 1.750 1.626 1.712 1.648 1.654 1.590 1.596 1.602 1.678 1.684 1.690 1.696 1.822 1.648 1.654 1.720 2.189 2.198 2.207 2.216 2.225 2.264 2.273 2.282 2.291 2.250 2.259 2.378 2.387 2.190 2.205 2.190 2.205 2.220 2.265 2.280 2.565 2.580 2.595 2.610 2.625 2.640 2.655 2.400 2.415 2.430 2.465 2.480 3.500 3.500 3.650 3.650 3.650 3.350 3.500 2.600 2.615 2.630 2.525 2.810 2.675 2.620 2.635 2.920 2.935 2.950 4.000 2.500 2.500 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 4.560 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 3.800 1.500 1.500 1.662 1.738 1.744 1.620 1.706 1.712 1.648 1.584 1.590 1.596 1.672 1.678 1.684 1.690 1.816 1.642 1.648 1.714 2.180 2.189 2.198 2.207 2.216 2.255 2.264 2.273 2.282 2.291 2.250 2.369 2.378 2.387 2.190 2.175 2.190 2.205 2.250 2.265 2.550 2.565 2.580 2.595 2.610 2.625 2.640 2.385 2.400 2.415 2.450 2.465 3.500 3.500 3.650 3.650 3.650 3.350 3.350 3.500 2.600 2.615 2.510 2.525 2.810 2.675 2.620 2.705 2.920 2.935 2.950 4.000 2.500 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 3.800 1.500 1.500 1.662 1.668 1.744 1.620 1.706 1.642 1.648 1.584 1.590 1.666 1.672 1.678 1.684 1.810 1.636 1.642 1.708 2.171 2.180 2.189 2.198 2.207 2.246 2.255 2.264 2.273 2.282 2.241 2.250 2.369 2.378 2.297 2.306 2.175 2.190 2.235 2.250 2.535 2.550 2.565 2.580 2.595 2.610 2.625 2.370 2.385 2.400 2.435 2.450 3.500 3.500 3.500 3.650 3.650 3.350 3.350 3.500 2.585 2.600 2.615 2.510 2.525 2.810 2.675 2.620 2.705 2.920 2.935 2.950 4.000 2.500 2.650 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 1.500 1.500 1.662 1.578 1.584 1.700 1.636 1.642 1.578 1.584 1.660 1.666 1.672 1.678 1.804 1.630 1.636 1.702 2.162 2.171 2.180 2.189 2.198 2.237 2.246 2.255 2.264 2.273 2.232 2.241 2.360 2.369 2.378 2.297 2.306 2.275 2.220 2.235 2.520 2.535 2.550 2.565 2.580 2.595 2.610 2.355 2.370 2.385 2.420 2.435 3.500 3.500 3.500 3.650 3.650 3.350 3.350 3.500 2.570 2.585 2.600 2.495 2.510 2.795 2.810 2.605 2.620 2.705 2.920 2.935 2.950 4.000 2.500 2.650 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 1.500 1.500 1.572 1.578 1.584 1.730 1.636 1.572 1.578 1.584 1.660 1.666 1.672 1.798 1.674 1.630 1.696 1.702 2.162 2.171 2.180 2.189 2.228 2.237 2.246 2.255 2.264 2.273 2.232 2.241 2.360 2.369 2.288 2.297 2.266 2.275 2.284 2.505 2.520 2.535 2.550 2.565 2.580 2.595 2.340 2.355 2.370 2.405 2.420 3.500 3.500 3.500 3.650 3.650 3.650 3.350 3.350 3.500 2.570 2.585 2.480 2.495 2.510 2.795 2.660 2.605 2.620 2.905 2.920 2.935 4.000 2.500 2.500 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 1.500 1.500 1.572 1.578 1.724 1.730 1.686 1.572 1.578 1.654 1.660 1.666 1.792 1.668 1.624 1.690 1.696 2.153 2.162 2.171 2.180 2.219 2.228 2.237 2.246 2.255 2.264 2.223 2.232 2.351 2.360 2.279 2.288 2.297 2.266 2.275 2.284 2.505 2.520 2.535 2.550 2.565 2.580 2.325 2.340 2.355 2.390 2.405 3.500 3.500 3.500 3.650 3.650 3.650 3.350 3.350 3.500 2.555 2.570 2.585 2.480 2.495 2.780 2.795 2.660 2.605 2.690 2.905 2.920 2.935 4.000 2.500 2.500 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 3.800 1.500 1.500 1.572 1.578 1.724 1.680 1.686 1.692 1.768 1.654 1.660 1.786 1.662 1.618 1.684 1.690 2.144 2.153 2.162 2.171 2.210 2.219 2.228 2.237 2.246 2.255 2.214 2.223 2.342 2.351 2.360 2.279 2.288 2.257 2.266 2.275 2.284 2.413 2.520 2.535 2.550 2.565 2.310 2.325 2.340 2.375 2.390 2.405 3.500 3.500 3.650 3.650 3.650 3.350 3.350 3.500 2.540 2.555 2.570 2.465 2.480 2.495 2.780 2.645 2.590 2.605 2.690 2.905 2.920 2.935 4.000 2.500 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 4.560 4.670 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 3.800 1.500 1.500 1.572 1.718 1.724 1.680 1.686 1.692 1.768 1.774 1.780 1.656 1.662 1.618 1.684 2.135 2.144 2.153 2.162 2.171 2.210 2.219 2.228 2.237 2.246 2.205 2.214 2.223 2.342 2.351 2.270 2.279 2.248 2.257 2.266 2.275 2.404 2.413 2.422 2.535 2.550 2.295 2.310 2.325 2.360 2.375 2.390 3.500 3.500 3.650 3.650 3.650 3.350 3.350 3.500 2.525 2.540 2.555 2.570 2.465 2.480 2.765 2.780 2.645 2.590 2.605 2.690 2.905 3.120 2.935 4.000 2.500 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 1.500 1.500 1.712 1.718 1.674 1.680 1.686 1.762 1.768 1.644 1.650 1.656 1.612 1.678 2.126 2.135 2.144 2.153 2.162 2.201 2.210 2.219 2.228 2.237 2.196 2.205 2.214 2.333 2.342 2.261 2.270 2.239 2.248 2.257 2.266 2.275 2.404 2.413 2.422 2.431 2.280 2.295 2.310 2.345 2.360 2.375 3.500 3.500 3.500 3.650 3.650 3.350 3.350 3.500 3.500 2.525 2.540 2.555 2.450 2.465 2.480 2.765 2.630 2.645 2.590 2.675 2.890 2.905 3.120 2.935 4.000 2.500 2.650 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 4.670 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 3.800 4.200 1.500 1.500 1.712 1.668 1.674 1.680 1.756 1.762 1.638 1.644 1.730 1.666 1.612 1.678 2.126 2.135 2.144 2.153 2.192 2.201 2.210 2.219 2.228 2.187 2.196 2.205 2.324 2.333 2.342 2.261 2.230 2.239 2.248 2.257 2.266 2.395 2.404 2.413 2.422 2.431 2.380 2.295 2.330 2.345 2.360 3.500 3.500 3.500 3.650 3.650 3.350 3.350 3.500 3.500 2.510 2.525 2.540 2.435 2.450 2.465 2.750 2.765 2.630 2.575 2.590 2.675 2.890 2.905 2.920 2.935 2.500 2.500 2.650 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 3.800 4.200 1.500 1.500 1.662 1.668 1.674 1.750 1.756 1.632 1.638 1.724 1.730 1.666 1.602 1.608 2.126 2.135 2.144 2.183 2.192 2.201 2.210 2.219 2.178 2.187 2.196 2.315 2.324 2.333 2.252 2.261 2.230 2.239 2.248 2.257 2.266 2.395 2.404 2.413 2.422 2.371 2.380 2.389 2.330 2.345 3.500 3.500 3.650 3.650 3.650 3.350 3.350 3.500 3.500 2.495 2.510 2.525 2.420 2.435 2.450 2.735 2.750 2.615 2.630 2.575 2.590 2.675 2.890 2.905 2.920 4.000 2.500 2.500 2.650 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 3.800 4.200 4.200 1.500 1.500 1.662 1.668 1.744 1.750 1.626 1.632 1.718 1.724 1.660 1.596 1.602 1.608 1.684 2.135 2.174 2.183 2.192 2.201 2.210 2.169 2.178 2.187 2.306 2.315 2.324 2.243 2.252 2.221 2.230 2.239 2.248 2.257 2.386 2.395 2.404 2.413 2.422 2.371 2.380 2.939 2.978 3.500 3.500 3.650 3.650 3.650 3.350 3.350 3.500 3.500 2.480 2.495 2.510 2.405 2.420 2.435 2.720 2.735 2.600 2.815 2.630 2.575 2.660 2.675 2.890 3.105 2.920 4.000 2.500 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 3.800 4.200 3.800 1.500 1.500 1.662 1.738 1.744 1.750 1.626 1.712 1.718 1.654 1.590 1.596 1.602 1.678 1.684 1.690 1.696 2.183 2.192 2.201 2.210 2.169 2.178 2.297 2.306 2.225 2.234 2.203 2.212 2.221 2.230 2.239 2.248 2.377 2.386 2.395 2.404 2.413 2.362 2.371 2.380 2.939 3.118 3.500 3.650 3.650 3.650 3.350 3.350 3.500 3.500 2.465 2.480 2.495 2.390 2.405 2.420 2.435 2.720 2.585 2.600 2.615 2.560 2.575 2.660 2.875 2.890 3.105 2.920 4.000 2.500 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 1.500 1.500 1.732 1.738 1.744 1.620 1.706 1.712 1.648 1.654 1.590 1.596 1.602 1.678 1.684 1.690 1.696 1.692 2.192 2.201 2.160 2.169 2.288 2.297 2.216 2.225 2.194 2.203 2.212 2.221 2.230 2.239 2.368 2.377 2.386 2.395 2.404 2.353 2.362 2.371 2.900 2.939 3.118 2.977 3.650 3.650 3.350 3.350 3.500 3.500 2.450 2.465 2.480 2.375 2.390 2.405 2.420 2.705 2.570 2.585 2.800 2.615 2.560 2.575 2.660 2.875 2.890 3.105 2.920 4.000 2.500 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 4.670 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 3.800 4.200 3.800 3.800 1.500 1.500 1.732 1.738 1.614 1.700 1.706 1.642 1.648 1.584 1.590 1.596 1.672 1.678 1.684 1.690 1.816 1.692 1.648 1.714 2.160 2.169 2.288 2.207 2.216 2.185 2.194 2.203 2.212 2.221 2.230 2.239 2.368 2.377 2.386 2.395 2.344 2.353 2.362 2.861 2.900 3.079 3.118 2.977 3.650 3.350 3.350 3.500 3.500 2.435 2.450 2.465 2.360 2.375 2.390 2.405 2.690 2.555 2.570 2.785 2.600 2.545 2.560 2.645 2.860 2.875 2.890 2.905 2.920 2.500 2.500 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 1.500 1.500 1.732 1.608 1.694 1.700 1.636 1.642 1.578 1.584 1.590 1.666 1.672 1.678 1.684 1.810 1.686 1.692 1.648 1.714 2.160 2.279 2.198 2.207 2.176 2.185 2.194 2.203 2.212 2.221 2.230 2.359 2.368 2.377 2.386 2.395 2.344 2.353 2.362 2.861 3.040 3.079 2.938 3.077 2.360 3.350 3.500 3.500 2.420 2.435 2.450 2.345 2.360 2.375 2.390 2.675 2.540 2.555 2.770 2.785 2.600 2.545 2.560 2.645 2.860 2.875 3.090 2.905 4.000 2.500 2.500 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.650 3.500 3.500 3.500 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 3.800 4.200 4.200 3.800 3.800 1.500 1.500 1.602 1.688 1.694 1.630 1.636 1.572 1.578 1.584 1.660 1.666 1.672 1.678 1.804 1.680 1.686 1.642 1.708 1.714 2.180 2.189 2.198 2.167 2.176 2.185 2.194 2.203 2.212 2.341 2.350 2.359 2.368 2.377 2.326 2.335 2.344 2.353 2.822 3.001 3.040 2.899 2.938 3.077 2.360 2.275 3.500 2.405 2.420 2.435 2.330 2.345 2.360 2.375 2.660 2.675 2.540 2.755 2.770 2.585 2.530 2.545 2.560 2.645 2.860 2.875 3.090 2.905 4.000 2.500 2.650 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 3.800 4.200 3.800 3.800 3.800 1.500 1.500 1.682 1.688 1.624 1.630 1.566 1.572 1.578 1.584 1.660 1.666 1.672 1.678 1.804 1.680 1.686 1.642 1.708 2.171 2.180 2.189 2.228 2.167 2.176 2.185 2.194 2.203 2.332 2.341 2.350 2.359 2.368 2.317 2.326 2.335 2.344 2.783 2.962 3.001 2.860 2.899 3.038 2.345 2.360 2.275 2.390 2.405 2.420 2.315 2.330 2.345 2.360 2.645 2.510 2.525 2.740 2.755 2.770 2.585 2.530 2.545 2.630 2.845 2.860 2.875 3.090 2.905 4.000 2.500 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.580 3.580 3.580 3.470 3.470 3.300 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 3.800 1.500 1.500 1.682 1.618 1.624 1.560 1.566 1.572 1.578 1.654 1.660 1.666 1.672 1.798 1.674 1.680 1.636 1.702 1.708 2.171 2.180 2.189 2.228 2.237 2.246 2.185 2.194 2.323 2.332 2.341 2.350 2.359 2.308 2.317 2.326 2.335 2.744 2.923 2.962 2.821 2.860 2.999 2.330 2.345 2.260 2.625 2.370 2.405 2.300 2.315 2.330 2.345 2.630 2.495 2.510 2.725 2.740 2.755 2.570 2.515 2.530 2.545 2.630 2.845 2.860 3.075 2.890 2.905 4.000 2.500 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.580 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 3.800 4.200 3.800 3.800 3.800 4.400 1.500 1.500 1.682 1.618 1.624 1.560 1.566 1.572 1.648 1.654 1.660 1.666 1.792 1.798 1.674 1.630 1.696 1.702 2.162 2.171 2.180 2.219 2.228 2.237 2.246 2.185 2.194 2.323 2.332 2.341 2.350 2.299 2.308 2.317 2.326 2.705 2.744 2.923 2.782 2.821 2.960 2.315 2.330 2.245 2.610 2.355 2.370 2.385 2.300 2.315 2.330 2.615 2.480 2.495 2.710 2.725 2.740 2.555 2.570 2.515 2.530 2.615 2.830 2.845 2.860 3.075 2.890 4.000 2.500 2.500 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.580 3.580 3.470 3.470 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 3.800 4.600 1.500 1.500 1.612 1.618 1.554 1.560 1.566 1.642 1.648 1.654 1.660 1.666 1.792 1.668 1.624 1.690 1.696 2.153 2.162 2.171 2.210 2.219 2.228 2.237 2.196 2.205 2.214 2.323 2.332 2.341 2.290 2.299 2.308 2.317 2.666 2.705 2.884 2.743 2.782 2.921 2.300 2.315 2.230 2.245 2.610 2.355 2.340 2.355 2.370 2.585 2.600 2.465 2.480 2.695 2.710 2.725 2.740 2.555 2.500 2.515 2.530 2.615 2.830 2.845 3.060 3.075 2.890 4.000 2.500 2.500 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.580 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 1.500 1.500 1.612 1.548 1.554 1.560 1.566 1.642 1.648 1.654 1.660 1.786 1.662 1.618 1.624 1.690 2.144 2.153 2.162 2.171 2.210 2.219 2.228 2.237 2.196 2.205 2.214 2.333 2.332 2.341 2.290 2.299 2.308 2.627 2.666 2.845 2.704 2.743 2.882 2.285 2.300 2.215 2.230 2.595 2.340 2.355 2.340 2.355 2.400 2.585 2.450 2.465 2.680 2.695 2.710 2.725 2.540 2.555 2.500 2.515 2.600 2.815 2.830 2.845 3.060 3.075 2.890 4.000 2.500 2.500 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.650 3.500 3.500 3.500 3.500 3.580 3.470 3.470 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 3.800 4.400 4.600 1.500 1.500 1.542 1.548 1.554 1.560 1.636 1.642 1.648 1.654 1.780 1.786 1.612 1.618 1.684 2.135 2.144 2.153 2.162 2.201 2.210 2.219 2.228 2.187 2.196 2.205 2.214 2.333 2.342 2.281 2.290 2.299 2.588 2.627 2.806 2.845 2.704 2.843 2.270 2.285 2.200 2.215 2.580 2.325 2.340 2.325 2.340 2.355 2.400 2.685 2.450 2.665 2.680 2.695 2.710 2.525 2.540 2.485 2.500 2.515 2.600 2.815 2.830 2.845 3.060 2.875 2.890 4.000 2.500 2.650 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.580 3.470 3.470 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 1.500 1.500 1.542 1.548 1.554 1.630 1.636 1.642 1.648 1.774 1.780 1.656 1.612 1.678 1.684 2.135 2.144 2.153 2.192 2.201 2.210 2.219 2.228 2.187 2.196 2.205 2.324 2.333 2.252 2.261 2.290 2.299 2.588 2.767 2.806 2.665 2.804 2.255 2.270 2.185 2.200 2.565 2.580 2.325 2.340 2.325 2.340 2.385 2.670 2.685 2.700 2.665 2.680 2.695 2.510 2.525 2.470 2.485 2.500 2.585 2.800 2.815 2.830 3.045 3.060 2.875 4.000 4.000 2.500 2.650 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 3.800 4.200 3.800 3.800 3.800 4.400 4.600 4.700 1.500 1.500 1.542 1.548 1.624 1.630 1.636 1.642 1.648 1.774 1.650 1.606 1.672 1.678 2.126 2.135 2.144 2.153 2.192 2.201 2.210 2.219 2.178 2.187 2.196 2.315 2.324 2.333 2.252 2.261 2.230 2.549 2.588 2.767 2.626 2.665 2.240 2.255 2.170 2.185 2.550 2.295 2.310 2.325 2.310 2.325 2.370 2.385 2.670 2.685 2.700 2.465 2.680 2.695 2.510 2.525 2.470 2.485 2.570 2.585 2.800 2.815 2.830 3.045 3.060 2.875 4.000 2.500 2.500 2.650 2.440 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.580 3.470 3.470 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 1.500 1.500 1.542 1.618 1.624 1.630 1.636 1.642 1.768 1.644 1.600 1.606 1.672 2.117 2.126 2.135 2.144 2.183 2.192 2.201 2.210 2.219 2.178 2.187 2.196 2.315 2.324 2.243 2.252 2.221 2.230 2.239 2.728 2.587 2.626 2.765 2.240 2.155 2.170 2.535 2.280 2.295 2.310 2.295 2.310 2.325 2.370 2.655 2.670 2.685 2.700 2.715 2.680 2.495 2.510 2.455 2.470 2.485 2.570 2.785 2.800 2.815 3.030 3.045 2.860 2.875 4.000 2.500 2.500 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.580 3.470 3.470 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 3.800 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 1.500 1.500 1.612 1.618 1.624 1.630 1.636 1.762 1.768 1.594 1.600 1.666 2.108 2.117 2.126 2.135 2.174 2.183 2.192 2.201 2.210 2.169 2.178 2.187 2.306 2.315 2.234 2.243 2.252 2.221 2.230 2.239 2.248 2.587 2.726 2.225 2.140 2.155 2.520 2.265 2.280 2.295 2.280 2.295 2.310 2.355 2.640 2.655 2.670 2.685 2.700 2.715 2.730 2.495 2.440 2.455 2.470 2.555 2.770 2.785 2.800 2.815 3.030 3.045 2.860 4.000 4.000 2.500 2.500 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.470 3.470 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 3.800 4.600 4.600 4.700 4.700 1.500 1.500 1.612 1.618 1.624 1.630 1.756 1.762 1.588 1.594 1.660 2.099 2.108 2.117 2.126 2.165 2.174 2.183 2.192 2.201 2.160 2.169 2.178 2.297 2.306 2.225 2.234 2.243 2.212 2.221 2.230 2.239 2.248 2.377 2.626 2.225 2.140 2.505 2.250 2.265 2.280 2.265 2.280 2.295 2.340 2.355 2.640 2.655 2.670 2.685 2.700 2.715 2.460 2.475 2.440 2.455 2.540 2.555 2.770 2.785 2.800 3.015 3.030 2.845 2.860 4.000 4.450 2.500 2.500 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.470 3.470 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 1.500 1.500 1.612 1.618 1.624 1.750 1.756 1.582 1.588 1.654 2.090 2.099 2.108 2.117 2.126 2.165 2.174 2.183 2.192 2.201 2.160 2.169 2.178 2.297 2.216 2.225 2.234 2.203 2.212 2.221 2.230 2.239 2.248 2.377 2.386 2.125 2.490 2.505 2.250 2.265 2.250 2.265 2.280 2.325 2.340 2.625 2.640 2.655 2.670 2.685 2.700 2.715 2.460 2.475 2.440 2.455 2.540 2.755 2.770 2.785 3.000 3.015 3.030 2.845 4.000 4.000 4.450 2.500 2.500 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.650 3.500 3.500 3.500 3.500 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 3.800 3.800 3.800 4.200 3.800 3.800 3.800 4.400 4.600 4.700 4.700 3.800 1.500 1.500 1.612 1.618 1.744 1.750 1.576 1.582 1.648 2.081 2.090 2.099 2.108 2.117 2.156 2.165 2.174 2.183 2.192 2.151 2.160 2.169 2.288 2.297 2.216 2.225 2.234 2.203 2.212 2.221 2.230 2.239 2.368 2.377 2.386 2.395 2.490 2.235 2.250 2.235 2.250 2.265 2.310 2.325 2.610 2.625 2.640 2.655 2.670 2.685 2.700 2.445 2.460 2.475 2.490 2.525 2.740 2.755 2.770 2.785 3.000 3.015 2.830 2.845 4.000 4.450 4.450 2.500 2.650 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.470 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 1.500 1.500 1.612 1.738 1.744 1.570 1.576 1.642 1.648 2.081 2.090 2.099 2.108 2.147 2.156 2.165 2.174 2.183 2.142 2.151 2.160 2.279 2.288 2.207 2.216 2.225 2.194 2.203 2.212 2.221 2.230 2.359 2.368 2.377 2.386 2.395 2.404 2.205 2.220 2.235 2.250 2.295 2.310 2.595 2.610 2.625 2.640 2.655 2.670 2.685 2.430 2.445 2.460 2.475 2.510 2.525 2.740 2.755 2.770 2.985 3.000 3.015 2.830 4.000 4.000 4.450 4.450 2.500 2.650 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.470 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.700 4.700 3.800 3.800 1.500 1.500 1.732 1.738 1.614 1.570 1.636 1.642 2.072 2.081 2.090 2.099 2.108 2.147 2.156 2.165 2.174 2.133 2.142 2.151 2.160 2.279 2.198 2.207 2.216 2.185 2.194 2.203 2.212 2.221 2.350 2.359 2.368 2.377 2.386 2.395 2.404 2.353 2.220 2.235 2.280 2.565 2.580 2.595 2.610 2.625 2.640 2.655 2.670 2.415 2.430 2.445 2.460 2.475 2.510 3.500 2.740 2.755 2.970 2.985 3.000 2.815 2.830 4.000 4.450 4.450 4.450 2.500 2.650 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 3.800 4.600 4.600 4.700 4.700 3.800 3.800 1.500 1.500 1.732 1.608 1.564 1.630 1.636 2.063 2.072 2.081 2.090 2.099 2.138 2.147 2.156 2.165 2.174 2.133 2.142 2.151 2.270 2.189 2.198 2.207 2.216 2.185 2.194 2.203 2.212 2.341 2.350 2.359 2.368 2.377 2.386 2.395 2.344 2.353 2.362 2.265 2.550 2.565 2.580 2.595 2.610 2.625 2.640 2.655 2.400 2.415 2.430 2.445 2.460 2.495 3.500 3.500 3.650 2.755 2.970 2.985 2.800 2.815 4.000 4.450 4.450 4.450 4.000 2.500 2.650 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 1.500 1.500 1.602 1.558 1.624 1.630 2.054 2.063 2.072 2.081 2.090 2.129 2.138 2.147 2.156 2.165 2.124 2.133 2.142 2.261 2.180 2.189 2.198 2.207 2.176 2.185 2.194 2.203 2.332 2.341 2.350 2.359 2.368 2.377 2.386 2.335 2.344 2.353 2.362 2.861 2.550 2.565 2.580 2.595 2.610 2.625 2.640 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.500 3.650 3.650 3.350 2.970 2.985 2.800 4.000 4.000 4.450 4.450 4.000 4.000 2.500 2.650 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 4.200 3.800 3.800 3.800 4.600 4.600 4.700 4.700 3.800 3.800 3.800 1.500 1.500 1.552 1.618 1.624 2.045 2.054 2.063 2.072 2.081 2.120 2.129 2.138 2.147 2.156 2.115 2.124 2.133 2.252 2.171 2.180 2.189 2.198 2.167 2.176 2.185 2.194 2.323 2.332 2.341 2.350 2.359 2.368 2.377 2.326 2.335 2.344 2.353 2.362 2.861 2.900 2.565 2.580 2.595 2.610 2.625 2.370 2.385 2.400 2.415 2.450 2.465 3.500 3.500 3.650 3.650 3.350 3.350 2.970 2.785 2.800 4.000 4.450 4.450 4.000 4.000 4.000 2.500 2.650 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 1.500 1.500 1.612 1.618 2.036 2.045 2.054 2.063 2.072 2.111 2.120 2.129 2.138 2.147 2.106 2.115 2.124 2.243 2.252 2.171 2.180 2.189 2.158 2.167 2.176 2.185 2.314 2.323 2.332 2.341 2.350 2.359 2.368 2.317 2.326 2.335 2.344 2.353 2.822 2.861 3.040 2.899 2.580 2.595 2.610 2.355 2.370 2.385 2.420 2.435 2.450 3.500 3.500 3.650 3.650 3.350 3.350 3.500 3.500 2.785 4.000 4.000 4.450 4.450 4.000 4.000 3.770 2.500 2.650 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.700 4.700 4.700 3.800 3.800 3.700 1.500 1.500 1.612 2.027 2.036 2.045 2.054 2.063 2.102 2.111 2.120 2.129 2.138 2.097 2.106 2.115 2.124 2.243 2.162 2.171 2.180 2.189 2.158 2.167 2.176 2.305 2.314 2.323 2.332 2.341 2.350 2.359 2.308 2.317 2.326 2.335 2.344 2.783 2.822 3.001 2.860 2.899 2.580 2.595 2.340 2.355 2.370 2.385 2.420 2.435 3.500 3.650 3.650 3.650 3.350 3.350 3.500 3.500 3.500 3.500 4.000 4.450 4.450 4.000 4.000 3.770 2.500 2.500 2.650 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 4.200 3.800 3.800 3.800 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 1.500 1.500 2.018 2.027 2.036 2.045 2.054 2.093 2.102 2.111 2.120 2.129 2.088 2.097 2.106 2.115 2.234 2.153 2.162 2.171 2.180 2.149 2.158 2.167 2.296 2.305 2.314 2.323 2.332 2.341 2.350 2.299 2.308 2.317 2.326 2.335 2.744 2.783 2.962 3.001 2.860 2.999 2.330 2.595 2.340 2.355 2.370 2.405 2.420 3.500 3.650 3.650 3.350 3.350 3.350 3.500 3.500 3.500 3.500 2.585 4.450 4.450 4.000 4.000 3.770 3.770 2.500 2.500 2.650 2.650 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 1.500 1.500 2.018 2.027 2.036 2.045 2.084 2.093 2.102 2.111 2.120 2.079 2.088 2.097 2.106 2.225 2.144 2.153 2.162 2.171 2.140 2.149 2.158 2.287 2.296 2.305 2.314 2.323 2.332 2.341 2.290 2.299 2.308 2.317 2.326 2.705 2.744 2.923 2.962 2.821 2.960 2.315 2.330 2.245 2.340 2.355 2.390 2.405 3.500 3.650 3.650 3.350 3.350 3.350 3.500 3.500 3.500 3.500 2.570 2.585 2.600 4.000 4.000 4.000 3.770 3.770 2.500 2.500 2.650 2.440 2.440 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.500 3.530 4.230 4.230 4.230 4.230 4.230 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.600 4.600 4.700 4.700 4.700 3.800 3.800 3.700 3.550 1.500 1.500 2.018 2.027 2.036 2.075 2.084 2.093 2.102 2.111 2.070 2.079 2.088 2.097 2.216 2.225 2.144 2.153 2.162 2.131 2.140 2.149 2.278 2.287 2.296 2.305 2.314 2.323 2.332 2.341 2.290 2.299 2.308 2.317 2.666 2.705 2.884 2.923 2.782 2.921 2.300 2.315 2.230 2.595 2.340 2.355 2.390 3.500 3.650 3.650 3.350 3.350 3.500 3.500 3.500 3.500 3.500 3.500 2.570 2.585 2.600 4.000 4.000 3.770 3.770 3.770 2.500 2.650 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.500 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 4.200 3.800 3.800 3.800 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.550 1.500 1.500 2.018 2.027 2.066 2.075 2.084 2.093 2.102 2.061 2.070 2.079 2.088 2.097 2.216 2.135 2.144 2.153 2.122 2.131 2.140 2.269 2.278 2.287 2.296 2.305 2.314 2.323 2.332 2.281 2.290 2.299 2.308 2.627 2.666 2.845 2.884 2.743 2.882 2.285 2.300 2.215 2.230 2.595 2.340 2.355 2.390 3.500 3.650 3.350 3.350 3.500 3.500 3.500 3.500 3.500 3.500 2.555 2.570 2.585 2.480 2.495 3.770 3.770 3.770 3.770 2.500 2.650 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.500 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.550 1.500 1.500 2.018 2.057 2.066 2.075 2.084 2.093 2.052 2.061 2.070 2.079 2.088 2.207 2.126 2.135 2.144 2.113 2.122 2.131 2.140 2.269 2.278 2.287 2.296 2.305 2.314 2.323 2.272 2.281 2.290 2.299 2.588 2.627 2.806 2.845 2.704 2.843 2.882 2.285 2.300 2.215 2.580 2.595 2.340 2.325 3.500 3.650 3.350 3.350 3.500 3.500 3.500 3.500 3.500 3.500 2.540 2.555 2.570 2.465 2.480 2.495 4.000 3.770 3.770 2.500 2.500 2.650 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.500 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 4.200 4.200 3.800 3.800 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.550 3.550 1.500 1.500 2.048 2.057 2.066 2.075 2.084 2.043 2.052 2.061 2.070 2.079 2.198 2.117 2.126 2.135 2.104 2.113 2.122 2.131 2.260 2.269 2.278 2.287 2.296 2.305 2.314 2.263 2.272 2.281 2.290 2.549 2.588 2.767 2.806 2.665 2.804 2.843 2.270 2.285 2.200 2.565 2.580 2.325 2.310 2.325 3.500 3.650 3.350 3.500 3.500 3.500 3.500 3.500 2.510 2.525 2.540 2.555 2.450 2.465 2.480 2.495 2.630 3.770 4.000 2.500 2.500 2.650 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 1.500 1.500 2.048 2.057 2.066 2.075 2.034 2.043 2.052 2.061 2.070 2.189 2.198 2.117 2.126 2.095 2.104 2.113 2.122 2.251 2.260 2.269 2.278 2.287 2.296 2.305 2.254 2.263 2.272 2.281 2.510 2.549 2.588 2.767 2.626 2.665 2.804 2.255 2.270 2.185 2.200 2.565 2.310 2.295 2.310 2.355 2.370 3.350 3.350 3.500 3.500 3.500 3.500 2.495 2.510 2.525 2.540 2.435 2.450 2.465 2.480 2.765 2.630 2.645 4.000 2.500 2.500 2.650 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.700 4.700 4.700 3.800 3.800 3.700 3.700 3.550 4.050 1.500 1.500 2.048 2.057 2.066 2.075 2.034 2.043 2.052 2.061 2.070 2.189 2.108 2.117 2.086 2.095 2.104 2.113 2.242 2.251 2.260 2.269 2.278 2.287 2.296 2.245 2.254 2.263 2.272 2.471 2.510 2.549 2.728 2.587 2.626 2.765 2.240 2.255 2.170 2.185 2.550 2.565 2.310 2.295 2.310 2.355 2.370 2.385 3.500 3.500 3.500 3.500 2.480 2.495 2.510 2.405 2.420 2.435 2.450 2.735 2.750 2.615 2.630 2.645 2.500 2.500 2.650 2.650 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 4.200 4.200 3.800 3.800 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 4.050 1.500 1.500 2.048 2.057 2.066 2.025 2.034 2.043 2.052 2.061 2.180 2.099 2.108 2.077 2.086 2.095 2.104 2.233 2.242 2.251 2.260 2.269 2.278 2.287 2.236 2.245 2.254 2.263 2.272 2.471 2.510 2.689 2.548 2.587 2.726 2.225 2.240 2.155 2.170 2.535 2.550 2.295 2.280 2.295 2.340 2.355 2.370 2.655 2.670 3.500 3.500 2.465 2.480 2.495 2.390 2.405 2.420 2.435 2.720 2.735 2.600 2.615 2.630 2.845 2.860 2.500 2.650 2.650 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 4.050 1.500 1.500 2.048 2.057 2.016 2.025 2.034 2.043 2.052 2.171 2.180 2.099 2.108 2.077 2.086 2.095 2.224 2.233 2.242 2.251 2.260 2.269 2.278 2.227 2.236 2.245 2.254 2.263 2.432 2.471 2.650 2.509 2.548 2.687 2.210 2.225 2.140 2.155 2.520 2.535 2.280 2.295 2.280 2.295 2.340 2.355 2.370 2.655 2.670 2.685 3.500 2.465 2.480 2.495 2.390 2.405 2.420 2.705 2.720 2.585 2.600 2.615 2.830 2.845 2.860 2.875 2.650 2.650 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.230 3.800 4.200 3.800 3.800 4.400 4.600 4.700 4.700 4.700 3.800 3.800 3.700 3.700 3.550 4.050 4.050 1.500 1.500 2.048 2.007 2.016 2.025 2.034 2.043 2.162 2.171 2.090 2.099 2.068 2.077 2.086 2.095 2.224 2.233 2.242 2.251 2.260 2.269 2.218 2.227 2.236 2.245 2.254 2.393 2.432 2.611 2.470 2.509 2.648 2.195 2.210 2.125 2.140 2.155 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.640 2.655 2.670 2.685 2.450 2.465 2.480 2.375 2.390 2.405 2.690 2.555 2.570 2.585 2.600 2.815 2.830 2.845 2.860 2.675 2.650 2.650 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.230 4.200 4.200 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 4.050 4.050 1.500 1.500 2.048 2.007 2.016 2.025 2.034 2.043 2.162 2.081 2.090 2.059 2.068 2.077 2.086 2.215 2.224 2.233 2.242 2.251 2.260 2.269 2.218 2.227 2.236 2.245 2.354 2.393 2.572 2.611 2.470 2.609 2.180 2.195 2.110 2.125 2.140 2.505 2.520 2.265 2.250 2.265 2.310 2.325 2.340 2.355 2.640 2.655 2.670 2.685 2.700 2.465 2.360 2.375 2.390 2.675 2.540 2.555 2.570 2.585 2.800 2.815 2.830 2.845 2.660 2.675 2.690 2.650 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.230 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.550 3.550 4.050 4.050 1.500 1.500 1.998 2.007 2.016 2.025 2.034 2.153 2.162 2.081 2.050 2.059 2.068 2.077 2.206 2.215 2.224 2.233 2.242 2.251 2.260 2.209 2.218 2.227 2.236 2.315 2.354 2.533 2.572 2.431 2.570 2.165 2.180 2.095 2.110 2.125 2.490 2.505 2.250 2.235 2.250 2.265 2.310 2.325 2.340 2.625 2.640 2.655 2.670 2.685 2.700 2.445 2.360 2.375 2.660 2.525 2.540 2.555 2.770 2.785 2.800 2.815 2.630 2.645 2.660 2.675 2.620 2.650 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.230 4.200 3.800 3.800 4.400 4.600 4.700 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 1.500 1.500 1.998 2.007 2.016 2.025 2.144 2.153 2.072 2.081 2.050 2.059 2.068 2.077 2.206 2.215 2.224 2.233 2.242 2.251 2.260 2.209 2.218 2.227 2.236 2.315 2.354 2.533 2.392 2.531 2.570 2.165 2.180 2.095 2.110 2.475 2.490 2.235 2.220 2.235 2.250 2.295 2.310 2.325 2.610 2.625 2.640 2.655 2.670 2.685 2.430 2.445 2.460 2.645 2.510 2.525 2.540 2.755 2.770 2.785 2.800 2.615 2.630 2.645 2.660 2.605 2.620 2.705 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.230 4.000 4.000 2.700 3.230 4.200 3.800 3.800 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 4.050 4.050 4.050 1.500 1.500 1.998 2.007 2.016 2.025 2.144 2.063 2.072 2.041 2.050 2.059 2.068 2.197 2.206 2.215 2.224 2.233 2.242 2.251 2.200 2.209 2.218 2.227 2.276 2.315 2.494 2.353 2.392 2.531 2.150 2.165 2.080 2.095 2.460 2.475 2.220 2.235 2.220 2.235 2.280 2.295 2.310 2.325 2.610 2.625 2.640 2.655 2.670 2.685 2.430 2.445 2.460 2.495 2.510 2.725 2.740 2.755 2.770 2.585 2.600 2.615 2.630 2.575 2.590 2.605 2.690 2.905 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.230 4.000 4.000 2.700 3.230 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 4.050 4.050 3.750 1.500 1.500 1.998 2.007 2.016 2.135 2.144 2.063 2.032 2.041 2.050 2.059 2.068 2.197 2.206 2.215 2.224 2.233 2.242 2.191 2.200 2.209 2.218 2.237 2.276 2.455 2.314 2.353 2.492 2.135 2.150 2.065 2.080 2.445 2.460 2.475 2.220 2.205 2.220 2.265 2.280 2.295 2.310 2.595 2.610 2.625 2.640 2.655 2.670 2.415 2.430 2.445 2.460 2.495 2.710 2.725 2.740 2.755 2.570 2.585 2.600 2.615 2.560 2.575 2.590 2.675 2.890 2.905 2.920 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.800 3.800 4.400 4.600 4.700 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 1.500 1.500 1.998 2.007 2.126 2.135 2.054 2.063 2.032 2.041 2.050 2.059 2.188 2.197 2.206 2.215 2.224 2.233 2.242 2.191 2.200 2.209 2.218 2.237 2.416 2.455 2.314 2.453 2.120 2.135 2.050 2.065 2.430 2.445 2.460 2.205 2.190 2.205 2.250 2.265 2.280 2.295 2.580 2.595 2.610 2.625 2.640 2.655 2.670 2.415 2.430 2.445 2.460 2.495 3.500 2.725 2.540 2.555 2.570 2.585 2.530 2.545 2.560 2.575 2.660 2.875 2.890 2.905 3.120 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.800 3.800 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 1.500 1.500 1.998 2.007 2.126 2.045 2.054 2.023 2.032 2.041 2.050 2.179 2.188 2.197 2.206 2.215 2.224 2.233 2.182 2.191 2.200 2.209 2.198 2.237 2.416 2.275 2.414 2.105 2.120 2.035 2.050 2.065 2.430 2.445 2.190 2.175 2.190 2.205 2.250 2.265 2.280 2.295 2.580 2.595 2.610 2.625 2.640 2.655 2.400 2.415 2.430 2.445 2.480 2.495 3.500 3.500 2.540 2.555 2.500 2.515 2.530 2.545 2.560 2.645 2.860 2.875 2.890 3.105 3.120 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.000 4.000 4.000 3.230 3.230 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 1.500 1.500 1.998 2.117 2.126 2.045 2.054 2.023 2.032 2.041 2.050 2.179 2.188 2.197 2.206 2.215 2.224 2.233 2.182 2.191 2.200 2.209 2.198 2.377 2.236 2.275 2.414 2.105 2.020 2.035 2.050 2.415 2.430 2.175 2.190 2.175 2.190 2.235 2.250 2.265 2.280 2.565 2.580 2.595 2.610 2.625 2.640 2.655 2.400 2.415 2.430 2.465 2.480 3.500 3.500 3.650 2.540 2.485 2.500 2.515 2.530 2.545 2.630 2.845 2.860 2.875 3.090 3.105 3.120 3.135 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.000 4.000 2.700 3.230 3.230 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.550 3.550 4.050 4.050 4.050 3.750 1.500 1.500 1.998 2.117 2.036 2.045 2.014 2.023 2.032 2.041 2.170 2.179 2.188 2.197 2.206 2.215 2.224 2.173 2.182 2.191 2.200 2.159 2.338 2.377 2.236 2.375 2.090 2.105 2.020 2.035 2.400 2.415 2.430 2.175 2.160 2.175 2.220 2.235 2.250 2.265 2.550 2.565 2.580 2.595 2.610 2.625 2.640 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.500 3.650 3.350 2.485 2.500 2.515 2.600 2.615 2.830 2.845 2.860 3.075 3.090 3.105 3.120 3.135 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.000 4.000 2.700 3.230 3.230 3.800 4.400 4.600 4.700 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 1.500 1.500 2.108 2.117 2.036 2.045 2.014 2.023 2.032 2.041 2.170 2.179 2.188 2.197 2.206 2.215 2.224 2.173 2.182 2.191 2.120 2.159 2.338 2.197 2.336 2.075 2.090 2.005 2.020 2.385 2.400 2.415 2.160 2.145 2.160 2.175 2.220 2.235 2.250 2.265 2.550 2.565 2.580 2.595 2.610 2.625 2.370 2.385 2.400 2.415 2.450 2.465 3.500 3.500 3.650 3.350 3.350 2.485 2.500 2.585 2.800 2.815 2.830 2.845 3.060 3.075 3.090 3.105 3.120 3.135 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.000 4.000 2.700 3.230 3.230 3.800 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 1.500 1.500 2.108 2.027 2.036 2.005 2.014 2.023 2.032 2.161 2.170 2.179 2.188 2.197 2.206 2.215 2.164 2.173 2.182 2.191 2.120 2.299 2.158 2.197 2.336 2.075 1.990 2.005 2.020 2.385 2.400 2.415 2.160 2.145 2.160 2.205 2.220 2.235 2.250 2.535 2.550 2.565 2.580 2.595 2.610 2.355 2.370 2.385 2.400 2.435 2.450 3.500 3.500 3.650 3.650 3.350 3.350 3.500 2.570 2.785 2.800 2.815 2.830 3.045 3.060 3.075 3.090 3.105 3.120 2.935 2.950 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.000 4.000 2.700 3.230 3.230 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 3.750 1.500 1.500 2.108 2.027 2.036 2.005 2.014 2.023 2.032 2.161 2.170 2.179 2.188 2.197 2.206 2.215 2.164 2.173 2.182 2.081 2.260 2.299 2.158 2.297 2.060 2.075 1.990 2.005 2.370 2.385 2.400 2.145 2.130 2.145 2.160 2.205 2.220 2.235 2.520 2.535 2.550 2.565 2.580 2.595 2.340 2.355 2.370 2.385 2.420 2.435 2.450 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.785 2.800 2.815 3.030 3.045 3.060 3.075 3.090 3.105 2.920 2.935 4.000 2.440 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.500 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.000 4.000 2.700 3.230 3.230 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 3.750 1.500 1.500 2.018 2.027 1.996 2.005 2.014 2.023 2.032 2.161 2.170 2.179 2.188 2.197 2.206 2.155 2.164 2.173 2.042 2.081 2.260 2.119 2.158 2.045 2.060 1.975 1.990 2.005 2.370 2.385 2.130 2.145 2.130 2.145 2.190 2.205 2.220 2.505 2.520 2.535 2.550 2.565 2.580 2.325 2.340 2.355 2.370 2.385 2.420 2.435 3.500 3.500 3.650 3.650 3.350 3.500 3.500 3.500 2.570 2.785 2.800 3.015 3.030 3.045 3.060 3.075 3.090 2.905 2.920 4.000 4.000 4.450 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 4.230 4.230 4.230 4.000 4.000 2.700 3.230 3.230 4.400 4.600 4.700 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 3.550 4.050 4.050 3.750 3.750 1.500 1.500 2.018 2.027 1.996 2.005 2.014 2.023 2.152 2.161 2.170 2.179 2.188 2.197 2.206 2.155 2.164 2.173 2.042 2.221 2.260 2.119 2.258 2.045 2.060 1.975 1.990 2.355 2.370 2.385 2.130 2.115 2.130 2.145 2.190 2.205 2.220 2.505 2.520 2.535 2.550 2.565 2.310 2.325 2.340 2.355 2.370 2.405 2.420 3.500 3.500 3.650 3.650 3.350 3.350 3.500 3.500 3.500 2.570 2.585 3.000 3.015 3.030 3.045 3.060 3.075 3.090 2.905 2.920 4.000 4.450 4.450 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 3.550 4.050 4.050 3.750 3.750 1.500 1.500 2.018 2.027 1.996 2.005 2.014 2.023 2.152 2.161 2.170 2.179 2.188 2.197 2.146 2.155 2.164 2.003 2.042 2.221 2.080 2.219 2.030 2.045 1.960 1.975 1.990 2.355 2.370 2.115 2.130 2.115 2.130 2.175 2.190 2.205 2.490 2.505 2.520 2.535 2.550 2.295 2.310 2.325 2.340 2.355 2.390 2.405 3.500 3.500 3.650 3.650 3.350 3.350 3.500 3.500 3.500 2.555 2.570 2.585 3.000 3.015 3.030 3.045 3.060 3.075 2.890 2.905 4.000 4.450 4.450 4.000 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 3.500 3.500 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 2.018 1.987 1.996 2.005 2.014 2.143 2.152 2.161 2.170 2.179 2.188 2.197 2.146 2.155 2.164 2.003 2.182 2.041 2.080 2.219 2.030 2.045 1.960 1.975 2.340 2.355 2.370 2.115 2.130 2.115 2.130 2.175 2.190 2.205 2.490 2.505 2.520 2.535 2.550 2.295 2.310 2.325 2.340 2.375 2.390 2.405 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 3.500 2.555 2.570 2.585 2.480 3.015 3.030 3.045 3.060 3.075 2.890 2.905 4.000 4.450 4.450 4.000 3.770 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.500 3.500 3.500 3.500 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 2.018 1.987 1.996 2.005 2.014 2.143 2.152 2.161 2.170 2.179 2.188 2.197 2.146 2.155 1.964 2.003 2.182 2.041 2.180 2.015 2.030 1.945 1.960 2.325 2.340 2.355 2.100 2.115 2.100 2.115 2.160 2.175 2.190 2.205 2.490 2.505 2.520 2.535 2.280 2.295 2.310 2.325 2.360 2.375 2.390 3.500 3.500 3.650 3.650 3.350 3.500 3.500 3.500 3.500 2.540 2.555 2.570 2.585 2.480 3.015 3.030 3.045 3.060 2.875 2.890 4.000 4.450 4.450 4.000 3.770 3.770 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 2.018 1.987 1.996 2.005 2.014 2.143 2.152 2.161 2.170 2.179 2.188 2.137 2.146 2.155 1.964 2.143 2.002 2.041 2.000 2.015 1.930 1.945 1.960 2.325 2.340 2.355 2.100 2.115 2.100 2.115 2.160 2.175 2.190 2.475 2.490 2.505 2.520 2.265 2.280 2.295 2.310 2.345 2.360 2.375 3.500 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.525 2.540 2.555 2.570 2.465 2.480 2.765 3.030 3.045 2.860 2.875 4.000 4.000 4.450 4.000 4.000 3.770 3.770 4.000 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 3.500 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.700 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.712 1.738 1.624 2.005 2.134 2.143 2.152 2.161 2.170 2.179 2.188 2.137 2.146 2.155 1.964 2.143 2.002 2.141 2.000 2.015 1.930 1.945 2.310 2.325 2.340 2.085 2.100 2.085 2.100 2.115 2.160 2.175 2.190 2.475 2.490 2.505 2.250 2.265 2.280 2.295 2.330 2.345 2.360 3.500 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.510 2.525 2.540 2.555 2.570 2.465 2.480 2.765 2.630 3.045 2.860 2.875 4.000 4.450 4.450 4.000 3.770 3.770 4.000 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.500 3.500 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.700 4.700 3.800 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.582 1.548 1.584 1.590 1.756 1.762 2.152 2.161 2.170 2.179 2.188 2.137 2.146 1.925 1.964 1.963 2.002 2.141 2.000 2.015 1.930 1.945 2.310 2.325 2.340 2.085 2.100 2.085 2.100 2.145 2.160 2.175 2.460 2.475 2.490 2.235 2.250 2.265 2.280 2.295 2.330 2.345 2.360 3.500 3.500 3.650 3.650 3.350 3.500 3.500 3.500 2.495 2.510 2.525 2.540 2.555 2.450 2.465 2.750 2.615 2.630 3.045 2.860 2.875 4.000 4.450 4.000 4.000 3.770 3.770 4.000 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 3.500 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.700 4.700 3.800 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.582 1.548 1.584 1.730 1.736 1.692 1.698 1.774 1.780 2.179 2.188 2.137 2.146 1.925 2.104 1.963 2.102 1.985 2.000 1.915 1.930 1.945 2.310 2.325 2.070 2.085 2.100 2.085 2.100 2.145 2.160 2.175 2.460 2.475 2.490 2.235 2.250 2.265 2.280 2.315 2.330 2.345 3.500 3.500 3.500 3.650 3.350 3.500 3.500 3.500 3.500 2.495 2.510 2.525 2.540 2.435 2.450 2.465 2.750 2.615 2.830 2.845 2.860 4.000 4.000 4.450 4.000 3.770 3.770 4.000 4.000 2.500 2.650 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 3.500 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.700 4.700 3.800 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.582 1.548 1.584 1.730 1.736 1.692 1.768 1.774 1.650 1.656 1.742 1.748 2.146 1.925 2.104 1.963 2.102 1.985 2.000 1.915 1.930 2.295 2.310 2.325 2.070 2.085 2.070 2.085 2.100 2.145 2.160 2.175 2.460 2.475 2.220 2.235 2.250 2.265 2.300 2.315 2.330 2.345 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.480 2.495 2.510 2.525 2.420 2.435 2.450 2.735 2.600 2.615 2.830 2.845 2.860 4.000 4.450 4.450 4.000 3.770 3.770 4.000 2.500 2.500 2.650 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 3.650 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.700 4.700 3.800 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.582 1.578 1.584 1.730 1.686 1.692 1.768 1.644 1.650 1.656 1.742 1.748 1.684 1.620 1.924 1.963 1.970 1.985 2.000 1.915 1.930 2.295 2.310 2.055 2.070 2.085 2.070 2.085 2.130 2.145 2.160 2.445 2.460 2.205 2.220 2.235 2.250 2.265 2.300 2.315 2.330 3.500 3.500 3.500 3.650 3.350 3.500 3.500 3.500 2.465 2.480 2.495 2.510 2.405 2.420 2.435 2.720 2.735 2.600 2.815 2.830 2.845 2.860 4.000 4.450 4.000 3.770 3.770 4.000 4.000 2.500 2.500 2.650 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 3.650 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.700 4.700 3.800 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.542 1.578 1.584 1.730 1.686 1.692 1.768 1.644 1.650 1.736 1.742 1.678 1.684 1.620 1.626 1.702 1.708 1.985 1.900 1.915 2.280 2.295 2.310 2.055 2.070 2.055 2.070 2.085 2.130 2.145 2.160 2.445 2.460 2.205 2.220 2.235 2.250 2.285 2.300 2.315 2.330 3.500 3.500 3.650 3.350 3.350 3.500 3.500 2.450 2.465 2.480 2.495 2.510 2.405 2.420 2.435 2.720 2.585 2.600 2.815 2.830 2.845 2.860 2.675 4.450 4.000 3.770 3.770 4.000 4.000 2.500 2.500 2.650 2.650 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.650 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.700 4.700 3.800 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.542 1.578 1.724 1.730 1.686 1.762 1.768 1.644 1.650 1.736 1.742 1.678 1.614 1.620 1.626 1.702 1.708 1.714 1.840 1.915 2.280 2.295 2.310 2.055 2.070 2.055 2.070 2.085 2.130 2.145 2.160 2.445 2.190 2.205 2.220 2.235 2.270 2.285 2.300 2.315 3.500 3.500 3.500 3.650 3.350 3.500 3.500 3.500 2.450 2.465 2.480 2.495 2.390 2.405 2.420 2.705 2.570 2.585 2.800 2.815 2.830 2.845 2.660 2.675 3.090 4.000 3.770 3.770 4.000 4.000 2.500 2.500 2.650 2.650 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 3.600 4.230 4.230 4.230 4.000 4.000 2.700 2.700 3.230 3.230 4.600 4.700 4.700 3.800 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.542 1.578 1.724 1.680 1.686 1.762 1.768 1.644 1.650 1.736 1.742 1.678 1.614 1.620 1.626 1.702 1.708 1.714 1.840 1.846 1.722 2.237 2.040 2.055 2.070 2.055 2.070 2.115 2.130 2.145 2.160 2.445 2.190 2.205 2.220 2.235 2.270 2.285 2.300 2.315 3.500 3.500 3.650 3.350 3.500 3.500 3.500 2.435 2.450 2.465 2.480 2.375 2.390 2.405 2.690 2.555 2.570 2.785 2.800 2.815 2.830 2.845 2.660 2.675 2.690 4.000 3.770 3.770 4.000 4.000 2.500 2.500 2.650 2.650 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 4.230 4.230 4.230 4.000 4.000 2.700 2.700 3.230 3.230 4.600 4.700 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.542 1.578 1.724 1.680 1.686 1.762 1.638 1.644 1.730 1.736 1.742 1.678 1.614 1.620 1.626 1.702 1.708 1.714 1.840 1.716 1.672 1.738 2.216 2.225 2.070 2.055 2.070 2.115 2.130 2.145 2.430 2.175 2.190 2.205 2.220 2.255 2.270 2.285 2.300 3.500 3.500 3.650 3.650 3.350 3.500 3.500 3.500 2.435 2.450 2.465 2.360 2.375 2.390 2.675 2.690 2.555 2.570 2.785 2.800 2.815 2.830 2.645 2.660 2.675 2.620 2.635 3.770 3.770 4.000 4.000 2.500 2.500 2.650 2.650 2.440 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 3.600 4.230 4.230 4.230 4.000 4.000 2.700 2.700 3.230 3.230 4.600 4.700 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.572 1.578 1.724 1.680 1.756 1.762 1.638 1.644 1.730 1.736 1.672 1.608 1.614 1.620 1.696 1.702 1.708 1.714 1.840 1.716 1.672 1.738 2.216 2.225 2.264 2.223 2.252 2.115 2.130 2.145 2.430 2.175 2.190 2.205 2.220 2.255 2.270 2.285 2.300 3.500 3.500 3.650 3.350 3.500 3.500 3.500 2.420 2.435 2.450 2.465 2.360 2.375 2.390 2.675 2.540 2.555 2.770 2.785 2.800 2.815 2.830 2.645 2.660 2.605 2.620 2.635 4.000 4.000 4.000 4.000 2.500 2.500 2.650 2.650 2.440 2.440 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 4.230 4.230 4.230 4.000 4.000 2.700 2.700 3.230 3.230 4.600 4.700 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.572 1.578 1.724 1.680 1.756 1.762 1.638 1.644 1.730 1.736 1.672 1.608 1.614 1.620 1.696 1.702 1.708 1.834 1.710 1.666 1.732 2.207 2.216 2.255 2.264 2.223 2.252 2.221 2.230 2.359 2.430 2.175 2.190 2.205 2.220 2.255 2.270 2.285 3.500 3.500 3.650 3.650 3.350 3.500 3.500 3.500 2.420 2.435 2.450 2.345 2.360 2.375 2.660 2.525 2.540 2.555 2.770 2.785 2.800 2.815 2.830 2.645 2.660 2.605 2.620 2.635 2.720 4.000 4.000 4.000 2.500 2.500 2.650 2.650 2.650 2.440 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 3.600 4.230 4.230 4.230 4.000 4.000 2.700 2.700 3.230 3.230 4.600 4.700 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.572 1.718 1.724 1.680 1.756 1.762 1.638 1.724 1.730 1.736 1.672 1.608 1.614 1.620 1.696 1.702 1.708 1.834 1.710 1.666 1.732 2.207 2.216 2.255 2.214 2.333 2.212 2.221 2.350 2.299 2.588 2.175 2.190 2.205 2.240 2.255 2.270 2.285 3.500 3.500 3.650 3.350 3.500 3.500 3.500 2.405 2.420 2.435 2.330 2.345 2.360 2.645 2.510 2.525 2.540 2.755 2.770 2.785 2.800 2.815 2.630 2.645 2.590 2.605 2.620 2.635 2.720 2.935 4.000 4.000 2.500 2.500 2.650 2.650 2.650 2.440 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 3.300 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.700 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.572 1.718 1.724 1.680 1.756 1.632 1.638 1.724 1.730 1.736 1.602 1.608 1.614 1.690 1.696 1.702 1.828 1.834 1.710 1.666 1.732 2.207 2.246 2.205 2.214 2.243 2.212 2.221 2.350 2.299 2.588 2.767 2.806 2.205 2.240 2.255 2.270 3.500 3.500 3.650 3.650 3.350 3.500 3.500 3.500 2.405 2.420 2.435 2.330 2.345 2.360 2.645 2.510 2.525 2.540 2.755 2.770 2.785 2.800 2.815 2.630 2.645 2.590 2.605 2.620 2.705 2.920 2.935 4.000 4.000 2.500 2.500 2.650 2.650 2.650 2.440 2.440 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.550 3.300 3.300 3.300 3.300 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.572 1.718 1.674 1.750 1.756 1.632 1.638 1.724 1.730 1.666 1.602 1.608 1.614 1.690 1.696 1.702 1.828 1.834 1.660 1.726 2.198 2.207 2.246 2.205 2.324 2.203 2.212 2.341 2.290 2.549 2.588 2.767 2.626 2.665 2.240 2.255 2.270 3.500 3.500 3.650 3.650 3.500 3.500 3.500 2.390 2.405 2.420 2.315 2.330 2.345 2.630 2.495 2.510 2.525 2.740 2.755 2.770 2.785 2.800 2.815 2.630 2.575 2.590 2.605 2.620 2.705 2.920 2.935 3.150 4.000 2.500 2.500 2.500 2.650 2.650 2.440 2.440 2.500 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 3.300 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.572 1.718 1.674 1.750 1.756 1.632 1.638 1.724 1.730 1.666 1.602 1.608 1.614 1.690 1.696 1.822 1.828 1.704 1.660 1.726 2.198 2.207 2.246 2.205 2.324 2.203 2.212 2.341 2.290 2.549 2.728 2.587 2.626 2.765 2.240 2.255 2.270 3.500 3.650 3.650 3.350 3.500 3.500 3.500 2.390 2.405 2.420 2.315 2.330 2.615 2.630 2.495 2.510 2.725 2.740 2.755 2.770 2.785 2.800 2.615 2.630 2.575 2.590 2.605 2.690 2.905 2.920 3.135 3.150 4.000 2.500 2.500 2.500 2.650 2.650 2.650 2.440 2.500 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.550 3.300 3.300 3.300 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.572 1.718 1.674 1.750 1.756 1.632 1.718 1.724 1.730 1.666 1.602 1.608 1.614 1.690 1.696 1.822 1.828 1.704 1.660 1.726 2.198 2.237 2.196 2.205 2.234 2.203 2.332 2.341 2.290 2.549 2.728 2.587 2.726 2.225 2.240 2.255 2.270 2.285 2.300 3.650 3.350 3.500 3.500 2.375 2.390 2.405 2.420 2.315 2.330 2.615 2.480 2.495 2.510 2.725 2.740 2.755 2.770 2.785 2.800 2.615 2.560 2.575 2.590 2.605 2.690 2.905 2.920 3.135 3.150 3.165 2.500 2.500 2.500 2.650 2.650 2.650 2.440 2.440 2.500 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 3.300 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.700 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.572 1.718 1.674 1.750 1.626 1.632 1.718 1.724 1.730 1.666 1.602 1.608 1.684 1.690 1.696 1.822 1.828 1.654 1.720 2.189 2.198 2.237 2.196 2.315 2.234 2.203 2.332 2.281 2.510 2.689 2.548 2.587 2.726 2.225 2.240 2.255 2.270 2.185 2.200 2.215 3.350 3.500 3.500 2.375 2.390 2.405 2.300 2.315 2.600 2.615 2.480 2.495 2.710 2.725 2.740 2.755 2.770 2.785 2.800 2.615 2.560 2.575 2.590 2.675 2.890 2.905 3.120 3.135 3.150 3.165 2.500 2.500 2.500 2.650 2.650 2.650 2.440 2.440 2.500 2.500 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 3.300 3.300 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.800 3.700 3.700 3.550 4.050 4.050 4.050 3.750 3.750 1.500 1.500 1.572 1.668 1.674 1.750 1.626 1.632 1.718 1.724 1.660 1.666 1.602 1.608 1.684 1.690 1.696 1.822 1.698 1.654 1.720 2.189 2.198 2.237 2.196 2.315 2.194 2.203 2.332 2.281 2.510 2.689 2.548 2.687 2.210 2.225 2.240 2.255 2.270 2.185 2.200 2.215 2.230 2.595 3.500 2.375 2.390 2.405 2.300 2.315 2.600 2.465 2.480 2.695 2.710 2.725 2.740 2.755 2.770 2.785 2.600 2.545 2.560 2.575 2.590 2.675 2.890 2.905 3.120 3.135 3.150 2.965 2.980 2.500 2.500 2.500 2.650 2.650 2.440 2.440 2.500 2.500 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 3.550 3.300 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.400 4.600 4.700 4.700 3.800 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 3.750 1.500 1.500 1.712 1.668 1.744 1.750 1.626 1.632 1.718 1.724 1.660 1.666 1.602 1.608 1.684 1.690 1.816 1.822 1.698 1.654 1.720 2.189 2.228 2.237 2.196 2.225 2.194 2.323 2.332 2.281 2.510 2.689 2.548 2.687 2.210 2.225 2.240 2.255 2.170 2.185 2.200 2.215 2.580 2.595 2.610 2.625 2.390 2.285 2.300 2.585 2.450 2.465 2.480 2.695 2.710 2.725 2.740 2.755 2.770 2.785 2.600 2.545 2.560 2.575 2.660 2.875 2.890 3.105 3.120 3.135 3.150 2.965 2.980 2.500 2.500 2.500 2.650 2.650 2.650 2.440 2.440 2.500 2.500 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 3.550 3.550 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.400 4.600 4.700 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 3.750 1.500 1.500 1.712 1.668 1.744 1.750 1.626 1.712 1.718 1.724 1.660 1.666 1.602 1.608 1.684 1.690 1.816 1.822 1.648 1.654 1.720 2.189 2.228 2.187 2.196 2.225 2.194 2.323 2.272 2.471 2.650 2.509 2.548 2.195 2.210 2.225 2.240 2.255 2.170 2.185 2.200 2.215 2.580 2.595 2.610 2.625 2.640 2.285 2.300 2.585 2.450 2.465 2.680 2.695 2.710 2.725 2.740 2.755 2.770 2.785 2.600 2.545 2.560 2.575 2.660 2.875 2.890 3.105 3.120 3.135 2.950 2.965 4.000 4.450 2.500 2.500 2.650 2.650 2.650 2.440 2.440 2.500 2.500 2.500 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.550 3.550 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.400 4.600 4.700 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 3.750 1.500 1.500 1.662 1.668 1.744 1.620 1.626 1.712 1.718 1.724 1.660 1.666 1.602 1.678 1.684 1.690 1.816 1.822 1.648 1.654 1.720 2.189 2.228 2.187 2.306 2.185 2.194 2.323 2.272 2.471 2.650 2.509 2.648 2.195 2.210 2.225 2.240 2.155 2.170 2.185 2.200 2.565 2.580 2.595 2.610 2.625 2.640 2.385 2.300 2.585 2.450 2.665 2.680 2.695 2.710 2.725 2.740 2.755 2.770 2.585 2.530 2.545 2.560 2.645 2.860 2.875 3.090 3.105 3.120 3.135 2.950 2.965 4.000 4.450 2.500 2.500 2.500 2.650 2.650 2.650 2.440 2.440 2.500 2.500 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.200 3.800 3.550 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 3.750 1.500 1.500 1.662 1.668 1.744 1.620 1.626 1.712 1.718 1.724 1.660 1.666 1.602 1.678 1.684 1.690 1.816 1.642 1.648 1.714 2.180 2.189 2.228 2.187 2.306 2.185 2.314 2.323 2.272 2.471 2.650 2.509 2.648 2.195 2.210 2.225 2.240 2.155 2.170 2.185 2.200 2.565 2.580 2.595 2.610 2.625 2.640 2.385 2.370 2.435 2.650 2.665 2.680 2.695 2.710 2.725 2.740 2.755 2.770 2.585 2.530 2.545 2.560 2.645 2.860 2.875 3.090 3.105 3.120 2.935 2.950 4.000 4.000 4.450 4.450 2.500 2.500 2.650 2.650 2.650 2.440 2.440 2.440 2.500 2.500 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 3.800 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 3.750 1.500 1.500 1.662 1.668 1.744 1.620 1.626 1.712 1.718 1.654 1.660 1.666 1.602 1.678 1.684 1.690 1.816 1.642 1.648 1.714 2.180 2.219 2.228 2.187 2.216 2.185 2.314 2.323 2.432 2.611 2.470 2.509 2.180 2.195 2.210 2.225 2.140 2.155 2.170 2.185 2.550 2.565 2.580 2.595 2.610 2.625 2.370 2.385 2.370 2.385 2.430 2.665 2.680 2.695 2.710 2.725 2.740 2.755 2.770 2.585 2.530 2.545 2.630 2.845 2.860 3.075 3.090 3.105 3.120 2.935 4.000 4.000 4.450 4.450 4.000 2.500 2.500 2.650 2.650 2.650 2.440 2.440 2.440 2.500 2.500 2.500 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 3.800 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 3.750 1.500 1.500 1.662 1.738 1.744 1.620 1.626 1.712 1.718 1.654 1.660 1.666 1.602 1.678 1.684 1.810 1.816 1.642 1.648 1.714 2.180 2.219 2.178 2.187 2.216 2.185 2.314 2.263 2.432 2.611 2.470 2.609 2.180 2.195 2.210 2.225 2.140 2.155 2.170 2.185 2.550 2.565 2.580 2.595 2.610 2.355 2.370 2.355 2.370 2.385 2.430 2.445 2.680 2.695 2.710 2.725 2.740 2.755 2.570 2.515 2.530 2.545 2.630 2.845 2.860 3.075 3.090 3.105 3.120 2.935 4.000 4.000 4.450 4.450 4.000 4.000 2.500 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.500 2.500 2.500 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 5.500 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 3.800 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 3.750 1.500 1.500 1.662 1.738 1.614 1.620 1.626 1.712 1.718 1.654 1.660 1.666 1.602 1.678 1.684 1.810 1.816 1.642 1.648 1.714 2.180 2.219 2.178 2.297 2.216 2.185 2.314 2.263 2.432 2.611 2.470 2.609 2.180 2.195 2.210 2.225 2.140 2.155 2.170 2.535 2.550 2.565 2.580 2.595 2.610 2.355 2.370 2.355 2.370 2.415 2.430 2.445 2.460 2.475 2.710 2.725 2.740 2.755 2.570 2.515 2.530 2.545 2.630 2.845 2.860 3.075 3.090 3.105 3.120 2.935 4.000 4.000 4.450 4.450 4.000 4.000 4.000 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.500 2.500 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 3.200 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 3.800 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 3.750 1.500 1.500 1.662 1.738 1.614 1.620 1.706 1.712 1.718 1.654 1.660 1.596 1.602 1.678 1.684 1.810 1.816 1.642 1.648 1.714 2.180 2.219 2.178 2.297 2.216 2.185 2.314 2.263 2.432 2.431 2.470 2.609 2.180 2.195 2.210 2.125 2.140 2.155 2.170 2.535 2.550 2.565 2.580 2.595 2.340 2.355 2.340 2.355 2.370 2.415 2.430 2.445 2.460 2.475 2.490 2.725 2.740 2.755 2.570 2.515 2.530 2.615 2.830 2.845 3.060 3.075 3.090 3.105 3.120 2.935 4.000 4.450 4.450 4.450 4.000 3.770 4.000 2.650 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.500 2.500 2.500 2.500 2.500 2.500 2.500 3.200 3.200 3.200 3.200 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 3.800 4.400 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 3.750 1.500 1.500 1.662 1.738 1.614 1.620 1.706 1.712 1.648 1.654 1.660 1.596 1.672 1.678 1.684 1.810 1.686 1.642 1.648 1.714 2.180 2.219 2.178 2.297 2.176 2.305 2.314 2.263 2.572 2.431 2.470 2.165 2.180 2.195 2.210 2.125 2.140 2.155 2.520 2.535 2.550 2.565 2.580 2.595 2.340 2.355 2.340 2.355 2.400 2.415 2.430 2.445 2.460 2.475 2.490 2.505 2.740 2.555 2.500 2.515 2.530 2.615 2.830 2.845 3.060 3.075 3.090 3.105 2.920 2.935 4.000 4.450 4.450 4.000 4.000 3.770 3.770 2.650 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.500 2.500 2.500 2.500 2.500 2.500 2.500 3.200 3.200 5.500 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 3.750 1.500 1.500 1.662 1.738 1.614 1.620 1.706 1.712 1.648 1.654 1.660 1.596 1.672 1.678 1.684 1.810 1.686 1.642 1.648 2.171 2.180 2.219 2.178 2.297 2.176 2.305 2.314 2.263 2.572 2.431 2.570 2.165 2.180 2.195 2.210 2.125 2.140 2.155 2.520 2.535 2.550 2.565 2.580 2.325 2.340 2.325 2.340 2.355 2.400 2.415 2.430 2.445 2.460 2.475 2.490 2.505 2.520 2.555 2.500 2.515 2.530 2.615 2.830 3.045 3.060 3.075 3.090 3.105 2.920 2.935 4.000 4.450 4.450 4.000 3.770 3.770 4.000 2.650 2.650 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.500 2.500 2.500 2.500 2.500 2.500 2.500 3.200 5.500 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 4.050 4.050 3.750 3.750 1.500 1.500 1.732 1.738 1.614 1.620 1.706 1.712 1.648 1.654 1.590 1.596 1.672 1.678 1.684 1.810 1.686 1.642 1.708 2.171 2.180 2.219 2.178 2.297 2.176 2.305 2.314 2.393 2.572 2.431 2.570 2.165 2.180 2.195 2.110 2.125 2.140 2.155 2.520 2.535 2.550 2.565 2.580 2.325 2.340 2.325 2.340 2.385 2.400 2.415 2.430 2.445 2.460 2.475 2.490 2.505 2.540 2.555 2.500 2.515 2.600 2.815 2.830 3.045 3.060 3.075 3.090 3.105 2.920 2.935 4.000 4.450 4.450 4.000 3.770 3.770 4.000 4.000 2.650 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.500 2.500 2.500 2.500 2.500 2.500 2.500 3.200 5.500 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 4.050 4.050 3.750 3.750 1.500 1.500 1.732 1.738 1.614 1.620 1.706 1.712 1.648 1.654 1.590 1.596 1.672 1.678 1.684 1.810 1.686 1.642 1.708 2.171 2.210 2.219 2.178 2.207 2.176 2.305 2.314 2.393 2.572 2.431 2.570 2.165 2.180 2.195 2.110 2.125 2.140 2.505 2.520 2.535 2.550 2.565 2.580 2.325 2.310 2.325 2.340 2.385 2.400 2.415 2.430 2.445 2.460 2.475 2.490 2.505 2.540 3.500 3.500 2.515 2.600 2.815 2.830 3.045 3.060 3.075 3.090 3.105 2.920 4.000 4.000 4.450 4.450 4.000 3.770 3.770 4.000 4.000 2.650 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.440 2.500 2.500 2.500 2.500 2.500 2.500 5.500 5.500 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 3.750 3.750 1.500 1.500 1.732 1.738 1.614 1.620 1.706 1.712 1.648 1.654 1.590 1.596 1.672 1.678 1.804 1.810 1.686 1.642 1.708 2.171 2.210 2.219 2.178 2.207 2.176 2.305 2.314 2.393 2.572 2.431 2.570 2.165 2.180 2.195 2.110 2.125 2.140 2.505 2.520 2.535 2.550 2.565 2.310 2.325 2.310 2.325 2.340 2.385 2.400 2.415 2.430 2.445 2.460 2.475 2.490 2.525 2.540 3.500 3.650 3.650 2.600 2.815 2.830 3.045 3.060 3.075 3.090 3.105 2.920 4.000 4.000 4.450 4.450 4.000 3.770 3.770 4.000 4.000 2.500 2.650 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.500 2.500 2.500 2.500 2.500 2.500 5.500 5.500 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 3.750 3.750 1.500 1.500 1.732 1.738 1.614 1.620 1.706 1.712 1.648 1.584 1.590 1.596 1.672 1.678 1.804 1.810 1.686 1.642 1.708 2.171 2.210 2.219 2.178 2.207 2.176 2.305 2.254 2.393 2.572 2.431 2.570 2.165 2.180 2.195 2.110 2.125 2.140 2.505 2.520 2.535 2.550 2.565 2.310 2.325 2.310 2.325 2.370 2.385 2.400 2.415 2.430 2.445 2.460 2.475 2.490 2.525 2.540 3.500 3.650 3.350 3.350 2.815 2.830 3.045 3.060 3.075 3.090 3.105 2.920 4.000 4.000 4.450 4.450 4.000 3.770 3.770 4.000 4.000 2.500 2.500 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.440 2.500 2.500 2.500 2.500 2.500 5.500 5.500 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 3.750 3.750 1.500 1.500 1.732 1.738 1.614 1.700 1.706 1.642 1.648 1.584 1.590 1.596 1.672 1.678 1.804 1.810 1.686 1.642 1.708 2.171 2.210 2.219 2.288 2.207 2.176 2.305 2.254 2.393 2.572 2.431 2.150 2.165 2.180 2.195 2.110 2.125 2.140 2.505 2.520 2.535 2.550 2.565 2.310 2.295 2.310 2.325 2.370 2.385 2.400 2.415 2.430 2.445 2.460 2.475 2.510 2.525 3.500 3.500 3.650 3.350 3.350 3.500 2.830 3.045 3.060 3.075 3.090 3.105 2.920 4.000 4.000 4.450 4.450 4.000 3.770 3.770 4.000 4.000 2.500 2.500 2.650 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.500 2.500 2.500 2.500 2.500 5.500 5.500 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 3.800 3.800 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 1.500 1.500 1.732 1.738 1.614 1.700 1.706 1.642 1.648 1.584 1.590 1.666 1.672 1.678 1.804 1.810 1.636 1.642 1.708 2.171 2.210 2.219 2.288 2.207 2.176 2.305 2.254 2.393 2.392 2.531 2.150 2.165 2.180 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.550 2.295 2.310 2.295 2.310 2.355 2.370 2.385 2.400 2.415 2.430 2.445 2.460 2.475 2.510 2.525 3.500 3.650 3.650 3.350 3.350 3.500 3.500 3.045 3.060 3.075 3.090 3.105 2.920 4.000 4.000 4.450 4.450 4.000 3.770 3.770 4.000 4.000 2.500 2.500 2.650 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.440 2.500 2.500 2.500 5.500 5.500 5.500 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 3.800 3.800 4.400 4.600 4.700 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 1.500 1.500 1.732 1.608 1.614 1.700 1.706 1.642 1.648 1.584 1.590 1.666 1.672 1.678 1.804 1.680 1.636 1.642 1.708 2.171 2.210 2.169 2.288 2.207 2.296 2.305 2.254 2.533 2.392 2.531 2.150 2.165 2.180 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.550 2.295 2.310 2.295 2.310 2.355 2.370 2.385 2.400 2.415 2.430 2.445 2.460 2.475 2.510 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 3.500 3.060 3.075 3.090 2.905 2.920 4.000 4.000 4.450 4.450 4.000 3.770 3.770 4.000 4.000 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.440 2.500 2.500 2.500 5.500 5.500 5.500 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 1.500 1.500 1.732 1.608 1.614 1.700 1.706 1.642 1.648 1.584 1.590 1.666 1.672 1.678 1.804 1.680 1.636 1.642 1.708 2.171 2.210 2.169 2.288 2.167 2.296 2.305 2.254 2.533 2.392 2.531 2.150 2.165 2.180 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.550 2.295 2.310 2.295 2.310 2.355 2.370 2.385 2.400 2.415 2.430 2.445 2.460 2.495 2.510 3.500 3.650 3.650 3.350 3.350 3.500 3.500 3.500 3.500 2.660 3.075 3.090 2.905 2.920 4.000 4.000 4.450 4.450 4.000 3.770 4.000 4.000 4.000 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.440 2.500 2.500 5.500 5.500 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 2.700 3.230 3.230 4.200 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 1.500 1.500 1.732 1.608 1.614 1.700 1.706 1.642 1.578 1.584 1.590 1.666 1.672 1.678 1.804 1.680 1.636 1.642 1.708 2.171 2.210 2.169 2.288 2.167 2.296 2.305 2.254 2.533 2.392 2.531 2.150 2.165 2.180 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.550 2.295 2.310 2.295 2.310 2.355 2.370 2.385 2.400 2.415 2.430 2.445 2.460 2.495 2.510 3.500 3.650 3.650 3.350 3.350 3.500 3.500 3.500 2.645 2.660 3.075 3.090 2.905 2.920 4.000 4.000 4.450 4.450 4.000 3.770 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.440 2.500 2.500 5.500 5.500 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.230 3.230 4.200 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 4.050 4.050 3.750 1.500 1.500 1.732 1.608 1.614 1.700 1.706 1.642 1.578 1.584 1.590 1.666 1.672 1.678 1.804 1.680 1.636 1.702 1.708 2.171 2.210 2.169 2.288 2.167 2.296 2.305 2.254 2.533 2.392 2.531 2.150 2.165 2.180 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.550 2.295 2.280 2.295 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.445 2.460 2.495 2.510 3.500 3.650 3.350 3.350 3.500 3.500 3.500 3.500 2.645 2.660 2.675 3.090 2.905 2.920 4.000 4.000 4.450 4.450 4.000 3.770 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.440 2.500 5.500 5.500 5.500 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.230 3.230 4.200 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 4.050 4.050 3.750 1.500 1.500 1.732 1.608 1.614 1.700 1.706 1.642 1.578 1.584 1.590 1.666 1.672 1.678 1.804 1.680 1.636 1.702 2.162 2.171 2.210 2.169 2.198 2.167 2.296 2.305 2.354 2.533 2.392 2.531 2.150 2.165 2.180 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.295 2.280 2.295 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.445 2.480 2.495 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 3.500 2.645 2.660 2.675 3.090 2.905 2.920 4.000 4.000 4.450 4.000 4.000 3.770 4.000 4.000 4.000 4.000 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.440 2.500 5.500 5.500 5.500 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.230 3.230 4.200 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 4.050 4.050 3.750 1.500 1.500 1.732 1.608 1.614 1.700 1.706 1.642 1.578 1.584 1.590 1.666 1.672 1.678 1.804 1.680 1.636 1.702 2.162 2.171 2.210 2.169 2.198 2.167 2.296 2.305 2.354 2.533 2.392 2.531 2.150 2.165 2.180 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.295 2.280 2.295 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.445 2.480 2.495 3.500 3.650 3.650 3.350 3.350 3.500 3.500 3.500 2.630 2.645 2.660 2.675 2.570 2.905 2.920 4.000 4.000 4.450 4.000 4.000 3.770 4.000 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.440 2.440 5.500 5.500 5.500 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.230 3.230 4.200 3.800 3.800 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 4.050 4.050 3.750 1.500 1.500 1.732 1.608 1.614 1.700 1.636 1.642 1.578 1.584 1.590 1.666 1.672 1.678 1.804 1.680 1.636 1.702 2.162 2.171 2.210 2.279 2.198 2.167 2.296 2.245 2.354 2.533 2.392 2.135 2.150 2.165 2.180 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.295 2.280 2.295 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.445 2.480 2.495 3.500 3.650 3.350 3.350 3.500 3.500 3.500 3.500 2.630 2.645 2.660 2.555 2.570 2.905 2.920 4.000 4.000 4.450 4.000 4.000 3.770 4.000 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.440 5.500 5.500 5.500 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.230 3.230 4.200 3.800 3.800 4.400 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 4.050 4.050 3.750 1.500 1.500 1.732 1.608 1.614 1.700 1.636 1.642 1.578 1.584 1.590 1.666 1.672 1.798 1.804 1.680 1.636 1.702 2.162 2.201 2.210 2.279 2.198 2.167 2.296 2.245 2.354 2.533 2.392 2.135 2.150 2.165 2.180 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.295 2.280 2.295 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.445 2.480 2.495 3.500 3.650 3.350 3.350 3.500 3.500 3.500 3.500 2.630 2.645 2.660 2.555 2.570 2.855 2.920 4.000 4.000 4.450 4.000 4.000 3.770 4.000 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.440 5.500 5.500 5.500 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.230 3.230 4.200 3.800 3.800 4.400 4.600 4.600 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 3.750 1.500 1.500 1.602 1.608 1.614 1.700 1.636 1.642 1.578 1.584 1.590 1.666 1.672 1.798 1.804 1.680 1.636 1.702 2.162 2.201 2.160 2.279 2.198 2.167 2.296 2.245 2.354 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 3.500 2.630 2.645 2.660 2.555 2.570 2.855 2.720 4.000 4.000 4.450 4.000 4.000 3.770 4.000 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 2.440 5.500 5.500 5.500 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.230 3.230 4.200 4.200 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 4.050 3.750 1.500 1.500 1.602 1.608 1.614 1.700 1.636 1.642 1.578 1.584 1.590 1.666 1.672 1.798 1.804 1.680 1.636 1.702 2.162 2.201 2.160 2.279 2.158 2.167 2.296 2.245 2.354 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 3.500 2.630 2.645 2.540 2.555 2.840 2.855 2.720 4.000 4.000 4.450 4.000 4.000 3.770 4.000 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.440 2.440 2.440 2.440 5.500 5.500 5.500 5.500 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.230 3.230 4.200 4.200 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 4.050 3.750 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.642 1.578 1.584 1.590 1.666 1.672 1.798 1.804 1.630 1.636 1.702 2.162 2.201 2.160 2.279 2.158 2.287 2.296 2.245 2.354 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.500 3.650 3.350 3.500 3.500 3.500 3.500 2.615 2.630 2.645 2.540 2.555 2.840 2.855 2.720 2.735 4.000 4.450 4.000 4.000 3.770 4.000 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.650 2.440 2.440 2.440 5.500 5.500 5.500 5.500 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.230 3.230 4.200 4.200 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.550 3.550 4.050 4.050 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.642 1.578 1.584 1.660 1.666 1.672 1.798 1.804 1.630 1.636 1.702 2.162 2.201 2.160 2.279 2.158 2.287 2.296 2.245 2.354 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.500 3.650 3.350 3.500 3.500 3.500 3.500 2.615 2.630 2.645 2.540 2.555 2.840 2.855 2.720 2.735 4.000 4.450 4.000 4.000 3.770 4.000 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.650 2.440 2.440 2.440 5.500 5.500 5.500 5.500 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.230 3.230 4.200 4.200 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 4.050 4.050 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.642 1.578 1.584 1.660 1.666 1.672 1.798 1.804 1.630 1.696 1.702 2.162 2.201 2.160 2.279 2.158 2.287 2.296 2.245 2.354 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.650 3.650 3.350 3.500 3.500 3.500 3.500 2.615 2.630 2.645 2.540 2.555 2.840 2.705 2.720 2.665 2.680 4.450 4.000 4.000 3.770 4.000 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.650 2.440 2.440 2.440 5.500 5.500 5.500 5.500 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.230 3.230 4.200 4.200 3.800 3.800 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.642 1.578 1.584 1.660 1.666 1.672 1.798 1.804 1.630 1.696 1.702 2.192 2.201 2.160 2.189 2.158 2.287 2.296 2.245 2.354 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.650 3.350 3.350 3.500 3.500 3.500 3.500 2.615 2.630 2.645 2.540 2.555 2.840 2.705 2.720 2.665 2.750 2.965 4.000 4.000 3.770 3.770 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.440 2.440 2.440 5.500 5.500 5.500 5.500 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.230 4.200 4.200 3.800 3.800 4.400 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 4.050 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.642 1.648 1.584 1.660 1.666 1.672 1.798 1.804 1.630 1.696 2.153 2.192 2.201 2.160 2.189 2.158 2.287 2.296 2.245 2.354 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.650 3.350 3.350 3.500 3.500 3.500 3.500 2.615 2.630 2.525 2.540 2.825 2.840 2.705 2.720 2.665 2.750 2.965 4.000 4.000 3.770 3.770 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.440 2.440 2.440 5.500 5.500 5.500 5.500 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.230 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 4.050 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.642 1.648 1.584 1.660 1.666 1.672 1.798 1.804 1.630 1.696 2.153 2.192 2.151 2.160 2.189 2.158 2.287 2.296 2.245 2.354 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.650 3.350 3.350 3.500 3.500 3.500 3.500 2.615 2.630 2.525 2.540 2.825 2.840 2.705 2.720 2.665 2.750 2.965 4.000 4.000 3.770 3.770 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.650 2.440 2.440 5.500 5.500 5.500 5.500 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.230 4.200 4.200 4.200 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 4.050 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.642 1.578 1.584 1.660 1.666 1.672 1.798 1.674 1.630 1.696 2.153 2.192 2.151 2.270 2.189 2.158 2.287 2.296 2.245 2.354 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.600 2.615 2.630 2.525 2.540 2.825 2.840 2.705 2.720 2.665 2.750 2.965 2.980 4.000 3.770 3.770 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.650 2.440 5.500 5.500 5.500 5.500 5.500 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.230 4.200 4.200 4.200 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.700 3.550 4.050 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.642 1.578 1.584 1.660 1.666 1.672 1.798 1.674 1.630 1.696 2.153 2.192 2.151 2.270 2.189 2.158 2.287 2.296 2.245 2.354 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.600 2.615 2.630 2.525 2.540 2.825 2.690 2.905 2.720 2.665 2.750 2.965 2.980 4.000 3.770 3.770 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.650 2.440 5.500 5.500 5.500 5.500 5.500 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.230 4.200 4.200 4.200 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 3.550 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.642 1.578 1.584 1.660 1.666 1.672 1.798 1.674 1.630 1.696 2.153 2.192 2.151 2.270 2.189 2.158 2.287 2.296 2.315 2.354 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.600 2.615 2.630 2.525 2.540 2.825 2.690 2.905 2.720 2.665 2.750 2.965 2.980 2.995 3.770 3.770 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.650 2.440 5.500 5.500 5.500 5.500 5.500 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.230 4.200 4.200 4.200 3.800 3.800 4.400 4.600 4.700 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.642 1.578 1.584 1.660 1.666 1.672 1.798 1.674 1.630 1.696 2.153 2.192 2.151 2.270 2.189 2.158 2.287 2.296 2.315 2.354 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.600 2.615 2.630 2.525 2.540 2.825 2.690 2.905 2.720 2.665 2.750 2.965 2.980 2.995 4.000 3.770 4.000 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.650 2.440 5.500 5.500 5.500 5.500 5.500 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 4.000 4.200 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.572 1.578 1.584 1.660 1.666 1.672 1.798 1.674 1.630 1.696 2.153 2.192 2.151 2.270 2.189 2.158 2.287 2.296 2.315 2.354 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.600 2.615 2.630 2.525 2.540 2.825 2.690 2.905 2.720 2.665 2.750 2.965 2.980 2.995 4.000 3.770 4.000 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.650 2.440 5.500 5.500 5.500 5.500 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 4.000 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.550 3.550 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.572 1.578 1.584 1.660 1.666 1.672 1.798 1.674 1.630 1.696 2.153 2.192 2.151 2.270 2.189 2.158 2.287 2.296 2.315 2.494 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.600 2.615 2.630 2.525 2.540 2.825 2.690 2.905 2.720 2.665 2.750 2.965 2.980 2.995 4.000 4.450 4.000 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.650 2.440 5.500 5.500 5.500 5.500 3.300 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 4.200 4.200 4.200 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.700 3.550 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.572 1.578 1.584 1.660 1.666 1.672 1.798 1.674 1.630 1.696 2.153 2.192 2.151 2.270 2.189 2.158 2.287 2.236 2.315 2.494 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.400 2.415 2.430 2.465 2.480 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.600 2.615 2.630 2.525 2.540 2.825 2.690 2.905 2.720 2.665 2.750 2.965 2.980 2.995 4.000 4.450 4.000 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.650 5.500 5.500 5.500 5.500 3.300 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 4.200 4.200 4.200 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 3.550 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.572 1.578 1.584 1.660 1.666 1.792 1.798 1.624 1.630 1.696 2.153 2.192 2.151 2.270 2.189 2.158 2.287 2.236 2.315 2.494 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.415 2.430 2.445 2.480 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.600 2.615 2.630 2.525 2.540 2.825 2.690 2.905 2.720 2.665 2.750 2.965 2.980 2.995 4.000 4.450 4.000 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.650 5.500 5.500 5.500 5.500 3.300 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 4.200 4.200 4.200 3.800 3.800 4.600 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.550 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.572 1.578 1.584 1.660 1.666 1.792 1.798 1.624 1.630 1.696 2.153 2.192 2.151 2.270 2.189 2.158 2.287 2.236 2.315 2.494 2.533 2.392 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.415 2.430 2.445 2.480 2.495 3.650 3.650 3.350 3.500 3.500 3.500 2.600 2.615 2.630 2.525 2.540 2.825 2.690 2.905 2.720 2.665 2.750 2.965 2.980 2.995 4.000 4.450 4.000 3.770 4.000 4.000 2.500 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 2.650 5.500 5.500 5.500 5.500 3.300 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 4.200 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.550 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.572 1.578 1.584 1.660 1.666 1.792 1.798 1.624 1.630 1.696 2.153 2.192 2.151 2.270 2.189 2.278 2.287 2.236 2.315 2.494 2.533 2.492 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.415 2.430 2.445 2.480 2.495 3.500 3.650 3.350 3.500 3.500 3.500 2.600 2.615 2.630 2.525 2.540 2.825 2.690 2.905 2.720 2.665 2.750 2.965 2.980 2.995 4.000 4.450 4.000 3.770 3.770 4.000 2.500 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 5.500 5.500 5.500 5.500 5.500 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 4.200 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.700 1.500 1.500 1.602 1.608 1.694 1.700 1.636 1.572 1.578 1.584 1.660 1.666 1.792 1.798 1.624 1.690 2.144 2.153 2.192 2.151 2.270 2.149 2.278 2.287 2.236 2.315 2.494 2.533 2.492 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.415 2.430 2.445 2.480 2.495 3.500 3.650 3.350 3.500 3.500 3.500 2.600 2.615 2.630 2.525 2.540 2.825 2.690 2.905 2.720 2.665 2.680 2.965 2.980 2.995 4.000 4.450 4.000 3.770 3.770 4.000 2.500 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 5.500 5.500 5.500 5.500 5.500 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 4.200 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 3.700 1.500 1.500 1.602 1.608 1.694 1.630 1.636 1.572 1.578 1.584 1.660 1.666 1.792 1.668 1.624 1.690 2.144 2.153 2.192 2.151 2.270 2.149 2.278 2.287 2.236 2.315 2.494 2.533 2.492 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.415 2.430 2.445 2.480 2.495 3.500 3.650 3.350 3.500 3.500 3.500 2.600 2.615 2.630 2.525 2.540 2.825 2.690 2.705 2.720 2.665 2.680 2.965 2.980 2.995 4.000 4.450 4.000 3.770 3.770 4.000 2.500 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 5.500 5.500 5.500 5.500 5.500 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 4.000 3.800 4.200 4.200 4.200 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 3.700 1.500 1.500 1.602 1.608 1.694 1.630 1.636 1.572 1.578 1.584 1.660 1.666 1.792 1.668 1.624 1.690 2.144 2.183 2.192 2.151 2.180 2.149 2.278 2.287 2.236 2.315 2.494 2.533 2.492 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.415 2.430 2.445 2.480 2.495 3.500 3.650 3.350 3.500 3.500 3.500 2.600 2.615 2.630 2.525 2.540 2.825 2.690 2.705 2.720 2.665 2.680 2.765 2.980 2.995 4.000 4.450 4.000 4.000 3.770 4.000 2.500 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 5.500 5.500 5.500 5.500 5.500 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 4.200 4.200 4.200 3.800 3.800 4.600 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 1.500 1.500 1.602 1.608 1.694 1.630 1.636 1.572 1.578 1.584 1.660 1.666 1.792 1.668 1.624 1.690 2.144 2.183 2.192 2.151 2.180 2.149 2.278 2.287 2.236 2.315 2.494 2.353 2.492 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.415 2.430 2.445 2.460 2.495 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.615 2.630 2.525 2.540 2.825 2.690 2.705 2.920 2.665 2.680 2.765 2.980 2.995 4.000 4.450 4.000 4.000 3.770 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 5.500 5.500 5.500 5.500 5.500 3.300 3.300 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 4.200 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 1.500 1.500 1.602 1.608 1.694 1.630 1.636 1.572 1.578 1.584 1.660 1.666 1.792 1.668 1.624 1.690 2.144 2.183 2.192 2.151 2.180 2.149 2.278 2.287 2.236 2.315 2.494 2.353 2.492 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.415 2.430 2.445 2.460 2.495 3.500 3.500 3.350 3.350 3.500 3.500 3.500 2.615 2.630 2.525 2.540 2.825 2.690 2.705 2.920 2.735 2.680 2.765 2.980 2.995 4.000 4.450 4.000 4.000 3.770 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 2.650 5.500 5.500 5.500 5.500 5.500 3.300 3.300 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 4.200 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 3.700 1.500 1.500 1.602 1.688 1.694 1.630 1.636 1.572 1.578 1.654 1.660 1.666 1.792 1.668 1.624 1.690 2.144 2.183 2.192 2.151 2.180 2.149 2.278 2.287 2.236 2.315 2.494 2.353 2.492 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.415 2.430 2.445 2.460 2.495 2.510 3.500 3.350 3.350 3.500 3.500 3.500 2.615 2.630 2.525 2.540 2.825 2.840 2.705 2.920 2.735 2.680 2.765 2.980 2.995 4.000 4.450 4.000 4.000 3.770 4.000 4.000 4.000 2.500 2.500 2.500 2.650 2.650 2.650 2.650 5.500 5.500 5.500 5.500 5.500 3.300 3.300 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 3.700 1.500 1.500 1.602 1.688 1.694 1.630 1.636 1.572 1.578 1.654 1.660 1.666 1.792 1.668 1.624 1.690 2.144 2.183 2.192 2.151 2.180 2.149 2.278 2.287 2.236 2.315 2.494 2.353 2.492 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.685 2.430 2.445 2.460 2.495 2.510 3.500 3.650 3.350 3.500 3.500 3.500 2.615 2.630 2.525 2.540 2.825 2.840 2.705 2.920 2.735 2.680 2.765 2.980 2.995 4.000 4.450 4.000 4.000 3.770 3.770 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 5.500 5.500 5.500 5.500 5.500 3.300 3.300 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 4.200 3.800 3.800 4.600 4.600 4.700 4.700 4.700 3.800 3.800 3.700 1.500 1.500 1.602 1.688 1.694 1.630 1.636 1.572 1.578 1.654 1.660 1.666 1.792 1.668 1.624 1.690 2.144 2.183 2.192 2.151 2.180 2.149 2.278 2.287 2.236 2.315 2.494 2.353 2.492 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.685 2.430 2.445 2.460 2.495 2.510 3.500 3.650 3.350 3.500 3.500 3.500 2.615 2.630 2.525 2.540 2.825 2.840 2.705 2.920 2.735 2.680 2.695 2.980 2.995 4.000 4.000 4.000 4.000 3.770 3.770 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 5.500 5.500 5.500 5.500 5.500 3.300 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 4.200 3.800 3.800 4.600 4.600 4.600 4.700 4.700 3.800 3.800 3.700 1.500 1.500 1.602 1.688 1.694 1.630 1.636 1.572 1.578 1.654 1.660 1.666 1.792 1.668 1.624 1.690 2.144 2.183 2.192 2.261 2.180 2.149 2.278 2.287 2.236 2.315 2.494 2.353 2.492 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.685 2.430 2.445 2.460 2.495 2.510 3.500 3.650 3.350 3.500 3.500 3.500 2.615 2.630 2.645 2.540 2.825 2.840 2.705 2.920 2.735 2.680 2.695 2.980 2.995 4.000 4.000 4.450 4.000 3.770 3.770 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 2.650 5.500 5.500 5.500 5.500 5.500 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 4.200 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.700 1.500 1.500 1.602 1.688 1.694 1.630 1.636 1.572 1.578 1.654 1.660 1.666 1.792 1.668 1.624 1.690 2.144 2.183 2.142 2.261 2.180 2.149 2.278 2.287 2.236 2.315 2.494 2.353 2.492 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.685 2.430 2.445 2.460 2.495 2.510 3.500 3.650 3.350 3.500 3.500 3.500 2.615 2.630 2.645 2.540 2.825 2.840 2.705 2.920 2.735 2.680 2.695 2.980 2.995 3.010 4.000 4.450 4.000 3.770 3.770 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 5.500 5.500 5.500 5.500 5.500 5.500 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 4.200 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 3.800 1.500 1.500 1.602 1.688 1.694 1.630 1.636 1.572 1.578 1.654 1.660 1.666 1.792 1.668 1.624 1.690 2.144 2.183 2.142 2.261 2.180 2.149 2.278 2.287 2.236 2.315 2.494 2.353 2.492 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.685 2.430 2.445 2.460 2.495 2.510 3.500 3.650 3.350 3.350 3.500 3.500 2.615 2.630 2.645 2.540 2.825 2.840 2.705 2.920 2.735 2.680 2.695 2.980 2.995 3.010 4.000 4.450 4.000 4.000 3.770 4.000 4.000 2.500 2.500 2.500 2.500 2.650 2.650 5.500 5.500 5.500 5.500 5.500 5.500 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 4.700 3.800 3.800 1.500 1.500 1.602 1.688 1.694 1.630 1.566 1.572 1.578 1.654 1.660 1.666 1.792 1.618 1.684 1.690 2.144 2.183 2.142 2.261 2.180 2.149 2.278 2.287 2.236 2.315 2.494 2.353 2.492 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.295 2.340 2.355 2.370 2.385 2.670 2.685 2.430 2.445 2.460 2.495 2.510 3.500 3.500 3.650 3.350 3.500 3.500 3.500 2.630 2.645 2.540 2.555 2.840 2.705 2.920 2.735 2.680 2.695 2.780 2.995 3.010 4.000 4.450 4.000 4.000 3.770 4.000 4.000 4.000 2.500 2.500 2.500 2.500 2.650 5.500 5.500 5.500 5.500 5.500 5.500 3.470 3.300 3.300 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 3.800 4.600 4.600 4.700 4.700 4.700 3.800 3.800 1.500 1.500 1.602 1.688 1.694 1.630 1.566 1.572 1.578 1.654 1.660 1.666 1.792 1.618 1.684 1.690 2.144 2.183 2.142 2.261 2.140 2.149 2.278 2.287 2.236 2.315 2.494 2.353 2.492 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.295 2.340 2.355 2.370 2.385 2.670 2.685 2.430 2.445 2.460 2.475 2.510 3.500 3.500 3.650 3.350 3.500 3.500 3.500 2.630 2.645 2.540 2.555 2.840 2.705 2.920 2.935 2.750 2.695 2.780 2.995 3.010 4.000 4.000 4.000 4.000 3.770 3.770 4.000 4.000 2.500 2.500 2.500 2.500 2.650 5.500 5.500 5.500 5.500 5.500 5.500 3.470 3.470 3.300 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 1.500 1.500 1.602 1.688 1.694 1.630 1.566 1.572 1.578 1.654 1.660 1.666 1.792 1.618 1.684 2.135 2.144 2.183 2.142 2.261 2.140 2.269 2.278 2.227 2.276 2.315 2.494 2.353 2.120 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.295 2.340 2.355 2.370 2.385 2.670 2.685 2.430 2.445 2.460 2.475 2.510 3.500 3.500 3.650 3.350 3.500 3.500 3.500 2.630 2.645 2.540 2.555 2.840 2.855 2.720 2.935 2.750 2.695 2.780 2.995 3.010 4.000 4.000 4.450 4.000 4.000 3.770 4.000 4.000 2.500 2.500 2.500 2.500 2.650 5.500 5.500 5.500 5.500 5.500 5.500 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 1.500 1.500 1.602 1.688 1.694 1.630 1.566 1.572 1.578 1.654 1.660 1.786 1.662 1.618 1.684 2.135 2.144 2.183 2.142 2.261 2.140 2.269 2.278 2.227 2.276 2.455 2.314 2.453 2.120 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.295 2.340 2.355 2.370 2.385 2.670 2.685 2.430 2.445 2.460 2.475 2.510 2.525 3.500 3.650 3.350 3.500 3.500 3.500 2.630 2.645 2.540 2.555 2.840 2.855 2.720 2.935 2.750 2.695 2.780 2.995 3.010 3.025 4.000 4.450 4.000 4.000 3.770 4.000 4.000 4.000 2.500 2.500 2.500 2.650 5.500 5.500 5.500 5.500 5.500 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 3.800 1.500 1.500 1.602 1.688 1.694 1.630 1.566 1.572 1.648 1.654 1.660 1.786 1.662 1.618 1.684 2.135 2.144 2.183 2.142 2.261 2.140 2.269 2.278 2.227 2.276 2.455 2.314 2.453 2.120 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.295 2.340 2.355 2.370 2.385 2.670 2.685 2.430 2.445 2.460 2.475 2.510 2.525 3.500 3.650 3.350 3.500 3.500 3.500 2.630 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.750 2.695 2.780 2.995 3.210 3.025 4.000 4.450 4.000 4.000 3.770 3.770 4.000 4.000 2.500 2.500 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 3.800 4.600 4.600 4.700 4.700 4.700 3.800 1.500 1.500 1.602 1.688 1.624 1.630 1.566 1.572 1.648 1.654 1.660 1.786 1.612 1.618 1.684 2.135 2.174 2.183 2.142 2.171 2.140 2.269 2.278 2.227 2.276 2.455 2.314 2.453 2.120 2.135 2.150 2.165 2.080 2.095 2.110 2.125 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.295 2.340 2.355 2.370 2.385 2.670 2.685 2.430 2.445 2.460 2.475 2.510 2.525 3.500 3.650 3.350 3.350 3.500 3.500 2.630 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.750 2.695 2.780 2.995 3.210 3.025 4.000 4.450 4.450 4.000 3.770 3.770 4.000 4.000 2.500 2.500 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 3.800 4.400 4.600 4.700 4.700 4.700 3.800 1.500 1.500 1.682 1.688 1.624 1.630 1.566 1.572 1.648 1.654 1.660 1.786 1.612 1.618 1.684 2.135 2.174 2.183 2.142 2.171 2.140 2.269 2.278 2.227 2.276 2.455 2.314 2.453 2.120 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.295 2.340 2.355 2.370 2.385 2.670 2.685 2.430 2.445 2.460 2.475 2.510 2.525 3.500 3.650 3.350 3.350 3.500 3.500 2.630 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.750 2.695 2.780 2.995 3.210 3.025 4.000 4.000 4.450 4.000 4.000 3.770 4.000 4.000 4.000 2.500 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.580 3.470 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 1.500 1.500 1.682 1.688 1.624 1.630 1.566 1.572 1.648 1.654 1.660 1.786 1.612 1.678 1.684 2.135 2.174 2.133 2.252 2.171 2.140 2.269 2.278 2.227 2.276 2.455 2.314 2.453 2.120 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.295 2.340 2.355 2.370 2.385 2.670 2.685 2.430 2.445 2.460 2.475 2.510 2.525 3.500 3.650 3.350 3.350 3.500 3.500 2.630 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.750 2.695 2.780 2.995 3.210 3.025 3.040 4.000 4.450 4.000 4.000 3.770 4.000 4.000 4.000 2.500 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 3.800 1.500 1.500 1.682 1.688 1.624 1.560 1.566 1.572 1.648 1.654 1.780 1.786 1.612 1.678 2.126 2.135 2.174 2.133 2.252 2.171 2.140 2.269 2.278 2.227 2.276 2.455 2.314 2.453 2.120 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.295 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.475 2.510 2.525 3.500 3.650 3.350 3.350 3.500 3.500 2.630 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.750 2.695 2.710 2.995 3.210 3.025 3.040 4.000 4.450 4.000 4.000 3.770 4.000 4.000 4.000 2.500 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 4.700 1.500 1.500 1.682 1.688 1.624 1.560 1.566 1.572 1.648 1.654 1.780 1.656 1.612 1.678 2.126 2.135 2.174 2.133 2.252 2.171 2.140 2.269 2.278 2.227 2.276 2.455 2.314 2.105 2.120 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.295 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.475 2.510 2.525 3.500 3.650 3.350 3.350 3.500 3.500 2.630 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.750 2.695 2.710 2.995 3.210 3.025 3.040 4.000 4.450 4.000 4.000 3.770 3.770 4.000 4.000 2.500 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 3.800 4.600 4.600 4.700 4.700 4.700 1.500 1.500 1.682 1.688 1.624 1.560 1.566 1.642 1.648 1.654 1.780 1.656 1.612 1.678 2.126 2.135 2.174 2.133 2.252 2.131 2.140 2.269 2.218 2.237 2.416 2.275 2.414 2.105 2.120 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.295 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.475 2.510 2.525 3.500 3.650 3.350 3.350 3.500 3.500 2.630 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.750 2.695 2.710 2.995 3.210 3.025 3.040 4.000 4.450 4.000 4.000 3.770 3.770 4.000 4.000 4.000 2.500 2.500 5.500 5.500 5.500 5.500 5.500 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 1.500 1.500 1.682 1.618 1.624 1.560 1.566 1.642 1.648 1.654 1.780 1.656 1.612 1.678 2.126 2.165 2.174 2.133 2.252 2.131 2.260 2.269 2.218 2.237 2.416 2.275 2.414 2.105 2.120 2.135 2.150 2.165 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.295 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.475 2.510 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.750 2.695 2.710 2.995 3.210 3.225 3.040 4.000 4.450 4.000 4.000 3.770 3.770 4.000 4.000 4.000 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.580 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 1.500 1.500 1.682 1.618 1.624 1.560 1.566 1.642 1.648 1.774 1.780 1.656 1.612 1.678 2.126 2.165 2.174 2.133 2.162 2.131 2.260 2.269 2.218 2.237 2.416 2.275 2.414 2.105 2.120 2.135 2.150 2.065 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.295 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.475 2.510 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.950 2.695 2.710 2.995 3.210 3.225 3.040 4.000 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.580 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 4.700 1.500 1.500 1.682 1.618 1.554 1.560 1.566 1.642 1.648 1.774 1.650 1.606 1.672 2.117 2.126 2.165 2.124 2.243 2.162 2.131 2.260 2.269 2.218 2.237 2.416 2.275 2.414 2.105 2.120 2.135 2.150 2.065 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.295 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.475 2.510 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.950 2.695 2.710 2.995 3.210 3.225 3.040 4.000 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 2.500 5.500 5.500 5.500 5.500 5.500 5.500 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 3.800 4.600 4.600 4.700 4.700 1.500 1.500 1.682 1.618 1.554 1.560 1.636 1.642 1.648 1.774 1.650 1.606 1.672 2.117 2.126 2.165 2.124 2.243 2.162 2.131 2.260 2.269 2.218 2.237 2.416 2.275 2.414 2.105 2.120 2.135 2.150 2.065 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.295 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.475 2.510 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.950 2.695 2.710 2.995 3.210 3.225 3.040 4.000 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 1.500 1.500 1.682 1.618 1.554 1.560 1.636 1.642 1.648 1.774 1.650 1.606 1.672 2.117 2.156 2.165 2.124 2.243 2.162 2.131 2.260 2.269 2.198 2.237 2.416 2.375 2.090 2.105 2.120 2.135 2.150 2.065 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.295 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.475 2.510 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.950 2.695 2.710 2.995 3.210 3.225 3.040 4.000 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 1.500 1.500 1.682 1.548 1.554 1.560 1.636 1.642 1.768 1.774 1.600 1.606 1.672 2.117 2.156 2.165 2.124 2.243 2.122 2.131 2.260 2.209 2.198 2.377 2.416 2.375 2.090 2.105 2.120 2.135 2.150 2.065 2.080 2.095 2.110 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.475 2.510 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.950 2.695 2.710 2.995 3.210 3.225 3.040 4.000 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 4.700 1.500 1.500 1.612 1.548 1.554 1.560 1.636 1.642 1.768 1.644 1.600 1.666 2.108 2.117 2.156 2.165 2.124 2.153 2.122 2.251 2.260 2.209 2.198 2.377 2.236 2.375 2.090 2.105 2.120 2.135 2.150 2.065 2.080 2.095 2.460 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.475 2.510 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.950 2.695 2.710 2.995 3.210 3.225 3.040 4.000 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 3.580 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 4.200 3.800 3.800 4.400 4.600 4.600 1.500 1.500 1.612 1.548 1.554 1.630 1.636 1.642 1.768 1.644 1.600 1.666 2.108 2.117 2.156 2.115 2.234 2.153 2.122 2.251 2.260 2.209 2.198 2.377 2.236 2.375 2.090 2.105 2.120 2.135 2.050 2.065 2.080 2.095 2.460 2.475 2.490 2.505 2.520 2.535 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.475 2.510 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.950 2.695 2.710 2.995 3.210 3.225 3.040 4.000 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 3.580 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 1.500 1.500 1.612 1.548 1.554 1.630 1.636 1.642 1.768 1.644 1.600 1.666 2.108 2.147 2.156 2.115 2.234 2.113 2.122 2.251 2.260 2.159 2.198 2.377 2.236 2.075 2.090 2.105 2.120 2.135 2.050 2.065 2.080 2.095 2.460 2.475 2.490 2.505 2.520 2.265 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.475 2.510 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.950 2.695 2.710 2.995 3.210 3.225 3.040 4.000 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 3.580 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 1.500 1.500 1.612 1.548 1.554 1.630 1.636 1.762 1.638 1.594 1.600 1.666 2.108 2.147 2.156 2.115 2.234 2.113 2.122 2.251 2.200 2.159 2.198 2.377 2.336 2.075 2.090 2.105 2.120 2.135 2.050 2.065 2.080 2.095 2.460 2.475 2.490 2.505 2.520 2.265 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.495 2.510 3.500 3.500 3.650 3.350 3.500 3.500 3.500 2.630 2.645 2.660 2.555 2.840 2.855 2.720 2.935 2.950 2.695 2.710 2.995 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 4.600 1.500 1.500 1.612 1.548 1.624 1.630 1.636 1.762 1.638 1.594 1.660 2.099 2.108 2.147 2.156 2.115 2.144 2.113 2.242 2.251 2.200 2.159 2.338 2.197 2.336 2.075 2.090 2.105 2.120 2.135 2.050 2.065 2.080 2.095 2.460 2.475 2.490 2.505 2.520 2.265 2.280 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.495 2.510 3.500 3.650 3.650 3.350 3.500 3.500 3.500 2.630 2.645 2.660 2.555 2.840 2.705 2.720 2.935 2.750 2.695 2.780 2.995 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 1.500 1.500 1.612 1.548 1.624 1.630 1.636 1.762 1.638 1.594 1.660 2.099 2.108 2.147 2.106 2.225 2.144 2.113 2.242 2.251 2.200 2.159 2.338 2.197 2.336 2.075 2.090 2.105 2.120 2.135 2.050 2.065 2.080 2.095 2.460 2.475 2.490 2.505 2.520 2.265 2.250 2.265 2.280 2.325 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.495 2.510 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.630 2.645 2.540 2.555 2.840 2.705 2.720 2.935 2.750 2.695 2.780 2.995 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 1.500 1.500 1.542 1.548 1.624 1.630 1.756 1.762 1.588 1.594 1.660 2.099 2.138 2.147 2.106 2.225 2.104 2.113 2.242 2.251 2.120 2.159 2.338 2.197 2.336 2.075 2.090 2.105 2.120 2.035 2.050 2.065 2.080 2.445 2.460 2.475 2.490 2.505 2.520 2.265 2.250 2.265 2.310 2.325 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.495 2.510 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.630 2.645 2.540 2.555 2.840 2.705 2.720 2.935 2.750 2.695 2.780 2.995 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 5.500 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 4.600 1.500 1.500 1.542 1.618 1.624 1.630 1.756 1.632 1.588 1.654 1.660 2.099 2.138 2.147 2.106 2.225 2.104 2.113 2.242 2.191 2.120 2.159 2.338 2.297 2.060 2.075 2.090 2.105 2.120 2.035 2.050 2.065 2.080 2.445 2.460 2.475 2.490 2.505 2.520 2.265 2.250 2.265 2.310 2.325 2.340 2.355 2.370 2.385 2.670 2.685 2.700 2.445 2.460 2.495 2.510 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.630 2.645 2.540 2.555 2.840 2.705 2.920 2.935 2.750 2.695 2.780 2.995 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 4.560 4.560 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 4.200 3.800 3.800 4.600 1.500 1.500 1.542 1.618 1.624 1.630 1.756 1.632 1.588 1.654 2.090 2.099 2.138 2.147 2.106 2.135 2.104 2.233 2.242 2.191 2.120 2.299 2.158 2.297 2.060 2.075 2.090 2.105 2.120 2.035 2.050 2.065 2.080 2.445 2.460 2.475 2.490 2.505 2.520 2.265 2.250 2.265 2.310 2.325 2.340 2.355 2.370 2.655 2.670 2.685 2.430 2.445 2.460 2.495 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.630 2.645 2.540 2.825 2.840 2.705 2.920 2.935 2.750 2.695 2.780 2.995 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 3.800 4.200 4.200 3.800 3.800 4.400 1.500 1.500 1.542 1.618 1.624 1.750 1.756 1.582 1.588 1.654 2.090 2.099 2.138 2.097 2.216 2.135 2.104 2.233 2.242 2.191 2.120 2.299 2.158 2.297 2.060 2.075 2.090 2.105 2.120 2.035 2.050 2.065 2.080 2.445 2.460 2.475 2.490 2.505 2.250 2.265 2.250 2.265 2.310 2.325 2.340 2.355 2.370 2.655 2.670 2.685 2.430 2.445 2.460 2.495 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.630 2.645 2.540 2.825 2.840 2.705 2.920 2.935 2.750 2.695 2.780 2.995 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 4.400 1.500 1.500 1.612 1.618 1.624 1.750 1.626 1.582 1.648 1.654 2.090 2.129 2.138 2.097 2.216 2.095 2.104 2.233 2.242 2.081 2.120 2.299 2.158 2.045 2.060 2.075 2.090 2.105 2.020 2.035 2.050 2.065 2.080 2.445 2.460 2.475 2.490 2.505 2.250 2.265 2.250 2.265 2.310 2.325 2.340 2.355 2.370 2.655 2.670 2.685 2.430 2.445 2.480 2.495 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.630 2.645 2.540 2.825 2.840 2.705 2.920 2.935 2.750 2.695 2.780 2.995 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 4.230 4.560 4.560 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 3.800 1.500 1.500 1.612 1.618 1.624 1.750 1.626 1.582 1.648 2.081 2.090 2.129 2.138 2.097 2.126 2.095 2.224 2.233 2.182 2.081 2.260 2.119 2.258 2.045 2.060 2.075 2.090 2.105 2.020 2.035 2.050 2.065 2.080 2.445 2.460 2.475 2.490 2.505 2.250 2.235 2.250 2.265 2.310 2.325 2.340 2.355 2.370 2.655 2.670 2.685 2.430 2.445 2.480 2.495 3.500 3.650 3.650 3.350 3.350 3.500 3.500 3.500 2.630 2.645 2.540 2.825 2.840 2.705 2.920 2.935 2.750 2.695 2.780 2.995 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 3.380 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 3.800 4.200 4.200 3.800 3.800 1.500 1.500 1.612 1.618 1.744 1.750 1.576 1.582 1.648 2.081 2.090 2.129 2.088 2.207 2.126 2.095 2.224 2.233 2.182 2.081 2.260 2.119 2.258 2.045 2.060 2.075 2.090 2.105 2.020 2.035 2.050 2.065 2.430 2.445 2.460 2.475 2.490 2.505 2.250 2.235 2.250 2.265 2.310 2.325 2.340 2.355 2.370 2.655 2.670 2.685 2.430 2.445 2.480 2.495 3.500 3.650 3.650 3.350 3.500 3.500 3.500 2.615 2.630 2.525 2.540 2.825 2.690 2.705 2.920 2.935 2.750 2.695 2.780 2.995 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 3.380 4.230 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 1.500 1.500 1.612 1.618 1.744 1.620 1.576 1.642 1.648 2.081 2.120 2.129 2.088 2.207 2.086 2.095 2.224 2.233 2.042 2.081 2.260 2.119 2.030 2.045 2.060 2.075 2.090 2.105 2.020 2.035 2.050 2.065 2.430 2.445 2.460 2.475 2.490 2.235 2.250 2.235 2.250 2.295 2.310 2.325 2.340 2.355 2.640 2.655 2.670 2.685 2.430 2.445 2.480 2.495 3.500 3.650 3.650 3.350 3.500 3.500 3.500 2.615 2.630 2.525 2.540 2.825 2.690 2.705 2.920 2.935 2.750 2.695 2.780 2.995 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 3.380 4.230 4.560 4.560 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 3.800 1.500 1.500 1.612 1.738 1.744 1.620 1.576 1.642 2.072 2.081 2.120 2.129 2.088 2.117 2.086 2.095 2.224 2.173 2.042 2.221 2.080 2.219 2.030 2.045 2.060 2.075 2.090 2.005 2.020 2.035 2.050 2.065 2.430 2.445 2.460 2.475 2.490 2.235 2.250 2.235 2.250 2.295 2.310 2.325 2.340 2.355 2.640 2.655 2.670 2.415 2.430 2.445 2.480 3.500 3.500 3.650 3.650 3.350 3.500 3.500 3.500 2.615 2.630 2.525 2.540 2.825 2.690 2.905 2.920 2.935 2.750 2.695 2.780 2.995 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 3.380 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 1.500 1.500 1.612 1.738 1.614 1.570 1.636 1.642 2.072 2.081 2.120 2.079 2.198 2.117 2.086 2.215 2.224 2.003 2.042 2.221 2.080 2.219 2.030 2.045 2.060 2.075 2.090 2.005 2.020 2.035 2.050 2.065 2.430 2.445 2.460 2.475 2.490 2.235 2.250 2.235 2.250 2.295 2.310 2.325 2.340 2.355 2.640 2.655 2.670 2.415 2.430 2.465 2.480 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.615 2.630 2.525 2.810 2.825 2.690 2.905 2.920 2.935 2.680 2.695 2.780 2.995 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 4.230 4.230 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.300 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 3.800 1.500 1.500 1.612 1.738 1.614 1.570 1.636 2.063 2.072 2.111 2.120 2.079 2.198 2.077 2.086 2.215 2.164 2.003 2.182 2.221 2.080 2.015 2.030 2.045 2.060 2.075 2.090 2.005 2.020 2.035 2.050 2.065 2.430 2.445 2.460 2.475 2.490 2.235 2.220 2.235 2.250 2.295 2.310 2.325 2.340 2.355 2.640 2.655 2.670 2.415 2.430 2.465 2.480 3.500 3.650 3.650 3.350 3.350 3.500 3.500 3.500 2.615 2.630 2.525 2.810 2.825 2.690 2.905 2.920 2.735 2.680 2.695 2.980 2.995 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.380 4.230 4.560 4.560 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 3.800 4.200 3.800 1.500 1.500 1.732 1.738 1.564 1.630 1.636 2.063 2.072 2.111 2.120 2.079 2.108 2.077 2.206 2.215 2.164 2.003 2.182 2.041 2.180 2.015 2.030 2.045 2.060 2.075 1.990 2.005 2.020 2.035 2.050 2.415 2.430 2.445 2.460 2.475 2.490 2.235 2.220 2.235 2.250 2.295 2.310 2.325 2.340 2.355 2.640 2.655 2.670 2.415 2.430 2.465 2.480 3.500 3.650 3.650 3.350 3.500 3.500 3.500 3.500 2.615 2.630 2.525 2.810 2.675 2.690 2.905 2.920 2.735 2.680 2.695 2.980 2.995 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.380 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 1.500 1.500 1.732 1.608 1.564 1.630 2.054 2.063 2.102 2.111 2.070 2.189 2.108 2.077 2.206 2.215 1.964 2.003 2.182 2.041 2.180 2.015 2.030 2.045 2.060 2.075 1.990 2.005 2.020 2.035 2.050 2.415 2.430 2.445 2.460 2.475 2.220 2.235 2.220 2.235 2.250 2.295 2.310 2.325 2.340 2.625 2.640 2.655 2.400 2.415 2.430 2.465 2.480 3.500 3.650 3.650 3.350 3.500 3.500 3.500 2.600 2.615 2.510 2.525 2.810 2.675 2.690 2.905 2.920 2.735 2.680 2.765 2.980 3.195 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.380 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.300 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 4.200 1.500 1.500 1.732 1.558 1.624 1.630 2.054 2.063 2.102 2.111 2.070 2.189 2.068 2.197 2.206 2.155 1.964 2.143 2.182 2.141 2.000 2.015 2.030 2.045 2.060 2.075 1.990 2.005 2.020 2.035 2.050 2.415 2.430 2.445 2.460 2.475 2.220 2.235 2.220 2.235 2.250 2.295 2.310 2.325 2.340 2.625 2.640 2.655 2.400 2.415 2.430 2.465 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.600 2.615 2.510 2.525 2.810 2.675 2.890 2.905 2.920 2.735 2.680 2.765 2.980 3.195 3.210 3.225 3.040 3.055 4.000 4.450 4.000 3.770 3.770 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.380 3.380 4.230 4.230 4.560 4.560 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.230 4.000 4.000 4.000 3.800 3.800 3.800 4.200 1.500 1.500 1.602 1.558 1.624 2.045 2.054 2.093 2.102 2.061 2.070 2.099 2.068 2.197 2.206 1.925 1.964 2.143 2.002 2.141 2.000 2.015 2.030 2.045 2.060 1.975 1.990 2.005 2.020 2.035 2.050 2.415 2.430 2.445 2.460 2.475 2.220 2.235 2.220 2.235 2.280 2.295 2.310 2.325 2.340 2.625 2.640 2.655 2.400 2.415 2.450 2.465 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.600 2.615 2.510 2.795 2.810 2.675 2.890 2.905 2.920 2.735 2.680 2.765 2.980 3.195 3.210 3.225 3.040 3.055 4.000 4.450 4.000 4.000 3.770 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.540 3.380 3.380 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 4.200 1.500 1.500 1.552 1.618 1.624 2.045 2.054 2.093 2.102 2.061 2.180 2.059 2.188 2.197 2.146 1.925 2.104 2.143 2.002 2.141 2.000 2.015 2.030 2.045 2.060 1.975 1.990 2.005 2.020 2.035 2.400 2.415 2.430 2.445 2.460 2.475 2.220 2.205 2.220 2.235 2.280 2.295 2.310 2.325 2.340 2.625 2.640 2.385 2.400 2.415 2.450 2.465 3.500 3.500 3.650 3.350 3.500 3.500 3.500 3.500 2.600 2.615 2.510 2.795 2.810 2.675 2.890 2.905 2.920 2.735 2.680 2.765 2.980 3.195 3.210 3.225 3.040 3.055 4.000 4.450 4.000 4.000 3.770 4.000 4.000 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.540 3.380 3.380 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 3.800 1.500 1.500 1.612 1.618 2.036 2.045 2.084 2.093 2.052 2.061 2.090 2.059 2.188 2.197 2.146 1.925 2.104 1.963 2.102 1.985 2.000 2.015 2.030 2.045 1.960 1.975 1.990 2.005 2.020 2.035 2.400 2.415 2.430 2.445 2.460 2.475 2.220 2.205 2.220 2.235 2.280 2.295 2.310 2.325 2.340 2.625 2.640 2.385 2.400 2.415 2.450 2.465 3.500 3.650 3.650 3.350 3.500 3.500 3.500 2.585 2.600 2.495 2.510 2.795 2.660 2.675 2.890 2.905 2.720 2.735 2.680 2.765 2.980 3.195 3.210 3.225 3.040 3.055 4.000 4.450 4.000 4.000 3.770 4.000 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.540 3.380 3.380 4.230 4.230 4.560 4.560 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 1.500 1.500 1.612 1.618 2.036 2.045 2.084 2.093 2.052 2.081 2.050 2.179 2.188 2.137 1.886 1.925 2.104 1.963 2.102 1.985 2.000 2.015 2.030 2.045 1.960 1.975 1.990 2.005 2.020 2.035 2.400 2.415 2.430 2.445 2.460 2.205 2.220 2.205 2.220 2.235 2.280 2.295 2.310 2.325 2.610 2.625 2.640 2.385 2.400 2.415 2.450 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.585 2.600 2.495 2.510 2.795 2.660 2.675 2.890 2.905 2.720 2.665 2.750 2.965 2.980 3.195 3.210 3.225 3.040 3.055 4.000 4.450 4.000 4.000 3.770 4.000 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.540 3.540 3.380 3.380 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 3.800 1.500 1.500 1.612 2.027 2.036 2.075 2.084 2.043 2.162 2.081 2.050 2.179 2.188 2.137 1.886 2.065 1.924 2.063 1.970 1.985 2.000 2.015 2.030 2.045 1.960 1.975 1.990 2.005 2.020 2.385 2.400 2.415 2.430 2.445 2.460 2.205 2.190 2.205 2.220 2.235 2.280 2.295 2.310 2.325 2.610 2.625 2.370 2.385 2.400 2.435 2.450 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.585 2.600 2.495 2.780 2.795 2.660 2.875 2.890 2.905 2.720 2.665 2.750 2.965 3.180 3.195 3.210 3.225 3.040 4.000 4.000 4.450 4.000 4.000 3.770 4.000 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.540 3.540 3.380 3.380 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 4.000 3.800 1.500 1.500 2.018 2.027 2.066 2.075 2.034 2.043 2.072 2.041 2.170 2.179 2.128 1.847 1.886 2.065 1.924 2.063 1.970 1.985 2.000 2.015 2.030 1.945 1.960 1.975 1.990 2.005 2.020 2.385 2.400 2.415 2.430 2.445 2.460 2.205 2.190 2.205 2.220 2.265 2.280 2.295 2.310 2.325 2.610 2.625 2.370 2.385 2.400 2.435 2.450 3.500 3.650 3.650 3.350 3.500 3.500 3.500 3.500 2.585 2.600 2.495 2.780 2.795 2.660 2.875 2.890 2.905 2.720 2.665 2.750 2.965 3.180 3.195 3.210 3.025 3.040 4.000 4.000 4.450 4.000 4.000 3.770 4.000 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.540 3.540 3.380 3.380 3.380 4.230 4.560 4.560 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 1.500 1.500 2.018 2.027 2.066 2.075 2.034 2.153 2.072 2.041 2.170 2.179 2.128 1.847 2.026 1.885 1.924 1.955 1.970 1.985 2.000 2.015 2.030 1.945 1.960 1.975 1.990 2.005 2.020 2.385 2.400 2.415 2.430 2.445 2.190 2.205 2.190 2.205 2.220 2.265 2.280 2.295 2.310 2.325 2.610 2.355 2.370 2.385 2.400 2.435 2.450 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.570 2.585 2.480 2.495 2.780 2.645 2.660 2.875 2.890 2.705 2.720 2.665 2.750 2.965 3.180 3.195 3.210 3.025 3.040 4.000 4.000 4.450 4.000 4.000 3.770 4.000 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.540 3.540 3.540 3.380 3.380 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 3.800 1.500 1.500 2.018 2.057 2.066 2.025 2.034 2.063 2.032 2.161 2.170 2.119 1.808 1.847 2.026 1.885 2.024 1.955 1.970 1.985 2.000 2.015 1.930 1.945 1.960 1.975 1.990 2.005 2.370 2.385 2.400 2.415 2.430 2.445 2.190 2.205 2.190 2.205 2.220 2.265 2.280 2.295 2.310 2.595 2.610 2.355 2.370 2.385 2.420 2.435 3.500 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.570 2.585 2.480 2.765 2.780 2.645 2.660 2.875 2.890 2.705 2.650 2.665 2.950 2.965 3.180 3.195 3.210 3.025 3.040 4.000 4.000 4.450 4.000 3.770 3.770 4.000 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.800 3.540 3.540 3.380 3.380 4.230 4.230 4.560 4.560 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 1.500 1.500 2.048 2.057 2.066 2.025 2.054 2.023 2.032 2.161 2.110 1.769 1.808 1.987 1.846 1.885 1.940 1.955 1.970 1.985 2.000 2.015 1.930 1.945 1.960 1.975 1.990 2.005 2.370 2.385 2.400 2.415 2.430 2.445 2.190 2.175 2.190 2.205 2.220 2.265 2.280 2.295 2.310 2.595 2.340 2.355 2.370 2.385 2.420 2.435 3.500 3.650 3.650 3.350 3.500 3.500 3.500 3.500 2.570 2.585 2.480 2.765 2.780 2.645 2.860 2.875 2.890 2.705 2.650 2.735 2.950 2.965 3.180 3.195 3.210 3.025 3.040 4.000 4.000 4.000 4.000 3.770 3.770 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.800 3.540 3.540 3.380 3.380 3.380 4.230 4.560 4.560 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 1.500 1.500 2.048 2.057 2.016 2.135 2.054 2.023 2.152 2.161 2.110 1.769 1.948 1.987 1.846 1.985 1.940 1.955 1.970 1.985 2.000 1.915 1.930 1.945 1.960 1.975 1.990 2.005 2.370 2.385 2.400 2.415 2.430 2.175 2.190 2.175 2.190 2.205 2.250 2.265 2.280 2.295 2.310 2.595 2.340 2.355 2.370 2.405 2.420 2.435 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.555 2.570 2.465 2.480 2.765 2.630 2.645 2.860 2.875 2.690 2.705 2.650 2.735 2.950 3.165 3.180 3.195 3.210 3.025 3.040 4.000 4.450 4.000 4.000 3.770 3.770 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.800 3.800 3.540 3.540 3.540 3.380 3.380 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 4.000 1.500 1.500 2.048 2.007 2.016 2.045 2.014 2.143 2.152 2.101 1.730 1.769 1.948 1.807 1.946 1.925 1.940 1.955 1.970 1.985 2.000 1.915 1.930 1.945 1.960 1.975 1.990 2.355 2.370 2.385 2.400 2.415 2.430 2.175 2.190 2.175 2.190 2.205 2.250 2.265 2.280 2.295 2.310 2.325 2.340 2.355 2.370 2.405 2.420 2.435 3.500 3.650 3.350 3.350 3.500 3.500 3.500 2.555 2.570 2.465 2.480 2.765 2.630 2.645 2.860 2.875 2.690 2.705 2.650 2.735 2.950 3.165 3.180 3.195 3.010 3.025 4.000 4.000 4.450 4.000 4.000 3.770 3.770 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.900 3.800 3.800 3.540 3.540 3.380 3.380 4.230 4.230 4.560 4.560 4.670 3.580 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.230 4.000 4.000 4.000 1.500 1.500 1.998 2.007 2.036 2.005 2.014 2.143 2.152 2.101 1.730 1.909 1.948 1.807 1.946 1.925 1.940 1.955 1.970 1.985 1.900 1.915 1.930 1.945 1.960 1.975 1.990 2.355 2.370 2.385 2.400 2.415 2.160 2.175 2.160 2.175 2.190 2.205 2.250 2.265 2.280 2.295 2.580 2.325 2.340 2.355 2.370 2.405 2.420 3.500 3.650 3.650 3.350 3.500 3.500 3.500 3.500 2.555 2.570 2.465 2.750 2.765 2.630 2.845 2.860 2.875 2.690 2.635 2.650 2.735 2.950 3.165 3.180 3.195 3.010 3.025 4.000 4.000 4.450 4.000 4.000 3.770 3.770 5.500 5.500 5.500 5.500 5.500 5.500 5.500 5.500 3.900 3.800 3.800 3.540 3.540 3.540 3.380 3.380 4.230 4.560 4.560 4.670 4.670 3.580 3.580 3.580 3.470 3.470 3.470 3.300 3.300 3.530 3.530 3.530 4.230 4.230 4.230 4.230 4.000 4.000 4.000 'END of complex blocks, end of the input data for the model' / mar/mars-mod.dat 100666 1750 1750 1054001 6223642752 13216 0 ustar klimes klimes 'MARmousi Smoothed model, 384*122 gridpoints (cells 0.024*0.024)' 0 1 1 / (Cartesian coordinates, velocities, loss factors) 0.000 9.192 0.000 2.904 0 1 (boundaries of the model) 0 surfaces 1 simple block: / 1 complex block: 1 / 'END of input data for smooth surfaces' / 'COMPLEX BLOCK' 1 'VP ' -1 (P wave slowness interpolated) 2 1 0 0 -1 / (i.e. VP=W(X2,X1), tension=0, velocity given) 122 384 (numbers of gridpoints) 0.000 0.024 0.048 0.072 0.096 0.120 0.144 0.168 0.192 0.216 0.240 0.264 0.288 0.312 0.336 0.360 0.384 0.408 0.432 0.456 0.480 0.504 0.528 0.552 0.576 0.600 0.624 0.648 0.672 0.696 0.720 0.744 0.768 0.792 0.816 0.840 0.864 0.888 0.912 0.936 0.960 0.984 1.008 1.032 1.056 1.080 1.104 1.128 1.152 1.176 1.200 1.224 1.248 1.272 1.296 1.320 1.344 1.368 1.392 1.416 1.440 1.464 1.488 1.512 1.536 1.560 1.584 1.608 1.632 1.656 1.680 1.704 1.728 1.752 1.776 1.800 1.824 1.848 1.872 1.896 1.920 1.944 1.968 1.992 2.016 2.040 2.064 2.088 2.112 2.136 2.160 2.184 2.208 2.232 2.256 2.280 2.304 2.328 2.352 2.376 2.400 2.424 2.448 2.472 2.496 2.520 2.544 2.568 2.592 2.616 2.640 2.664 2.688 2.712 2.736 2.760 2.784 2.808 2.832 2.856 2.880 2.904 0.000 0.024 0.048 0.072 0.096 0.120 0.144 0.168 0.192 0.216 0.240 0.264 0.288 0.312 0.336 0.360 0.384 0.408 0.432 0.456 0.480 0.504 0.528 0.552 0.576 0.600 0.624 0.648 0.672 0.696 0.720 0.744 0.768 0.792 0.816 0.840 0.864 0.888 0.912 0.936 0.960 0.984 1.008 1.032 1.056 1.080 1.104 1.128 1.152 1.176 1.200 1.224 1.248 1.272 1.296 1.320 1.344 1.368 1.392 1.416 1.440 1.464 1.488 1.512 1.536 1.560 1.584 1.608 1.632 1.656 1.680 1.704 1.728 1.752 1.776 1.800 1.824 1.848 1.872 1.896 1.920 1.944 1.968 1.992 2.016 2.040 2.064 2.088 2.112 2.136 2.160 2.184 2.208 2.232 2.256 2.280 2.304 2.328 2.352 2.376 2.400 2.424 2.448 2.472 2.496 2.520 2.544 2.568 2.592 2.616 2.640 2.664 2.688 2.712 2.736 2.760 2.784 2.808 2.832 2.856 2.880 2.904 2.928 2.952 2.976 3.000 3.024 3.048 3.072 3.096 3.120 3.144 3.168 3.192 3.216 3.240 3.264 3.288 3.312 3.336 3.360 3.384 3.408 3.432 3.456 3.480 3.504 3.528 3.552 3.576 3.600 3.624 3.648 3.672 3.696 3.720 3.744 3.768 3.792 3.816 3.840 3.864 3.888 3.912 3.936 3.960 3.984 4.008 4.032 4.056 4.080 4.104 4.128 4.152 4.176 4.200 4.224 4.248 4.272 4.296 4.320 4.344 4.368 4.392 4.416 4.440 4.464 4.488 4.512 4.536 4.560 4.584 4.608 4.632 4.656 4.680 4.704 4.728 4.752 4.776 4.800 4.824 4.848 4.872 4.896 4.920 4.944 4.968 4.992 5.016 5.040 5.064 5.088 5.112 5.136 5.160 5.184 5.208 5.232 5.256 5.280 5.304 5.328 5.352 5.376 5.400 5.424 5.448 5.472 5.496 5.520 5.544 5.568 5.592 5.616 5.640 5.664 5.688 5.712 5.736 5.760 5.784 5.808 5.832 5.856 5.880 5.904 5.928 5.952 5.976 6.000 6.024 6.048 6.072 6.096 6.120 6.144 6.168 6.192 6.216 6.240 6.264 6.288 6.312 6.336 6.360 6.384 6.408 6.432 6.456 6.480 6.504 6.528 6.552 6.576 6.600 6.624 6.648 6.672 6.696 6.720 6.744 6.768 6.792 6.816 6.840 6.864 6.888 6.912 6.936 6.960 6.984 7.008 7.032 7.056 7.080 7.104 7.128 7.152 7.176 7.200 7.224 7.248 7.272 7.296 7.320 7.344 7.368 7.392 7.416 7.440 7.464 7.488 7.512 7.536 7.560 7.584 7.608 7.632 7.656 7.680 7.704 7.728 7.752 7.776 7.800 7.824 7.848 7.872 7.896 7.920 7.944 7.968 7.992 8.016 8.040 8.064 8.088 8.112 8.136 8.160 8.184 8.208 8.232 8.256 8.280 8.304 8.328 8.352 8.376 8.400 8.424 8.448 8.472 8.496 8.520 8.544 8.568 8.592 8.616 8.640 8.664 8.688 8.712 8.736 8.760 8.784 8.808 8.832 8.856 8.880 8.904 8.928 8.952 8.976 9.000 9.024 9.048 9.072 9.096 9.120 9.144 9.168 9.192 1.500 1.549 1.598 1.637 1.675 1.703 1.725 1.737 1.743 1.744 1.739 1.730 1.718 1.706 1.696 1.689 1.686 1.689 1.700 1.715 1.732 1.749 1.765 1.778 1.787 1.792 1.793 1.789 1.782 1.772 1.765 1.763 1.769 1.783 1.805 1.831 1.858 1.882 1.898 1.906 1.907 1.902 1.894 1.885 1.877 1.875 1.879 1.889 1.900 1.917 1.946 1.990 2.050 2.126 2.215 2.307 2.395 2.467 2.514 2.535 2.544 2.554 2.566 2.583 2.602 2.622 2.641 2.671 2.729 2.826 2.971 3.149 3.324 3.447 3.477 3.407 3.270 3.116 2.991 2.917 2.888 2.891 2.907 2.922 2.935 2.950 2.973 3.013 3.077 3.150 3.200 3.197 3.132 3.045 2.986 2.994 3.096 3.313 3.662 4.134 4.663 5.116 5.397 5.496 5.500 5.498 5.454 5.326 5.104 4.815 4.514 4.255 4.071 3.975 3.967 4.019 4.088 4.146 4.178 4.061 3.785 3.500 1.500 1.549 1.598 1.637 1.675 1.703 1.725 1.737 1.743 1.744 1.739 1.730 1.718 1.708 1.699 1.693 1.691 1.696 1.707 1.722 1.737 1.752 1.765 1.776 1.784 1.788 1.790 1.787 1.781 1.772 1.765 1.762 1.768 1.781 1.802 1.827 1.852 1.873 1.886 1.892 1.892 1.887 1.879 1.872 1.866 1.866 1.872 1.882 1.895 1.915 1.945 1.989 2.049 2.126 2.215 2.308 2.396 2.469 2.515 2.536 2.544 2.554 2.566 2.583 2.602 2.622 2.641 2.671 2.728 2.824 2.969 3.149 3.327 3.454 3.488 3.420 3.283 3.129 3.002 2.928 2.897 2.897 2.911 2.923 2.935 2.950 2.975 3.019 3.091 3.173 3.231 3.231 3.162 3.066 2.997 2.996 3.092 3.309 3.661 4.140 4.672 5.126 5.403 5.497 5.500 5.499 5.457 5.331 5.114 4.840 4.565 4.334 4.177 4.096 4.079 4.095 4.103 4.086 4.013 3.834 3.574 3.460 1.500 1.549 1.599 1.637 1.675 1.704 1.726 1.738 1.744 1.744 1.739 1.730 1.719 1.708 1.699 1.693 1.692 1.697 1.709 1.724 1.739 1.752 1.764 1.774 1.781 1.784 1.785 1.782 1.776 1.769 1.763 1.764 1.772 1.787 1.809 1.834 1.857 1.875 1.886 1.890 1.889 1.883 1.876 1.868 1.863 1.863 1.869 1.880 1.893 1.911 1.940 1.984 2.044 2.122 2.213 2.308 2.398 2.471 2.517 2.536 2.544 2.553 2.566 2.582 2.601 2.621 2.640 2.668 2.723 2.818 2.963 3.147 3.332 3.463 3.497 3.424 3.280 3.121 2.994 2.920 2.893 2.896 2.910 2.923 2.935 2.950 2.976 3.024 3.102 3.194 3.261 3.266 3.193 3.086 3.004 2.992 3.083 3.301 3.661 4.151 4.691 5.144 5.413 5.498 5.500 5.499 5.464 5.352 5.160 4.918 4.671 4.461 4.313 4.224 4.178 4.149 4.103 4.029 3.906 3.706 3.513 3.425 1.500 1.549 1.599 1.637 1.675 1.705 1.727 1.739 1.744 1.744 1.739 1.730 1.719 1.708 1.699 1.693 1.692 1.698 1.709 1.725 1.740 1.753 1.765 1.774 1.781 1.783 1.783 1.780 1.773 1.766 1.762 1.764 1.774 1.791 1.814 1.839 1.862 1.878 1.888 1.890 1.888 1.883 1.875 1.867 1.862 1.861 1.867 1.877 1.890 1.908 1.936 1.978 2.038 2.117 2.211 2.310 2.402 2.474 2.517 2.535 2.544 2.553 2.566 2.582 2.601 2.620 2.640 2.667 2.719 2.811 2.955 3.144 3.336 3.473 3.508 3.429 3.277 3.113 2.986 2.915 2.890 2.895 2.909 2.923 2.935 2.950 2.976 3.026 3.106 3.205 3.280 3.289 3.217 3.099 3.004 2.984 3.071 3.293 3.663 4.166 4.711 5.162 5.419 5.493 5.499 5.495 5.456 5.350 5.172 4.950 4.725 4.528 4.376 4.266 4.185 4.112 4.024 3.917 3.777 3.607 3.467 3.408 1.500 1.549 1.599 1.637 1.676 1.706 1.727 1.738 1.744 1.744 1.739 1.730 1.719 1.709 1.700 1.693 1.692 1.698 1.710 1.726 1.741 1.754 1.766 1.775 1.781 1.783 1.782 1.778 1.771 1.764 1.761 1.765 1.776 1.794 1.817 1.843 1.866 1.882 1.890 1.892 1.890 1.884 1.875 1.867 1.862 1.861 1.865 1.875 1.890 1.907 1.934 1.975 2.035 2.115 2.210 2.311 2.404 2.475 2.515 2.533 2.544 2.553 2.566 2.582 2.600 2.620 2.642 2.668 2.717 2.807 2.947 3.138 3.336 3.480 3.515 3.431 3.272 3.105 2.983 2.913 2.891 2.898 2.909 2.922 2.935 2.951 2.978 3.025 3.105 3.202 3.274 3.277 3.206 3.080 2.979 2.957 3.050 3.284 3.670 4.178 4.721 5.162 5.404 5.473 5.497 5.485 5.447 5.345 5.182 4.978 4.762 4.560 4.389 4.251 4.137 4.036 3.927 3.809 3.675 3.536 3.441 3.412 1.500 1.549 1.599 1.637 1.676 1.705 1.725 1.737 1.742 1.742 1.737 1.729 1.720 1.710 1.701 1.694 1.693 1.699 1.712 1.728 1.742 1.755 1.766 1.776 1.781 1.783 1.781 1.776 1.770 1.763 1.761 1.767 1.780 1.798 1.821 1.847 1.870 1.885 1.892 1.893 1.891 1.885 1.876 1.868 1.864 1.862 1.864 1.874 1.893 1.910 1.935 1.975 2.034 2.114 2.209 2.311 2.404 2.470 2.507 2.527 2.545 2.554 2.567 2.582 2.600 2.624 2.649 2.678 2.726 2.816 2.950 3.139 3.337 3.477 3.507 3.418 3.260 3.104 2.987 2.919 2.900 2.905 2.908 2.922 2.938 2.955 2.985 3.028 3.098 3.187 3.251 3.249 3.193 3.068 2.965 2.945 3.045 3.289 3.683 4.178 4.695 5.114 5.343 5.423 5.493 5.466 5.415 5.318 5.172 4.984 4.773 4.564 4.376 4.215 4.079 3.957 3.830 3.712 3.593 3.488 3.435 3.433 1.500 1.549 1.599 1.637 1.676 1.703 1.719 1.733 1.739 1.738 1.734 1.728 1.721 1.712 1.704 1.697 1.696 1.702 1.716 1.731 1.742 1.754 1.765 1.775 1.780 1.781 1.779 1.775 1.768 1.763 1.763 1.771 1.785 1.802 1.824 1.849 1.870 1.884 1.891 1.892 1.889 1.885 1.877 1.871 1.868 1.865 1.865 1.875 1.899 1.918 1.943 1.980 2.038 2.116 2.208 2.308 2.396 2.455 2.490 2.517 2.546 2.556 2.569 2.583 2.599 2.628 2.664 2.700 2.751 2.842 2.961 3.135 3.319 3.446 3.469 3.384 3.241 3.109 3.007 2.941 2.922 2.919 2.907 2.921 2.942 2.965 3.000 3.034 3.085 3.154 3.202 3.191 3.168 3.062 2.972 2.962 3.070 3.320 3.702 4.151 4.608 4.989 5.214 5.337 5.471 5.404 5.343 5.255 5.122 4.949 4.746 4.536 4.342 4.170 4.011 3.870 3.726 3.623 3.528 3.457 3.439 3.457 1.500 1.549 1.599 1.637 1.676 1.703 1.719 1.733 1.739 1.738 1.734 1.728 1.722 1.713 1.705 1.698 1.697 1.703 1.717 1.732 1.743 1.755 1.767 1.777 1.781 1.782 1.779 1.774 1.767 1.762 1.763 1.772 1.787 1.805 1.827 1.852 1.873 1.886 1.892 1.893 1.890 1.886 1.878 1.872 1.869 1.865 1.865 1.876 1.900 1.918 1.942 1.979 2.037 2.115 2.209 2.310 2.397 2.456 2.491 2.518 2.547 2.556 2.569 2.583 2.599 2.628 2.665 2.704 2.760 2.857 2.981 3.159 3.345 3.468 3.484 3.390 3.242 3.107 3.006 2.940 2.921 2.919 2.908 2.923 2.945 2.969 3.003 3.037 3.084 3.145 3.183 3.163 3.133 3.028 2.941 2.936 3.052 3.310 3.697 4.151 4.608 4.989 5.214 5.337 5.464 5.399 5.341 5.253 5.117 4.930 4.707 4.477 4.264 4.071 3.909 3.772 3.638 3.551 3.485 3.447 3.455 3.484 1.500 1.549 1.599 1.637 1.676 1.703 1.719 1.733 1.739 1.738 1.734 1.728 1.722 1.713 1.706 1.699 1.699 1.705 1.718 1.733 1.744 1.756 1.768 1.777 1.781 1.781 1.778 1.774 1.766 1.761 1.763 1.773 1.788 1.807 1.830 1.854 1.875 1.887 1.892 1.892 1.890 1.885 1.878 1.873 1.870 1.866 1.867 1.877 1.901 1.919 1.941 1.978 2.037 2.115 2.209 2.312 2.399 2.457 2.492 2.518 2.548 2.557 2.569 2.583 2.599 2.628 2.666 2.710 2.772 2.876 3.006 3.190 3.379 3.497 3.503 3.398 3.243 3.107 3.005 2.940 2.921 2.919 2.909 2.925 2.948 2.976 3.009 3.041 3.084 3.138 3.165 3.136 3.101 2.995 2.912 2.914 3.037 3.304 3.693 4.151 4.608 4.989 5.214 5.337 5.460 5.400 5.341 5.249 5.095 4.883 4.638 4.393 4.158 3.964 3.808 3.680 3.563 3.500 3.462 3.451 3.475 3.506 1.500 1.549 1.599 1.637 1.676 1.703 1.719 1.732 1.739 1.738 1.734 1.728 1.722 1.714 1.707 1.700 1.700 1.706 1.719 1.733 1.745 1.756 1.768 1.776 1.780 1.781 1.778 1.773 1.767 1.762 1.764 1.775 1.790 1.810 1.832 1.856 1.875 1.886 1.890 1.891 1.889 1.884 1.877 1.873 1.871 1.867 1.869 1.880 1.903 1.920 1.942 1.979 2.037 2.115 2.210 2.312 2.400 2.457 2.493 2.520 2.549 2.558 2.570 2.583 2.599 2.628 2.669 2.717 2.785 2.897 3.034 3.223 3.411 3.526 3.522 3.408 3.246 3.106 3.005 2.940 2.921 2.919 2.910 2.926 2.949 2.980 3.012 3.044 3.085 3.133 3.152 3.116 3.075 2.969 2.889 2.895 3.023 3.296 3.691 4.151 4.608 4.989 5.214 5.337 5.457 5.402 5.344 5.234 5.054 4.815 4.551 4.288 4.050 3.861 3.715 3.606 3.511 3.470 3.455 3.463 3.492 3.512 1.500 1.549 1.599 1.637 1.676 1.703 1.719 1.731 1.738 1.738 1.734 1.728 1.722 1.714 1.707 1.701 1.702 1.708 1.721 1.734 1.745 1.756 1.768 1.775 1.778 1.779 1.776 1.772 1.766 1.762 1.766 1.777 1.793 1.812 1.834 1.856 1.875 1.885 1.888 1.888 1.886 1.881 1.875 1.872 1.871 1.867 1.870 1.882 1.906 1.922 1.943 1.979 2.037 2.115 2.210 2.313 2.400 2.457 2.494 2.521 2.550 2.558 2.570 2.583 2.599 2.628 2.671 2.724 2.798 2.917 3.061 3.255 3.444 3.553 3.541 3.415 3.248 3.106 3.005 2.939 2.921 2.920 2.911 2.928 2.951 2.983 3.016 3.047 3.088 3.131 3.144 3.102 3.058 2.952 2.874 2.883 3.015 3.292 3.690 4.150 4.608 4.989 5.214 5.337 5.451 5.407 5.339 5.207 5.000 4.739 4.454 4.174 3.943 3.767 3.638 3.551 3.479 3.457 3.457 3.473 3.497 3.493 1.500 1.549 1.599 1.637 1.676 1.703 1.719 1.731 1.738 1.738 1.734 1.728 1.721 1.713 1.707 1.702 1.703 1.710 1.723 1.735 1.746 1.756 1.766 1.773 1.777 1.777 1.775 1.771 1.766 1.763 1.768 1.779 1.795 1.814 1.835 1.857 1.874 1.882 1.884 1.885 1.883 1.878 1.873 1.871 1.870 1.867 1.872 1.885 1.908 1.924 1.945 1.980 2.037 2.115 2.210 2.313 2.401 2.458 2.495 2.522 2.551 2.559 2.570 2.583 2.599 2.628 2.672 2.728 2.808 2.934 3.083 3.281 3.471 3.576 3.555 3.421 3.248 3.105 3.005 2.939 2.921 2.920 2.911 2.929 2.953 2.985 3.018 3.048 3.091 3.133 3.142 3.095 3.048 2.942 2.866 2.878 3.012 3.291 3.690 4.148 4.612 4.989 5.214 5.337 5.438 5.399 5.323 5.171 4.937 4.653 4.346 4.070 3.849 3.685 3.577 3.512 3.462 3.453 3.460 3.474 3.484 3.449 1.500 1.549 1.599 1.637 1.676 1.703 1.719 1.731 1.738 1.738 1.733 1.726 1.720 1.712 1.706 1.701 1.703 1.710 1.724 1.736 1.746 1.756 1.765 1.771 1.775 1.776 1.774 1.771 1.766 1.764 1.770 1.781 1.797 1.815 1.836 1.859 1.874 1.879 1.881 1.881 1.879 1.875 1.870 1.869 1.869 1.867 1.873 1.891 1.912 1.926 1.947 1.982 2.038 2.116 2.210 2.313 2.401 2.460 2.499 2.529 2.551 2.559 2.571 2.583 2.599 2.629 2.673 2.731 2.814 2.945 3.099 3.300 3.490 3.591 3.563 3.424 3.248 3.105 3.005 2.939 2.921 2.920 2.912 2.930 2.955 2.987 3.020 3.044 3.092 3.134 3.142 3.094 3.046 2.940 2.864 2.876 3.012 3.291 3.688 4.139 4.613 4.989 5.214 5.337 5.440 5.397 5.307 5.132 4.876 4.564 4.253 3.982 3.772 3.625 3.538 3.499 3.458 3.454 3.457 3.463 3.450 3.388 1.500 1.549 1.599 1.637 1.676 1.703 1.720 1.731 1.738 1.737 1.732 1.724 1.717 1.709 1.703 1.700 1.703 1.711 1.725 1.736 1.745 1.754 1.763 1.770 1.773 1.775 1.773 1.770 1.766 1.764 1.771 1.783 1.798 1.817 1.837 1.859 1.873 1.877 1.878 1.878 1.876 1.872 1.868 1.867 1.867 1.866 1.873 1.893 1.914 1.928 1.949 1.984 2.040 2.117 2.211 2.314 2.402 2.461 2.502 2.533 2.552 2.560 2.571 2.583 2.599 2.630 2.674 2.732 2.817 2.951 3.109 3.311 3.501 3.599 3.567 3.424 3.247 3.107 3.005 2.939 2.921 2.920 2.912 2.930 2.955 2.988 3.021 3.035 3.088 3.132 3.141 3.094 3.047 2.941 2.865 2.878 3.012 3.290 3.681 4.120 4.614 4.989 5.214 5.337 5.440 5.394 5.293 5.099 4.817 4.493 4.179 3.913 3.713 3.582 3.520 3.496 3.459 3.452 3.448 3.439 3.402 3.330 1.500 1.549 1.599 1.637 1.676 1.703 1.720 1.731 1.738 1.736 1.731 1.722 1.714 1.706 1.700 1.696 1.701 1.710 1.724 1.736 1.745 1.753 1.762 1.768 1.772 1.774 1.772 1.769 1.766 1.764 1.771 1.783 1.799 1.817 1.838 1.859 1.872 1.875 1.876 1.876 1.874 1.869 1.866 1.864 1.866 1.865 1.873 1.894 1.916 1.931 1.952 1.988 2.045 2.121 2.215 2.317 2.404 2.461 2.503 2.535 2.552 2.560 2.571 2.583 2.599 2.634 2.675 2.732 2.817 2.953 3.112 3.315 3.505 3.602 3.568 3.424 3.249 3.112 3.005 2.939 2.921 2.920 2.911 2.930 2.955 2.988 3.022 3.036 3.088 3.132 3.142 3.096 3.050 2.943 2.867 2.880 3.014 3.291 3.682 4.120 4.614 4.989 5.214 5.337 5.441 5.391 5.279 5.065 4.770 4.438 4.125 3.863 3.674 3.559 3.514 3.498 3.459 3.445 3.435 3.410 3.356 3.296 1.500 1.549 1.599 1.637 1.676 1.703 1.720 1.731 1.738 1.735 1.729 1.721 1.711 1.703 1.697 1.693 1.699 1.709 1.724 1.736 1.744 1.753 1.762 1.768 1.771 1.772 1.770 1.767 1.765 1.764 1.771 1.783 1.799 1.817 1.838 1.859 1.871 1.874 1.875 1.875 1.872 1.867 1.864 1.863 1.864 1.863 1.872 1.895 1.916 1.933 1.956 1.993 2.052 2.129 2.223 2.323 2.408 2.464 2.504 2.536 2.553 2.561 2.572 2.584 2.601 2.642 2.679 2.733 2.817 2.954 3.113 3.317 3.507 3.604 3.570 3.427 3.254 3.121 3.005 2.939 2.921 2.921 2.911 2.930 2.955 2.988 3.022 3.036 3.088 3.132 3.143 3.098 3.054 2.947 2.871 2.883 3.017 3.294 3.683 4.121 4.614 4.989 5.214 5.337 5.441 5.388 5.272 5.047 4.741 4.404 4.091 3.834 3.656 3.557 3.519 3.501 3.457 3.436 3.419 3.383 3.326 3.298 1.500 1.549 1.599 1.638 1.676 1.704 1.720 1.732 1.738 1.735 1.728 1.719 1.709 1.700 1.695 1.691 1.697 1.708 1.724 1.735 1.743 1.752 1.762 1.767 1.770 1.771 1.768 1.766 1.763 1.762 1.770 1.783 1.798 1.817 1.840 1.860 1.871 1.874 1.875 1.875 1.871 1.866 1.862 1.861 1.862 1.861 1.872 1.894 1.917 1.936 1.961 2.001 2.062 2.140 2.233 2.332 2.413 2.467 2.507 2.538 2.555 2.563 2.574 2.587 2.603 2.643 2.681 2.734 2.818 2.954 3.114 3.319 3.509 3.606 3.571 3.427 3.254 3.120 3.004 2.939 2.921 2.921 2.911 2.930 2.955 2.988 3.022 3.036 3.088 3.133 3.145 3.101 3.058 2.951 2.876 2.888 3.021 3.297 3.685 4.122 4.614 4.989 5.214 5.337 5.438 5.386 5.260 5.031 4.721 4.384 4.071 3.822 3.651 3.563 3.523 3.499 3.450 3.426 3.405 3.365 3.321 3.337 1.500 1.549 1.599 1.639 1.678 1.705 1.722 1.733 1.739 1.735 1.728 1.718 1.707 1.698 1.693 1.689 1.694 1.707 1.722 1.734 1.741 1.750 1.760 1.765 1.768 1.768 1.765 1.763 1.759 1.760 1.769 1.782 1.797 1.817 1.841 1.861 1.872 1.875 1.875 1.875 1.870 1.865 1.860 1.859 1.858 1.859 1.872 1.894 1.918 1.939 1.967 2.010 2.073 2.153 2.247 2.344 2.422 2.473 2.510 2.540 2.558 2.566 2.578 2.590 2.606 2.646 2.683 2.736 2.819 2.956 3.116 3.321 3.511 3.607 3.571 3.427 3.252 3.119 3.003 2.938 2.921 2.921 2.910 2.930 2.955 2.988 3.022 3.036 3.088 3.133 3.146 3.104 3.062 2.956 2.880 2.892 3.025 3.300 3.687 4.122 4.614 4.989 5.214 5.337 5.431 5.373 5.248 5.020 4.711 4.373 4.065 3.822 3.663 3.574 3.524 3.493 3.439 3.418 3.395 3.360 3.347 3.407 1.500 1.549 1.599 1.641 1.680 1.707 1.724 1.735 1.741 1.736 1.728 1.718 1.707 1.698 1.692 1.688 1.693 1.706 1.721 1.732 1.738 1.747 1.757 1.762 1.765 1.765 1.763 1.760 1.756 1.758 1.767 1.781 1.796 1.818 1.842 1.862 1.873 1.876 1.876 1.875 1.870 1.864 1.859 1.859 1.857 1.859 1.871 1.894 1.918 1.942 1.973 2.020 2.086 2.168 2.263 2.359 2.432 2.479 2.514 2.542 2.561 2.570 2.582 2.594 2.609 2.649 2.685 2.738 2.821 2.957 3.117 3.323 3.513 3.608 3.571 3.425 3.250 3.117 3.002 2.937 2.920 2.920 2.910 2.930 2.955 2.988 3.022 3.036 3.088 3.134 3.148 3.107 3.066 2.960 2.885 2.896 3.029 3.303 3.689 4.123 4.614 4.989 5.214 5.337 5.423 5.365 5.240 5.014 4.709 4.373 4.069 3.836 3.678 3.579 3.521 3.482 3.429 3.411 3.393 3.373 3.404 3.500 1.500 1.549 1.599 1.643 1.682 1.710 1.726 1.737 1.742 1.738 1.729 1.718 1.707 1.698 1.691 1.688 1.693 1.706 1.720 1.729 1.735 1.744 1.753 1.758 1.762 1.762 1.761 1.758 1.754 1.756 1.765 1.780 1.796 1.819 1.843 1.863 1.875 1.877 1.877 1.875 1.870 1.864 1.859 1.858 1.856 1.858 1.871 1.893 1.918 1.944 1.978 2.028 2.097 2.181 2.277 2.372 2.441 2.486 2.517 2.545 2.565 2.574 2.586 2.598 2.613 2.652 2.687 2.739 2.822 2.958 3.118 3.324 3.514 3.608 3.569 3.423 3.248 3.114 2.999 2.936 2.920 2.920 2.910 2.930 2.955 2.988 3.022 3.036 3.088 3.134 3.149 3.109 3.069 2.964 2.888 2.900 3.032 3.305 3.691 4.124 4.614 4.989 5.214 5.337 5.426 5.363 5.236 5.012 4.708 4.378 4.079 3.850 3.685 3.577 3.512 3.469 3.418 3.408 3.400 3.404 3.483 3.602 1.500 1.549 1.599 1.645 1.684 1.712 1.728 1.739 1.744 1.739 1.730 1.719 1.708 1.698 1.692 1.688 1.693 1.705 1.718 1.726 1.731 1.740 1.749 1.754 1.758 1.760 1.760 1.756 1.752 1.755 1.765 1.780 1.797 1.820 1.844 1.864 1.875 1.878 1.877 1.875 1.869 1.863 1.859 1.858 1.857 1.858 1.871 1.893 1.918 1.944 1.980 2.034 2.106 2.192 2.289 2.382 2.449 2.490 2.520 2.548 2.568 2.578 2.590 2.602 2.617 2.655 2.689 2.740 2.823 2.959 3.119 3.325 3.514 3.607 3.567 3.420 3.244 3.111 2.997 2.934 2.919 2.920 2.910 2.930 2.955 2.988 3.022 3.036 3.088 3.134 3.149 3.110 3.071 2.966 2.891 2.902 3.034 3.307 3.692 4.124 4.615 4.989 5.214 5.337 5.423 5.358 5.233 5.016 4.714 4.390 4.100 3.866 3.689 3.571 3.497 3.451 3.409 3.410 3.417 3.452 3.572 3.689 1.500 1.549 1.599 1.647 1.687 1.715 1.731 1.740 1.745 1.741 1.732 1.720 1.709 1.699 1.691 1.688 1.693 1.705 1.716 1.722 1.728 1.736 1.745 1.751 1.755 1.758 1.758 1.756 1.752 1.755 1.765 1.780 1.798 1.821 1.845 1.864 1.875 1.878 1.877 1.874 1.869 1.863 1.859 1.859 1.857 1.859 1.871 1.893 1.917 1.944 1.981 2.037 2.112 2.200 2.297 2.390 2.454 2.493 2.522 2.550 2.571 2.581 2.594 2.606 2.620 2.657 2.691 2.741 2.824 2.959 3.119 3.325 3.513 3.605 3.564 3.417 3.241 3.108 2.995 2.933 2.918 2.920 2.910 2.930 2.955 2.988 3.022 3.036 3.087 3.133 3.149 3.111 3.072 2.968 2.892 2.903 3.035 3.307 3.691 4.122 4.612 4.989 5.214 5.337 5.420 5.355 5.236 5.018 4.722 4.404 4.119 3.873 3.686 3.561 3.482 3.440 3.405 3.418 3.444 3.509 3.652 3.741 1.500 1.549 1.599 1.648 1.689 1.717 1.733 1.741 1.747 1.741 1.732 1.721 1.709 1.699 1.691 1.688 1.693 1.705 1.715 1.720 1.725 1.733 1.741 1.748 1.754 1.757 1.758 1.756 1.753 1.756 1.766 1.781 1.799 1.822 1.845 1.864 1.874 1.878 1.877 1.874 1.869 1.863 1.860 1.860 1.858 1.860 1.871 1.893 1.916 1.942 1.980 2.038 2.114 2.204 2.301 2.393 2.457 2.495 2.523 2.552 2.572 2.583 2.595 2.607 2.621 2.659 2.693 2.742 2.824 2.959 3.119 3.325 3.513 3.604 3.562 3.414 3.239 3.106 2.994 2.932 2.918 2.920 2.910 2.930 2.955 2.988 3.022 3.036 3.087 3.133 3.149 3.111 3.072 2.968 2.892 2.903 3.035 3.307 3.691 4.122 4.612 4.989 5.214 5.337 5.418 5.356 5.240 5.024 4.733 4.426 4.131 3.874 3.679 3.546 3.470 3.435 3.410 3.435 3.479 3.569 3.708 3.751 1.500 1.549 1.599 1.649 1.690 1.718 1.734 1.742 1.748 1.742 1.733 1.721 1.710 1.700 1.692 1.689 1.694 1.705 1.715 1.718 1.722 1.730 1.738 1.746 1.753 1.757 1.758 1.757 1.754 1.758 1.768 1.783 1.801 1.823 1.845 1.864 1.873 1.876 1.875 1.873 1.868 1.863 1.860 1.861 1.860 1.861 1.872 1.894 1.915 1.940 1.978 2.037 2.114 2.205 2.303 2.395 2.457 2.495 2.523 2.555 2.572 2.582 2.595 2.607 2.622 2.659 2.694 2.742 2.824 2.959 3.120 3.325 3.512 3.603 3.561 3.412 3.237 3.105 2.993 2.931 2.917 2.920 2.910 2.930 2.955 2.988 3.022 3.036 3.088 3.134 3.149 3.110 3.071 2.966 2.891 2.902 3.034 3.307 3.692 4.124 4.615 4.989 5.214 5.337 5.416 5.356 5.238 5.027 4.741 4.435 4.129 3.864 3.664 3.529 3.461 3.437 3.422 3.459 3.518 3.622 3.732 3.727 1.500 1.549 1.599 1.650 1.691 1.719 1.734 1.743 1.748 1.742 1.733 1.721 1.710 1.700 1.692 1.689 1.695 1.705 1.714 1.716 1.720 1.728 1.736 1.744 1.752 1.758 1.759 1.758 1.756 1.760 1.771 1.786 1.803 1.825 1.846 1.864 1.872 1.875 1.874 1.871 1.867 1.863 1.861 1.863 1.861 1.862 1.873 1.898 1.916 1.940 1.977 2.035 2.113 2.204 2.303 2.395 2.458 2.495 2.526 2.559 2.570 2.581 2.594 2.606 2.621 2.659 2.694 2.742 2.824 2.951 3.116 3.323 3.512 3.602 3.560 3.411 3.236 3.104 2.992 2.929 2.914 2.912 2.910 2.930 2.955 2.988 3.022 3.036 3.088 3.134 3.149 3.109 3.069 2.964 2.888 2.900 3.032 3.305 3.691 4.124 4.614 4.989 5.214 5.315 5.404 5.347 5.233 5.030 4.758 4.438 4.121 3.848 3.644 3.514 3.455 3.440 3.442 3.491 3.559 3.662 3.724 3.683 1.500 1.549 1.599 1.650 1.691 1.719 1.735 1.743 1.748 1.742 1.733 1.722 1.710 1.700 1.692 1.689 1.695 1.705 1.713 1.715 1.717 1.725 1.733 1.743 1.751 1.757 1.759 1.758 1.757 1.762 1.774 1.788 1.805 1.828 1.848 1.864 1.871 1.873 1.872 1.870 1.867 1.864 1.863 1.864 1.863 1.864 1.874 1.898 1.915 1.939 1.975 2.034 2.112 2.204 2.304 2.396 2.458 2.495 2.526 2.558 2.568 2.579 2.591 2.604 2.620 2.659 2.695 2.742 2.824 2.948 3.115 3.326 3.513 3.601 3.557 3.407 3.233 3.102 2.992 2.929 2.913 2.909 2.911 2.933 2.955 2.988 3.022 3.036 3.088 3.134 3.148 3.107 3.066 2.960 2.885 2.896 3.029 3.303 3.689 4.123 4.614 4.989 5.214 5.303 5.401 5.344 5.231 5.030 4.755 4.425 4.100 3.825 3.622 3.504 3.460 3.451 3.468 3.525 3.597 3.685 3.693 3.634 1.500 1.549 1.599 1.650 1.691 1.719 1.735 1.743 1.748 1.742 1.733 1.722 1.710 1.700 1.692 1.689 1.694 1.704 1.711 1.713 1.715 1.722 1.730 1.740 1.750 1.756 1.758 1.757 1.758 1.763 1.775 1.790 1.807 1.830 1.849 1.864 1.870 1.872 1.871 1.870 1.867 1.864 1.863 1.865 1.864 1.865 1.875 1.898 1.915 1.938 1.974 2.033 2.111 2.203 2.304 2.396 2.457 2.494 2.525 2.556 2.566 2.576 2.589 2.602 2.618 2.658 2.695 2.742 2.824 2.947 3.114 3.326 3.510 3.594 3.547 3.397 3.225 3.098 2.990 2.929 2.912 2.907 2.911 2.934 2.955 2.988 3.022 3.036 3.088 3.133 3.146 3.104 3.062 2.956 2.880 2.892 3.025 3.300 3.687 4.122 4.614 4.989 5.214 5.299 5.394 5.338 5.224 5.023 4.731 4.391 4.063 3.790 3.601 3.500 3.466 3.466 3.497 3.558 3.628 3.686 3.650 3.581 1.500 1.549 1.599 1.650 1.691 1.719 1.735 1.743 1.748 1.742 1.733 1.722 1.710 1.700 1.693 1.689 1.694 1.703 1.709 1.710 1.712 1.719 1.727 1.737 1.748 1.755 1.757 1.756 1.757 1.764 1.777 1.792 1.809 1.832 1.851 1.865 1.869 1.871 1.871 1.870 1.867 1.864 1.864 1.865 1.863 1.866 1.876 1.899 1.915 1.938 1.974 2.033 2.111 2.203 2.304 2.395 2.456 2.494 2.525 2.554 2.563 2.573 2.586 2.600 2.617 2.657 2.694 2.742 2.824 2.946 3.114 3.324 3.501 3.579 3.529 3.381 3.212 3.089 2.986 2.928 2.913 2.907 2.911 2.935 2.955 2.988 3.022 3.036 3.088 3.133 3.145 3.101 3.058 2.951 2.876 2.888 3.021 3.297 3.685 4.122 4.614 4.989 5.214 5.298 5.390 5.332 5.222 4.999 4.688 4.337 4.010 3.751 3.581 3.502 3.480 3.489 3.528 3.585 3.648 3.668 3.603 3.530 1.500 1.549 1.599 1.650 1.691 1.719 1.735 1.743 1.748 1.742 1.733 1.722 1.710 1.700 1.693 1.688 1.693 1.702 1.707 1.707 1.709 1.716 1.724 1.735 1.746 1.753 1.755 1.755 1.756 1.764 1.777 1.793 1.810 1.834 1.853 1.866 1.870 1.872 1.872 1.872 1.868 1.865 1.864 1.865 1.862 1.866 1.877 1.899 1.915 1.938 1.974 2.033 2.111 2.203 2.304 2.395 2.455 2.494 2.524 2.553 2.561 2.571 2.583 2.598 2.615 2.656 2.694 2.742 2.824 2.946 3.113 3.317 3.487 3.557 3.504 3.358 3.195 3.078 2.980 2.926 2.912 2.906 2.910 2.935 2.955 2.988 3.022 3.036 3.088 3.132 3.143 3.097 3.052 2.947 2.871 2.883 3.017 3.294 3.683 4.121 4.614 4.989 5.214 5.292 5.383 5.320 5.196 4.953 4.624 4.269 3.950 3.713 3.565 3.502 3.496 3.512 3.556 3.605 3.652 3.636 3.558 3.485 1.500 1.549 1.599 1.650 1.691 1.719 1.735 1.743 1.748 1.742 1.733 1.722 1.710 1.700 1.693 1.688 1.692 1.701 1.706 1.705 1.706 1.714 1.722 1.733 1.744 1.751 1.754 1.753 1.755 1.764 1.778 1.794 1.810 1.834 1.853 1.867 1.871 1.873 1.874 1.874 1.871 1.868 1.865 1.865 1.862 1.866 1.880 1.900 1.915 1.938 1.975 2.034 2.111 2.203 2.304 2.395 2.456 2.496 2.528 2.551 2.559 2.569 2.581 2.596 2.614 2.655 2.693 2.742 2.824 2.946 3.110 3.309 3.469 3.532 3.476 3.332 3.175 3.064 2.973 2.925 2.912 2.908 2.911 2.935 2.955 2.988 3.021 3.045 3.093 3.134 3.142 3.095 3.048 2.943 2.868 2.880 3.015 3.294 3.689 4.139 4.614 4.989 5.214 5.288 5.378 5.311 5.157 4.890 4.548 4.192 3.892 3.681 3.559 3.512 3.518 3.538 3.580 3.617 3.640 3.597 3.517 3.449 1.500 1.549 1.599 1.650 1.691 1.719 1.735 1.743 1.748 1.742 1.733 1.722 1.710 1.700 1.693 1.688 1.691 1.701 1.705 1.704 1.705 1.712 1.720 1.731 1.743 1.750 1.753 1.752 1.754 1.765 1.778 1.794 1.811 1.835 1.854 1.867 1.872 1.875 1.877 1.877 1.873 1.870 1.867 1.866 1.862 1.867 1.882 1.901 1.915 1.938 1.975 2.035 2.113 2.205 2.306 2.396 2.457 2.498 2.531 2.550 2.558 2.567 2.580 2.594 2.613 2.655 2.693 2.742 2.824 2.946 3.107 3.299 3.450 3.506 3.447 3.306 3.154 3.051 2.966 2.923 2.914 2.910 2.911 2.934 2.954 2.986 3.019 3.048 3.093 3.133 3.142 3.095 3.048 2.944 2.868 2.879 3.013 3.292 3.691 4.148 4.614 4.989 5.214 5.287 5.376 5.292 5.112 4.822 4.471 4.124 3.845 3.660 3.557 3.526 3.542 3.562 3.596 3.619 3.617 3.557 3.481 3.422 1.500 1.549 1.599 1.650 1.691 1.719 1.735 1.743 1.748 1.742 1.733 1.721 1.710 1.700 1.693 1.689 1.692 1.700 1.704 1.703 1.704 1.711 1.720 1.730 1.742 1.750 1.755 1.752 1.754 1.765 1.778 1.794 1.811 1.835 1.854 1.868 1.874 1.878 1.881 1.879 1.876 1.872 1.869 1.867 1.862 1.867 1.883 1.901 1.916 1.939 1.978 2.038 2.117 2.210 2.310 2.398 2.458 2.499 2.532 2.550 2.557 2.566 2.579 2.593 2.612 2.654 2.693 2.741 2.824 2.946 3.105 3.290 3.433 3.482 3.421 3.283 3.137 3.040 2.962 2.923 2.916 2.912 2.912 2.933 2.951 2.983 3.015 3.047 3.090 3.132 3.145 3.102 3.056 2.952 2.874 2.884 3.016 3.292 3.690 4.152 4.613 4.989 5.214 5.287 5.380 5.276 5.067 4.758 4.399 4.068 3.814 3.647 3.562 3.547 3.569 3.585 3.604 3.611 3.586 3.520 3.452 3.403 1.500 1.549 1.599 1.649 1.690 1.718 1.734 1.742 1.748 1.742 1.733 1.721 1.710 1.700 1.693 1.689 1.692 1.701 1.704 1.702 1.704 1.711 1.720 1.731 1.742 1.750 1.755 1.753 1.755 1.765 1.777 1.793 1.811 1.836 1.855 1.870 1.877 1.881 1.884 1.882 1.878 1.874 1.870 1.867 1.862 1.867 1.883 1.902 1.918 1.942 1.983 2.045 2.125 2.218 2.317 2.402 2.460 2.499 2.532 2.550 2.557 2.566 2.578 2.593 2.611 2.654 2.692 2.741 2.824 2.946 3.103 3.284 3.420 3.464 3.401 3.265 3.124 3.032 2.959 2.925 2.919 2.914 2.911 2.930 2.948 2.978 3.010 3.042 3.085 3.133 3.152 3.115 3.074 2.969 2.889 2.895 3.023 3.296 3.691 4.152 4.612 4.989 5.214 5.286 5.377 5.255 5.026 4.701 4.348 4.035 3.803 3.650 3.579 3.572 3.593 3.600 3.605 3.593 3.550 3.486 3.428 3.390 1.500 1.549 1.599 1.648 1.689 1.717 1.733 1.741 1.747 1.742 1.733 1.721 1.710 1.700 1.693 1.688 1.692 1.701 1.705 1.703 1.704 1.712 1.721 1.731 1.743 1.750 1.755 1.753 1.755 1.764 1.777 1.792 1.811 1.836 1.856 1.872 1.879 1.883 1.886 1.884 1.880 1.875 1.870 1.867 1.862 1.867 1.884 1.904 1.922 1.949 1.992 2.056 2.137 2.229 2.328 2.409 2.464 2.500 2.532 2.550 2.556 2.565 2.578 2.592 2.611 2.654 2.692 2.741 2.824 2.946 3.103 3.281 3.413 3.452 3.388 3.254 3.116 3.029 2.959 2.927 2.924 2.916 2.910 2.927 2.943 2.972 3.004 3.036 3.080 3.135 3.165 3.137 3.101 2.995 2.912 2.914 3.037 3.304 3.693 4.151 4.608 4.989 5.214 5.298 5.383 5.242 4.997 4.663 4.320 4.024 3.805 3.666 3.605 3.600 3.618 3.614 3.598 3.568 3.515 3.456 3.410 3.384 1.500 1.549 1.599 1.647 1.687 1.715 1.731 1.740 1.746 1.741 1.733 1.721 1.710 1.700 1.693 1.688 1.693 1.702 1.706 1.705 1.706 1.714 1.723 1.733 1.744 1.751 1.755 1.753 1.755 1.764 1.776 1.792 1.811 1.837 1.857 1.873 1.881 1.885 1.889 1.886 1.881 1.875 1.870 1.866 1.861 1.867 1.885 1.906 1.927 1.958 2.004 2.070 2.152 2.244 2.341 2.419 2.468 2.502 2.532 2.549 2.556 2.565 2.577 2.592 2.611 2.654 2.692 2.740 2.824 2.944 3.103 3.280 3.409 3.446 3.382 3.249 3.113 3.028 2.961 2.929 2.927 2.915 2.908 2.923 2.938 2.966 2.998 3.030 3.078 3.141 3.181 3.163 3.135 3.028 2.941 2.937 3.054 3.315 3.697 4.151 4.608 4.989 5.214 5.300 5.382 5.232 4.978 4.651 4.321 4.042 3.829 3.696 3.636 3.626 3.634 3.614 3.581 3.539 3.483 3.431 3.398 3.383 1.500 1.549 1.599 1.645 1.684 1.712 1.729 1.738 1.745 1.741 1.733 1.721 1.710 1.700 1.693 1.688 1.693 1.703 1.708 1.707 1.710 1.718 1.726 1.736 1.746 1.752 1.756 1.753 1.755 1.764 1.776 1.792 1.811 1.837 1.859 1.874 1.883 1.887 1.890 1.887 1.881 1.874 1.868 1.864 1.859 1.867 1.886 1.909 1.934 1.968 2.017 2.086 2.169 2.261 2.355 2.428 2.473 2.503 2.531 2.548 2.555 2.564 2.577 2.592 2.611 2.654 2.692 2.740 2.823 2.940 3.102 3.281 3.409 3.445 3.380 3.248 3.114 3.030 2.963 2.931 2.927 2.910 2.906 2.921 2.934 2.962 2.993 3.026 3.078 3.151 3.201 3.193 3.171 3.063 2.972 2.962 3.073 3.327 3.702 4.152 4.611 4.995 5.214 5.291 5.376 5.222 4.971 4.659 4.345 4.073 3.865 3.733 3.667 3.647 3.639 3.602 3.557 3.509 3.456 3.413 3.390 3.386 1.500 1.549 1.599 1.643 1.682 1.710 1.726 1.736 1.743 1.740 1.732 1.721 1.710 1.700 1.693 1.689 1.694 1.705 1.711 1.711 1.714 1.723 1.730 1.739 1.748 1.754 1.756 1.753 1.755 1.763 1.775 1.791 1.810 1.838 1.860 1.876 1.884 1.889 1.891 1.887 1.880 1.872 1.866 1.863 1.858 1.867 1.887 1.913 1.940 1.977 2.030 2.101 2.185 2.276 2.368 2.437 2.477 2.504 2.530 2.547 2.554 2.564 2.577 2.592 2.611 2.654 2.692 2.739 2.823 2.933 3.097 3.280 3.408 3.444 3.380 3.248 3.114 3.031 2.963 2.929 2.923 2.902 2.906 2.921 2.932 2.960 2.991 3.025 3.079 3.161 3.220 3.220 3.205 3.097 3.002 2.987 3.091 3.338 3.707 4.152 4.611 4.998 5.214 5.269 5.362 5.214 4.981 4.687 4.389 4.118 3.909 3.770 3.692 3.656 3.628 3.575 3.528 3.481 3.435 3.401 3.389 3.395 1.500 1.549 1.599 1.641 1.680 1.707 1.724 1.734 1.742 1.740 1.732 1.721 1.710 1.700 1.693 1.689 1.695 1.707 1.714 1.715 1.719 1.728 1.735 1.743 1.751 1.755 1.757 1.753 1.754 1.762 1.774 1.791 1.810 1.839 1.861 1.877 1.885 1.889 1.891 1.886 1.878 1.870 1.864 1.860 1.857 1.867 1.888 1.915 1.945 1.985 2.040 2.114 2.198 2.289 2.378 2.443 2.480 2.504 2.529 2.546 2.553 2.563 2.576 2.592 2.611 2.654 2.692 2.739 2.823 2.932 3.097 3.282 3.409 3.444 3.379 3.248 3.114 3.031 2.963 2.929 2.923 2.902 2.907 2.924 2.933 2.961 2.993 3.026 3.082 3.170 3.236 3.244 3.234 3.127 3.029 3.009 3.107 3.348 3.710 4.152 4.611 4.999 5.214 5.268 5.357 5.221 5.005 4.725 4.432 4.163 3.948 3.800 3.708 3.657 3.616 3.552 3.501 3.457 3.419 3.397 3.396 3.419 1.500 1.549 1.599 1.639 1.678 1.705 1.722 1.733 1.741 1.739 1.732 1.721 1.711 1.701 1.692 1.689 1.697 1.709 1.717 1.719 1.724 1.733 1.739 1.746 1.753 1.756 1.756 1.753 1.754 1.762 1.774 1.790 1.810 1.840 1.861 1.878 1.885 1.890 1.890 1.885 1.876 1.867 1.861 1.857 1.855 1.867 1.889 1.917 1.948 1.990 2.047 2.122 2.208 2.298 2.384 2.446 2.481 2.503 2.528 2.545 2.552 2.562 2.576 2.592 2.611 2.654 2.692 2.739 2.823 2.932 3.096 3.281 3.408 3.443 3.378 3.247 3.114 3.031 2.963 2.929 2.922 2.902 2.908 2.926 2.936 2.965 2.997 3.031 3.086 3.177 3.247 3.260 3.238 3.142 3.047 3.025 3.119 3.355 3.713 4.155 4.612 4.998 5.206 5.245 5.308 5.231 5.034 4.772 4.479 4.205 3.981 3.818 3.713 3.646 3.597 3.525 3.476 3.439 3.411 3.401 3.413 3.463 1.500 1.549 1.599 1.638 1.676 1.704 1.721 1.731 1.740 1.739 1.732 1.721 1.711 1.701 1.692 1.690 1.698 1.711 1.720 1.723 1.727 1.737 1.743 1.749 1.755 1.757 1.756 1.753 1.753 1.761 1.773 1.790 1.810 1.840 1.862 1.878 1.885 1.890 1.890 1.883 1.873 1.864 1.858 1.854 1.853 1.866 1.890 1.917 1.949 1.992 2.049 2.126 2.212 2.302 2.388 2.447 2.480 2.502 2.528 2.544 2.552 2.562 2.576 2.592 2.611 2.654 2.692 2.739 2.823 2.932 3.095 3.280 3.407 3.442 3.377 3.247 3.114 3.031 2.963 2.928 2.921 2.902 2.909 2.929 2.941 2.967 3.001 3.038 3.091 3.182 3.254 3.270 3.242 3.155 3.061 3.036 3.124 3.352 3.710 4.153 4.607 4.996 5.205 5.232 5.286 5.246 5.070 4.810 4.516 4.236 4.001 3.826 3.707 3.630 3.572 3.497 3.455 3.427 3.412 3.417 3.446 3.533 1.500 1.549 1.599 1.637 1.675 1.703 1.720 1.730 1.739 1.737 1.731 1.721 1.711 1.701 1.692 1.691 1.699 1.712 1.722 1.725 1.730 1.739 1.745 1.751 1.756 1.757 1.756 1.753 1.753 1.761 1.773 1.790 1.811 1.840 1.862 1.878 1.885 1.889 1.888 1.881 1.871 1.861 1.855 1.851 1.852 1.868 1.892 1.917 1.947 1.990 2.048 2.125 2.212 2.302 2.389 2.449 2.484 2.508 2.531 2.544 2.552 2.562 2.576 2.592 2.611 2.654 2.692 2.739 2.823 2.931 3.094 3.277 3.404 3.440 3.376 3.246 3.114 3.031 2.963 2.928 2.919 2.901 2.909 2.930 2.945 2.971 3.007 3.049 3.098 3.185 3.255 3.272 3.243 3.163 3.070 3.040 3.121 3.340 3.696 4.142 4.587 4.983 5.186 5.215 5.274 5.259 5.087 4.832 4.538 4.252 4.007 3.821 3.691 3.606 3.538 3.470 3.439 3.423 3.423 3.445 3.496 3.628 1.500 1.549 1.599 1.637 1.675 1.702 1.718 1.728 1.737 1.735 1.729 1.720 1.711 1.702 1.694 1.692 1.700 1.713 1.722 1.725 1.730 1.739 1.745 1.751 1.756 1.757 1.757 1.753 1.753 1.762 1.774 1.791 1.811 1.839 1.861 1.878 1.885 1.888 1.887 1.879 1.868 1.858 1.852 1.848 1.849 1.867 1.893 1.916 1.945 1.987 2.045 2.123 2.210 2.302 2.389 2.448 2.486 2.513 2.536 2.543 2.551 2.562 2.576 2.592 2.610 2.654 2.692 2.739 2.823 2.931 3.094 3.274 3.402 3.438 3.375 3.245 3.113 3.030 2.963 2.928 2.919 2.901 2.910 2.931 2.949 2.975 3.012 3.064 3.106 3.187 3.254 3.271 3.243 3.167 3.071 3.036 3.109 3.319 3.670 4.118 4.545 4.951 5.160 5.209 5.272 5.273 5.098 4.840 4.541 4.246 3.996 3.802 3.669 3.579 3.507 3.451 3.434 3.430 3.447 3.488 3.568 3.745 1.500 1.549 1.599 1.637 1.675 1.700 1.716 1.725 1.733 1.732 1.726 1.717 1.710 1.702 1.695 1.693 1.701 1.712 1.721 1.723 1.729 1.737 1.744 1.750 1.755 1.757 1.757 1.752 1.754 1.762 1.775 1.792 1.812 1.838 1.861 1.877 1.884 1.886 1.885 1.877 1.866 1.855 1.850 1.846 1.847 1.866 1.891 1.914 1.942 1.984 2.044 2.123 2.211 2.304 2.391 2.449 2.487 2.515 2.536 2.543 2.551 2.562 2.576 2.592 2.610 2.654 2.692 2.739 2.823 2.930 3.093 3.273 3.401 3.437 3.373 3.243 3.111 3.028 2.961 2.927 2.918 2.901 2.911 2.932 2.952 2.978 3.016 3.066 3.106 3.183 3.248 3.265 3.240 3.165 3.065 3.022 3.085 3.282 3.619 4.056 4.481 4.900 5.128 5.201 5.276 5.269 5.087 4.822 4.518 4.221 3.968 3.776 3.644 3.553 3.484 3.440 3.435 3.448 3.483 3.547 3.662 3.875 1.500 1.549 1.599 1.637 1.674 1.699 1.713 1.722 1.729 1.728 1.723 1.715 1.710 1.702 1.697 1.694 1.701 1.712 1.719 1.721 1.727 1.735 1.742 1.749 1.755 1.757 1.758 1.752 1.754 1.763 1.776 1.793 1.812 1.838 1.860 1.876 1.882 1.884 1.883 1.874 1.862 1.852 1.847 1.843 1.845 1.864 1.889 1.912 1.941 1.985 2.047 2.127 2.216 2.308 2.395 2.451 2.487 2.517 2.536 2.543 2.551 2.562 2.576 2.592 2.610 2.654 2.692 2.740 2.823 2.931 3.092 3.272 3.400 3.436 3.371 3.240 3.107 3.024 2.958 2.924 2.917 2.901 2.911 2.933 2.953 2.980 3.017 3.066 3.102 3.176 3.238 3.255 3.233 3.157 3.052 3.001 3.053 3.235 3.556 3.980 4.404 4.836 5.089 5.189 5.280 5.255 5.059 4.782 4.471 4.174 3.924 3.741 3.614 3.529 3.467 3.438 3.445 3.477 3.533 3.621 3.772 4.003 1.500 1.549 1.599 1.637 1.673 1.696 1.710 1.717 1.724 1.723 1.719 1.712 1.708 1.702 1.697 1.695 1.701 1.712 1.718 1.720 1.725 1.734 1.741 1.748 1.754 1.756 1.757 1.752 1.754 1.763 1.776 1.793 1.811 1.837 1.859 1.874 1.880 1.881 1.880 1.871 1.859 1.850 1.845 1.841 1.843 1.862 1.887 1.911 1.942 1.988 2.052 2.135 2.226 2.318 2.402 2.455 2.489 2.517 2.536 2.544 2.551 2.562 2.576 2.592 2.610 2.654 2.692 2.740 2.823 2.932 3.092 3.272 3.399 3.433 3.367 3.235 3.101 3.019 2.953 2.921 2.915 2.900 2.911 2.933 2.953 2.980 3.017 3.063 3.095 3.166 3.225 3.242 3.223 3.144 3.034 2.975 3.016 3.185 3.490 3.901 4.324 4.769 5.048 5.177 5.267 5.225 5.012 4.722 4.408 4.114 3.874 3.701 3.583 3.508 3.458 3.439 3.464 3.516 3.595 3.710 3.890 4.114 1.500 1.549 1.599 1.637 1.672 1.694 1.707 1.713 1.720 1.719 1.715 1.710 1.707 1.702 1.698 1.695 1.702 1.711 1.718 1.720 1.724 1.733 1.740 1.747 1.753 1.755 1.756 1.751 1.753 1.762 1.776 1.792 1.811 1.836 1.858 1.872 1.877 1.878 1.876 1.867 1.856 1.847 1.842 1.839 1.842 1.861 1.887 1.912 1.946 1.994 2.061 2.146 2.238 2.331 2.411 2.460 2.491 2.518 2.537 2.544 2.552 2.562 2.577 2.593 2.611 2.654 2.693 2.739 2.824 2.932 3.092 3.271 3.398 3.431 3.363 3.229 3.095 3.012 2.947 2.916 2.914 2.899 2.910 2.933 2.953 2.980 3.015 3.059 3.088 3.156 3.212 3.228 3.212 3.131 3.016 2.950 2.981 3.138 3.429 3.828 4.251 4.709 5.010 5.170 5.253 5.188 4.955 4.654 4.337 4.051 3.823 3.659 3.552 3.492 3.458 3.455 3.494 3.567 3.667 3.806 3.999 4.179 1.500 1.549 1.599 1.637 1.671 1.692 1.704 1.709 1.715 1.715 1.712 1.707 1.705 1.701 1.698 1.695 1.702 1.711 1.719 1.721 1.725 1.734 1.741 1.747 1.752 1.754 1.755 1.749 1.752 1.761 1.775 1.793 1.810 1.836 1.856 1.869 1.874 1.875 1.873 1.864 1.852 1.844 1.840 1.838 1.841 1.860 1.887 1.914 1.951 2.002 2.072 2.159 2.252 2.344 2.422 2.466 2.493 2.518 2.537 2.544 2.552 2.563 2.578 2.594 2.612 2.656 2.693 2.739 2.824 2.932 3.092 3.271 3.397 3.428 3.358 3.223 3.088 3.005 2.940 2.910 2.911 2.897 2.910 2.933 2.953 2.980 3.014 3.055 3.081 3.147 3.199 3.215 3.199 3.119 3.001 2.929 2.953 3.100 3.380 3.771 4.195 4.666 4.983 5.155 5.231 5.145 4.892 4.583 4.265 3.990 3.772 3.619 3.526 3.482 3.458 3.475 3.535 3.627 3.743 3.901 4.082 4.174 1.500 1.549 1.599 1.637 1.670 1.690 1.701 1.706 1.712 1.712 1.709 1.706 1.704 1.701 1.698 1.695 1.702 1.712 1.720 1.722 1.727 1.735 1.742 1.748 1.752 1.753 1.753 1.747 1.750 1.760 1.775 1.792 1.810 1.835 1.855 1.867 1.871 1.872 1.869 1.860 1.849 1.842 1.838 1.837 1.840 1.860 1.889 1.917 1.957 2.011 2.084 2.172 2.266 2.357 2.431 2.471 2.494 2.519 2.537 2.545 2.553 2.565 2.580 2.596 2.615 2.657 2.695 2.739 2.824 2.932 3.092 3.271 3.397 3.426 3.354 3.217 3.081 2.999 2.934 2.905 2.908 2.895 2.909 2.933 2.953 2.980 3.014 3.053 3.076 3.141 3.190 3.204 3.188 3.110 2.992 2.916 2.934 3.074 3.347 3.734 4.161 4.643 4.969 5.147 5.208 5.103 4.835 4.517 4.202 3.934 3.725 3.585 3.508 3.475 3.470 3.510 3.589 3.695 3.820 3.981 4.121 4.098 1.500 1.549 1.599 1.637 1.670 1.690 1.700 1.704 1.710 1.710 1.707 1.704 1.704 1.700 1.697 1.695 1.703 1.713 1.722 1.725 1.729 1.737 1.744 1.749 1.753 1.753 1.752 1.746 1.749 1.759 1.774 1.792 1.809 1.834 1.854 1.865 1.869 1.869 1.866 1.857 1.847 1.839 1.837 1.836 1.841 1.862 1.891 1.921 1.962 2.020 2.094 2.184 2.278 2.367 2.438 2.473 2.494 2.518 2.537 2.545 2.555 2.567 2.583 2.599 2.624 2.663 2.697 2.740 2.824 2.932 3.092 3.271 3.396 3.425 3.353 3.218 3.085 2.993 2.930 2.902 2.905 2.894 2.909 2.933 2.953 2.980 3.014 3.052 3.073 3.135 3.183 3.196 3.178 3.105 2.988 2.910 2.925 3.061 3.329 3.714 4.143 4.631 4.966 5.143 5.182 5.070 4.787 4.467 4.154 3.888 3.688 3.560 3.499 3.482 3.498 3.555 3.650 3.763 3.886 4.029 4.100 3.969 1.500 1.549 1.599 1.637 1.670 1.689 1.699 1.703 1.709 1.708 1.706 1.703 1.702 1.699 1.695 1.694 1.703 1.714 1.723 1.727 1.731 1.740 1.746 1.751 1.753 1.753 1.751 1.746 1.748 1.758 1.773 1.792 1.809 1.834 1.853 1.864 1.867 1.867 1.864 1.855 1.845 1.838 1.836 1.835 1.842 1.863 1.893 1.924 1.967 2.026 2.102 2.193 2.286 2.374 2.442 2.473 2.494 2.518 2.537 2.545 2.556 2.569 2.585 2.602 2.630 2.667 2.699 2.742 2.826 2.934 3.095 3.274 3.398 3.424 3.350 3.216 3.086 2.990 2.926 2.899 2.904 2.894 2.909 2.933 2.953 2.979 3.014 3.051 3.072 3.133 3.179 3.192 3.166 3.100 2.986 2.910 2.923 3.056 3.324 3.708 4.138 4.630 4.965 5.134 5.147 5.045 4.750 4.428 4.116 3.853 3.662 3.547 3.498 3.502 3.540 3.611 3.715 3.824 3.933 4.035 4.020 3.811 1.500 1.549 1.599 1.637 1.670 1.689 1.699 1.703 1.708 1.707 1.705 1.702 1.701 1.698 1.693 1.692 1.702 1.714 1.724 1.728 1.733 1.742 1.748 1.752 1.754 1.753 1.751 1.746 1.748 1.758 1.773 1.791 1.809 1.834 1.853 1.864 1.866 1.866 1.863 1.854 1.844 1.837 1.835 1.836 1.843 1.866 1.895 1.927 1.971 2.031 2.107 2.198 2.290 2.378 2.443 2.473 2.493 2.518 2.536 2.545 2.556 2.570 2.587 2.604 2.634 2.669 2.701 2.745 2.831 2.942 3.105 3.285 3.406 3.428 3.350 3.215 3.086 2.988 2.925 2.898 2.903 2.894 2.910 2.934 2.953 2.978 3.013 3.051 3.072 3.132 3.178 3.190 3.149 3.092 2.983 2.909 2.923 3.054 3.323 3.708 4.138 4.628 4.953 5.108 5.100 5.030 4.732 4.404 4.090 3.830 3.648 3.542 3.510 3.536 3.590 3.672 3.776 3.871 3.953 3.995 3.896 3.649 1.500 1.549 1.599 1.637 1.669 1.689 1.699 1.702 1.707 1.706 1.704 1.700 1.699 1.696 1.690 1.691 1.701 1.713 1.724 1.728 1.734 1.743 1.750 1.754 1.756 1.755 1.752 1.747 1.749 1.758 1.773 1.791 1.809 1.834 1.853 1.864 1.866 1.865 1.862 1.853 1.843 1.836 1.835 1.836 1.845 1.869 1.898 1.930 1.973 2.034 2.110 2.200 2.292 2.379 2.443 2.472 2.494 2.520 2.535 2.544 2.556 2.571 2.588 2.606 2.636 2.671 2.704 2.751 2.834 2.952 3.120 3.302 3.421 3.437 3.353 3.215 3.086 2.987 2.923 2.895 2.896 2.894 2.910 2.934 2.953 2.974 3.011 3.051 3.072 3.132 3.178 3.190 3.149 3.092 2.983 2.908 2.921 3.050 3.323 3.708 4.138 4.628 4.945 5.101 5.095 5.027 4.727 4.392 4.076 3.820 3.648 3.552 3.539 3.586 3.646 3.733 3.831 3.897 3.939 3.914 3.751 3.504 1.500 1.549 1.599 1.637 1.669 1.689 1.699 1.702 1.707 1.705 1.703 1.699 1.697 1.694 1.688 1.690 1.699 1.712 1.722 1.728 1.734 1.744 1.751 1.755 1.757 1.757 1.754 1.749 1.750 1.759 1.773 1.791 1.810 1.834 1.853 1.864 1.866 1.866 1.862 1.853 1.843 1.836 1.836 1.837 1.846 1.874 1.902 1.933 1.976 2.035 2.111 2.201 2.293 2.379 2.443 2.473 2.496 2.524 2.533 2.543 2.555 2.571 2.588 2.607 2.637 2.673 2.708 2.760 2.844 2.970 3.144 3.326 3.440 3.449 3.357 3.215 3.087 2.989 2.925 2.895 2.891 2.893 2.909 2.933 2.953 2.974 3.011 3.051 3.072 3.132 3.178 3.190 3.147 3.091 2.983 2.908 2.920 3.049 3.322 3.707 4.138 4.628 4.929 5.092 5.088 5.025 4.724 4.385 4.069 3.821 3.653 3.574 3.582 3.641 3.702 3.788 3.867 3.898 3.892 3.805 3.607 3.387 1.500 1.549 1.599 1.637 1.669 1.689 1.699 1.702 1.706 1.704 1.701 1.698 1.696 1.692 1.687 1.689 1.698 1.710 1.721 1.726 1.733 1.743 1.751 1.757 1.760 1.759 1.757 1.751 1.751 1.759 1.773 1.791 1.809 1.834 1.854 1.865 1.867 1.866 1.862 1.853 1.843 1.836 1.835 1.836 1.847 1.875 1.903 1.935 1.977 2.037 2.113 2.202 2.293 2.379 2.443 2.473 2.496 2.523 2.532 2.542 2.554 2.570 2.588 2.606 2.637 2.675 2.714 2.771 2.861 2.995 3.173 3.354 3.461 3.459 3.359 3.213 3.085 2.990 2.928 2.898 2.890 2.893 2.909 2.934 2.954 2.975 3.008 3.049 3.071 3.132 3.178 3.189 3.146 3.091 2.982 2.907 2.918 3.046 3.317 3.706 4.137 4.628 4.926 5.089 5.090 5.027 4.721 4.382 4.070 3.824 3.669 3.611 3.635 3.704 3.760 3.832 3.882 3.873 3.818 3.682 3.479 3.304 1.500 1.549 1.599 1.637 1.669 1.689 1.699 1.702 1.705 1.704 1.700 1.696 1.695 1.691 1.685 1.687 1.696 1.709 1.719 1.725 1.731 1.743 1.752 1.758 1.762 1.761 1.759 1.753 1.752 1.760 1.774 1.790 1.809 1.835 1.855 1.866 1.868 1.867 1.863 1.853 1.843 1.836 1.834 1.835 1.850 1.877 1.905 1.936 1.979 2.038 2.114 2.203 2.293 2.379 2.442 2.476 2.501 2.523 2.532 2.541 2.553 2.569 2.587 2.605 2.636 2.677 2.720 2.784 2.880 3.021 3.202 3.380 3.478 3.464 3.355 3.205 3.080 2.990 2.930 2.901 2.892 2.894 2.910 2.934 2.954 2.975 3.006 3.048 3.070 3.130 3.177 3.188 3.144 3.090 2.981 2.906 2.917 3.043 3.312 3.703 4.134 4.623 4.925 5.095 5.100 5.030 4.721 4.383 4.080 3.841 3.702 3.664 3.700 3.769 3.813 3.858 3.870 3.823 3.727 3.563 3.377 3.253 1.500 1.549 1.599 1.637 1.669 1.689 1.699 1.702 1.705 1.703 1.700 1.696 1.694 1.690 1.684 1.686 1.695 1.707 1.717 1.722 1.730 1.742 1.752 1.759 1.764 1.764 1.761 1.755 1.754 1.761 1.774 1.790 1.810 1.836 1.857 1.867 1.870 1.869 1.864 1.854 1.843 1.837 1.834 1.835 1.851 1.878 1.905 1.936 1.980 2.040 2.116 2.205 2.295 2.381 2.441 2.477 2.504 2.524 2.532 2.541 2.553 2.568 2.586 2.604 2.635 2.678 2.725 2.795 2.899 3.046 3.227 3.400 3.486 3.459 3.342 3.191 3.069 2.985 2.931 2.905 2.895 2.896 2.911 2.934 2.954 2.974 3.004 3.046 3.069 3.127 3.173 3.184 3.139 3.085 2.977 2.902 2.914 3.041 3.309 3.701 4.131 4.620 4.931 5.103 5.106 5.032 4.724 4.392 4.092 3.871 3.751 3.726 3.766 3.829 3.853 3.859 3.833 3.752 3.627 3.457 3.303 3.224 1.500 1.549 1.599 1.637 1.669 1.689 1.699 1.702 1.705 1.703 1.700 1.696 1.694 1.690 1.683 1.685 1.694 1.706 1.715 1.720 1.728 1.741 1.751 1.759 1.765 1.767 1.763 1.756 1.755 1.761 1.774 1.791 1.811 1.837 1.857 1.868 1.871 1.870 1.864 1.854 1.844 1.839 1.834 1.835 1.852 1.878 1.905 1.937 1.982 2.044 2.121 2.210 2.300 2.385 2.442 2.478 2.506 2.525 2.532 2.541 2.552 2.567 2.585 2.603 2.634 2.678 2.728 2.804 2.914 3.065 3.245 3.410 3.483 3.445 3.321 3.170 3.054 2.978 2.930 2.908 2.899 2.898 2.912 2.933 2.952 2.972 3.001 3.043 3.065 3.121 3.166 3.177 3.131 3.077 2.970 2.896 2.910 3.038 3.306 3.698 4.129 4.618 4.936 5.109 5.108 5.035 4.733 4.413 4.122 3.920 3.815 3.795 3.830 3.875 3.867 3.831 3.772 3.667 3.528 3.369 3.253 3.205 1.500 1.549 1.599 1.637 1.669 1.689 1.699 1.702 1.705 1.704 1.701 1.696 1.695 1.690 1.684 1.685 1.694 1.705 1.714 1.719 1.727 1.740 1.750 1.759 1.766 1.768 1.764 1.757 1.756 1.762 1.775 1.792 1.812 1.838 1.858 1.868 1.871 1.870 1.864 1.855 1.845 1.839 1.835 1.836 1.852 1.878 1.905 1.939 1.985 2.049 2.128 2.218 2.307 2.390 2.445 2.479 2.507 2.526 2.533 2.541 2.552 2.567 2.584 2.602 2.633 2.677 2.730 2.809 2.924 3.077 3.254 3.408 3.469 3.421 3.293 3.145 3.038 2.969 2.927 2.910 2.902 2.900 2.911 2.931 2.951 2.969 3.001 3.041 3.059 3.113 3.156 3.165 3.119 3.065 2.959 2.888 2.904 3.035 3.306 3.695 4.127 4.605 4.929 5.106 5.110 5.043 4.753 4.439 4.167 3.985 3.889 3.864 3.881 3.892 3.855 3.792 3.703 3.579 3.438 3.301 3.220 3.183 1.500 1.549 1.599 1.637 1.669 1.689 1.699 1.702 1.706 1.704 1.701 1.697 1.696 1.691 1.685 1.686 1.693 1.704 1.713 1.719 1.727 1.738 1.750 1.759 1.766 1.768 1.764 1.758 1.758 1.764 1.778 1.795 1.814 1.839 1.858 1.868 1.870 1.869 1.864 1.855 1.846 1.840 1.836 1.836 1.851 1.877 1.905 1.941 1.990 2.056 2.137 2.227 2.317 2.397 2.449 2.481 2.508 2.527 2.534 2.542 2.552 2.567 2.584 2.601 2.634 2.677 2.730 2.811 2.929 3.083 3.257 3.400 3.451 3.394 3.264 3.121 3.021 2.959 2.923 2.911 2.904 2.901 2.911 2.928 2.948 2.966 2.999 3.035 3.051 3.103 3.144 3.152 3.105 3.051 2.947 2.877 2.896 3.029 3.304 3.691 4.125 4.601 4.930 5.108 5.115 5.057 4.771 4.477 4.229 4.061 3.966 3.931 3.923 3.893 3.822 3.735 3.623 3.494 3.361 3.252 3.199 3.167 1.500 1.549 1.599 1.637 1.669 1.689 1.699 1.702 1.707 1.706 1.703 1.699 1.696 1.691 1.686 1.687 1.694 1.704 1.713 1.718 1.727 1.738 1.750 1.759 1.766 1.768 1.764 1.758 1.759 1.766 1.780 1.798 1.817 1.841 1.859 1.867 1.869 1.868 1.864 1.855 1.846 1.841 1.837 1.837 1.850 1.876 1.905 1.944 1.996 2.065 2.148 2.239 2.328 2.406 2.454 2.482 2.508 2.527 2.534 2.542 2.553 2.567 2.583 2.601 2.637 2.677 2.730 2.811 2.931 3.086 3.255 3.390 3.432 3.369 3.238 3.100 3.009 2.948 2.919 2.910 2.905 2.901 2.910 2.927 2.946 2.962 2.995 3.029 3.043 3.092 3.132 3.139 3.092 3.038 2.935 2.867 2.888 3.023 3.301 3.688 4.123 4.599 4.931 5.110 5.120 5.061 4.793 4.526 4.303 4.141 4.040 3.985 3.943 3.868 3.773 3.665 3.539 3.417 3.300 3.220 3.188 3.164 1.500 1.549 1.599 1.637 1.670 1.689 1.699 1.703 1.707 1.707 1.704 1.701 1.697 1.692 1.687 1.688 1.695 1.704 1.713 1.719 1.727 1.738 1.750 1.759 1.765 1.767 1.763 1.758 1.760 1.768 1.782 1.801 1.821 1.844 1.860 1.867 1.867 1.867 1.862 1.854 1.847 1.842 1.837 1.838 1.851 1.875 1.906 1.946 2.001 2.073 2.160 2.252 2.340 2.415 2.459 2.484 2.509 2.527 2.534 2.542 2.553 2.567 2.583 2.601 2.644 2.681 2.731 2.812 2.931 3.087 3.254 3.383 3.418 3.351 3.220 3.086 3.003 2.938 2.913 2.908 2.904 2.901 2.910 2.926 2.943 2.958 2.990 3.023 3.036 3.085 3.124 3.130 3.083 3.028 2.926 2.859 2.881 3.018 3.297 3.685 4.122 4.599 4.931 5.108 5.122 5.069 4.822 4.583 4.372 4.210 4.097 4.014 3.935 3.834 3.714 3.592 3.463 3.352 3.256 3.205 3.187 3.178 1.500 1.549 1.599 1.638 1.670 1.689 1.699 1.703 1.708 1.708 1.706 1.703 1.699 1.692 1.689 1.690 1.696 1.705 1.714 1.719 1.728 1.739 1.750 1.758 1.764 1.766 1.762 1.757 1.761 1.770 1.785 1.804 1.826 1.847 1.861 1.867 1.866 1.865 1.861 1.853 1.847 1.842 1.837 1.838 1.851 1.875 1.906 1.949 2.006 2.081 2.170 2.263 2.352 2.423 2.464 2.486 2.510 2.528 2.535 2.543 2.553 2.567 2.583 2.601 2.644 2.681 2.731 2.813 2.932 3.088 3.254 3.382 3.411 3.339 3.205 3.072 2.991 2.929 2.907 2.904 2.899 2.900 2.910 2.926 2.942 2.955 2.986 3.019 3.032 3.081 3.121 3.127 3.079 3.024 2.921 2.855 2.877 3.014 3.293 3.683 4.121 4.600 4.930 5.103 5.107 5.070 4.848 4.626 4.422 4.254 4.123 4.008 3.894 3.774 3.639 3.514 3.396 3.302 3.230 3.204 3.200 3.213 1.500 1.549 1.599 1.639 1.670 1.690 1.699 1.703 1.708 1.708 1.707 1.705 1.701 1.694 1.691 1.691 1.698 1.706 1.715 1.720 1.729 1.741 1.751 1.759 1.764 1.764 1.761 1.756 1.761 1.772 1.788 1.808 1.830 1.850 1.863 1.867 1.866 1.864 1.859 1.852 1.846 1.842 1.837 1.839 1.852 1.876 1.908 1.951 2.011 2.087 2.178 2.272 2.360 2.431 2.467 2.486 2.510 2.528 2.535 2.543 2.553 2.567 2.583 2.601 2.644 2.682 2.730 2.813 2.929 3.087 3.256 3.385 3.411 3.334 3.197 3.063 2.981 2.921 2.900 2.898 2.892 2.898 2.910 2.927 2.940 2.954 2.984 3.017 3.031 3.082 3.124 3.130 3.081 3.025 2.922 2.854 2.875 3.012 3.291 3.682 4.120 4.600 4.926 5.081 5.087 5.070 4.870 4.654 4.447 4.266 4.113 3.966 3.838 3.702 3.557 3.436 3.341 3.267 3.220 3.213 3.229 3.266 1.500 1.549 1.599 1.641 1.671 1.690 1.698 1.702 1.708 1.708 1.708 1.706 1.703 1.695 1.692 1.693 1.699 1.707 1.715 1.721 1.731 1.743 1.753 1.760 1.765 1.763 1.759 1.755 1.761 1.773 1.790 1.811 1.834 1.853 1.864 1.868 1.866 1.862 1.858 1.850 1.845 1.841 1.837 1.839 1.853 1.877 1.910 1.954 2.015 2.092 2.184 2.278 2.366 2.435 2.469 2.487 2.510 2.528 2.535 2.543 2.553 2.568 2.584 2.602 2.645 2.682 2.730 2.813 2.922 3.084 3.255 3.386 3.411 3.332 3.192 3.056 2.974 2.913 2.892 2.890 2.881 2.896 2.909 2.927 2.940 2.953 2.982 3.016 3.033 3.086 3.131 3.138 3.087 3.032 2.926 2.856 2.876 3.011 3.289 3.681 4.120 4.600 4.911 5.060 5.071 5.071 4.877 4.657 4.441 4.241 4.063 3.901 3.762 3.617 3.474 3.370 3.297 3.245 3.224 3.233 3.273 3.332 1.500 1.549 1.599 1.643 1.671 1.690 1.697 1.701 1.708 1.709 1.708 1.707 1.704 1.697 1.692 1.694 1.700 1.707 1.715 1.722 1.732 1.745 1.754 1.761 1.765 1.762 1.757 1.755 1.760 1.774 1.792 1.812 1.836 1.855 1.865 1.867 1.866 1.861 1.856 1.848 1.843 1.840 1.836 1.840 1.856 1.881 1.913 1.957 2.018 2.096 2.187 2.282 2.369 2.436 2.469 2.488 2.511 2.528 2.535 2.544 2.554 2.569 2.585 2.603 2.646 2.683 2.731 2.813 2.922 3.084 3.256 3.387 3.411 3.330 3.189 3.051 2.968 2.907 2.886 2.885 2.876 2.893 2.908 2.927 2.939 2.952 2.979 3.016 3.035 3.091 3.139 3.147 3.095 3.041 2.932 2.860 2.877 3.010 3.286 3.681 4.120 4.600 4.902 5.049 5.064 5.063 4.862 4.632 4.399 4.176 3.979 3.818 3.677 3.535 3.402 3.318 3.267 3.238 3.237 3.261 3.326 3.398 1.500 1.549 1.599 1.645 1.672 1.690 1.697 1.702 1.708 1.709 1.709 1.707 1.705 1.698 1.693 1.695 1.701 1.708 1.715 1.722 1.733 1.745 1.755 1.762 1.765 1.761 1.756 1.755 1.760 1.775 1.793 1.814 1.838 1.856 1.864 1.866 1.864 1.860 1.854 1.846 1.840 1.837 1.835 1.840 1.860 1.885 1.917 1.961 2.021 2.099 2.189 2.283 2.369 2.435 2.468 2.489 2.514 2.528 2.536 2.545 2.556 2.571 2.587 2.606 2.648 2.685 2.731 2.813 2.922 3.084 3.256 3.389 3.412 3.330 3.187 3.048 2.964 2.902 2.881 2.882 2.873 2.892 2.908 2.926 2.938 2.951 2.975 3.014 3.036 3.094 3.145 3.156 3.105 3.050 2.939 2.863 2.877 3.009 3.282 3.681 4.120 4.587 4.894 5.045 5.062 5.046 4.828 4.579 4.326 4.082 3.880 3.722 3.583 3.451 3.340 3.279 3.247 3.240 3.256 3.294 3.381 3.447 1.500 1.549 1.599 1.647 1.673 1.691 1.698 1.702 1.709 1.709 1.709 1.707 1.705 1.698 1.693 1.695 1.701 1.708 1.714 1.722 1.733 1.746 1.756 1.762 1.765 1.761 1.756 1.755 1.761 1.775 1.794 1.816 1.838 1.856 1.863 1.865 1.863 1.858 1.851 1.843 1.837 1.834 1.833 1.841 1.865 1.890 1.921 1.964 2.024 2.101 2.190 2.283 2.369 2.433 2.466 2.491 2.519 2.528 2.536 2.546 2.558 2.574 2.590 2.608 2.650 2.687 2.731 2.813 2.922 3.083 3.257 3.389 3.413 3.331 3.186 3.046 2.961 2.899 2.878 2.879 2.871 2.890 2.907 2.925 2.937 2.951 2.975 3.014 3.036 3.095 3.150 3.162 3.112 3.056 2.943 2.866 2.878 3.009 3.282 3.680 4.119 4.580 4.902 5.052 5.057 5.019 4.777 4.505 4.230 3.980 3.784 3.629 3.499 3.378 3.293 3.254 3.238 3.249 3.278 3.329 3.427 3.468 1.500 1.549 1.600 1.649 1.674 1.693 1.700 1.704 1.710 1.710 1.709 1.706 1.703 1.698 1.693 1.695 1.701 1.708 1.714 1.722 1.733 1.746 1.756 1.763 1.766 1.762 1.756 1.756 1.763 1.777 1.796 1.818 1.839 1.857 1.863 1.864 1.861 1.857 1.848 1.840 1.834 1.831 1.832 1.842 1.867 1.892 1.923 1.967 2.026 2.103 2.191 2.284 2.369 2.433 2.466 2.490 2.518 2.528 2.537 2.547 2.560 2.576 2.593 2.611 2.653 2.688 2.732 2.814 2.922 3.083 3.257 3.389 3.414 3.331 3.186 3.045 2.960 2.897 2.876 2.878 2.870 2.890 2.907 2.924 2.936 2.951 2.975 3.013 3.035 3.093 3.151 3.164 3.114 3.058 2.945 2.867 2.879 3.010 3.283 3.680 4.119 4.577 4.913 5.056 5.044 4.980 4.711 4.414 4.119 3.873 3.686 3.541 3.426 3.322 3.261 3.244 3.241 3.263 3.300 3.361 3.454 3.455 1.500 1.549 1.601 1.651 1.677 1.695 1.702 1.706 1.711 1.710 1.709 1.705 1.701 1.696 1.692 1.695 1.701 1.709 1.715 1.722 1.734 1.746 1.756 1.763 1.764 1.761 1.756 1.757 1.765 1.779 1.799 1.821 1.841 1.857 1.863 1.863 1.860 1.854 1.845 1.837 1.831 1.829 1.830 1.842 1.868 1.894 1.925 1.968 2.026 2.103 2.191 2.284 2.369 2.433 2.465 2.489 2.517 2.527 2.537 2.548 2.562 2.579 2.596 2.614 2.656 2.690 2.733 2.814 2.922 3.083 3.256 3.387 3.413 3.330 3.186 3.045 2.959 2.897 2.875 2.877 2.870 2.889 2.906 2.923 2.936 2.950 2.976 3.011 3.032 3.090 3.149 3.161 3.112 3.058 2.946 2.869 2.881 3.012 3.287 3.682 4.119 4.571 4.913 5.050 5.021 4.929 4.632 4.314 4.016 3.778 3.598 3.464 3.361 3.275 3.239 3.242 3.249 3.277 3.319 3.386 3.458 3.427 1.500 1.549 1.603 1.654 1.680 1.698 1.704 1.708 1.713 1.712 1.709 1.705 1.699 1.695 1.691 1.695 1.702 1.709 1.716 1.724 1.735 1.747 1.757 1.763 1.763 1.760 1.755 1.758 1.768 1.782 1.802 1.825 1.843 1.857 1.862 1.862 1.858 1.852 1.843 1.835 1.830 1.827 1.829 1.841 1.868 1.895 1.925 1.967 2.025 2.102 2.191 2.284 2.369 2.432 2.464 2.488 2.516 2.526 2.536 2.548 2.563 2.580 2.598 2.616 2.658 2.690 2.733 2.814 2.921 3.082 3.255 3.383 3.409 3.328 3.185 3.044 2.959 2.897 2.875 2.877 2.870 2.888 2.905 2.920 2.935 2.949 2.978 3.011 3.029 3.086 3.144 3.157 3.109 3.057 2.948 2.872 2.885 3.018 3.294 3.684 4.121 4.560 4.904 5.035 4.989 4.868 4.544 4.208 3.920 3.689 3.518 3.396 3.308 3.240 3.234 3.251 3.263 3.292 3.337 3.404 3.445 3.403 1.500 1.549 1.605 1.656 1.682 1.701 1.706 1.710 1.715 1.713 1.709 1.704 1.697 1.693 1.690 1.695 1.702 1.710 1.717 1.726 1.737 1.748 1.757 1.763 1.762 1.759 1.755 1.759 1.770 1.786 1.806 1.828 1.845 1.857 1.861 1.861 1.855 1.850 1.841 1.834 1.829 1.826 1.829 1.844 1.869 1.894 1.923 1.965 2.023 2.100 2.190 2.284 2.370 2.433 2.466 2.493 2.516 2.525 2.536 2.548 2.563 2.581 2.599 2.617 2.659 2.691 2.734 2.814 2.921 3.081 3.253 3.380 3.407 3.326 3.183 3.043 2.958 2.897 2.875 2.877 2.869 2.888 2.904 2.920 2.935 2.948 2.977 3.008 3.026 3.081 3.139 3.153 3.107 3.058 2.951 2.876 2.890 3.023 3.300 3.688 4.123 4.563 4.902 5.022 4.954 4.800 4.452 4.116 3.834 3.611 3.451 3.342 3.272 3.228 3.239 3.262 3.274 3.308 3.354 3.416 3.427 3.401 1.500 1.549 1.609 1.658 1.684 1.703 1.708 1.712 1.715 1.713 1.708 1.703 1.695 1.690 1.690 1.696 1.703 1.710 1.718 1.728 1.739 1.750 1.758 1.763 1.761 1.758 1.754 1.760 1.771 1.788 1.809 1.831 1.846 1.856 1.860 1.859 1.854 1.847 1.838 1.831 1.827 1.825 1.829 1.846 1.871 1.894 1.923 1.964 2.022 2.099 2.189 2.284 2.371 2.432 2.467 2.495 2.515 2.525 2.535 2.547 2.563 2.581 2.599 2.618 2.659 2.691 2.734 2.814 2.921 3.079 3.250 3.377 3.404 3.323 3.181 3.042 2.958 2.896 2.876 2.877 2.869 2.888 2.904 2.920 2.935 2.948 2.975 3.006 3.022 3.077 3.134 3.149 3.106 3.059 2.955 2.882 2.897 3.030 3.306 3.694 4.127 4.564 4.899 5.006 4.919 4.733 4.379 4.047 3.765 3.548 3.395 3.301 3.249 3.226 3.246 3.273 3.286 3.326 3.372 3.425 3.417 3.424 1.500 1.549 1.612 1.660 1.687 1.705 1.709 1.713 1.715 1.712 1.706 1.701 1.693 1.689 1.690 1.696 1.704 1.711 1.720 1.729 1.740 1.751 1.759 1.763 1.761 1.757 1.755 1.761 1.773 1.790 1.811 1.832 1.848 1.856 1.858 1.856 1.851 1.844 1.835 1.829 1.825 1.824 1.829 1.848 1.873 1.895 1.923 1.964 2.023 2.100 2.192 2.287 2.373 2.433 2.468 2.497 2.516 2.524 2.534 2.547 2.562 2.580 2.598 2.617 2.659 2.691 2.734 2.814 2.921 3.078 3.249 3.375 3.401 3.320 3.179 3.041 2.957 2.896 2.876 2.877 2.869 2.888 2.904 2.919 2.935 2.948 2.974 3.004 3.020 3.074 3.130 3.146 3.105 3.061 2.959 2.888 2.904 3.037 3.313 3.700 4.131 4.566 4.895 4.991 4.882 4.686 4.324 3.992 3.711 3.499 3.356 3.275 3.244 3.235 3.259 3.286 3.306 3.346 3.392 3.434 3.424 3.469 1.500 1.549 1.617 1.663 1.689 1.707 1.710 1.713 1.715 1.710 1.704 1.697 1.691 1.687 1.690 1.696 1.705 1.712 1.721 1.730 1.741 1.751 1.759 1.762 1.760 1.756 1.756 1.762 1.775 1.793 1.814 1.832 1.848 1.855 1.857 1.854 1.849 1.842 1.832 1.826 1.822 1.823 1.830 1.849 1.875 1.897 1.926 1.968 2.029 2.106 2.198 2.292 2.376 2.435 2.469 2.498 2.517 2.525 2.534 2.546 2.562 2.579 2.597 2.617 2.659 2.691 2.734 2.814 2.921 3.077 3.250 3.374 3.399 3.318 3.177 3.040 2.957 2.896 2.876 2.878 2.870 2.889 2.906 2.919 2.934 2.948 2.974 3.003 3.018 3.071 3.128 3.144 3.105 3.064 2.964 2.894 2.910 3.043 3.319 3.705 4.135 4.568 4.891 4.972 4.845 4.646 4.288 3.952 3.672 3.463 3.329 3.261 3.248 3.245 3.271 3.297 3.328 3.370 3.416 3.447 3.452 3.529 1.500 1.549 1.621 1.666 1.691 1.708 1.710 1.712 1.714 1.708 1.702 1.695 1.690 1.686 1.690 1.697 1.705 1.712 1.721 1.730 1.742 1.752 1.759 1.761 1.759 1.755 1.757 1.764 1.778 1.797 1.817 1.833 1.848 1.852 1.855 1.851 1.847 1.838 1.830 1.824 1.821 1.823 1.831 1.851 1.877 1.901 1.932 1.975 2.037 2.116 2.208 2.301 2.382 2.439 2.471 2.498 2.517 2.525 2.534 2.546 2.561 2.578 2.596 2.616 2.658 2.690 2.733 2.807 2.917 3.075 3.250 3.373 3.397 3.316 3.177 3.040 2.957 2.895 2.872 2.870 2.870 2.890 2.908 2.919 2.934 2.948 2.970 3.001 3.016 3.070 3.126 3.144 3.106 3.068 2.968 2.899 2.914 3.047 3.320 3.710 4.137 4.568 4.884 4.950 4.823 4.627 4.265 3.924 3.643 3.438 3.313 3.262 3.260 3.259 3.284 3.312 3.354 3.397 3.442 3.467 3.497 3.592 1.500 1.551 1.626 1.669 1.693 1.709 1.709 1.711 1.712 1.706 1.700 1.693 1.689 1.685 1.690 1.696 1.704 1.711 1.720 1.730 1.743 1.752 1.758 1.759 1.758 1.754 1.757 1.766 1.780 1.799 1.819 1.834 1.847 1.851 1.852 1.848 1.843 1.835 1.827 1.821 1.819 1.823 1.832 1.854 1.881 1.906 1.939 1.984 2.049 2.129 2.221 2.313 2.391 2.444 2.473 2.499 2.518 2.526 2.534 2.546 2.560 2.577 2.595 2.621 2.661 2.691 2.733 2.803 2.915 3.074 3.249 3.371 3.394 3.315 3.181 3.050 2.959 2.897 2.872 2.867 2.870 2.891 2.909 2.919 2.933 2.948 2.969 3.000 3.016 3.069 3.126 3.142 3.106 3.069 2.970 2.902 2.918 3.050 3.321 3.712 4.139 4.566 4.869 4.939 4.811 4.615 4.248 3.903 3.620 3.420 3.305 3.268 3.270 3.271 3.296 3.332 3.379 3.425 3.467 3.495 3.552 3.643 1.500 1.553 1.631 1.672 1.695 1.709 1.709 1.710 1.711 1.705 1.698 1.691 1.688 1.685 1.690 1.696 1.704 1.712 1.721 1.731 1.743 1.752 1.758 1.757 1.756 1.752 1.758 1.767 1.783 1.802 1.822 1.836 1.847 1.850 1.849 1.846 1.840 1.831 1.823 1.818 1.817 1.823 1.833 1.856 1.884 1.911 1.946 1.995 2.061 2.143 2.235 2.326 2.400 2.448 2.475 2.500 2.519 2.526 2.534 2.545 2.559 2.575 2.594 2.624 2.661 2.691 2.732 2.802 2.916 3.075 3.248 3.365 3.386 3.308 3.178 3.053 2.961 2.900 2.875 2.867 2.870 2.891 2.909 2.920 2.934 2.948 2.969 3.001 3.017 3.069 3.124 3.139 3.102 3.066 2.969 2.902 2.919 3.052 3.322 3.713 4.123 4.549 4.860 4.934 4.814 4.610 4.236 3.887 3.605 3.410 3.308 3.277 3.276 3.286 3.317 3.357 3.405 3.453 3.492 3.529 3.605 3.670 1.500 1.556 1.636 1.674 1.696 1.710 1.709 1.708 1.709 1.702 1.696 1.689 1.686 1.685 1.690 1.697 1.704 1.712 1.722 1.732 1.743 1.752 1.757 1.756 1.754 1.752 1.758 1.770 1.785 1.805 1.824 1.838 1.847 1.849 1.847 1.843 1.837 1.828 1.821 1.816 1.816 1.821 1.834 1.859 1.886 1.915 1.951 2.003 2.072 2.157 2.249 2.338 2.408 2.451 2.476 2.500 2.518 2.526 2.534 2.545 2.559 2.575 2.593 2.624 2.661 2.690 2.733 2.805 2.921 3.080 3.249 3.359 3.374 3.295 3.169 3.051 2.962 2.903 2.879 2.870 2.871 2.891 2.909 2.920 2.935 2.950 2.971 3.003 3.018 3.068 3.121 3.133 3.095 3.060 2.965 2.900 2.919 3.053 3.322 3.714 4.115 4.535 4.856 4.929 4.808 4.598 4.218 3.868 3.592 3.408 3.318 3.289 3.286 3.299 3.336 3.379 3.429 3.478 3.514 3.566 3.646 3.673 1.500 1.560 1.640 1.676 1.697 1.709 1.708 1.707 1.707 1.700 1.693 1.687 1.684 1.685 1.690 1.698 1.704 1.713 1.723 1.733 1.743 1.751 1.755 1.754 1.753 1.752 1.759 1.771 1.788 1.808 1.825 1.838 1.845 1.847 1.845 1.841 1.834 1.825 1.819 1.814 1.814 1.820 1.834 1.860 1.887 1.917 1.955 2.009 2.080 2.167 2.261 2.348 2.415 2.454 2.476 2.499 2.517 2.525 2.534 2.545 2.559 2.575 2.594 2.625 2.661 2.691 2.737 2.814 2.932 3.090 3.253 3.354 3.361 3.279 3.154 3.043 2.960 2.906 2.883 2.873 2.873 2.891 2.909 2.920 2.937 2.952 2.973 3.006 3.019 3.066 3.119 3.127 3.087 3.051 2.958 2.896 2.918 3.052 3.322 3.714 4.111 4.536 4.858 4.927 4.795 4.572 4.187 3.842 3.579 3.413 3.335 3.308 3.304 3.320 3.359 3.405 3.453 3.499 3.536 3.600 3.666 3.655 1.500 1.565 1.644 1.676 1.696 1.708 1.706 1.704 1.704 1.698 1.690 1.684 1.682 1.685 1.690 1.698 1.705 1.713 1.723 1.734 1.744 1.751 1.754 1.753 1.751 1.752 1.760 1.773 1.792 1.811 1.827 1.839 1.845 1.846 1.843 1.838 1.831 1.822 1.816 1.813 1.814 1.820 1.835 1.861 1.888 1.917 1.956 2.012 2.084 2.173 2.268 2.354 2.420 2.455 2.475 2.498 2.516 2.524 2.533 2.545 2.560 2.576 2.595 2.625 2.662 2.694 2.745 2.828 2.949 3.106 3.262 3.353 3.349 3.261 3.137 3.031 2.955 2.907 2.887 2.877 2.874 2.892 2.909 2.921 2.938 2.954 2.977 3.009 3.021 3.065 3.114 3.118 3.076 3.041 2.950 2.890 2.915 3.051 3.322 3.714 4.109 4.534 4.858 4.914 4.764 4.528 4.144 3.810 3.565 3.418 3.348 3.328 3.324 3.345 3.386 3.432 3.476 3.518 3.555 3.625 3.663 3.625 1.500 1.569 1.645 1.675 1.694 1.706 1.703 1.701 1.702 1.695 1.688 1.683 1.680 1.684 1.690 1.698 1.704 1.713 1.723 1.735 1.744 1.752 1.753 1.752 1.750 1.753 1.761 1.776 1.795 1.814 1.828 1.839 1.843 1.844 1.840 1.836 1.828 1.819 1.814 1.811 1.814 1.821 1.837 1.862 1.888 1.917 1.955 2.012 2.086 2.176 2.271 2.358 2.423 2.455 2.474 2.498 2.515 2.523 2.533 2.546 2.561 2.579 2.597 2.628 2.665 2.699 2.756 2.846 2.971 3.127 3.277 3.355 3.340 3.244 3.119 3.018 2.948 2.906 2.890 2.880 2.876 2.892 2.909 2.922 2.940 2.957 2.981 3.014 3.023 3.064 3.109 3.110 3.067 3.031 2.941 2.884 2.911 3.050 3.322 3.714 4.108 4.530 4.845 4.883 4.713 4.465 4.090 3.775 3.556 3.425 3.363 3.347 3.344 3.365 3.409 3.452 3.493 3.532 3.572 3.636 3.640 3.587 1.500 1.572 1.646 1.673 1.692 1.703 1.699 1.698 1.699 1.693 1.686 1.682 1.679 1.683 1.689 1.696 1.702 1.711 1.722 1.735 1.745 1.752 1.753 1.751 1.749 1.753 1.762 1.778 1.797 1.816 1.829 1.840 1.842 1.842 1.838 1.833 1.824 1.816 1.811 1.810 1.814 1.823 1.842 1.868 1.890 1.917 1.955 2.011 2.086 2.177 2.273 2.360 2.424 2.457 2.479 2.500 2.514 2.523 2.534 2.547 2.563 2.581 2.600 2.630 2.668 2.705 2.770 2.867 2.997 3.153 3.296 3.362 3.333 3.229 3.102 3.004 2.941 2.904 2.892 2.883 2.877 2.893 2.909 2.923 2.942 2.960 2.985 3.018 3.026 3.065 3.106 3.104 3.058 3.008 2.927 2.877 2.907 3.049 3.322 3.713 4.108 4.530 4.826 4.833 4.634 4.367 4.034 3.741 3.546 3.428 3.375 3.366 3.367 3.391 3.435 3.471 3.508 3.544 3.585 3.630 3.602 3.543 1.500 1.575 1.645 1.670 1.689 1.700 1.696 1.696 1.696 1.691 1.684 1.681 1.679 1.683 1.688 1.694 1.701 1.710 1.721 1.735 1.745 1.752 1.752 1.750 1.749 1.754 1.763 1.780 1.799 1.818 1.831 1.840 1.841 1.839 1.836 1.830 1.821 1.813 1.808 1.808 1.814 1.826 1.848 1.873 1.894 1.918 1.956 2.012 2.087 2.178 2.274 2.361 2.424 2.459 2.484 2.505 2.514 2.523 2.535 2.549 2.566 2.584 2.602 2.633 2.671 2.712 2.782 2.887 3.023 3.180 3.315 3.369 3.328 3.215 3.086 2.992 2.935 2.902 2.894 2.884 2.877 2.892 2.908 2.924 2.944 2.963 2.989 3.023 3.030 3.066 3.105 3.099 3.052 2.994 2.920 2.873 2.905 3.046 3.317 3.706 4.100 4.521 4.802 4.786 4.564 4.286 3.985 3.718 3.536 3.430 3.385 3.381 3.386 3.414 3.452 3.484 3.520 3.555 3.590 3.610 3.558 3.494 1.500 1.576 1.642 1.667 1.686 1.697 1.694 1.694 1.695 1.688 1.683 1.679 1.679 1.683 1.687 1.692 1.700 1.709 1.720 1.734 1.744 1.750 1.751 1.748 1.748 1.754 1.765 1.782 1.801 1.818 1.830 1.838 1.839 1.837 1.834 1.827 1.819 1.811 1.806 1.807 1.813 1.827 1.851 1.876 1.895 1.920 1.958 2.015 2.092 2.182 2.278 2.363 2.424 2.460 2.486 2.505 2.514 2.524 2.536 2.550 2.568 2.585 2.604 2.635 2.673 2.718 2.793 2.903 3.045 3.205 3.334 3.378 3.325 3.204 3.073 2.982 2.929 2.900 2.894 2.885 2.877 2.892 2.908 2.925 2.945 2.965 2.992 3.027 3.034 3.069 3.105 3.098 3.049 2.988 2.916 2.869 2.899 3.036 3.301 3.684 4.082 4.499 4.768 4.741 4.510 4.232 3.957 3.707 3.534 3.434 3.395 3.399 3.409 3.431 3.465 3.495 3.530 3.561 3.587 3.578 3.510 3.442 1.500 1.576 1.638 1.663 1.682 1.693 1.691 1.691 1.692 1.686 1.681 1.678 1.680 1.683 1.687 1.691 1.699 1.708 1.719 1.733 1.742 1.748 1.750 1.747 1.748 1.755 1.767 1.784 1.804 1.819 1.830 1.837 1.837 1.835 1.832 1.824 1.816 1.809 1.805 1.807 1.814 1.828 1.854 1.878 1.898 1.922 1.963 2.021 2.099 2.190 2.284 2.367 2.425 2.460 2.488 2.505 2.515 2.524 2.536 2.551 2.569 2.587 2.606 2.636 2.675 2.721 2.799 2.912 3.061 3.223 3.349 3.385 3.322 3.195 3.063 2.973 2.924 2.898 2.892 2.882 2.877 2.893 2.909 2.926 2.946 2.966 2.994 3.030 3.038 3.072 3.107 3.098 3.048 2.986 2.914 2.864 2.888 3.017 3.271 3.645 4.040 4.455 4.723 4.695 4.470 4.203 3.945 3.704 3.537 3.442 3.410 3.418 3.432 3.447 3.476 3.500 3.537 3.561 3.574 3.538 3.461 3.390 1.500 1.576 1.633 1.658 1.679 1.690 1.689 1.690 1.691 1.685 1.680 1.676 1.679 1.682 1.686 1.690 1.697 1.706 1.718 1.731 1.741 1.746 1.748 1.746 1.748 1.755 1.769 1.787 1.806 1.820 1.830 1.834 1.834 1.832 1.830 1.821 1.813 1.808 1.805 1.807 1.814 1.830 1.855 1.879 1.899 1.926 1.968 2.029 2.108 2.201 2.294 2.374 2.428 2.462 2.489 2.507 2.515 2.525 2.537 2.552 2.569 2.587 2.607 2.639 2.676 2.722 2.803 2.914 3.067 3.232 3.360 3.389 3.319 3.187 3.054 2.968 2.918 2.893 2.888 2.877 2.877 2.894 2.912 2.926 2.946 2.967 2.993 3.031 3.040 3.074 3.109 3.099 3.048 2.985 2.912 2.855 2.871 2.988 3.227 3.590 3.977 4.391 4.669 4.655 4.453 4.208 3.958 3.716 3.550 3.457 3.427 3.438 3.449 3.460 3.487 3.511 3.546 3.556 3.550 3.495 3.413 3.342 1.500 1.575 1.628 1.653 1.675 1.687 1.687 1.688 1.689 1.683 1.679 1.677 1.679 1.681 1.685 1.688 1.696 1.705 1.718 1.731 1.741 1.746 1.747 1.745 1.747 1.756 1.771 1.789 1.807 1.821 1.831 1.833 1.833 1.830 1.826 1.819 1.811 1.807 1.804 1.807 1.815 1.832 1.857 1.880 1.901 1.930 1.975 2.038 2.120 2.214 2.306 2.383 2.433 2.464 2.490 2.507 2.516 2.525 2.537 2.552 2.569 2.587 2.613 2.645 2.678 2.723 2.803 2.907 3.065 3.232 3.360 3.387 3.315 3.185 3.056 2.964 2.910 2.885 2.880 2.867 2.876 2.894 2.913 2.927 2.947 2.967 2.989 3.030 3.040 3.075 3.110 3.100 3.049 2.986 2.908 2.844 2.848 2.951 3.174 3.524 3.899 4.316 4.607 4.626 4.454 4.232 3.981 3.739 3.572 3.480 3.450 3.463 3.467 3.475 3.500 3.523 3.550 3.545 3.519 3.452 3.370 3.305 1.500 1.572 1.622 1.649 1.672 1.684 1.684 1.686 1.688 1.682 1.678 1.676 1.678 1.680 1.683 1.687 1.694 1.704 1.718 1.731 1.741 1.745 1.745 1.744 1.747 1.756 1.772 1.790 1.808 1.821 1.831 1.833 1.832 1.828 1.824 1.817 1.809 1.804 1.802 1.807 1.816 1.837 1.859 1.882 1.904 1.935 1.983 2.049 2.132 2.227 2.317 2.393 2.441 2.471 2.491 2.508 2.516 2.525 2.537 2.552 2.568 2.587 2.616 2.653 2.682 2.724 2.798 2.906 3.065 3.232 3.359 3.383 3.309 3.181 3.057 2.964 2.901 2.875 2.867 2.864 2.875 2.894 2.913 2.927 2.947 2.967 2.989 3.029 3.039 3.075 3.110 3.101 3.049 2.986 2.904 2.831 2.825 2.915 3.122 3.457 3.815 4.236 4.547 4.605 4.478 4.266 4.013 3.767 3.596 3.503 3.475 3.482 3.479 3.489 3.512 3.533 3.546 3.526 3.485 3.415 3.339 3.288 1.500 1.569 1.617 1.644 1.669 1.681 1.683 1.685 1.685 1.680 1.676 1.676 1.678 1.680 1.682 1.687 1.695 1.705 1.720 1.731 1.741 1.744 1.744 1.742 1.747 1.757 1.773 1.791 1.809 1.822 1.831 1.832 1.831 1.827 1.822 1.815 1.807 1.802 1.801 1.806 1.818 1.841 1.862 1.884 1.908 1.942 1.991 2.061 2.146 2.241 2.331 2.403 2.447 2.475 2.491 2.508 2.516 2.525 2.537 2.552 2.569 2.588 2.619 2.654 2.683 2.727 2.800 2.912 3.073 3.239 3.362 3.380 3.301 3.171 3.050 2.956 2.894 2.867 2.859 2.861 2.873 2.893 2.913 2.927 2.948 2.967 2.987 3.027 3.037 3.074 3.109 3.100 3.049 2.986 2.900 2.820 2.805 2.881 3.076 3.396 3.732 4.154 4.492 4.592 4.505 4.303 4.044 3.794 3.622 3.527 3.499 3.497 3.483 3.504 3.526 3.539 3.536 3.503 3.451 3.386 3.321 3.294 1.500 1.565 1.612 1.641 1.666 1.679 1.682 1.683 1.683 1.678 1.675 1.675 1.677 1.680 1.682 1.687 1.696 1.707 1.721 1.732 1.741 1.743 1.742 1.741 1.747 1.758 1.774 1.793 1.810 1.822 1.830 1.830 1.829 1.826 1.821 1.814 1.806 1.801 1.802 1.807 1.820 1.844 1.864 1.886 1.911 1.948 2.001 2.073 2.161 2.256 2.344 2.410 2.451 2.476 2.490 2.508 2.516 2.525 2.538 2.553 2.570 2.589 2.621 2.654 2.685 2.732 2.808 2.925 3.088 3.252 3.369 3.377 3.290 3.158 3.038 2.947 2.887 2.862 2.853 2.858 2.871 2.893 2.913 2.926 2.946 2.964 2.984 3.024 3.034 3.071 3.108 3.099 3.049 2.985 2.898 2.811 2.787 2.855 3.039 3.348 3.677 4.100 4.458 4.599 4.531 4.330 4.067 3.813 3.639 3.547 3.518 3.515 3.499 3.520 3.537 3.543 3.520 3.477 3.423 3.366 3.321 3.322 1.500 1.560 1.608 1.637 1.664 1.677 1.680 1.682 1.682 1.678 1.674 1.674 1.676 1.680 1.683 1.689 1.698 1.709 1.723 1.734 1.740 1.743 1.740 1.740 1.747 1.759 1.776 1.795 1.812 1.823 1.829 1.829 1.827 1.825 1.820 1.813 1.806 1.801 1.802 1.809 1.823 1.847 1.866 1.889 1.915 1.955 2.011 2.086 2.175 2.270 2.355 2.415 2.452 2.476 2.489 2.507 2.515 2.526 2.539 2.555 2.572 2.591 2.622 2.656 2.689 2.740 2.822 2.944 3.108 3.269 3.377 3.374 3.278 3.141 3.023 2.935 2.879 2.858 2.850 2.856 2.870 2.893 2.913 2.925 2.943 2.961 2.981 3.021 3.031 3.069 3.106 3.098 3.048 2.985 2.897 2.807 2.777 2.838 3.014 3.315 3.637 4.064 4.448 4.615 4.552 4.345 4.079 3.823 3.652 3.565 3.533 3.529 3.513 3.535 3.546 3.539 3.499 3.451 3.402 3.359 3.341 3.373 1.500 1.556 1.604 1.635 1.662 1.676 1.679 1.680 1.681 1.676 1.674 1.674 1.675 1.679 1.683 1.690 1.699 1.712 1.725 1.735 1.740 1.742 1.740 1.739 1.748 1.761 1.779 1.797 1.812 1.823 1.827 1.828 1.826 1.825 1.818 1.812 1.807 1.803 1.804 1.811 1.826 1.849 1.868 1.891 1.919 1.962 2.021 2.100 2.191 2.284 2.365 2.420 2.453 2.476 2.490 2.507 2.515 2.526 2.539 2.556 2.574 2.593 2.624 2.659 2.695 2.751 2.839 2.967 3.131 3.291 3.386 3.369 3.262 3.121 3.004 2.922 2.871 2.853 2.847 2.854 2.871 2.896 2.913 2.925 2.941 2.959 2.978 3.016 3.027 3.064 3.102 3.096 3.047 2.982 2.897 2.807 2.773 2.830 3.001 3.298 3.617 4.048 4.452 4.625 4.561 4.344 4.085 3.832 3.665 3.578 3.547 3.545 3.526 3.542 3.548 3.524 3.476 3.429 3.390 3.366 3.381 3.452 1.500 1.553 1.602 1.634 1.661 1.675 1.677 1.679 1.679 1.675 1.673 1.673 1.675 1.679 1.684 1.691 1.701 1.714 1.727 1.737 1.741 1.742 1.738 1.739 1.749 1.763 1.781 1.798 1.813 1.823 1.827 1.827 1.825 1.823 1.818 1.811 1.807 1.804 1.806 1.812 1.828 1.851 1.871 1.893 1.924 1.969 2.031 2.113 2.205 2.296 2.374 2.424 2.455 2.477 2.492 2.507 2.515 2.527 2.540 2.557 2.576 2.595 2.626 2.663 2.701 2.763 2.858 2.991 3.156 3.311 3.391 3.360 3.242 3.098 2.984 2.908 2.863 2.850 2.847 2.854 2.872 2.898 2.912 2.924 2.940 2.956 2.974 3.012 3.022 3.060 3.098 3.092 3.045 2.973 2.895 2.807 2.772 2.828 2.997 3.292 3.611 4.053 4.457 4.626 4.552 4.323 4.084 3.837 3.679 3.592 3.561 3.558 3.534 3.542 3.534 3.501 3.451 3.414 3.390 3.390 3.443 3.560 1.500 1.551 1.600 1.634 1.660 1.673 1.676 1.675 1.676 1.672 1.672 1.672 1.675 1.679 1.684 1.693 1.703 1.718 1.729 1.738 1.741 1.740 1.737 1.739 1.750 1.765 1.782 1.800 1.813 1.824 1.827 1.826 1.824 1.822 1.817 1.811 1.807 1.805 1.806 1.814 1.832 1.854 1.877 1.898 1.929 1.976 2.042 2.125 2.219 2.309 2.384 2.433 2.462 2.481 2.498 2.507 2.516 2.527 2.541 2.558 2.577 2.596 2.627 2.665 2.706 2.775 2.877 3.014 3.178 3.326 3.391 3.347 3.221 3.075 2.965 2.896 2.857 2.849 2.848 2.855 2.872 2.898 2.912 2.924 2.939 2.954 2.971 3.008 3.017 3.055 3.093 3.089 3.042 2.958 2.888 2.804 2.772 2.828 2.997 3.292 3.611 4.060 4.456 4.614 4.526 4.290 4.085 3.846 3.689 3.603 3.575 3.568 3.537 3.540 3.516 3.477 3.431 3.409 3.404 3.432 3.524 3.692 1.500 1.549 1.599 1.634 1.659 1.671 1.673 1.673 1.673 1.670 1.670 1.671 1.675 1.679 1.685 1.695 1.706 1.721 1.732 1.739 1.741 1.738 1.736 1.740 1.752 1.767 1.784 1.802 1.815 1.824 1.827 1.826 1.823 1.821 1.817 1.811 1.807 1.805 1.807 1.816 1.836 1.856 1.879 1.901 1.935 1.985 2.054 2.138 2.233 2.322 2.393 2.439 2.466 2.481 2.498 2.506 2.516 2.528 2.542 2.559 2.578 2.603 2.631 2.668 2.711 2.785 2.892 3.033 3.196 3.336 3.386 3.333 3.204 3.063 2.950 2.888 2.855 2.851 2.851 2.856 2.873 2.898 2.910 2.924 2.938 2.952 2.969 3.004 3.013 3.050 3.088 3.085 3.039 2.956 2.886 2.804 2.771 2.828 2.997 3.292 3.618 4.064 4.453 4.605 4.514 4.283 4.090 3.862 3.705 3.619 3.589 3.576 3.538 3.525 3.492 3.453 3.419 3.416 3.434 3.493 3.624 3.839 1.500 1.549 1.599 1.635 1.658 1.669 1.671 1.670 1.670 1.667 1.668 1.670 1.674 1.680 1.687 1.697 1.710 1.724 1.734 1.740 1.739 1.735 1.735 1.740 1.752 1.768 1.787 1.804 1.816 1.824 1.826 1.825 1.823 1.821 1.816 1.810 1.807 1.805 1.808 1.818 1.839 1.857 1.881 1.905 1.942 1.994 2.066 2.152 2.247 2.333 2.401 2.443 2.468 2.481 2.498 2.506 2.516 2.528 2.543 2.560 2.579 2.607 2.633 2.668 2.713 2.791 2.904 3.049 3.210 3.342 3.380 3.317 3.187 3.050 2.940 2.883 2.856 2.854 2.854 2.858 2.874 2.898 2.910 2.924 2.939 2.952 2.967 3.002 3.010 3.046 3.085 3.081 3.036 2.954 2.886 2.804 2.773 2.828 2.997 3.286 3.620 4.064 4.448 4.597 4.511 4.287 4.106 3.877 3.721 3.635 3.597 3.571 3.534 3.507 3.468 3.436 3.419 3.436 3.480 3.573 3.740 3.991 1.500 1.549 1.599 1.636 1.657 1.667 1.668 1.666 1.668 1.666 1.667 1.670 1.674 1.680 1.689 1.699 1.712 1.726 1.735 1.740 1.739 1.735 1.734 1.742 1.754 1.771 1.790 1.807 1.818 1.825 1.827 1.825 1.824 1.821 1.816 1.810 1.807 1.807 1.811 1.822 1.843 1.860 1.884 1.910 1.949 2.005 2.080 2.168 2.261 2.346 2.407 2.444 2.468 2.481 2.498 2.506 2.516 2.528 2.544 2.560 2.580 2.610 2.635 2.669 2.715 2.798 2.916 3.065 3.225 3.350 3.377 3.304 3.173 3.042 2.937 2.884 2.860 2.860 2.858 2.860 2.874 2.898 2.910 2.924 2.940 2.952 2.967 3.001 3.008 3.044 3.082 3.078 3.034 2.951 2.885 2.804 2.773 2.828 2.997 3.283 3.619 4.062 4.444 4.590 4.508 4.295 4.120 3.895 3.739 3.651 3.602 3.562 3.521 3.485 3.447 3.427 3.431 3.471 3.544 3.670 3.867 4.137 1.500 1.549 1.599 1.637 1.656 1.665 1.665 1.663 1.666 1.665 1.666 1.669 1.674 1.681 1.690 1.700 1.714 1.727 1.736 1.739 1.738 1.733 1.734 1.743 1.756 1.774 1.793 1.809 1.821 1.825 1.827 1.825 1.824 1.821 1.816 1.811 1.808 1.809 1.813 1.825 1.846 1.864 1.887 1.916 1.958 2.017 2.095 2.185 2.276 2.356 2.412 2.445 2.467 2.481 2.498 2.506 2.516 2.529 2.545 2.562 2.581 2.612 2.640 2.672 2.721 2.802 2.926 3.082 3.244 3.362 3.379 3.299 3.166 3.040 2.942 2.886 2.862 2.858 2.861 2.862 2.875 2.897 2.910 2.923 2.940 2.952 2.970 3.002 3.008 3.044 3.081 3.076 3.033 2.950 2.884 2.804 2.774 2.830 3.001 3.281 3.619 4.060 4.438 4.583 4.508 4.309 4.134 3.912 3.759 3.663 3.599 3.550 3.501 3.461 3.433 3.432 3.460 3.522 3.624 3.781 4.000 4.268 1.500 1.549 1.600 1.638 1.655 1.664 1.663 1.661 1.663 1.663 1.665 1.670 1.675 1.681 1.691 1.702 1.717 1.728 1.736 1.738 1.737 1.732 1.733 1.744 1.757 1.775 1.794 1.810 1.823 1.827 1.827 1.826 1.825 1.820 1.815 1.812 1.809 1.810 1.815 1.831 1.850 1.869 1.892 1.922 1.967 2.030 2.110 2.201 2.290 2.367 2.419 2.451 2.467 2.483 2.498 2.507 2.517 2.530 2.546 2.564 2.583 2.614 2.648 2.680 2.731 2.813 2.941 3.104 3.268 3.380 3.387 3.299 3.165 3.045 2.953 2.893 2.867 2.859 2.861 2.864 2.876 2.897 2.910 2.923 2.939 2.952 2.972 3.004 3.010 3.045 3.083 3.078 3.035 2.951 2.885 2.804 2.774 2.830 3.002 3.280 3.618 4.056 4.429 4.574 4.506 4.308 4.140 3.921 3.768 3.664 3.593 3.533 3.478 3.441 3.427 3.441 3.494 3.585 3.717 3.902 4.131 4.376 1.500 1.549 1.601 1.638 1.653 1.661 1.660 1.659 1.661 1.662 1.665 1.670 1.675 1.682 1.692 1.704 1.719 1.730 1.737 1.738 1.734 1.731 1.733 1.744 1.758 1.776 1.796 1.811 1.823 1.827 1.828 1.825 1.824 1.820 1.815 1.812 1.809 1.810 1.816 1.834 1.853 1.875 1.898 1.929 1.977 2.043 2.124 2.216 2.303 2.376 2.424 2.455 2.470 2.488 2.498 2.507 2.519 2.532 2.549 2.567 2.585 2.616 2.651 2.686 2.743 2.829 2.958 3.128 3.293 3.396 3.394 3.298 3.160 3.042 2.955 2.896 2.870 2.857 2.856 2.865 2.875 2.895 2.909 2.922 2.937 2.951 2.973 3.005 3.012 3.050 3.089 3.085 3.041 2.956 2.888 2.805 2.774 2.830 3.003 3.280 3.616 4.049 4.417 4.561 4.501 4.302 4.136 3.921 3.765 3.652 3.578 3.510 3.453 3.426 3.431 3.467 3.543 3.661 3.818 4.024 4.244 4.432 1.500 1.549 1.602 1.638 1.652 1.659 1.657 1.657 1.659 1.661 1.665 1.670 1.676 1.684 1.694 1.706 1.721 1.731 1.737 1.736 1.731 1.729 1.733 1.744 1.758 1.777 1.796 1.811 1.823 1.826 1.827 1.824 1.823 1.820 1.814 1.811 1.809 1.810 1.818 1.837 1.855 1.877 1.902 1.937 1.988 2.057 2.140 2.232 2.317 2.386 2.430 2.458 2.470 2.488 2.498 2.508 2.520 2.534 2.551 2.569 2.594 2.621 2.656 2.692 2.755 2.849 2.984 3.157 3.318 3.411 3.398 3.295 3.158 3.033 2.950 2.896 2.873 2.859 2.858 2.865 2.874 2.893 2.908 2.920 2.935 2.949 2.972 3.006 3.016 3.057 3.099 3.096 3.051 2.964 2.893 2.808 2.774 2.830 3.003 3.280 3.613 4.039 4.401 4.544 4.476 4.280 4.116 3.904 3.745 3.633 3.555 3.483 3.431 3.420 3.440 3.501 3.602 3.744 3.921 4.135 4.326 4.416 1.500 1.549 1.604 1.638 1.650 1.657 1.655 1.655 1.658 1.660 1.665 1.671 1.678 1.686 1.697 1.709 1.723 1.731 1.736 1.734 1.728 1.727 1.732 1.744 1.759 1.778 1.797 1.811 1.821 1.825 1.826 1.823 1.821 1.818 1.813 1.810 1.808 1.810 1.819 1.838 1.856 1.879 1.907 1.944 1.999 2.072 2.156 2.248 2.331 2.394 2.434 2.458 2.471 2.488 2.498 2.509 2.521 2.536 2.552 2.571 2.598 2.623 2.658 2.698 2.768 2.869 3.010 3.184 3.342 3.420 3.391 3.280 3.143 3.016 2.940 2.890 2.871 2.859 2.857 2.865 2.878 2.893 2.906 2.918 2.931 2.946 2.970 3.007 3.021 3.066 3.112 3.112 3.067 2.975 2.901 2.812 2.775 2.831 3.003 3.279 3.609 4.028 4.385 4.525 4.449 4.250 4.089 3.875 3.712 3.603 3.525 3.458 3.416 3.424 3.466 3.553 3.674 3.831 4.018 4.221 4.360 4.330 1.500 1.549 1.606 1.637 1.649 1.655 1.653 1.654 1.658 1.661 1.666 1.672 1.680 1.689 1.699 1.712 1.724 1.732 1.735 1.732 1.726 1.725 1.732 1.743 1.760 1.780 1.797 1.812 1.820 1.824 1.825 1.822 1.820 1.815 1.810 1.807 1.807 1.810 1.820 1.840 1.858 1.882 1.912 1.953 2.012 2.087 2.174 2.264 2.344 2.402 2.436 2.458 2.471 2.488 2.498 2.509 2.522 2.537 2.553 2.572 2.601 2.624 2.659 2.704 2.781 2.890 3.036 3.208 3.359 3.422 3.376 3.256 3.118 2.995 2.924 2.881 2.866 2.856 2.854 2.864 2.880 2.894 2.905 2.916 2.928 2.944 2.969 3.008 3.026 3.076 3.127 3.128 3.084 2.988 2.910 2.818 2.778 2.832 3.003 3.279 3.602 4.016 4.371 4.496 4.413 4.211 4.051 3.834 3.677 3.570 3.494 3.436 3.410 3.435 3.502 3.606 3.749 3.916 4.098 4.272 4.340 4.195 1.500 1.549 1.608 1.636 1.647 1.653 1.652 1.653 1.658 1.661 1.668 1.674 1.681 1.690 1.702 1.715 1.725 1.732 1.734 1.730 1.724 1.723 1.731 1.743 1.761 1.781 1.798 1.813 1.820 1.823 1.824 1.822 1.818 1.812 1.808 1.804 1.805 1.810 1.824 1.843 1.861 1.886 1.918 1.963 2.024 2.102 2.191 2.279 2.357 2.412 2.443 2.458 2.472 2.488 2.498 2.509 2.521 2.537 2.553 2.572 2.602 2.625 2.661 2.710 2.795 2.912 3.062 3.231 3.372 3.421 3.356 3.226 3.090 2.972 2.909 2.871 2.859 2.852 2.851 2.862 2.881 2.895 2.903 2.915 2.928 2.944 2.971 3.011 3.032 3.086 3.141 3.145 3.101 3.002 2.921 2.824 2.781 2.833 3.003 3.279 3.600 4.010 4.351 4.466 4.375 4.173 4.007 3.794 3.640 3.536 3.469 3.426 3.416 3.460 3.549 3.673 3.830 3.994 4.155 4.282 4.266 4.033 1.500 1.549 1.610 1.635 1.645 1.651 1.650 1.651 1.657 1.662 1.669 1.676 1.683 1.694 1.704 1.717 1.727 1.732 1.732 1.727 1.722 1.723 1.731 1.744 1.763 1.783 1.799 1.814 1.821 1.824 1.825 1.823 1.817 1.810 1.805 1.802 1.803 1.809 1.826 1.845 1.865 1.891 1.925 1.973 2.037 2.118 2.207 2.294 2.367 2.418 2.446 2.459 2.475 2.489 2.498 2.509 2.522 2.537 2.554 2.572 2.602 2.626 2.665 2.719 2.810 2.935 3.089 3.255 3.385 3.415 3.334 3.197 3.063 2.953 2.894 2.861 2.854 2.849 2.849 2.861 2.881 2.895 2.903 2.916 2.928 2.944 2.972 3.014 3.039 3.096 3.154 3.159 3.115 3.014 2.930 2.831 2.784 2.834 3.003 3.277 3.599 4.010 4.338 4.440 4.343 4.135 3.961 3.751 3.600 3.502 3.449 3.422 3.430 3.499 3.606 3.746 3.907 4.058 4.185 4.251 4.150 3.865 1.500 1.550 1.613 1.634 1.644 1.649 1.649 1.649 1.656 1.662 1.670 1.678 1.686 1.697 1.707 1.720 1.728 1.732 1.730 1.724 1.720 1.722 1.731 1.745 1.765 1.785 1.802 1.816 1.822 1.824 1.825 1.822 1.816 1.808 1.803 1.799 1.800 1.808 1.827 1.846 1.871 1.898 1.934 1.985 2.052 2.134 2.224 2.308 2.377 2.422 2.449 2.462 2.480 2.490 2.499 2.510 2.523 2.538 2.555 2.573 2.603 2.631 2.671 2.729 2.821 2.957 3.116 3.281 3.396 3.411 3.318 3.174 3.043 2.941 2.881 2.851 2.844 2.848 2.847 2.860 2.880 2.896 2.905 2.919 2.931 2.951 2.977 3.010 3.041 3.103 3.165 3.171 3.126 3.023 2.938 2.837 2.788 2.836 2.998 3.263 3.600 4.005 4.325 4.416 4.312 4.095 3.920 3.712 3.564 3.477 3.442 3.425 3.458 3.552 3.677 3.825 3.980 4.104 4.185 4.183 4.010 3.712 1.500 1.551 1.615 1.632 1.642 1.647 1.647 1.648 1.656 1.663 1.672 1.681 1.689 1.700 1.710 1.721 1.728 1.730 1.727 1.721 1.718 1.721 1.731 1.746 1.766 1.786 1.804 1.817 1.823 1.826 1.825 1.821 1.814 1.806 1.800 1.795 1.797 1.807 1.828 1.848 1.874 1.904 1.944 1.998 2.069 2.152 2.241 2.320 2.385 2.425 2.450 2.462 2.480 2.490 2.499 2.511 2.524 2.539 2.556 2.580 2.607 2.642 2.681 2.743 2.836 2.981 3.146 3.309 3.412 3.414 3.312 3.169 3.032 2.940 2.876 2.848 2.841 2.848 2.848 2.860 2.879 2.897 2.908 2.923 2.937 2.960 2.983 3.011 3.047 3.112 3.174 3.179 3.131 3.027 2.940 2.838 2.789 2.837 2.997 3.254 3.603 4.004 4.317 4.402 4.285 4.057 3.882 3.675 3.536 3.463 3.444 3.444 3.509 3.617 3.757 3.904 4.039 4.126 4.155 4.088 3.867 3.587 1.500 1.553 1.616 1.630 1.640 1.645 1.646 1.648 1.657 1.665 1.674 1.683 1.692 1.703 1.713 1.723 1.728 1.729 1.725 1.717 1.716 1.720 1.731 1.747 1.767 1.787 1.805 1.817 1.823 1.825 1.824 1.819 1.811 1.803 1.796 1.792 1.795 1.806 1.828 1.849 1.878 1.911 1.953 2.011 2.086 2.170 2.257 2.333 2.392 2.426 2.450 2.463 2.480 2.490 2.500 2.511 2.525 2.540 2.558 2.585 2.610 2.645 2.687 2.756 2.854 3.006 3.177 3.337 3.427 3.415 3.304 3.158 3.019 2.933 2.873 2.849 2.840 2.849 2.850 2.862 2.881 2.900 2.911 2.927 2.944 2.968 2.991 3.017 3.055 3.122 3.181 3.182 3.130 3.023 2.935 2.835 2.788 2.837 2.998 3.246 3.596 3.998 4.306 4.385 4.257 4.026 3.847 3.643 3.514 3.459 3.451 3.472 3.566 3.693 3.839 3.975 4.083 4.123 4.099 3.976 3.734 3.498 1.500 1.555 1.617 1.628 1.638 1.643 1.644 1.648 1.659 1.668 1.677 1.686 1.695 1.705 1.716 1.724 1.728 1.728 1.722 1.715 1.714 1.720 1.730 1.748 1.768 1.788 1.806 1.816 1.822 1.824 1.821 1.816 1.807 1.799 1.792 1.790 1.794 1.809 1.831 1.852 1.882 1.916 1.962 2.023 2.100 2.187 2.273 2.347 2.403 2.433 2.450 2.464 2.480 2.490 2.500 2.512 2.526 2.542 2.560 2.589 2.612 2.648 2.693 2.769 2.874 3.029 3.205 3.364 3.439 3.411 3.290 3.143 3.006 2.926 2.870 2.848 2.840 2.847 2.855 2.868 2.884 2.903 2.915 2.931 2.949 2.974 2.999 3.026 3.066 3.130 3.185 3.178 3.122 3.012 2.923 2.824 2.781 2.835 2.999 3.245 3.595 3.994 4.301 4.368 4.226 3.995 3.814 3.617 3.503 3.465 3.477 3.524 3.637 3.777 3.920 4.027 4.102 4.095 4.022 3.859 3.621 3.442 1.500 1.557 1.616 1.626 1.635 1.641 1.643 1.648 1.660 1.670 1.679 1.688 1.698 1.707 1.718 1.724 1.727 1.726 1.719 1.713 1.712 1.718 1.730 1.749 1.770 1.789 1.806 1.815 1.821 1.822 1.818 1.812 1.803 1.795 1.788 1.788 1.794 1.812 1.833 1.856 1.886 1.922 1.970 2.035 2.115 2.203 2.287 2.359 2.409 2.437 2.450 2.466 2.480 2.489 2.500 2.512 2.527 2.543 2.561 2.591 2.614 2.650 2.700 2.782 2.896 3.048 3.227 3.382 3.441 3.396 3.266 3.122 2.990 2.915 2.864 2.845 2.837 2.842 2.859 2.873 2.888 2.907 2.918 2.934 2.952 2.978 3.009 3.036 3.076 3.138 3.187 3.172 3.108 2.994 2.905 2.809 2.771 2.831 3.001 3.243 3.593 3.989 4.292 4.347 4.202 3.967 3.788 3.600 3.503 3.478 3.514 3.585 3.716 3.859 3.988 4.058 4.093 4.043 3.929 3.746 3.534 3.412 1.500 1.559 1.614 1.623 1.633 1.639 1.641 1.648 1.661 1.672 1.680 1.689 1.700 1.709 1.719 1.724 1.725 1.724 1.716 1.711 1.711 1.718 1.730 1.750 1.771 1.789 1.806 1.815 1.819 1.821 1.816 1.809 1.799 1.791 1.784 1.786 1.794 1.814 1.834 1.861 1.891 1.929 1.980 2.047 2.129 2.217 2.299 2.368 2.413 2.439 2.452 2.471 2.479 2.489 2.500 2.513 2.527 2.544 2.568 2.595 2.617 2.654 2.707 2.797 2.919 3.075 3.252 3.396 3.438 3.377 3.245 3.094 2.973 2.902 2.857 2.843 2.839 2.844 2.862 2.878 2.892 2.910 2.921 2.937 2.954 2.980 3.013 3.044 3.085 3.145 3.185 3.162 3.091 2.973 2.883 2.791 2.758 2.823 2.998 3.243 3.592 3.992 4.285 4.334 4.184 3.943 3.769 3.594 3.513 3.506 3.569 3.657 3.800 3.940 4.040 4.067 4.056 3.972 3.832 3.645 3.472 3.397 1.500 1.561 1.612 1.621 1.631 1.637 1.639 1.648 1.661 1.672 1.682 1.691 1.701 1.710 1.719 1.723 1.724 1.721 1.714 1.710 1.711 1.719 1.732 1.752 1.772 1.791 1.807 1.815 1.819 1.819 1.814 1.805 1.795 1.787 1.781 1.784 1.794 1.815 1.836 1.864 1.895 1.935 1.990 2.061 2.144 2.233 2.312 2.377 2.417 2.440 2.452 2.470 2.479 2.489 2.500 2.513 2.528 2.545 2.573 2.597 2.622 2.660 2.718 2.815 2.945 3.105 3.277 3.406 3.430 3.352 3.217 3.065 2.956 2.887 2.848 2.840 2.840 2.847 2.865 2.883 2.898 2.912 2.923 2.937 2.954 2.979 3.005 3.044 3.090 3.149 3.182 3.151 3.073 2.951 2.861 2.771 2.742 2.810 2.986 3.242 3.591 3.992 4.275 4.321 4.166 3.927 3.760 3.602 3.531 3.548 3.634 3.735 3.880 4.005 4.066 4.056 4.003 3.891 3.737 3.560 3.430 3.387 1.500 1.562 1.609 1.618 1.628 1.636 1.639 1.648 1.662 1.672 1.681 1.690 1.701 1.711 1.719 1.722 1.722 1.718 1.711 1.708 1.710 1.719 1.734 1.755 1.774 1.793 1.807 1.815 1.819 1.816 1.811 1.801 1.791 1.783 1.778 1.782 1.796 1.818 1.839 1.867 1.899 1.942 2.001 2.075 2.161 2.249 2.325 2.387 2.424 2.440 2.452 2.470 2.479 2.489 2.501 2.514 2.529 2.547 2.575 2.598 2.632 2.672 2.735 2.833 2.974 3.138 3.305 3.417 3.424 3.332 3.193 3.044 2.944 2.871 2.838 2.832 2.842 2.850 2.869 2.888 2.906 2.916 2.925 2.936 2.954 2.976 3.000 3.046 3.095 3.152 3.175 3.137 3.053 2.929 2.841 2.756 2.733 2.802 2.978 3.242 3.593 3.990 4.268 4.313 4.152 3.917 3.763 3.613 3.562 3.606 3.710 3.818 3.957 4.051 4.068 4.018 3.936 3.806 3.650 3.495 3.405 3.379 1.500 1.563 1.605 1.615 1.626 1.634 1.638 1.648 1.662 1.672 1.681 1.690 1.701 1.711 1.718 1.721 1.719 1.715 1.708 1.707 1.711 1.720 1.737 1.758 1.777 1.796 1.808 1.815 1.817 1.813 1.807 1.797 1.787 1.778 1.776 1.781 1.799 1.820 1.841 1.869 1.904 1.950 2.013 2.090 2.178 2.263 2.338 2.395 2.428 2.440 2.454 2.470 2.479 2.489 2.501 2.515 2.530 2.548 2.577 2.600 2.636 2.682 2.755 2.859 3.013 3.181 3.344 3.436 3.426 3.315 3.171 3.026 2.930 2.861 2.834 2.831 2.851 2.859 2.878 2.897 2.918 2.922 2.929 2.936 2.952 2.972 2.997 3.049 3.103 3.153 3.168 3.124 3.033 2.905 2.821 2.741 2.726 2.798 2.976 3.241 3.593 3.985 4.262 4.305 4.147 3.920 3.781 3.644 3.613 3.676 3.791 3.896 4.017 4.071 4.052 3.971 3.866 3.726 3.575 3.447 3.389 3.369 1.500 1.563 1.601 1.611 1.623 1.632 1.637 1.647 1.661 1.671 1.679 1.690 1.700 1.710 1.716 1.718 1.717 1.712 1.706 1.706 1.712 1.722 1.741 1.761 1.780 1.798 1.808 1.815 1.816 1.811 1.804 1.793 1.784 1.774 1.775 1.781 1.800 1.820 1.844 1.874 1.910 1.960 2.026 2.107 2.194 2.277 2.350 2.401 2.429 2.442 2.457 2.470 2.479 2.489 2.501 2.516 2.532 2.550 2.579 2.603 2.642 2.694 2.777 2.889 3.055 3.228 3.385 3.457 3.423 3.298 3.150 3.011 2.920 2.857 2.835 2.834 2.858 2.867 2.887 2.905 2.923 2.926 2.931 2.936 2.950 2.968 2.995 3.050 3.108 3.152 3.158 3.106 3.009 2.881 2.800 2.727 2.718 2.796 2.968 3.239 3.593 3.985 4.260 4.300 4.149 3.934 3.804 3.687 3.678 3.750 3.862 3.968 4.056 4.068 4.010 3.907 3.789 3.652 3.513 3.414 3.379 3.361 1.500 1.562 1.596 1.607 1.620 1.630 1.637 1.646 1.660 1.669 1.678 1.688 1.698 1.708 1.714 1.716 1.714 1.708 1.704 1.704 1.712 1.724 1.744 1.764 1.782 1.799 1.809 1.814 1.813 1.808 1.801 1.789 1.780 1.772 1.774 1.782 1.801 1.822 1.849 1.880 1.918 1.972 2.041 2.124 2.212 2.292 2.361 2.405 2.431 2.445 2.462 2.470 2.480 2.490 2.502 2.516 2.533 2.557 2.583 2.606 2.648 2.706 2.799 2.921 3.093 3.271 3.421 3.473 3.422 3.288 3.130 2.997 2.913 2.856 2.840 2.840 2.864 2.875 2.896 2.913 2.929 2.931 2.934 2.939 2.952 2.970 2.997 3.051 3.111 3.148 3.146 3.088 2.985 2.862 2.782 2.714 2.711 2.795 2.963 3.236 3.592 3.983 4.257 4.301 4.162 3.970 3.844 3.750 3.755 3.832 3.933 4.023 4.071 4.045 3.959 3.843 3.718 3.587 3.466 3.395 3.372 3.361 1.500 1.560 1.590 1.603 1.616 1.628 1.636 1.645 1.658 1.666 1.675 1.685 1.696 1.706 1.712 1.714 1.712 1.705 1.702 1.703 1.712 1.725 1.747 1.766 1.785 1.801 1.810 1.813 1.811 1.805 1.797 1.786 1.776 1.769 1.773 1.782 1.803 1.824 1.852 1.884 1.926 1.985 2.058 2.143 2.231 2.307 2.371 2.409 2.432 2.444 2.462 2.470 2.480 2.491 2.503 2.517 2.534 2.561 2.586 2.609 2.654 2.718 2.821 2.953 3.128 3.307 3.447 3.479 3.409 3.270 3.108 2.984 2.905 2.856 2.843 2.844 2.867 2.883 2.905 2.921 2.936 2.938 2.940 2.945 2.957 2.968 2.998 3.050 3.113 3.143 3.135 3.070 2.961 2.842 2.764 2.700 2.700 2.785 2.962 3.231 3.595 3.980 4.250 4.297 4.175 3.996 3.890 3.819 3.838 3.917 4.001 4.055 4.059 3.997 3.893 3.771 3.644 3.530 3.432 3.386 3.371 3.377 1.500 1.557 1.583 1.597 1.613 1.625 1.634 1.643 1.655 1.663 1.672 1.683 1.694 1.704 1.710 1.711 1.709 1.702 1.700 1.703 1.712 1.728 1.750 1.769 1.788 1.802 1.809 1.812 1.809 1.803 1.793 1.782 1.772 1.768 1.773 1.786 1.807 1.827 1.855 1.889 1.934 1.997 2.073 2.161 2.248 2.324 2.383 2.416 2.432 2.445 2.462 2.470 2.480 2.491 2.504 2.518 2.535 2.563 2.587 2.615 2.663 2.733 2.837 2.982 3.154 3.333 3.459 3.473 3.385 3.244 3.087 2.972 2.893 2.850 2.838 2.851 2.868 2.890 2.911 2.929 2.942 2.947 2.950 2.953 2.965 2.978 3.012 3.056 3.114 3.138 3.122 3.049 2.943 2.823 2.746 2.686 2.692 2.781 2.961 3.224 3.599 3.975 4.243 4.296 4.184 4.019 3.944 3.893 3.922 3.996 4.054 4.062 4.029 3.940 3.823 3.698 3.580 3.483 3.411 3.383 3.379 3.411 1.500 1.552 1.575 1.591 1.608 1.622 1.631 1.641 1.653 1.660 1.670 1.681 1.692 1.702 1.707 1.708 1.705 1.700 1.699 1.703 1.714 1.732 1.754 1.771 1.790 1.802 1.809 1.810 1.806 1.799 1.788 1.778 1.769 1.767 1.773 1.789 1.809 1.829 1.858 1.893 1.942 2.008 2.088 2.178 2.263 2.337 2.391 2.419 2.432 2.446 2.462 2.471 2.480 2.491 2.505 2.520 2.537 2.565 2.588 2.625 2.674 2.752 2.859 3.016 3.191 3.366 3.469 3.461 3.358 3.214 3.065 2.960 2.880 2.847 2.837 2.860 2.873 2.897 2.917 2.937 2.951 2.959 2.963 2.968 2.979 2.992 3.026 3.071 3.116 3.133 3.106 3.024 2.919 2.800 2.727 2.676 2.687 2.782 2.970 3.238 3.606 3.975 4.234 4.293 4.193 4.048 3.999 3.964 3.998 4.060 4.083 4.054 3.981 3.873 3.751 3.632 3.525 3.448 3.400 3.388 3.399 3.463 1.500 1.546 1.568 1.586 1.605 1.620 1.630 1.640 1.651 1.659 1.669 1.679 1.691 1.699 1.704 1.706 1.702 1.698 1.698 1.705 1.716 1.736 1.756 1.774 1.791 1.801 1.807 1.807 1.802 1.796 1.785 1.775 1.766 1.767 1.774 1.792 1.811 1.833 1.862 1.899 1.952 2.021 2.105 2.195 2.278 2.349 2.396 2.421 2.433 2.449 2.462 2.471 2.481 2.492 2.505 2.521 2.545 2.570 2.592 2.630 2.684 2.770 2.885 3.052 3.227 3.393 3.474 3.449 3.334 3.178 3.037 2.939 2.868 2.843 2.838 2.866 2.878 2.903 2.924 2.948 2.963 2.972 2.976 2.983 2.992 3.005 3.041 3.084 3.117 3.125 3.088 2.998 2.891 2.774 2.707 2.668 2.688 2.791 2.988 3.260 3.620 3.981 4.231 4.281 4.200 4.082 4.054 4.029 4.060 4.100 4.085 4.016 3.920 3.801 3.678 3.565 3.482 3.424 3.399 3.401 3.431 3.528 1.500 1.539 1.561 1.581 1.602 1.617 1.629 1.640 1.650 1.658 1.667 1.678 1.690 1.698 1.703 1.704 1.700 1.696 1.698 1.705 1.717 1.738 1.758 1.776 1.792 1.801 1.806 1.804 1.798 1.791 1.780 1.770 1.762 1.765 1.774 1.794 1.813 1.839 1.868 1.907 1.963 2.035 2.121 2.211 2.291 2.358 2.399 2.423 2.437 2.454 2.462 2.471 2.482 2.494 2.507 2.523 2.550 2.574 2.597 2.638 2.697 2.790 2.914 3.088 3.261 3.410 3.468 3.427 3.302 3.143 3.010 2.919 2.858 2.840 2.840 2.868 2.880 2.906 2.933 2.960 2.974 2.985 2.988 2.996 2.994 3.011 3.050 3.094 3.119 3.117 3.068 2.975 2.864 2.747 2.687 2.658 2.686 2.808 3.015 3.290 3.647 4.003 4.249 4.298 4.221 4.122 4.107 4.084 4.103 4.114 4.065 3.961 3.850 3.729 3.614 3.512 3.449 3.412 3.406 3.421 3.475 3.592 1.500 1.533 1.556 1.578 1.601 1.616 1.628 1.639 1.649 1.657 1.666 1.677 1.690 1.698 1.702 1.702 1.697 1.695 1.697 1.706 1.719 1.741 1.760 1.778 1.793 1.801 1.804 1.800 1.795 1.786 1.776 1.766 1.760 1.766 1.778 1.798 1.817 1.843 1.873 1.916 1.975 2.050 2.138 2.226 2.305 2.369 2.405 2.423 2.437 2.453 2.461 2.471 2.482 2.495 2.509 2.526 2.553 2.577 2.604 2.647 2.713 2.814 2.946 3.125 3.296 3.426 3.460 3.398 3.265 3.108 2.985 2.898 2.849 2.840 2.847 2.874 2.886 2.912 2.941 2.968 2.983 2.994 2.995 3.004 3.000 3.021 3.062 3.098 3.117 3.106 3.047 2.949 2.834 2.722 2.672 2.655 2.695 2.833 3.048 3.327 3.686 4.039 4.267 4.323 4.258 4.170 4.161 4.129 4.125 4.098 4.019 3.896 3.777 3.658 3.550 3.474 3.428 3.410 3.418 3.447 3.525 3.642 1.500 1.528 1.553 1.577 1.600 1.615 1.627 1.638 1.648 1.656 1.665 1.677 1.688 1.696 1.700 1.698 1.693 1.693 1.697 1.707 1.723 1.746 1.763 1.781 1.793 1.799 1.800 1.797 1.791 1.781 1.772 1.762 1.759 1.767 1.782 1.802 1.821 1.847 1.879 1.925 1.988 2.066 2.155 2.241 2.318 2.376 2.408 2.422 2.437 2.452 2.460 2.471 2.483 2.496 2.512 2.529 2.557 2.579 2.614 2.661 2.732 2.836 2.980 3.162 3.333 3.443 3.452 3.369 3.230 3.078 2.965 2.877 2.839 2.834 2.854 2.880 2.894 2.917 2.948 2.974 2.988 2.999 3.000 3.008 3.005 3.027 3.065 3.096 3.109 3.090 3.026 2.922 2.805 2.699 2.661 2.659 2.713 2.863 3.086 3.376 3.741 4.098 4.317 4.372 4.311 4.225 4.213 4.161 4.126 4.066 3.961 3.826 3.707 3.597 3.502 3.449 3.417 3.416 3.435 3.476 3.572 3.664 1.500 1.525 1.551 1.576 1.600 1.615 1.626 1.636 1.646 1.655 1.665 1.676 1.687 1.695 1.698 1.695 1.692 1.693 1.698 1.709 1.727 1.749 1.766 1.782 1.793 1.799 1.797 1.793 1.788 1.777 1.769 1.760 1.760 1.768 1.785 1.805 1.826 1.853 1.888 1.937 2.002 2.083 2.173 2.257 2.330 2.381 2.410 2.423 2.439 2.452 2.460 2.471 2.484 2.498 2.514 2.538 2.563 2.583 2.620 2.672 2.752 2.862 3.019 3.200 3.368 3.459 3.447 3.347 3.192 3.045 2.939 2.861 2.831 2.829 2.858 2.881 2.902 2.923 2.955 2.978 2.992 3.002 3.002 3.010 3.008 3.030 3.058 3.085 3.094 3.066 2.997 2.889 2.774 2.678 2.654 2.668 2.737 2.896 3.124 3.432 3.803 4.149 4.371 4.429 4.372 4.285 4.261 4.180 4.106 4.018 3.896 3.755 3.639 3.537 3.466 3.429 3.413 3.425 3.454 3.505 3.608 3.654 1.500 1.523 1.551 1.578 1.600 1.615 1.625 1.634 1.644 1.653 1.663 1.676 1.686 1.694 1.696 1.692 1.690 1.692 1.698 1.711 1.731 1.751 1.768 1.784 1.792 1.796 1.794 1.789 1.783 1.773 1.764 1.757 1.761 1.769 1.788 1.808 1.833 1.861 1.898 1.951 2.019 2.102 2.192 2.273 2.343 2.385 2.412 2.426 2.444 2.452 2.461 2.472 2.485 2.500 2.517 2.544 2.567 2.587 2.628 2.686 2.775 2.893 3.061 3.234 3.391 3.462 3.432 3.316 3.156 3.014 2.916 2.849 2.826 2.825 2.857 2.877 2.907 2.930 2.961 2.983 3.000 3.005 3.010 3.013 3.012 3.032 3.057 3.078 3.080 3.038 2.962 2.854 2.745 2.662 2.656 2.684 2.769 2.937 3.171 3.491 3.869 4.207 4.435 4.496 4.437 4.343 4.298 4.180 4.074 3.959 3.825 3.688 3.582 3.491 3.443 3.421 3.418 3.437 3.473 3.532 3.624 3.611 1.500 1.523 1.553 1.580 1.601 1.615 1.624 1.631 1.642 1.651 1.662 1.675 1.685 1.692 1.693 1.689 1.688 1.691 1.699 1.714 1.736 1.754 1.771 1.784 1.791 1.794 1.790 1.785 1.778 1.769 1.760 1.755 1.761 1.772 1.792 1.811 1.837 1.868 1.908 1.965 2.037 2.123 2.210 2.290 2.356 2.393 2.414 2.428 2.444 2.452 2.462 2.474 2.488 2.503 2.520 2.548 2.570 2.592 2.637 2.701 2.793 2.924 3.102 3.277 3.417 3.462 3.411 3.282 3.120 2.985 2.892 2.835 2.817 2.828 2.862 2.884 2.915 2.940 2.971 2.992 3.007 3.010 3.015 3.008 3.009 3.033 3.057 3.075 3.070 3.019 2.934 2.824 2.719 2.649 2.656 2.696 2.804 2.982 3.218 3.549 3.927 4.271 4.495 4.558 4.497 4.392 4.316 4.169 4.031 3.898 3.751 3.624 3.525 3.458 3.425 3.427 3.432 3.454 3.493 3.553 3.615 3.546 1.500 1.523 1.555 1.583 1.602 1.614 1.623 1.629 1.640 1.650 1.661 1.675 1.686 1.691 1.690 1.685 1.687 1.692 1.701 1.718 1.740 1.757 1.774 1.786 1.791 1.790 1.786 1.781 1.774 1.766 1.756 1.754 1.761 1.776 1.795 1.814 1.841 1.874 1.919 1.981 2.056 2.144 2.229 2.306 2.366 2.399 2.414 2.428 2.444 2.452 2.463 2.475 2.489 2.506 2.529 2.554 2.574 2.600 2.647 2.719 2.816 2.960 3.144 3.317 3.436 3.457 3.388 3.242 3.084 2.960 2.871 2.825 2.814 2.836 2.870 2.891 2.919 2.945 2.976 2.999 3.014 3.016 3.020 3.008 3.013 3.039 3.059 3.072 3.057 2.998 2.904 2.796 2.698 2.643 2.664 2.716 2.841 3.027 3.259 3.600 3.976 4.324 4.546 4.609 4.543 4.422 4.305 4.132 3.972 3.826 3.676 3.571 3.483 3.438 3.419 3.436 3.444 3.470 3.507 3.564 3.586 3.483 1.500 1.524 1.557 1.586 1.604 1.615 1.622 1.628 1.640 1.649 1.661 1.674 1.684 1.689 1.688 1.684 1.687 1.693 1.705 1.723 1.745 1.761 1.776 1.786 1.789 1.786 1.782 1.777 1.770 1.762 1.754 1.754 1.762 1.778 1.798 1.818 1.847 1.882 1.932 1.997 2.075 2.164 2.248 2.321 2.372 2.401 2.414 2.428 2.444 2.452 2.464 2.477 2.491 2.509 2.535 2.558 2.576 2.611 2.661 2.741 2.847 3.001 3.185 3.347 3.442 3.440 3.355 3.199 3.051 2.940 2.856 2.820 2.814 2.842 2.873 2.892 2.920 2.953 2.983 3.007 3.022 3.024 3.027 3.012 3.019 3.039 3.057 3.065 3.043 2.976 2.875 2.770 2.684 2.647 2.681 2.744 2.879 3.067 3.308 3.640 4.009 4.357 4.578 4.641 4.567 4.425 4.275 4.080 3.912 3.762 3.617 3.519 3.454 3.423 3.427 3.451 3.460 3.485 3.518 3.564 3.544 3.439 1.500 1.526 1.560 1.590 1.605 1.616 1.622 1.628 1.640 1.649 1.662 1.674 1.683 1.687 1.685 1.683 1.687 1.694 1.707 1.729 1.749 1.764 1.778 1.785 1.788 1.784 1.779 1.774 1.766 1.758 1.752 1.755 1.763 1.781 1.801 1.823 1.853 1.892 1.945 2.014 2.096 2.185 2.265 2.335 2.376 2.402 2.415 2.431 2.444 2.453 2.465 2.479 2.494 2.511 2.539 2.560 2.579 2.619 2.677 2.766 2.883 3.046 3.227 3.374 3.442 3.414 3.311 3.155 3.014 2.914 2.843 2.817 2.815 2.847 2.876 2.896 2.925 2.961 2.992 3.018 3.033 3.035 3.037 3.019 3.028 3.037 3.054 3.057 3.030 2.955 2.848 2.747 2.674 2.651 2.700 2.775 2.917 3.101 3.353 3.681 4.052 4.382 4.595 4.648 4.558 4.383 4.219 4.013 3.844 3.698 3.563 3.482 3.436 3.420 3.437 3.462 3.471 3.497 3.526 3.556 3.504 3.426 1.500 1.528 1.563 1.593 1.606 1.616 1.622 1.629 1.641 1.651 1.664 1.676 1.683 1.686 1.682 1.681 1.687 1.696 1.711 1.734 1.753 1.769 1.781 1.786 1.786 1.781 1.776 1.770 1.763 1.754 1.750 1.756 1.766 1.785 1.804 1.830 1.861 1.902 1.959 2.031 2.116 2.203 2.283 2.348 2.384 2.404 2.419 2.436 2.444 2.454 2.466 2.480 2.496 2.514 2.542 2.562 2.585 2.630 2.697 2.790 2.921 3.093 3.261 3.390 3.431 3.379 3.261 3.106 2.977 2.885 2.827 2.808 2.816 2.849 2.873 2.901 2.930 2.969 2.999 3.028 3.043 3.045 3.048 3.029 3.035 3.043 3.055 3.052 3.012 2.929 2.820 2.725 2.670 2.660 2.724 2.812 2.959 3.144 3.392 3.716 4.080 4.394 4.596 4.634 4.522 4.322 4.145 3.943 3.778 3.640 3.516 3.454 3.424 3.429 3.452 3.474 3.486 3.509 3.532 3.543 3.476 3.449 1.500 1.530 1.566 1.595 1.607 1.617 1.622 1.632 1.642 1.653 1.667 1.677 1.683 1.683 1.678 1.680 1.687 1.698 1.716 1.740 1.757 1.773 1.783 1.786 1.784 1.779 1.774 1.768 1.760 1.752 1.750 1.757 1.770 1.788 1.807 1.834 1.867 1.912 1.974 2.049 2.137 2.222 2.300 2.357 2.389 2.405 2.419 2.435 2.444 2.454 2.467 2.481 2.498 2.522 2.547 2.566 2.594 2.644 2.719 2.819 2.963 3.141 3.300 3.406 3.420 3.350 3.211 3.062 2.944 2.860 2.815 2.802 2.820 2.854 2.876 2.905 2.934 2.977 3.007 3.039 3.054 3.061 3.060 3.042 3.040 3.047 3.054 3.048 2.993 2.905 2.797 2.711 2.669 2.676 2.751 2.851 2.996 3.187 3.433 3.757 4.095 4.392 4.574 4.590 4.459 4.247 4.063 3.867 3.713 3.589 3.482 3.439 3.422 3.440 3.466 3.485 3.499 3.518 3.538 3.531 3.469 3.504 1.500 1.531 1.568 1.597 1.608 1.618 1.625 1.634 1.645 1.656 1.669 1.678 1.683 1.681 1.678 1.681 1.689 1.702 1.724 1.746 1.761 1.776 1.783 1.786 1.782 1.777 1.773 1.765 1.758 1.751 1.751 1.758 1.772 1.791 1.810 1.839 1.875 1.925 1.990 2.069 2.158 2.241 2.314 2.363 2.391 2.405 2.420 2.435 2.444 2.455 2.469 2.483 2.500 2.527 2.549 2.568 2.607 2.661 2.744 2.854 3.008 3.191 3.336 3.414 3.400 3.310 3.163 3.023 2.918 2.840 2.807 2.802 2.829 2.864 2.880 2.908 2.939 2.981 3.016 3.047 3.062 3.071 3.057 3.043 3.040 3.047 3.053 3.042 2.977 2.882 2.779 2.704 2.671 2.690 2.772 2.886 3.030 3.224 3.468 3.781 4.099 4.378 4.539 4.528 4.377 4.157 3.981 3.795 3.654 3.545 3.457 3.426 3.432 3.456 3.478 3.492 3.510 3.527 3.543 3.523 3.487 3.581 1.500 1.533 1.571 1.599 1.609 1.620 1.627 1.637 1.648 1.660 1.671 1.679 1.682 1.679 1.677 1.682 1.691 1.707 1.730 1.750 1.764 1.778 1.783 1.784 1.780 1.776 1.771 1.763 1.754 1.749 1.752 1.760 1.776 1.794 1.815 1.846 1.885 1.938 2.007 2.089 2.177 2.259 2.329 2.372 2.392 2.407 2.422 2.435 2.446 2.457 2.470 2.485 2.503 2.530 2.551 2.571 2.614 2.677 2.764 2.888 3.054 3.236 3.365 3.414 3.373 3.263 3.113 2.980 2.886 2.821 2.796 2.804 2.836 2.868 2.885 2.911 2.943 2.983 3.023 3.053 3.068 3.077 3.052 3.044 3.036 3.046 3.053 3.033 2.960 2.864 2.767 2.704 2.682 2.714 2.800 2.922 3.058 3.258 3.495 3.794 4.097 4.359 4.499 4.473 4.298 4.075 3.899 3.726 3.599 3.508 3.439 3.423 3.443 3.470 3.489 3.504 3.521 3.537 3.550 3.526 3.528 3.666 1.500 1.534 1.573 1.599 1.610 1.621 1.630 1.640 1.652 1.664 1.674 1.680 1.681 1.677 1.677 1.683 1.695 1.712 1.735 1.754 1.767 1.779 1.783 1.782 1.777 1.774 1.769 1.761 1.751 1.747 1.752 1.763 1.778 1.797 1.823 1.854 1.896 1.953 2.025 2.110 2.196 2.275 2.340 2.377 2.395 2.410 2.427 2.436 2.446 2.458 2.472 2.488 2.511 2.536 2.554 2.577 2.624 2.695 2.789 2.926 3.099 3.271 3.384 3.409 3.348 3.216 3.067 2.943 2.858 2.806 2.790 2.805 2.839 2.868 2.889 2.916 2.949 2.988 3.031 3.059 3.071 3.078 3.048 3.043 3.039 3.049 3.059 3.024 2.945 2.846 2.760 2.704 2.695 2.742 2.836 2.964 3.097 3.293 3.523 3.799 4.091 4.334 4.449 4.400 4.214 4.000 3.827 3.665 3.552 3.478 3.426 3.434 3.459 3.482 3.496 3.514 3.532 3.546 3.557 3.540 3.587 3.743 1.500 1.534 1.576 1.599 1.611 1.624 1.633 1.644 1.656 1.668 1.677 1.680 1.679 1.675 1.678 1.685 1.698 1.718 1.742 1.758 1.770 1.780 1.782 1.779 1.775 1.772 1.765 1.757 1.749 1.747 1.752 1.765 1.781 1.800 1.827 1.862 1.908 1.970 2.045 2.132 2.215 2.291 2.348 2.381 2.396 2.411 2.428 2.436 2.447 2.460 2.474 2.491 2.517 2.539 2.556 2.585 2.637 2.715 2.818 2.965 3.145 3.295 3.387 3.388 3.312 3.169 3.025 2.913 2.836 2.797 2.788 2.809 2.843 2.863 2.891 2.922 2.961 2.997 3.038 3.064 3.074 3.077 3.047 3.040 3.039 3.048 3.056 3.015 2.930 2.831 2.757 2.712 2.715 2.774 2.875 3.003 3.134 3.316 3.541 3.806 4.088 4.316 4.417 4.337 4.141 3.931 3.764 3.612 3.510 3.449 3.423 3.445 3.473 3.493 3.508 3.521 3.540 3.556 3.565 3.564 3.653 3.799 1.500 1.535 1.579 1.599 1.613 1.627 1.637 1.647 1.660 1.670 1.677 1.680 1.677 1.675 1.679 1.688 1.704 1.725 1.746 1.761 1.773 1.780 1.780 1.776 1.773 1.770 1.763 1.755 1.748 1.748 1.753 1.767 1.784 1.804 1.833 1.871 1.922 1.988 2.068 2.155 2.235 2.307 2.354 2.382 2.397 2.411 2.427 2.437 2.449 2.462 2.477 2.494 2.521 2.541 2.559 2.597 2.655 2.734 2.849 3.005 3.185 3.319 3.385 3.359 3.265 3.119 2.984 2.886 2.815 2.784 2.789 2.818 2.853 2.868 2.895 2.927 2.968 3.006 3.044 3.068 3.076 3.076 3.048 3.040 3.039 3.048 3.051 3.002 2.915 2.819 2.754 2.722 2.740 2.811 2.919 3.041 3.171 3.341 3.560 3.817 4.089 4.294 4.375 4.278 4.082 3.875 3.714 3.571 3.482 3.433 3.434 3.460 3.485 3.499 3.517 3.526 3.546 3.564 3.575 3.597 3.714 3.822 1.500 1.535 1.581 1.600 1.615 1.630 1.641 1.651 1.664 1.673 1.677 1.678 1.675 1.675 1.681 1.692 1.709 1.731 1.750 1.762 1.774 1.778 1.777 1.773 1.771 1.767 1.760 1.752 1.746 1.749 1.756 1.770 1.788 1.809 1.840 1.880 1.937 2.007 2.091 2.178 2.257 2.324 2.363 2.383 2.398 2.413 2.427 2.438 2.450 2.464 2.480 2.503 2.527 2.544 2.565 2.607 2.673 2.759 2.887 3.052 3.219 3.336 3.376 3.331 3.211 3.067 2.943 2.855 2.799 2.778 2.792 2.825 2.855 2.873 2.900 2.933 2.973 3.012 3.047 3.069 3.082 3.064 3.044 3.035 3.037 3.052 3.045 2.988 2.899 2.811 2.755 2.737 2.772 2.843 2.966 3.078 3.209 3.372 3.576 3.831 4.091 4.288 4.343 4.230 4.034 3.826 3.673 3.541 3.465 3.429 3.445 3.474 3.494 3.509 3.522 3.533 3.555 3.575 3.590 3.635 3.758 3.808 1.500 1.537 1.584 1.602 1.618 1.633 1.645 1.655 1.667 1.675 1.677 1.676 1.674 1.675 1.682 1.695 1.714 1.737 1.753 1.764 1.773 1.776 1.774 1.771 1.769 1.765 1.757 1.749 1.745 1.749 1.758 1.772 1.790 1.816 1.850 1.894 1.953 2.027 2.113 2.198 2.275 2.335 2.369 2.386 2.401 2.418 2.427 2.438 2.451 2.466 2.483 2.508 2.530 2.547 2.574 2.622 2.689 2.787 2.927 3.100 3.246 3.342 3.353 3.291 3.159 3.019 2.907 2.824 2.780 2.775 2.795 2.831 2.853 2.881 2.909 2.944 2.982 3.020 3.051 3.070 3.081 3.052 3.036 3.022 3.031 3.051 3.034 2.970 2.883 2.808 2.760 2.756 2.802 2.875 3.002 3.106 3.243 3.401 3.597 3.847 4.095 4.282 4.306 4.186 3.989 3.782 3.637 3.519 3.456 3.439 3.460 3.485 3.499 3.517 3.526 3.547 3.566 3.588 3.609 3.674 3.781 3.773 1.500 1.538 1.585 1.603 1.621 1.637 1.648 1.658 1.670 1.676 1.676 1.674 1.672 1.675 1.684 1.699 1.720 1.742 1.756 1.767 1.774 1.774 1.772 1.770 1.768 1.761 1.754 1.747 1.745 1.749 1.761 1.776 1.795 1.823 1.859 1.907 1.971 2.048 2.135 2.218 2.291 2.344 2.373 2.387 2.401 2.418 2.427 2.439 2.452 2.468 2.490 2.514 2.533 2.550 2.587 2.642 2.714 2.825 2.974 3.149 3.278 3.346 3.332 3.239 3.103 2.972 2.875 2.801 2.768 2.775 2.801 2.839 2.858 2.889 2.917 2.950 2.989 3.029 3.058 3.073 3.079 3.044 3.028 3.018 3.029 3.047 3.017 2.948 2.866 2.801 2.764 2.774 2.833 2.909 3.040 3.141 3.273 3.426 3.616 3.860 4.101 4.267 4.269 4.141 3.942 3.740 3.606 3.504 3.456 3.451 3.473 3.494 3.509 3.522 3.533 3.557 3.576 3.600 3.630 3.707 3.781 3.732 1.500 1.541 1.586 1.603 1.624 1.641 1.651 1.661 1.672 1.675 1.675 1.672 1.671 1.677 1.687 1.703 1.726 1.746 1.759 1.769 1.774 1.773 1.770 1.768 1.766 1.759 1.752 1.746 1.746 1.754 1.766 1.782 1.801 1.831 1.870 1.922 1.990 2.071 2.159 2.240 2.309 2.354 2.375 2.388 2.401 2.417 2.427 2.440 2.454 2.470 2.496 2.519 2.535 2.554 2.598 2.663 2.745 2.868 3.025 3.190 3.298 3.336 3.296 3.179 3.043 2.923 2.841 2.783 2.761 2.777 2.807 2.843 2.862 2.890 2.920 2.951 2.995 3.040 3.070 3.080 3.079 3.038 3.021 3.013 3.027 3.033 2.996 2.924 2.851 2.798 2.772 2.796 2.866 2.946 3.077 3.176 3.306 3.446 3.634 3.870 4.104 4.246 4.236 4.100 3.894 3.698 3.578 3.489 3.465 3.465 3.482 3.499 3.517 3.526 3.547 3.568 3.588 3.614 3.651 3.730 3.761 3.688 1.500 1.543 1.585 1.604 1.625 1.644 1.653 1.663 1.673 1.674 1.673 1.670 1.671 1.678 1.690 1.709 1.732 1.749 1.759 1.769 1.772 1.771 1.769 1.767 1.764 1.757 1.750 1.744 1.747 1.756 1.769 1.786 1.809 1.840 1.882 1.938 2.010 2.094 2.181 2.258 2.322 2.360 2.376 2.390 2.404 2.417 2.428 2.441 2.456 2.473 2.500 2.521 2.538 2.563 2.614 2.683 2.780 2.916 3.081 3.225 3.307 3.312 3.250 3.122 2.987 2.878 2.807 2.764 2.760 2.783 2.819 2.847 2.867 2.893 2.926 2.961 3.004 3.049 3.078 3.087 3.068 3.031 3.017 3.007 3.022 3.020 2.977 2.907 2.841 2.796 2.781 2.817 2.891 2.984 3.109 3.206 3.335 3.470 3.652 3.889 4.114 4.223 4.198 4.054 3.846 3.658 3.553 3.481 3.472 3.477 3.489 3.509 3.522 3.533 3.557 3.578 3.600 3.628 3.672 3.738 3.727 3.645 1.500 1.545 1.583 1.604 1.627 1.646 1.654 1.665 1.673 1.673 1.671 1.670 1.671 1.681 1.693 1.714 1.737 1.752 1.762 1.770 1.771 1.769 1.767 1.766 1.761 1.754 1.746 1.743 1.747 1.758 1.773 1.791 1.818 1.852 1.897 1.957 2.031 2.116 2.200 2.274 2.330 2.363 2.379 2.393 2.409 2.418 2.429 2.442 2.458 2.481 2.506 2.525 2.542 2.576 2.636 2.712 2.822 2.968 3.134 3.250 3.305 3.283 3.190 3.058 2.933 2.841 2.781 2.751 2.761 2.787 2.825 2.846 2.870 2.896 2.928 2.969 3.012 3.056 3.083 3.092 3.060 3.026 3.013 3.002 3.014 3.003 2.956 2.892 2.831 2.798 2.798 2.847 2.921 3.020 3.137 3.232 3.359 3.495 3.679 3.912 4.114 4.200 4.160 4.007 3.798 3.622 3.531 3.485 3.487 3.492 3.499 3.516 3.524 3.543 3.568 3.588 3.612 3.645 3.688 3.732 3.688 3.606 1.500 1.546 1.579 1.603 1.628 1.647 1.656 1.667 1.673 1.672 1.669 1.668 1.672 1.683 1.698 1.721 1.741 1.755 1.765 1.771 1.769 1.767 1.766 1.764 1.759 1.752 1.744 1.743 1.750 1.762 1.778 1.797 1.826 1.864 1.913 1.977 2.055 2.139 2.221 2.292 2.341 2.364 2.379 2.394 2.409 2.419 2.431 2.444 2.460 2.486 2.510 2.527 2.548 2.595 2.658 2.745 2.870 3.023 3.177 3.269 3.292 3.243 3.127 2.996 2.884 2.807 2.755 2.744 2.763 2.794 2.830 2.850 2.875 2.900 2.931 2.975 3.019 3.063 3.087 3.094 3.053 3.023 3.006 2.997 3.005 2.986 2.935 2.879 2.826 2.803 2.821 2.881 2.954 3.055 3.161 3.257 3.381 3.522 3.712 3.944 4.119 4.194 4.137 3.969 3.760 3.596 3.520 3.490 3.499 3.504 3.509 3.522 3.533 3.555 3.578 3.598 3.626 3.659 3.698 3.713 3.649 3.573 1.500 1.546 1.575 1.602 1.628 1.648 1.656 1.667 1.671 1.670 1.667 1.667 1.674 1.687 1.704 1.727 1.745 1.757 1.766 1.771 1.768 1.766 1.765 1.761 1.756 1.749 1.741 1.743 1.752 1.765 1.782 1.805 1.836 1.877 1.930 1.998 2.078 2.162 2.240 2.305 2.348 2.366 2.381 2.397 2.410 2.420 2.432 2.447 2.468 2.493 2.513 2.530 2.558 2.613 2.683 2.785 2.922 3.083 3.214 3.281 3.273 3.194 3.067 2.940 2.839 2.775 2.738 2.742 2.770 2.803 2.833 2.853 2.878 2.905 2.937 2.981 3.028 3.070 3.093 3.093 3.045 3.015 2.991 2.991 2.994 2.967 2.914 2.861 2.819 2.809 2.841 2.910 2.984 3.084 3.184 3.289 3.405 3.549 3.742 3.965 4.126 4.189 4.119 3.938 3.735 3.579 3.524 3.502 3.512 3.512 3.515 3.524 3.543 3.568 3.588 3.610 3.640 3.671 3.700 3.685 3.612 3.545 1.500 1.543 1.570 1.601 1.628 1.647 1.657 1.666 1.669 1.667 1.665 1.667 1.676 1.689 1.709 1.732 1.748 1.759 1.768 1.770 1.768 1.766 1.764 1.759 1.752 1.744 1.739 1.743 1.753 1.767 1.787 1.815 1.848 1.893 1.950 2.022 2.103 2.184 2.259 2.317 2.352 2.370 2.385 2.402 2.411 2.422 2.435 2.450 2.474 2.497 2.515 2.535 2.572 2.637 2.716 2.830 2.976 3.134 3.234 3.271 3.236 3.132 3.003 2.886 2.803 2.751 2.727 2.743 2.775 2.808 2.833 2.857 2.879 2.906 2.943 2.988 3.036 3.076 3.094 3.078 3.034 3.008 2.986 2.988 2.982 2.949 2.897 2.845 2.813 2.813 2.856 2.929 3.016 3.117 3.214 3.320 3.431 3.577 3.775 3.988 4.145 4.192 4.108 3.919 3.721 3.579 3.530 3.512 3.521 3.518 3.518 3.531 3.555 3.578 3.598 3.622 3.654 3.678 3.693 3.653 3.580 3.524 1.500 1.539 1.566 1.600 1.629 1.647 1.657 1.664 1.666 1.664 1.663 1.667 1.678 1.693 1.715 1.736 1.751 1.762 1.769 1.770 1.767 1.765 1.762 1.756 1.749 1.741 1.739 1.743 1.755 1.771 1.791 1.822 1.859 1.908 1.971 2.047 2.129 2.207 2.277 2.326 2.355 2.371 2.386 2.403 2.412 2.424 2.437 2.457 2.481 2.502 2.518 2.541 2.592 2.661 2.753 2.880 3.031 3.175 3.252 3.260 3.191 3.069 2.942 2.838 2.772 2.728 2.722 2.746 2.780 2.816 2.840 2.861 2.881 2.906 2.945 2.991 3.041 3.078 3.095 3.066 3.025 3.005 2.983 2.982 2.967 2.928 2.881 2.834 2.813 2.827 2.879 2.953 3.047 3.144 3.230 3.340 3.456 3.604 3.808 4.009 4.164 4.201 4.098 3.906 3.709 3.582 3.532 3.523 3.525 3.516 3.518 3.540 3.567 3.588 3.610 3.638 3.671 3.680 3.677 3.621 3.554 3.515 1.500 1.534 1.565 1.602 1.629 1.647 1.656 1.662 1.664 1.661 1.661 1.668 1.680 1.697 1.721 1.740 1.754 1.764 1.771 1.770 1.768 1.766 1.760 1.753 1.745 1.737 1.739 1.746 1.759 1.776 1.798 1.830 1.871 1.923 1.991 2.070 2.153 2.230 2.295 2.337 2.358 2.373 2.387 2.403 2.414 2.426 2.440 2.463 2.485 2.504 2.522 2.553 2.614 2.690 2.796 2.933 3.087 3.206 3.254 3.231 3.138 3.009 2.888 2.797 2.745 2.715 2.723 2.754 2.789 2.820 2.844 2.866 2.886 2.908 2.947 2.994 3.047 3.079 3.089 3.053 3.015 2.998 2.983 2.978 2.953 2.910 2.863 2.823 2.814 2.840 2.902 2.978 3.077 3.171 3.255 3.359 3.482 3.622 3.823 4.025 4.172 4.201 4.088 3.900 3.711 3.590 3.536 3.528 3.525 3.508 3.523 3.551 3.577 3.598 3.622 3.650 3.677 3.676 3.654 3.594 3.539 3.524 1.500 1.530 1.566 1.605 1.631 1.648 1.656 1.659 1.660 1.658 1.659 1.669 1.682 1.702 1.726 1.744 1.757 1.767 1.771 1.770 1.769 1.765 1.758 1.750 1.740 1.735 1.739 1.750 1.763 1.781 1.805 1.839 1.883 1.940 2.012 2.093 2.175 2.250 2.309 2.345 2.360 2.375 2.390 2.404 2.416 2.428 2.447 2.470 2.490 2.508 2.529 2.571 2.636 2.725 2.844 2.989 3.137 3.223 3.245 3.187 3.076 2.948 2.837 2.762 2.717 2.706 2.725 2.759 2.793 2.820 2.846 2.867 2.885 2.911 2.949 2.997 3.048 3.076 3.070 3.034 3.004 2.986 2.979 2.971 2.941 2.896 2.849 2.817 2.816 2.850 2.917 3.003 3.105 3.191 3.279 3.382 3.507 3.644 3.832 4.027 4.161 4.183 4.069 3.888 3.723 3.601 3.543 3.532 3.527 3.507 3.533 3.563 3.587 3.612 3.635 3.662 3.678 3.666 3.631 3.575 3.537 3.556 1.500 1.528 1.570 1.610 1.634 1.648 1.655 1.656 1.657 1.656 1.659 1.670 1.686 1.708 1.730 1.747 1.758 1.769 1.771 1.770 1.768 1.763 1.755 1.745 1.736 1.734 1.739 1.751 1.766 1.785 1.814 1.850 1.896 1.957 2.032 2.114 2.196 2.266 2.318 2.348 2.363 2.378 2.396 2.406 2.417 2.430 2.452 2.474 2.493 2.512 2.541 2.598 2.671 2.771 2.900 3.046 3.170 3.230 3.221 3.136 3.014 2.892 2.797 2.738 2.700 2.704 2.730 2.764 2.799 2.827 2.848 2.866 2.884 2.916 2.955 3.003 3.050 3.072 3.055 3.022 3.003 2.974 2.970 2.959 2.928 2.887 2.839 2.815 2.826 2.868 2.939 3.032 3.133 3.207 3.306 3.407 3.532 3.662 3.835 4.016 4.138 4.147 4.043 3.880 3.734 3.611 3.551 3.539 3.530 3.514 3.544 3.573 3.597 3.624 3.648 3.670 3.674 3.653 3.612 3.567 3.550 3.616 1.500 1.529 1.577 1.616 1.637 1.650 1.654 1.654 1.655 1.655 1.661 1.673 1.691 1.714 1.734 1.750 1.762 1.770 1.771 1.769 1.766 1.760 1.750 1.739 1.732 1.733 1.742 1.754 1.769 1.790 1.821 1.859 1.909 1.974 2.053 2.136 2.216 2.282 2.328 2.349 2.364 2.379 2.396 2.407 2.419 2.437 2.459 2.479 2.497 2.518 2.559 2.622 2.707 2.821 2.960 3.105 3.197 3.228 3.181 3.079 2.953 2.839 2.759 2.709 2.691 2.706 2.739 2.773 2.802 2.833 2.851 2.867 2.886 2.921 2.962 3.010 3.051 3.070 3.044 3.010 2.996 2.974 2.964 2.946 2.912 2.870 2.827 2.814 2.839 2.892 2.963 3.061 3.163 3.237 3.328 3.429 3.549 3.663 3.821 3.983 4.093 4.096 4.005 3.876 3.743 3.623 3.560 3.546 3.535 3.526 3.558 3.584 3.611 3.636 3.661 3.683 3.666 3.639 3.601 3.571 3.582 3.705 1.500 1.533 1.586 1.623 1.641 1.652 1.653 1.651 1.653 1.654 1.663 1.676 1.696 1.719 1.737 1.751 1.763 1.769 1.769 1.768 1.764 1.756 1.745 1.734 1.729 1.733 1.744 1.758 1.774 1.796 1.827 1.868 1.922 1.992 2.072 2.156 2.233 2.294 2.334 2.351 2.365 2.382 2.396 2.407 2.420 2.441 2.462 2.482 2.501 2.528 2.586 2.658 2.756 2.879 3.020 3.149 3.212 3.210 3.132 3.015 2.894 2.794 2.731 2.687 2.686 2.710 2.747 2.781 2.810 2.836 2.853 2.867 2.889 2.925 2.968 3.015 3.052 3.066 3.033 2.998 2.983 2.966 2.953 2.929 2.893 2.851 2.817 2.816 2.853 2.918 2.990 3.091 3.188 3.262 3.348 3.450 3.563 3.660 3.797 3.936 4.031 4.037 3.967 3.868 3.746 3.633 3.572 3.555 3.548 3.541 3.571 3.596 3.623 3.648 3.669 3.682 3.655 3.626 3.598 3.589 3.632 3.819 1.500 1.538 1.595 1.628 1.643 1.652 1.651 1.649 1.652 1.655 1.665 1.681 1.703 1.724 1.739 1.752 1.763 1.767 1.766 1.765 1.759 1.750 1.738 1.729 1.728 1.736 1.748 1.761 1.778 1.805 1.837 1.880 1.938 2.011 2.092 2.176 2.251 2.309 2.338 2.354 2.370 2.387 2.397 2.408 2.425 2.446 2.465 2.485 2.507 2.545 2.609 2.695 2.806 2.939 3.081 3.184 3.217 3.174 3.073 2.950 2.835 2.750 2.698 2.675 2.686 2.719 2.759 2.791 2.820 2.840 2.854 2.868 2.893 2.930 2.977 3.026 3.055 3.052 3.021 2.991 2.968 2.954 2.938 2.910 2.877 2.835 2.812 2.825 2.868 2.938 3.023 3.123 3.211 3.290 3.374 3.473 3.576 3.650 3.765 3.886 3.966 3.977 3.944 3.869 3.751 3.643 3.584 3.564 3.566 3.559 3.585 3.611 3.635 3.659 3.682 3.676 3.643 3.618 3.606 3.621 3.702 3.951 1.500 1.544 1.603 1.631 1.644 1.651 1.648 1.647 1.651 1.657 1.669 1.687 1.709 1.729 1.742 1.753 1.762 1.764 1.763 1.760 1.753 1.744 1.732 1.725 1.727 1.738 1.749 1.763 1.783 1.811 1.846 1.893 1.956 2.032 2.115 2.196 2.266 2.317 2.341 2.355 2.370 2.387 2.398 2.409 2.429 2.450 2.469 2.489 2.517 2.569 2.642 2.741 2.862 2.998 3.125 3.191 3.194 3.121 3.009 2.888 2.785 2.716 2.675 2.669 2.690 2.727 2.763 2.796 2.828 2.845 2.861 2.874 2.904 2.944 2.992 3.040 3.063 3.043 3.008 2.985 2.952 2.942 2.925 2.893 2.859 2.823 2.812 2.839 2.890 2.959 3.052 3.149 3.227 3.315 3.396 3.490 3.579 3.634 3.728 3.832 3.904 3.927 3.922 3.862 3.758 3.655 3.597 3.580 3.581 3.574 3.598 3.623 3.646 3.666 3.681 3.664 3.632 3.618 3.625 3.668 3.791 4.088 1.500 1.550 1.608 1.631 1.643 1.648 1.644 1.645 1.651 1.660 1.674 1.694 1.714 1.732 1.742 1.753 1.758 1.760 1.759 1.756 1.748 1.737 1.726 1.722 1.726 1.739 1.750 1.766 1.789 1.820 1.858 1.910 1.977 2.055 2.138 2.215 2.278 2.322 2.342 2.358 2.374 2.388 2.398 2.414 2.434 2.452 2.472 2.494 2.532 2.595 2.681 2.791 2.920 3.057 3.157 3.193 3.155 3.057 2.940 2.826 2.739 2.685 2.658 2.666 2.697 2.739 2.771 2.805 2.832 2.848 2.862 2.880 2.915 2.958 3.007 3.050 3.066 3.035 2.997 2.980 2.951 2.936 2.912 2.877 2.843 2.812 2.812 2.851 2.914 2.987 3.089 3.187 3.259 3.336 3.417 3.506 3.579 3.616 3.692 3.783 3.852 3.900 3.915 3.864 3.766 3.668 3.609 3.599 3.598 3.589 3.613 3.634 3.656 3.676 3.675 3.651 3.625 3.629 3.656 3.730 3.896 4.216 1.500 1.554 1.610 1.629 1.640 1.643 1.641 1.643 1.653 1.664 1.680 1.701 1.719 1.734 1.744 1.753 1.755 1.756 1.754 1.749 1.740 1.729 1.721 1.721 1.729 1.741 1.753 1.771 1.798 1.831 1.873 1.929 2.001 2.081 2.164 2.238 2.295 2.328 2.346 2.361 2.379 2.388 2.399 2.418 2.437 2.456 2.476 2.504 2.555 2.627 2.725 2.844 2.976 3.100 3.163 3.167 3.097 2.988 2.870 2.769 2.700 2.658 2.648 2.667 2.704 2.745 2.778 2.815 2.835 2.846 2.861 2.885 2.925 2.974 3.024 3.059 3.058 3.024 2.991 2.970 2.945 2.924 2.900 2.864 2.829 2.806 2.818 2.862 2.931 3.017 3.123 3.216 3.287 3.357 3.438 3.522 3.578 3.600 3.662 3.743 3.818 3.892 3.921 3.872 3.780 3.681 3.625 3.614 3.613 3.602 3.625 3.646 3.664 3.680 3.663 3.641 3.625 3.648 3.700 3.805 4.011 4.324 1.500 1.556 1.609 1.624 1.634 1.638 1.638 1.643 1.655 1.667 1.685 1.706 1.723 1.735 1.745 1.751 1.752 1.751 1.748 1.742 1.734 1.723 1.718 1.721 1.731 1.742 1.756 1.775 1.805 1.841 1.890 1.953 2.028 2.110 2.189 2.257 2.306 2.331 2.347 2.361 2.379 2.389 2.404 2.422 2.440 2.459 2.481 2.518 2.586 2.667 2.774 2.899 3.030 3.132 3.164 3.126 3.032 2.920 2.809 2.724 2.672 2.638 2.645 2.675 2.718 2.754 2.788 2.821 2.839 2.849 2.863 2.892 2.934 2.987 3.040 3.068 3.051 3.015 2.986 2.958 2.938 2.913 2.886 2.853 2.818 2.805 2.830 2.883 2.953 3.049 3.150 3.236 3.313 3.379 3.457 3.538 3.567 3.580 3.635 3.708 3.801 3.889 3.925 3.881 3.792 3.692 3.640 3.627 3.618 3.616 3.635 3.655 3.674 3.673 3.650 3.636 3.636 3.680 3.757 3.892 4.130 4.411 1.500 1.557 1.605 1.619 1.628 1.633 1.636 1.644 1.658 1.672 1.692 1.711 1.726 1.735 1.745 1.747 1.748 1.746 1.742 1.735 1.725 1.717 1.715 1.721 1.733 1.744 1.760 1.782 1.814 1.854 1.908 1.978 2.056 2.138 2.213 2.274 2.315 2.334 2.349 2.363 2.379 2.389 2.407 2.425 2.443 2.464 2.492 2.541 2.615 2.709 2.824 2.952 3.071 3.142 3.142 3.072 2.964 2.851 2.751 2.683 2.642 2.627 2.646 2.683 2.728 2.765 2.799 2.824 2.839 2.849 2.867 2.903 2.950 3.002 3.052 3.073 3.043 3.005 2.975 2.945 2.931 2.905 2.876 2.841 2.810 2.807 2.844 2.904 2.975 3.078 3.178 3.258 3.335 3.397 3.466 3.541 3.556 3.560 3.611 3.686 3.796 3.893 3.927 3.888 3.799 3.704 3.647 3.639 3.626 3.626 3.646 3.663 3.678 3.662 3.640 3.639 3.658 3.722 3.824 3.989 4.244 4.481 1.500 1.557 1.599 1.613 1.622 1.628 1.634 1.644 1.660 1.677 1.698 1.716 1.729 1.737 1.744 1.744 1.743 1.740 1.734 1.727 1.717 1.712 1.714 1.724 1.737 1.748 1.765 1.790 1.824 1.869 1.929 2.004 2.085 2.166 2.237 2.291 2.321 2.336 2.350 2.365 2.379 2.394 2.411 2.429 2.447 2.470 2.506 2.572 2.652 2.756 2.878 3.005 3.104 3.138 3.103 3.010 2.897 2.789 2.706 2.655 2.623 2.625 2.654 2.696 2.736 2.771 2.806 2.825 2.834 2.849 2.874 2.917 2.969 3.021 3.060 3.071 3.031 2.992 2.965 2.939 2.922 2.900 2.866 2.831 2.805 2.811 2.856 2.926 3.002 3.112 3.210 3.285 3.356 3.416 3.470 3.535 3.541 3.540 3.586 3.674 3.790 3.891 3.918 3.882 3.792 3.706 3.647 3.650 3.637 3.639 3.657 3.674 3.672 3.649 3.635 3.645 3.691 3.774 3.901 4.094 4.349 4.536 1.500 1.556 1.592 1.607 1.616 1.624 1.634 1.647 1.664 1.683 1.703 1.719 1.730 1.737 1.741 1.740 1.738 1.733 1.728 1.720 1.712 1.710 1.715 1.727 1.738 1.752 1.771 1.800 1.837 1.887 1.953 2.031 2.114 2.191 2.256 2.302 2.324 2.338 2.352 2.369 2.379 2.396 2.414 2.432 2.453 2.480 2.529 2.600 2.692 2.806 2.930 3.048 3.120 3.123 3.056 2.948 2.837 2.737 2.668 2.626 2.612 2.628 2.664 2.708 2.744 2.781 2.811 2.828 2.836 2.850 2.882 2.931 2.987 3.039 3.064 3.053 3.011 2.977 2.949 2.930 2.911 2.889 2.860 2.824 2.803 2.819 2.868 2.941 3.030 3.136 3.228 3.307 3.374 3.436 3.485 3.533 3.528 3.522 3.561 3.657 3.773 3.868 3.897 3.862 3.783 3.702 3.652 3.659 3.647 3.650 3.665 3.679 3.663 3.642 3.638 3.662 3.732 3.838 3.986 4.198 4.433 4.562 1.500 1.553 1.584 1.600 1.610 1.622 1.634 1.648 1.667 1.688 1.707 1.721 1.730 1.736 1.737 1.736 1.732 1.727 1.720 1.711 1.706 1.707 1.718 1.730 1.741 1.757 1.778 1.809 1.850 1.906 1.977 2.058 2.141 2.215 2.275 2.309 2.325 2.338 2.352 2.368 2.383 2.400 2.417 2.437 2.460 2.496 2.560 2.639 2.740 2.859 2.984 3.084 3.121 3.090 3.001 2.887 2.781 2.697 2.642 2.608 2.609 2.636 2.677 2.717 2.752 2.792 2.814 2.827 2.836 2.855 2.896 2.947 3.003 3.051 3.068 3.040 2.999 2.965 2.928 2.919 2.902 2.879 2.848 2.814 2.805 2.834 2.890 2.962 3.060 3.158 3.240 3.326 3.390 3.447 3.487 3.526 3.512 3.499 3.542 3.635 3.747 3.832 3.860 3.825 3.765 3.694 3.653 3.670 3.662 3.661 3.678 3.676 3.654 3.640 3.646 3.690 3.783 3.911 4.074 4.291 4.485 4.533 1.500 1.548 1.577 1.592 1.605 1.620 1.636 1.651 1.673 1.693 1.710 1.721 1.730 1.735 1.734 1.731 1.727 1.721 1.713 1.705 1.702 1.706 1.720 1.732 1.746 1.764 1.787 1.821 1.866 1.928 2.002 2.085 2.165 2.234 2.287 2.312 2.326 2.338 2.353 2.367 2.384 2.403 2.421 2.443 2.470 2.518 2.588 2.678 2.788 2.910 3.027 3.101 3.111 3.050 2.945 2.831 2.731 2.659 2.614 2.598 2.612 2.646 2.689 2.727 2.765 2.799 2.815 2.823 2.837 2.865 2.914 2.970 3.025 3.063 3.068 3.025 2.982 2.950 2.923 2.913 2.899 2.872 2.840 2.811 2.811 2.849 2.912 2.986 3.094 3.192 3.270 3.346 3.407 3.460 3.487 3.516 3.496 3.479 3.525 3.612 3.716 3.786 3.813 3.788 3.738 3.682 3.654 3.681 3.674 3.670 3.685 3.669 3.648 3.645 3.669 3.737 3.848 3.989 4.159 4.359 4.495 4.442 1.500 1.543 1.571 1.586 1.602 1.620 1.638 1.655 1.678 1.698 1.712 1.721 1.729 1.732 1.731 1.727 1.722 1.715 1.707 1.699 1.699 1.707 1.721 1.735 1.751 1.771 1.800 1.836 1.885 1.952 2.029 2.110 2.186 2.249 2.295 2.315 2.327 2.341 2.356 2.371 2.388 2.406 2.426 2.449 2.486 2.543 2.622 2.723 2.840 2.964 3.064 3.106 3.081 2.998 2.886 2.779 2.690 2.629 2.596 2.593 2.617 2.657 2.698 2.737 2.777 2.804 2.816 2.823 2.840 2.876 2.933 2.991 3.044 3.070 3.054 3.008 2.965 2.939 2.919 2.907 2.892 2.868 2.835 2.809 2.816 2.860 2.927 3.014 3.124 3.220 3.293 3.362 3.424 3.473 3.484 3.504 3.476 3.464 3.504 3.584 3.675 3.739 3.762 3.752 3.713 3.671 3.658 3.695 3.688 3.682 3.682 3.662 3.649 3.655 3.700 3.797 3.920 4.068 4.232 4.395 4.457 4.301 1.500 1.538 1.566 1.582 1.601 1.622 1.640 1.660 1.684 1.702 1.714 1.722 1.728 1.729 1.727 1.723 1.718 1.709 1.700 1.695 1.698 1.711 1.725 1.740 1.757 1.780 1.811 1.851 1.907 1.977 2.057 2.137 2.209 2.267 2.299 2.315 2.327 2.342 2.355 2.372 2.391 2.410 2.432 2.460 2.508 2.573 2.662 2.772 2.890 3.004 3.078 3.093 3.038 2.940 2.830 2.730 2.655 2.603 2.585 2.594 2.625 2.668 2.708 2.749 2.785 2.806 2.817 2.823 2.847 2.893 2.954 3.013 3.059 3.075 3.040 2.993 2.952 2.926 2.914 2.902 2.884 2.858 2.826 2.811 2.831 2.883 2.950 3.048 3.150 3.238 3.312 3.375 3.432 3.475 3.478 3.493 3.462 3.452 3.487 3.559 3.635 3.694 3.720 3.718 3.691 3.664 3.664 3.707 3.697 3.690 3.676 3.658 3.655 3.681 3.749 3.860 3.994 4.138 4.284 4.393 4.375 4.135 1.500 1.535 1.563 1.579 1.602 1.624 1.643 1.665 1.689 1.705 1.714 1.723 1.728 1.727 1.725 1.720 1.713 1.704 1.695 1.693 1.699 1.714 1.728 1.745 1.764 1.792 1.825 1.870 1.931 2.005 2.085 2.162 2.228 2.279 2.302 2.315 2.328 2.344 2.358 2.376 2.395 2.415 2.439 2.475 2.532 2.608 2.706 2.821 2.938 3.034 3.075 3.056 2.980 2.876 2.773 2.686 2.623 2.585 2.579 2.600 2.637 2.678 2.715 2.760 2.791 2.807 2.814 2.827 2.860 2.915 2.976 3.036 3.071 3.074 3.025 2.978 2.940 2.907 2.903 2.897 2.874 2.846 2.816 2.813 2.845 2.906 2.976 3.081 3.174 3.248 3.329 3.386 3.439 3.473 3.469 3.479 3.453 3.441 3.472 3.539 3.604 3.657 3.693 3.697 3.681 3.668 3.678 3.722 3.707 3.688 3.669 3.658 3.666 3.712 3.809 3.928 4.068 4.196 4.309 4.354 4.257 3.968 1.500 1.533 1.561 1.579 1.605 1.628 1.648 1.670 1.694 1.709 1.716 1.724 1.727 1.726 1.723 1.717 1.708 1.699 1.692 1.694 1.705 1.720 1.734 1.751 1.772 1.802 1.839 1.890 1.958 2.035 2.113 2.188 2.250 2.287 2.304 2.315 2.328 2.344 2.361 2.380 2.400 2.422 2.449 2.497 2.561 2.647 2.754 2.871 2.976 3.042 3.055 3.005 2.914 2.812 2.717 2.645 2.594 2.573 2.580 2.609 2.649 2.689 2.731 2.771 2.796 2.807 2.810 2.833 2.876 2.940 3.004 3.058 3.082 3.072 3.013 2.961 2.929 2.906 2.899 2.890 2.864 2.835 2.810 2.815 2.858 2.927 3.002 3.110 3.203 3.270 3.340 3.396 3.446 3.469 3.458 3.463 3.440 3.429 3.458 3.519 3.582 3.637 3.677 3.687 3.681 3.676 3.689 3.730 3.709 3.682 3.664 3.663 3.689 3.758 3.869 3.995 4.131 4.235 4.302 4.284 4.118 3.821 1.500 1.533 1.560 1.581 1.608 1.633 1.653 1.676 1.699 1.711 1.718 1.725 1.727 1.725 1.721 1.714 1.704 1.694 1.691 1.695 1.710 1.724 1.739 1.758 1.782 1.814 1.856 1.913 1.985 2.063 2.140 2.210 2.265 2.292 2.305 2.315 2.329 2.347 2.365 2.384 2.405 2.429 2.465 2.521 2.594 2.690 2.801 2.914 3.001 3.033 3.012 2.940 2.842 2.748 2.667 2.608 2.572 2.564 2.584 2.621 2.660 2.697 2.743 2.778 2.798 2.809 2.813 2.843 2.896 2.964 3.030 3.075 3.088 3.052 2.993 2.946 2.915 2.904 2.898 2.884 2.860 2.825 2.806 2.818 2.869 2.937 3.027 3.132 3.219 3.291 3.355 3.411 3.456 3.464 3.445 3.447 3.424 3.415 3.448 3.508 3.571 3.636 3.679 3.694 3.695 3.693 3.702 3.733 3.704 3.673 3.662 3.670 3.716 3.814 3.933 4.059 4.181 4.252 4.268 4.193 3.977 3.707 1.500 1.534 1.560 1.585 1.613 1.637 1.658 1.681 1.703 1.712 1.720 1.726 1.726 1.724 1.719 1.710 1.700 1.692 1.691 1.700 1.715 1.729 1.746 1.766 1.794 1.829 1.876 1.940 2.014 2.091 2.167 2.234 2.276 2.296 2.307 2.319 2.335 2.351 2.369 2.389 2.410 2.439 2.481 2.546 2.631 2.736 2.849 2.947 3.008 3.011 2.958 2.870 2.773 2.685 2.617 2.575 2.557 2.564 2.594 2.633 2.675 2.715 2.756 2.784 2.798 2.801 2.819 2.858 2.922 2.989 3.053 3.088 3.089 3.037 2.978 2.935 2.900 2.900 2.898 2.878 2.849 2.814 2.804 2.827 2.885 2.955 3.057 3.153 3.228 3.309 3.367 3.420 3.458 3.459 3.436 3.437 3.409 3.405 3.444 3.503 3.575 3.645 3.692 3.712 3.715 3.710 3.709 3.731 3.692 3.666 3.664 3.690 3.759 3.870 3.996 4.111 4.212 4.246 4.213 4.092 3.850 3.631 1.500 1.536 1.561 1.588 1.616 1.640 1.662 1.684 1.703 1.713 1.722 1.726 1.726 1.721 1.715 1.704 1.695 1.690 1.691 1.705 1.719 1.735 1.753 1.775 1.806 1.846 1.900 1.968 2.043 2.120 2.192 2.252 2.283 2.297 2.306 2.319 2.338 2.356 2.374 2.395 2.418 2.454 2.506 2.580 2.673 2.781 2.885 2.965 2.997 2.969 2.895 2.800 2.712 2.637 2.583 2.553 2.548 2.568 2.604 2.647 2.687 2.728 2.764 2.786 2.796 2.800 2.826 2.876 2.947 3.019 3.074 3.094 3.081 3.019 2.960 2.929 2.906 2.907 2.899 2.874 2.840 2.808 2.804 2.837 2.904 2.977 3.085 3.183 3.252 3.324 3.379 3.431 3.458 3.452 3.425 3.426 3.390 3.393 3.440 3.503 3.587 3.664 3.713 3.739 3.743 3.727 3.712 3.722 3.674 3.664 3.677 3.719 3.814 3.931 4.056 4.156 4.224 4.219 4.143 3.988 3.745 3.586 1.500 1.537 1.561 1.590 1.618 1.643 1.665 1.686 1.702 1.715 1.724 1.726 1.724 1.718 1.709 1.698 1.691 1.688 1.695 1.710 1.724 1.741 1.761 1.786 1.821 1.866 1.927 1.997 2.073 2.149 2.216 2.264 2.285 2.296 2.306 2.324 2.344 2.361 2.380 2.401 2.429 2.470 2.532 2.615 2.716 2.825 2.916 2.972 2.965 2.910 2.824 2.734 2.653 2.591 2.554 2.540 2.549 2.579 2.617 2.659 2.696 2.740 2.770 2.785 2.790 2.804 2.838 2.900 2.974 3.045 3.090 3.100 3.059 2.996 2.943 2.920 2.913 2.914 2.899 2.874 2.835 2.807 2.810 2.852 2.916 3.002 3.110 3.203 3.272 3.338 3.395 3.444 3.457 3.444 3.416 3.416 3.380 3.387 3.439 3.511 3.602 3.684 3.738 3.766 3.764 3.739 3.715 3.713 3.667 3.666 3.694 3.758 3.867 3.992 4.108 4.183 4.218 4.175 4.068 3.887 3.667 3.564 1.500 1.537 1.561 1.591 1.618 1.644 1.665 1.685 1.701 1.714 1.722 1.724 1.721 1.714 1.703 1.692 1.686 1.690 1.701 1.715 1.729 1.748 1.771 1.802 1.841 1.892 1.957 2.028 2.105 2.179 2.237 2.272 2.288 2.297 2.310 2.331 2.347 2.366 2.386 2.409 2.445 2.496 2.566 2.656 2.761 2.857 2.928 2.954 2.918 2.846 2.756 2.674 2.607 2.559 2.534 2.535 2.556 2.590 2.632 2.672 2.712 2.750 2.773 2.782 2.782 2.804 2.852 2.924 3.000 3.067 3.102 3.098 3.041 2.976 2.930 2.909 2.912 2.916 2.897 2.868 2.827 2.809 2.821 2.872 2.938 3.034 3.135 3.219 3.291 3.352 3.406 3.450 3.455 3.436 3.405 3.406 3.372 3.386 3.439 3.524 3.620 3.705 3.764 3.792 3.779 3.742 3.710 3.704 3.664 3.680 3.722 3.813 3.929 4.054 4.156 4.195 4.195 4.119 3.990 3.795 3.612 3.550 1.500 1.535 1.560 1.590 1.618 1.643 1.664 1.682 1.698 1.711 1.718 1.718 1.715 1.707 1.697 1.688 1.684 1.691 1.705 1.719 1.735 1.756 1.783 1.818 1.863 1.921 1.987 2.061 2.135 2.205 2.252 2.276 2.288 2.297 2.314 2.335 2.352 2.371 2.392 2.420 2.462 2.523 2.602 2.698 2.801 2.881 2.928 2.916 2.859 2.776 2.691 2.618 2.563 2.532 2.524 2.536 2.568 2.604 2.644 2.681 2.724 2.755 2.771 2.773 2.780 2.812 2.871 2.951 3.031 3.088 3.106 3.086 3.018 2.957 2.919 2.899 2.911 2.914 2.892 2.861 2.824 2.813 2.837 2.895 2.962 3.064 3.156 3.227 3.308 3.364 3.418 3.455 3.454 3.433 3.401 3.397 3.364 3.386 3.442 3.532 3.635 3.721 3.784 3.807 3.786 3.741 3.701 3.697 3.667 3.694 3.759 3.867 3.993 4.112 4.191 4.199 4.166 4.061 3.915 3.715 3.574 3.533 1.500 1.531 1.559 1.589 1.618 1.642 1.660 1.677 1.693 1.705 1.710 1.710 1.707 1.698 1.690 1.683 1.685 1.695 1.709 1.722 1.741 1.765 1.799 1.839 1.891 1.951 2.022 2.096 2.168 2.226 2.262 2.278 2.287 2.298 2.321 2.338 2.356 2.376 2.401 2.433 2.487 2.557 2.645 2.744 2.830 2.889 2.907 2.868 2.795 2.709 2.632 2.570 2.534 2.516 2.519 2.543 2.578 2.617 2.657 2.698 2.735 2.758 2.766 2.767 2.783 2.825 2.894 2.980 3.057 3.103 3.112 3.066 2.991 2.934 2.911 2.903 2.916 2.912 2.888 2.851 2.821 2.818 2.852 2.909 2.989 3.093 3.183 3.247 3.325 3.380 3.432 3.459 3.452 3.428 3.394 3.388 3.359 3.383 3.449 3.545 3.648 3.738 3.801 3.813 3.781 3.732 3.689 3.695 3.680 3.721 3.814 3.930 4.059 4.166 4.209 4.182 4.122 4.000 3.845 3.650 3.550 3.515 1.500 1.528 1.558 1.590 1.617 1.640 1.657 1.673 1.689 1.696 1.699 1.698 1.695 1.688 1.683 1.683 1.689 1.700 1.714 1.730 1.751 1.778 1.816 1.863 1.921 1.987 2.060 2.133 2.196 2.243 2.268 2.278 2.286 2.303 2.326 2.343 2.362 2.383 2.414 2.454 2.517 2.597 2.689 2.784 2.853 2.884 2.867 2.809 2.729 2.650 2.582 2.533 2.511 2.507 2.521 2.553 2.589 2.627 2.666 2.710 2.741 2.756 2.756 2.760 2.786 2.842 2.922 3.008 3.077 3.110 3.101 3.040 2.967 2.917 2.897 2.903 2.914 2.904 2.879 2.839 2.817 2.822 2.866 2.928 3.019 3.120 3.203 3.272 3.340 3.399 3.449 3.462 3.449 3.421 3.386 3.382 3.357 3.386 3.455 3.555 3.659 3.750 3.808 3.810 3.771 3.719 3.682 3.699 3.694 3.758 3.867 3.995 4.119 4.204 4.219 4.159 4.073 3.938 3.778 3.599 3.531 3.496 1.500 1.526 1.560 1.592 1.618 1.638 1.653 1.667 1.680 1.685 1.685 1.686 1.683 1.680 1.677 1.683 1.692 1.704 1.719 1.737 1.762 1.795 1.838 1.893 1.954 2.024 2.095 2.165 2.219 2.253 2.270 2.277 2.287 2.308 2.330 2.348 2.367 2.394 2.428 2.482 2.553 2.640 2.734 2.812 2.858 2.859 2.818 2.747 2.665 2.596 2.540 2.509 2.496 2.503 2.527 2.561 2.599 2.636 2.683 2.720 2.743 2.751 2.747 2.761 2.798 2.865 2.955 3.039 3.098 3.114 3.090 3.010 2.943 2.905 2.885 2.902 2.907 2.891 2.862 2.825 2.810 2.825 2.880 2.946 3.045 3.143 3.214 3.294 3.354 3.411 3.457 3.464 3.444 3.413 3.378 3.377 3.356 3.393 3.464 3.564 3.667 3.757 3.806 3.800 3.756 3.704 3.679 3.714 3.721 3.811 3.928 4.059 4.169 4.220 4.204 4.122 4.017 3.877 3.717 3.561 3.513 3.475 1.500 1.525 1.563 1.596 1.620 1.637 1.650 1.661 1.670 1.673 1.672 1.673 1.673 1.673 1.678 1.686 1.697 1.710 1.724 1.747 1.776 1.818 1.867 1.926 1.993 2.064 2.133 2.193 2.236 2.258 2.268 2.277 2.294 2.317 2.335 2.353 2.375 2.403 2.448 2.511 2.592 2.685 2.770 2.830 2.850 2.824 2.764 2.686 2.609 2.546 2.507 2.489 2.490 2.507 2.535 2.572 2.611 2.650 2.695 2.726 2.740 2.740 2.743 2.765 2.817 2.897 2.991 3.068 3.111 3.113 3.072 2.983 2.921 2.896 2.886 2.903 2.902 2.877 2.842 2.810 2.804 2.833 2.893 2.968 3.076 3.172 3.236 3.315 3.370 3.426 3.464 3.464 3.441 3.405 3.372 3.376 3.364 3.401 3.474 3.575 3.679 3.765 3.803 3.788 3.742 3.695 3.683 3.727 3.756 3.866 3.994 4.120 4.208 4.230 4.178 4.075 3.957 3.813 3.660 3.533 3.494 3.454 1.500 1.526 1.569 1.601 1.621 1.637 1.646 1.653 1.660 1.661 1.661 1.665 1.668 1.673 1.681 1.691 1.701 1.715 1.732 1.759 1.795 1.844 1.901 1.965 2.033 2.104 2.166 2.214 2.246 2.261 2.266 2.279 2.300 2.323 2.341 2.359 2.386 2.419 2.476 2.547 2.633 2.724 2.792 2.832 2.820 2.774 2.704 2.630 2.565 2.512 2.488 2.479 2.488 2.513 2.544 2.582 2.620 2.668 2.706 2.731 2.736 2.731 2.740 2.774 2.841 2.932 3.023 3.092 3.120 3.104 3.033 2.950 2.898 2.883 2.883 2.902 2.894 2.863 2.822 2.795 2.797 2.836 2.901 2.989 3.097 3.189 3.252 3.329 3.386 3.441 3.471 3.464 3.438 3.401 3.364 3.373 3.372 3.412 3.486 3.586 3.688 3.766 3.795 3.775 3.728 3.691 3.696 3.755 3.806 3.924 4.055 4.168 4.223 4.212 4.137 4.020 3.896 3.752 3.611 3.512 3.476 3.438 1.500 1.530 1.576 1.605 1.623 1.636 1.643 1.646 1.651 1.651 1.653 1.659 1.666 1.677 1.687 1.697 1.708 1.722 1.743 1.776 1.821 1.875 1.937 2.003 2.073 2.140 2.192 2.230 2.251 2.260 2.266 2.285 2.309 2.328 2.346 2.368 2.396 2.440 2.504 2.584 2.672 2.749 2.798 2.813 2.781 2.718 2.644 2.579 2.520 2.485 2.473 2.476 2.493 2.522 2.556 2.595 2.634 2.680 2.713 2.729 2.725 2.727 2.748 2.796 2.878 2.977 3.061 3.115 3.120 3.086 2.998 2.922 2.883 2.878 2.892 2.904 2.891 2.856 2.811 2.787 2.795 2.845 2.914 3.013 3.119 3.201 3.271 3.340 3.403 3.458 3.475 3.463 3.433 3.395 3.358 3.363 3.372 3.417 3.497 3.599 3.700 3.769 3.786 3.760 3.718 3.689 3.705 3.775 3.855 3.984 4.112 4.204 4.229 4.182 4.084 3.957 3.831 3.694 3.569 3.496 3.460 3.430 1.500 1.535 1.582 1.608 1.624 1.635 1.638 1.640 1.642 1.644 1.651 1.659 1.669 1.681 1.695 1.707 1.718 1.733 1.759 1.798 1.849 1.909 1.975 2.042 2.108 2.167 2.213 2.239 2.251 2.256 2.269 2.291 2.314 2.332 2.352 2.376 2.411 2.467 2.538 2.620 2.701 2.760 2.787 2.773 2.725 2.655 2.587 2.529 2.488 2.469 2.464 2.475 2.499 2.531 2.566 2.606 2.653 2.692 2.716 2.722 2.716 2.729 2.761 2.825 2.921 3.020 3.097 3.132 3.117 3.060 2.966 2.900 2.877 2.875 2.895 2.904 2.884 2.843 2.800 2.781 2.798 2.857 2.931 3.037 3.137 3.206 3.288 3.351 3.415 3.465 3.476 3.459 3.426 3.389 3.355 3.361 3.375 3.423 3.509 3.609 3.704 3.763 3.773 3.746 3.713 3.697 3.719 3.804 3.905 4.040 4.161 4.217 4.211 4.140 4.026 3.892 3.767 3.641 3.535 3.482 3.447 3.431 1.500 1.540 1.587 1.609 1.623 1.631 1.633 1.634 1.637 1.643 1.653 1.664 1.677 1.690 1.706 1.718 1.730 1.750 1.780 1.827 1.883 1.947 2.014 2.081 2.140 2.188 2.226 2.243 2.249 2.259 2.277 2.302 2.320 2.338 2.361 2.390 2.434 2.497 2.573 2.655 2.721 2.761 2.757 2.724 2.663 2.594 2.536 2.487 2.462 2.455 2.463 2.482 2.509 2.543 2.578 2.622 2.667 2.698 2.713 2.710 2.711 2.735 2.784 2.863 2.969 3.060 3.124 3.139 3.107 3.024 2.933 2.878 2.868 2.878 2.901 2.902 2.876 2.829 2.792 2.780 2.803 2.864 2.951 3.060 3.156 3.223 3.304 3.366 3.429 3.471 3.476 3.453 3.419 3.383 3.354 3.365 3.380 3.431 3.519 3.616 3.702 3.749 3.755 3.731 3.709 3.708 3.743 3.846 3.960 4.093 4.198 4.227 4.185 4.089 3.963 3.831 3.708 3.595 3.510 3.471 3.441 3.440 1.500 1.545 1.587 1.606 1.619 1.626 1.628 1.630 1.635 1.645 1.658 1.673 1.688 1.701 1.715 1.728 1.743 1.767 1.804 1.855 1.915 1.983 2.052 2.115 2.165 2.202 2.228 2.242 2.247 2.264 2.285 2.307 2.324 2.345 2.371 2.408 2.464 2.533 2.611 2.680 2.728 2.743 2.718 2.667 2.601 2.539 2.487 2.457 2.446 2.449 2.465 2.488 2.521 2.556 2.596 2.642 2.680 2.701 2.705 2.702 2.712 2.747 2.812 2.910 3.019 3.105 3.151 3.143 3.087 2.988 2.904 2.864 2.863 2.879 2.903 2.900 2.871 2.823 2.789 2.783 2.815 2.878 2.975 3.083 3.169 3.239 3.318 3.384 3.447 3.476 3.474 3.447 3.410 3.376 3.352 3.367 3.385 3.438 3.522 3.612 3.687 3.728 3.731 3.718 3.713 3.722 3.777 3.894 4.015 4.142 4.217 4.217 4.150 4.037 3.902 3.780 3.656 3.558 3.494 3.463 3.441 3.456 1.500 1.546 1.584 1.602 1.614 1.620 1.625 1.629 1.638 1.650 1.666 1.683 1.699 1.714 1.725 1.737 1.755 1.785 1.828 1.881 1.944 2.014 2.085 2.142 2.184 2.210 2.224 2.235 2.252 2.274 2.295 2.312 2.331 2.353 2.385 2.434 2.496 2.569 2.641 2.693 2.722 2.710 2.667 2.605 2.543 2.489 2.452 2.435 2.433 2.446 2.468 2.498 2.533 2.569 2.613 2.659 2.690 2.700 2.697 2.697 2.721 2.770 2.851 2.960 3.065 3.139 3.163 3.134 3.060 2.955 2.882 2.858 2.859 2.878 2.900 2.889 2.855 2.810 2.783 2.788 2.830 2.899 3.004 3.106 3.178 3.254 3.331 3.395 3.456 3.479 3.472 3.442 3.403 3.370 3.353 3.369 3.388 3.442 3.521 3.601 3.665 3.701 3.709 3.709 3.718 3.745 3.824 3.951 4.071 4.184 4.225 4.193 4.105 3.979 3.845 3.732 3.613 3.530 3.485 3.460 3.451 3.485 1.500 1.545 1.579 1.596 1.607 1.615 1.622 1.630 1.641 1.657 1.675 1.694 1.711 1.724 1.735 1.745 1.763 1.797 1.842 1.896 1.962 2.035 2.105 2.160 2.197 2.214 2.221 2.233 2.256 2.284 2.300 2.317 2.340 2.366 2.406 2.462 2.530 2.604 2.662 2.697 2.700 2.668 2.611 2.547 2.493 2.446 2.423 2.419 2.428 2.449 2.475 2.508 2.547 2.587 2.634 2.672 2.694 2.692 2.688 2.698 2.735 2.799 2.899 3.014 3.108 3.166 3.169 3.109 3.027 2.923 2.864 2.852 2.861 2.886 2.899 2.874 2.832 2.793 2.774 2.789 2.847 2.923 3.032 3.127 3.199 3.275 3.341 3.405 3.463 3.481 3.470 3.439 3.399 3.366 3.353 3.371 3.393 3.443 3.513 3.583 3.637 3.670 3.689 3.707 3.727 3.779 3.876 4.014 4.127 4.211 4.221 4.162 4.054 3.922 3.798 3.688 3.580 3.510 3.480 3.464 3.472 3.533 1.500 1.541 1.573 1.590 1.601 1.612 1.621 1.632 1.648 1.666 1.685 1.704 1.720 1.732 1.741 1.751 1.767 1.798 1.842 1.897 1.966 2.039 2.108 2.163 2.198 2.212 2.221 2.237 2.258 2.284 2.305 2.326 2.350 2.383 2.433 2.495 2.567 2.629 2.671 2.682 2.660 2.613 2.552 2.495 2.447 2.416 2.406 2.411 2.430 2.453 2.484 2.520 2.560 2.605 2.650 2.681 2.689 2.684 2.683 2.707 2.757 2.839 2.954 3.068 3.150 3.185 3.163 3.087 2.986 2.893 2.850 2.846 2.860 2.888 2.892 2.858 2.813 2.777 2.765 2.790 2.854 2.945 3.056 3.142 3.214 3.289 3.350 3.414 3.467 3.481 3.466 3.433 3.395 3.364 3.355 3.372 3.395 3.444 3.504 3.564 3.612 3.646 3.674 3.709 3.747 3.825 3.937 4.078 4.176 4.225 4.204 4.122 4.000 3.866 3.750 3.647 3.552 3.498 3.481 3.476 3.506 3.602 1.500 1.537 1.566 1.584 1.597 1.612 1.623 1.637 1.656 1.675 1.694 1.712 1.726 1.736 1.744 1.753 1.768 1.792 1.831 1.885 1.951 2.022 2.090 2.147 2.185 2.206 2.225 2.246 2.267 2.286 2.309 2.333 2.363 2.405 2.462 2.527 2.592 2.641 2.665 2.651 2.613 2.555 2.497 2.447 2.410 2.392 2.393 2.407 2.431 2.459 2.494 2.533 2.579 2.627 2.665 2.684 2.680 2.675 2.684 2.721 2.787 2.887 3.010 3.118 3.185 3.196 3.144 3.059 2.949 2.869 2.845 2.840 2.859 2.883 2.877 2.839 2.793 2.761 2.759 2.795 2.864 2.966 3.074 3.147 3.226 3.299 3.362 3.427 3.472 3.481 3.461 3.427 3.389 3.360 3.353 3.376 3.398 3.444 3.496 3.547 3.590 3.629 3.671 3.721 3.779 3.878 4.003 4.140 4.208 4.228 4.176 4.073 3.943 3.818 3.707 3.611 3.530 3.492 3.487 3.499 3.556 3.691 1.500 1.532 1.561 1.579 1.596 1.613 1.628 1.645 1.667 1.685 1.702 1.718 1.730 1.739 1.744 1.753 1.763 1.781 1.812 1.858 1.919 1.986 2.055 2.116 2.162 2.199 2.230 2.256 2.272 2.290 2.311 2.339 2.381 2.433 2.494 2.560 2.612 2.641 2.643 2.611 2.559 2.499 2.445 2.406 2.383 2.380 2.390 2.412 2.437 2.471 2.510 2.552 2.598 2.643 2.672 2.678 2.671 2.669 2.693 2.744 2.828 2.946 3.068 3.159 3.204 3.191 3.114 3.023 2.916 2.853 2.843 2.843 2.865 2.882 2.860 2.817 2.773 2.746 2.753 2.803 2.880 2.989 3.092 3.164 3.239 3.312 3.377 3.443 3.476 3.480 3.456 3.420 3.383 3.357 3.354 3.381 3.405 3.448 3.492 3.538 3.580 3.624 3.676 3.736 3.819 3.936 4.070 4.194 4.227 4.213 4.136 4.018 3.883 3.764 3.660 3.576 3.515 3.494 3.502 3.534 3.621 3.793 1.500 1.528 1.556 1.577 1.598 1.617 1.635 1.655 1.677 1.694 1.709 1.723 1.733 1.741 1.744 1.747 1.751 1.763 1.786 1.821 1.873 1.938 2.006 2.072 2.130 2.183 2.225 2.257 2.278 2.298 2.317 2.349 2.399 2.462 2.526 2.581 2.616 2.624 2.603 2.559 2.504 2.450 2.404 2.375 2.366 2.374 2.393 2.417 2.446 2.483 2.525 2.572 2.620 2.658 2.672 2.667 2.661 2.670 2.708 2.775 2.877 3.007 3.125 3.199 3.219 3.172 3.079 2.984 2.887 2.845 2.841 2.848 2.869 2.878 2.845 2.798 2.755 2.735 2.753 2.815 2.901 3.015 3.108 3.178 3.250 3.322 3.388 3.452 3.480 3.479 3.453 3.414 3.380 3.357 3.356 3.386 3.411 3.452 3.493 3.537 3.582 3.634 3.698 3.769 3.870 3.999 4.129 4.229 4.233 4.186 4.087 3.958 3.825 3.714 3.618 3.549 3.507 3.504 3.527 3.583 3.703 3.905 1.500 1.525 1.554 1.578 1.602 1.623 1.644 1.664 1.686 1.702 1.716 1.726 1.735 1.739 1.742 1.739 1.738 1.744 1.757 1.784 1.829 1.889 1.955 2.023 2.092 2.157 2.212 2.251 2.282 2.306 2.329 2.370 2.430 2.494 2.550 2.589 2.605 2.589 2.554 2.503 2.451 2.405 2.370 2.356 2.359 2.375 2.398 2.426 2.460 2.499 2.547 2.598 2.641 2.665 2.664 2.656 2.654 2.679 2.731 2.816 2.935 3.066 3.173 3.229 3.215 3.142 3.037 2.935 2.856 2.837 2.836 2.853 2.871 2.871 2.831 2.782 2.741 2.726 2.751 2.824 2.924 3.040 3.121 3.192 3.259 3.333 3.399 3.459 3.484 3.478 3.450 3.411 3.378 3.359 3.358 3.392 3.421 3.461 3.502 3.548 3.600 3.662 3.730 3.815 3.932 4.063 4.182 4.250 4.222 4.150 4.035 3.900 3.776 3.669 3.581 3.532 3.506 3.519 3.560 3.641 3.795 4.012 1.500 1.524 1.554 1.582 1.608 1.631 1.652 1.673 1.694 1.708 1.720 1.730 1.734 1.737 1.736 1.731 1.726 1.724 1.731 1.754 1.793 1.845 1.906 1.975 2.047 2.121 2.184 2.237 2.277 2.311 2.348 2.402 2.462 2.518 2.560 2.582 2.578 2.546 2.501 2.450 2.402 2.368 2.347 2.346 2.358 2.378 2.406 2.439 2.478 2.521 2.575 2.623 2.652 2.662 2.655 2.647 2.657 2.696 2.765 2.870 2.999 3.126 3.211 3.233 3.190 3.099 2.996 2.896 2.836 2.828 2.830 2.855 2.874 2.862 2.816 2.767 2.731 2.723 2.760 2.834 2.941 3.055 3.130 3.208 3.275 3.345 3.413 3.466 3.486 3.476 3.446 3.408 3.375 3.362 3.361 3.395 3.429 3.471 3.516 3.567 3.627 3.698 3.774 3.872 3.999 4.124 4.220 4.257 4.200 4.104 3.978 3.843 3.727 3.627 3.555 3.524 3.514 3.542 3.601 3.706 3.891 4.096 1.500 1.525 1.558 1.590 1.617 1.642 1.662 1.682 1.701 1.713 1.724 1.728 1.729 1.728 1.727 1.721 1.714 1.708 1.714 1.732 1.764 1.808 1.861 1.925 2.000 2.078 2.153 2.214 2.267 2.318 2.372 2.430 2.485 2.528 2.554 2.557 2.536 2.496 2.446 2.399 2.363 2.339 2.332 2.342 2.360 2.385 2.416 2.452 2.495 2.544 2.598 2.639 2.656 2.654 2.645 2.645 2.671 2.723 2.811 2.929 3.061 3.174 3.234 3.219 3.152 3.048 2.950 2.861 2.821 2.818 2.831 2.859 2.874 2.849 2.803 2.752 2.722 2.722 2.770 2.850 2.962 3.069 3.146 3.224 3.294 3.360 3.431 3.474 3.488 3.473 3.440 3.401 3.370 3.361 3.365 3.394 3.435 3.481 3.536 3.596 3.665 3.737 3.825 3.934 4.064 4.174 4.239 4.239 4.170 4.057 3.923 3.796 3.684 3.591 3.537 3.523 3.527 3.570 3.646 3.773 3.980 4.144 1.500 1.528 1.565 1.599 1.627 1.653 1.671 1.689 1.706 1.717 1.724 1.725 1.722 1.717 1.715 1.709 1.701 1.699 1.704 1.720 1.745 1.780 1.827 1.887 1.959 2.038 2.119 2.190 2.259 2.328 2.395 2.452 2.497 2.524 2.533 2.517 2.487 2.443 2.396 2.358 2.332 2.322 2.328 2.342 2.365 2.394 2.430 2.470 2.519 2.572 2.620 2.645 2.651 2.646 2.640 2.654 2.696 2.768 2.873 2.997 3.124 3.214 3.235 3.188 3.100 2.991 2.903 2.830 2.808 2.810 2.833 2.858 2.868 2.832 2.783 2.735 2.709 2.722 2.781 2.867 2.982 3.079 3.160 3.236 3.309 3.375 3.444 3.482 3.491 3.471 3.434 3.395 3.365 3.359 3.368 3.401 3.445 3.496 3.557 3.626 3.703 3.783 3.882 3.999 4.125 4.216 4.244 4.215 4.126 4.003 3.869 3.748 3.644 3.565 3.528 3.530 3.546 3.604 3.695 3.838 4.054 4.152 1.500 1.533 1.574 1.609 1.638 1.664 1.680 1.696 1.712 1.720 1.721 1.719 1.713 1.706 1.700 1.695 1.691 1.695 1.702 1.716 1.737 1.766 1.808 1.865 1.933 2.010 2.091 2.173 2.253 2.339 2.408 2.462 2.494 2.507 2.500 2.474 2.436 2.394 2.355 2.328 2.313 2.317 2.327 2.348 2.375 2.409 2.450 2.494 2.549 2.599 2.633 2.646 2.643 2.638 2.645 2.678 2.736 2.827 2.946 3.074 3.188 3.231 3.213 3.142 3.039 2.932 2.860 2.803 2.797 2.803 2.832 2.854 2.854 2.810 2.763 2.718 2.699 2.723 2.793 2.884 3.000 3.084 3.173 3.245 3.324 3.390 3.458 3.491 3.492 3.469 3.428 3.389 3.363 3.360 3.373 3.408 3.457 3.512 3.578 3.656 3.741 3.831 3.939 4.061 4.176 4.241 4.240 4.183 4.076 3.945 3.819 3.707 3.612 3.546 3.525 3.544 3.572 3.642 3.747 3.900 4.104 4.130 1.500 1.538 1.584 1.620 1.650 1.674 1.688 1.703 1.715 1.718 1.716 1.711 1.703 1.694 1.685 1.682 1.686 1.695 1.706 1.719 1.737 1.764 1.805 1.858 1.922 1.996 2.078 2.167 2.259 2.344 2.410 2.454 2.475 2.476 2.457 2.426 2.389 2.352 2.324 2.305 2.304 2.313 2.332 2.357 2.388 2.427 2.470 2.519 2.574 2.615 2.634 2.636 2.634 2.637 2.661 2.714 2.793 2.901 3.025 3.147 3.233 3.234 3.177 3.087 2.976 2.877 2.814 2.776 2.784 2.803 2.837 2.855 2.845 2.795 2.746 2.705 2.690 2.722 2.798 2.901 3.016 3.099 3.187 3.257 3.338 3.406 3.470 3.497 3.493 3.464 3.420 3.385 3.362 3.362 3.379 3.416 3.469 3.529 3.600 3.682 3.769 3.873 3.991 4.117 4.214 4.244 4.216 4.139 4.020 3.888 3.766 3.660 3.580 3.535 3.530 3.566 3.602 3.687 3.800 3.955 4.129 4.093 1.500 1.543 1.594 1.629 1.659 1.681 1.693 1.706 1.714 1.713 1.709 1.702 1.692 1.683 1.675 1.675 1.684 1.697 1.711 1.727 1.747 1.775 1.815 1.866 1.928 2.000 2.084 2.174 2.265 2.343 2.399 2.432 2.445 2.435 2.411 2.379 2.347 2.319 2.301 2.293 2.300 2.316 2.339 2.369 2.406 2.447 2.495 2.548 2.595 2.621 2.627 2.626 2.627 2.645 2.686 2.761 2.864 2.985 3.113 3.218 3.256 3.216 3.132 3.024 2.913 2.832 2.775 2.758 2.779 2.808 2.845 2.853 2.833 2.784 2.734 2.695 2.690 2.732 2.811 2.922 3.034 3.116 3.200 3.268 3.351 3.422 3.479 3.501 3.492 3.461 3.417 3.383 3.365 3.366 3.387 3.428 3.482 3.543 3.620 3.706 3.796 3.911 4.038 4.162 4.235 4.241 4.186 4.090 3.962 3.835 3.720 3.621 3.553 3.529 3.543 3.587 3.638 3.733 3.852 4.002 4.131 4.059 1.500 1.548 1.601 1.637 1.666 1.686 1.696 1.705 1.709 1.707 1.701 1.692 1.682 1.673 1.671 1.676 1.685 1.700 1.717 1.737 1.762 1.795 1.837 1.887 1.949 2.023 2.107 2.190 2.267 2.334 2.379 2.402 2.407 2.393 2.367 2.338 2.312 2.295 2.287 2.289 2.301 2.322 2.351 2.385 2.427 2.472 2.526 2.574 2.608 2.618 2.615 2.614 2.626 2.663 2.731 2.827 2.948 3.077 3.198 3.265 3.250 3.175 3.076 2.960 2.860 2.798 2.752 2.751 2.777 2.813 2.847 2.846 2.818 2.776 2.726 2.689 2.693 2.745 2.828 2.944 3.048 3.133 3.212 3.281 3.365 3.439 3.485 3.503 3.491 3.456 3.413 3.380 3.369 3.371 3.395 3.440 3.497 3.559 3.636 3.719 3.819 3.942 4.075 4.192 4.239 4.221 4.147 4.038 3.905 3.781 3.670 3.583 3.536 3.531 3.563 3.615 3.680 3.781 3.901 4.038 4.113 4.029 1.500 1.551 1.607 1.643 1.671 1.688 1.696 1.700 1.702 1.698 1.690 1.680 1.672 1.669 1.672 1.679 1.690 1.704 1.724 1.749 1.783 1.822 1.866 1.920 1.985 2.059 2.137 2.209 2.271 2.319 2.354 2.368 2.365 2.351 2.328 2.303 2.286 2.277 2.280 2.290 2.308 2.333 2.366 2.407 2.451 2.505 2.553 2.589 2.607 2.605 2.602 2.608 2.637 2.694 2.786 2.905 3.038 3.169 3.263 3.282 3.225 3.123 3.009 2.898 2.811 2.765 2.734 2.753 2.777 2.818 2.847 2.837 2.805 2.761 2.713 2.683 2.697 2.759 2.845 2.963 3.053 3.146 3.222 3.293 3.375 3.448 3.490 3.502 3.487 3.448 3.406 3.375 3.368 3.377 3.405 3.453 3.508 3.573 3.649 3.731 3.841 3.970 4.103 4.208 4.237 4.195 4.102 3.983 3.853 3.735 3.630 3.559 3.531 3.543 3.587 3.649 3.725 3.830 3.946 4.062 4.086 4.000 1.500 1.553 1.611 1.647 1.672 1.688 1.692 1.693 1.692 1.685 1.677 1.669 1.666 1.668 1.674 1.684 1.696 1.712 1.734 1.765 1.806 1.850 1.902 1.962 2.031 2.101 2.169 2.227 2.274 2.307 2.326 2.331 2.330 2.316 2.296 2.277 2.266 2.266 2.278 2.295 2.319 2.349 2.387 2.430 2.483 2.533 2.570 2.591 2.594 2.590 2.593 2.614 2.660 2.745 2.859 2.993 3.133 3.243 3.297 3.262 3.170 3.056 2.941 2.841 2.768 2.744 2.724 2.755 2.787 2.828 2.847 2.832 2.796 2.747 2.698 2.675 2.698 2.768 2.859 2.977 3.067 3.161 3.236 3.311 3.384 3.456 3.494 3.501 3.481 3.439 3.400 3.372 3.368 3.382 3.413 3.467 3.520 3.584 3.659 3.742 3.857 3.991 4.120 4.209 4.218 4.161 4.053 3.928 3.801 3.689 3.599 3.541 3.532 3.564 3.617 3.687 3.775 3.877 3.986 4.073 4.053 3.973 1.500 1.554 1.612 1.648 1.671 1.685 1.686 1.685 1.681 1.673 1.666 1.661 1.662 1.668 1.677 1.689 1.704 1.724 1.751 1.785 1.830 1.882 1.942 2.007 2.078 2.143 2.198 2.242 2.274 2.295 2.300 2.302 2.302 2.291 2.274 2.263 2.259 2.266 2.281 2.304 2.335 2.371 2.411 2.463 2.513 2.552 2.577 2.585 2.581 2.581 2.596 2.639 2.706 2.811 2.942 3.086 3.210 3.289 3.292 3.217 3.102 2.986 2.879 2.794 2.741 2.720 2.718 2.756 2.795 2.838 2.848 2.832 2.788 2.737 2.685 2.669 2.699 2.766 2.869 2.986 3.078 3.173 3.247 3.326 3.395 3.464 3.497 3.498 3.474 3.430 3.394 3.371 3.371 3.389 3.422 3.479 3.534 3.594 3.661 3.750 3.870 4.005 4.129 4.195 4.188 4.117 3.998 3.873 3.752 3.645 3.571 3.535 3.542 3.587 3.648 3.724 3.824 3.922 4.017 4.071 4.021 3.944 1.500 1.553 1.611 1.645 1.667 1.679 1.679 1.676 1.670 1.662 1.657 1.658 1.663 1.670 1.681 1.695 1.714 1.739 1.772 1.811 1.860 1.920 1.985 2.055 2.122 2.176 2.219 2.250 2.272 2.283 2.283 2.286 2.285 2.278 2.266 2.258 2.260 2.270 2.291 2.321 2.358 2.398 2.444 2.494 2.534 2.560 2.572 2.570 2.570 2.582 2.619 2.682 2.776 2.900 3.041 3.171 3.265 3.299 3.247 3.142 3.022 2.913 2.821 2.752 2.725 2.708 2.721 2.761 2.806 2.843 2.844 2.829 2.780 2.724 2.675 2.665 2.702 2.769 2.879 2.992 3.088 3.181 3.256 3.338 3.408 3.472 3.500 3.495 3.466 3.422 3.391 3.373 3.375 3.398 3.438 3.495 3.546 3.602 3.665 3.756 3.880 4.013 4.127 4.177 4.154 4.072 3.948 3.823 3.707 3.612 3.550 3.534 3.559 3.614 3.685 3.768 3.870 3.962 4.038 4.055 3.990 3.913 1.500 1.550 1.607 1.640 1.661 1.670 1.669 1.664 1.659 1.652 1.653 1.658 1.665 1.674 1.686 1.703 1.727 1.759 1.797 1.844 1.902 1.966 2.035 2.101 2.159 2.202 2.233 2.254 2.268 2.273 2.278 2.284 2.284 2.276 2.267 2.264 2.268 2.282 2.307 2.343 2.383 2.423 2.472 2.515 2.543 2.556 2.558 2.560 2.571 2.603 2.661 2.750 2.863 2.995 3.135 3.237 3.291 3.270 3.179 3.056 2.940 2.843 2.767 2.720 2.707 2.702 2.731 2.767 2.815 2.843 2.842 2.821 2.772 2.711 2.666 2.662 2.706 2.778 2.891 2.996 3.099 3.188 3.266 3.351 3.422 3.479 3.502 3.495 3.463 3.420 3.389 3.378 3.381 3.407 3.451 3.509 3.556 3.610 3.672 3.766 3.888 4.014 4.110 4.146 4.113 4.020 3.896 3.776 3.665 3.587 3.540 3.541 3.583 3.644 3.721 3.814 3.913 3.993 4.047 4.030 3.960 3.882 1.500 1.547 1.601 1.633 1.652 1.661 1.659 1.654 1.651 1.650 1.653 1.659 1.668 1.679 1.694 1.716 1.744 1.781 1.828 1.885 1.949 2.017 2.081 2.139 2.187 2.220 2.241 2.255 2.262 2.272 2.283 2.289 2.286 2.279 2.274 2.273 2.282 2.300 2.330 2.369 2.408 2.455 2.498 2.526 2.540 2.542 2.545 2.557 2.590 2.643 2.730 2.840 2.967 3.103 3.216 3.282 3.283 3.206 3.089 2.967 2.863 2.778 2.726 2.693 2.696 2.702 2.747 2.785 2.828 2.845 2.841 2.814 2.765 2.701 2.661 2.662 2.714 2.794 2.911 3.009 3.111 3.198 3.277 3.365 3.439 3.485 3.503 3.492 3.456 3.415 3.384 3.378 3.386 3.415 3.463 3.518 3.564 3.612 3.676 3.775 3.895 4.012 4.096 4.115 4.067 3.964 3.845 3.728 3.627 3.560 3.534 3.554 3.607 3.677 3.763 3.858 3.951 4.014 4.044 4.001 3.931 3.852 1.500 1.544 1.594 1.626 1.644 1.652 1.650 1.648 1.650 1.651 1.655 1.662 1.672 1.685 1.704 1.730 1.765 1.811 1.867 1.930 1.999 2.065 2.124 2.170 2.206 2.230 2.244 2.252 2.262 2.278 2.290 2.294 2.290 2.286 2.282 2.284 2.298 2.322 2.354 2.393 2.439 2.480 2.510 2.523 2.524 2.525 2.537 2.570 2.630 2.708 2.818 2.947 3.083 3.198 3.270 3.288 3.232 3.123 2.998 2.884 2.795 2.725 2.690 2.675 2.690 2.705 2.757 2.799 2.838 2.853 2.841 2.808 2.754 2.691 2.657 2.666 2.725 2.810 2.928 3.024 3.127 3.209 3.289 3.374 3.448 3.490 3.502 3.487 3.448 3.409 3.380 3.377 3.391 3.423 3.473 3.527 3.572 3.618 3.686 3.789 3.906 4.008 4.077 4.082 4.020 3.909 3.796 3.685 3.598 3.543 3.536 3.574 3.634 3.708 3.802 3.898 3.979 4.025 4.032 3.973 3.906 3.834 1.500 1.540 1.587 1.619 1.637 1.647 1.646 1.646 1.653 1.655 1.660 1.667 1.678 1.695 1.718 1.751 1.793 1.848 1.909 1.977 2.048 2.109 2.159 2.194 2.217 2.234 2.241 2.251 2.266 2.284 2.294 2.296 2.295 2.292 2.292 2.297 2.314 2.343 2.377 2.422 2.463 2.494 2.508 2.508 2.506 2.516 2.547 2.604 2.687 2.797 2.928 3.068 3.189 3.268 3.293 3.256 3.150 3.028 2.907 2.807 2.735 2.687 2.664 2.664 2.682 2.710 2.767 2.808 2.842 2.858 2.841 2.801 2.743 2.682 2.653 2.668 2.729 2.828 2.945 3.041 3.142 3.222 3.301 3.384 3.456 3.494 3.501 3.481 3.439 3.404 3.378 3.378 3.396 3.429 3.482 3.534 3.576 3.624 3.699 3.805 3.918 4.013 4.060 4.048 3.972 3.860 3.749 3.645 3.569 3.534 3.547 3.597 3.665 3.746 3.841 3.932 4.000 4.027 4.013 3.948 3.886 3.834 1.500 1.537 1.582 1.615 1.634 1.646 1.647 1.649 1.659 1.662 1.667 1.675 1.688 1.708 1.738 1.779 1.829 1.888 1.953 2.023 2.093 2.145 2.183 2.209 2.223 2.231 2.241 2.253 2.269 2.286 2.293 2.297 2.296 2.296 2.299 2.310 2.331 2.362 2.403 2.442 2.474 2.491 2.492 2.490 2.495 2.522 2.576 2.654 2.767 2.902 3.048 3.179 3.271 3.305 3.275 3.186 3.060 2.933 2.822 2.739 2.690 2.656 2.647 2.664 2.685 2.721 2.774 2.814 2.849 2.860 2.839 2.794 2.732 2.675 2.653 2.676 2.737 2.844 2.959 3.058 3.157 3.236 3.314 3.395 3.464 3.497 3.498 3.474 3.431 3.398 3.377 3.380 3.402 3.437 3.492 3.544 3.584 3.636 3.715 3.821 3.926 4.009 4.043 4.014 3.925 3.812 3.706 3.615 3.550 3.535 3.567 3.624 3.698 3.785 3.881 3.958 4.012 4.022 3.991 3.929 3.873 3.857 1.500 1.535 1.581 1.615 1.636 1.649 1.652 1.657 1.665 1.670 1.675 1.685 1.700 1.726 1.765 1.812 1.871 1.933 1.999 2.064 2.125 2.170 2.198 2.214 2.222 2.231 2.246 2.259 2.276 2.284 2.291 2.293 2.294 2.296 2.304 2.323 2.351 2.385 2.422 2.452 2.471 2.475 2.473 2.476 2.498 2.548 2.624 2.733 2.869 3.016 3.159 3.265 3.316 3.297 3.212 3.089 2.960 2.839 2.745 2.685 2.652 2.636 2.640 2.668 2.691 2.733 2.770 2.814 2.848 2.855 2.831 2.779 2.718 2.667 2.652 2.682 2.744 2.857 2.963 3.073 3.169 3.249 3.326 3.406 3.472 3.500 3.495 3.466 3.423 3.393 3.378 3.383 3.409 3.445 3.500 3.553 3.594 3.649 3.732 3.834 3.927 3.998 4.019 3.974 3.877 3.765 3.666 3.592 3.541 3.545 3.589 3.652 3.730 3.825 3.917 3.974 4.014 4.011 3.970 3.916 3.870 3.900 1.500 1.536 1.583 1.618 1.641 1.655 1.660 1.666 1.674 1.676 1.680 1.693 1.713 1.747 1.792 1.849 1.912 1.979 2.043 2.100 2.145 2.178 2.198 2.212 2.221 2.235 2.252 2.267 2.275 2.282 2.285 2.287 2.289 2.294 2.307 2.332 2.363 2.397 2.429 2.449 2.457 2.459 2.462 2.481 2.523 2.592 2.694 2.833 2.979 3.127 3.247 3.311 3.309 3.238 3.115 2.986 2.861 2.756 2.689 2.649 2.627 2.626 2.639 2.672 2.696 2.743 2.775 2.821 2.850 2.852 2.826 2.765 2.703 2.657 2.648 2.686 2.757 2.874 2.977 3.087 3.183 3.264 3.344 3.416 3.479 3.502 3.495 3.463 3.422 3.391 3.382 3.387 3.416 3.453 3.508 3.557 3.600 3.662 3.747 3.840 3.926 3.983 3.988 3.930 3.832 3.720 3.631 3.568 3.540 3.564 3.619 3.688 3.772 3.866 3.948 3.986 4.010 3.997 3.953 3.909 3.878 3.952 1.500 1.539 1.589 1.625 1.649 1.664 1.669 1.676 1.681 1.681 1.685 1.696 1.725 1.765 1.818 1.881 1.950 2.020 2.081 2.128 2.160 2.180 2.194 2.207 2.225 2.242 2.258 2.268 2.275 2.278 2.280 2.281 2.285 2.293 2.313 2.340 2.370 2.399 2.426 2.442 2.449 2.455 2.474 2.513 2.573 2.666 2.795 2.939 3.086 3.213 3.296 3.309 3.252 3.143 3.014 2.885 2.772 2.693 2.647 2.620 2.613 2.623 2.643 2.679 2.701 2.749 2.784 2.827 2.851 2.848 2.816 2.751 2.686 2.644 2.642 2.688 2.765 2.882 2.985 3.096 3.191 3.275 3.358 3.428 3.485 3.503 3.492 3.456 3.419 3.388 3.382 3.391 3.422 3.461 3.515 3.559 3.606 3.671 3.754 3.834 3.913 3.957 3.949 3.882 3.784 3.677 3.601 3.551 3.546 3.585 3.647 3.721 3.814 3.907 3.970 3.993 4.003 3.983 3.940 3.907 3.894 3.997 1.500 1.543 1.596 1.632 1.657 1.672 1.677 1.683 1.685 1.683 1.685 1.699 1.728 1.772 1.831 1.900 1.975 2.047 2.105 2.145 2.169 2.182 2.191 2.204 2.223 2.242 2.257 2.266 2.272 2.273 2.274 2.276 2.282 2.298 2.319 2.345 2.373 2.398 2.423 2.438 2.452 2.474 2.512 2.570 2.655 2.775 2.910 3.052 3.179 3.265 3.298 3.256 3.157 3.031 2.902 2.786 2.700 2.645 2.614 2.603 2.608 2.625 2.648 2.676 2.701 2.750 2.791 2.833 2.854 2.845 2.806 2.737 2.671 2.632 2.634 2.684 2.774 2.888 2.991 3.102 3.197 3.285 3.370 3.440 3.490 3.502 3.487 3.448 3.412 3.382 3.381 3.395 3.427 3.469 3.515 3.559 3.608 3.673 3.751 3.823 3.889 3.922 3.902 3.833 3.735 3.635 3.570 3.543 3.561 3.612 3.681 3.763 3.858 3.943 3.988 4.000 3.996 3.970 3.932 3.909 3.915 4.023 1.500 1.547 1.604 1.639 1.663 1.678 1.682 1.685 1.684 1.679 1.682 1.696 1.725 1.769 1.831 1.904 1.981 2.052 2.108 2.145 2.167 2.181 2.192 2.206 2.225 2.240 2.256 2.263 2.266 2.268 2.269 2.273 2.284 2.302 2.325 2.351 2.376 2.400 2.419 2.443 2.473 2.515 2.571 2.653 2.765 2.897 3.031 3.154 3.239 3.270 3.240 3.164 3.041 2.914 2.796 2.705 2.643 2.606 2.593 2.596 2.611 2.631 2.659 2.679 2.708 2.757 2.798 2.837 2.856 2.841 2.794 2.728 2.663 2.629 2.638 2.686 2.785 2.893 2.999 3.110 3.205 3.296 3.383 3.456 3.494 3.501 3.481 3.440 3.404 3.379 3.381 3.399 3.432 3.475 3.517 3.562 3.609 3.669 3.736 3.798 3.855 3.877 3.849 3.781 3.686 3.601 3.550 3.543 3.577 3.639 3.715 3.803 3.899 3.970 3.998 3.999 3.988 3.958 3.928 3.912 3.937 4.023 1.500 1.552 1.609 1.643 1.666 1.680 1.682 1.681 1.678 1.673 1.675 1.687 1.715 1.757 1.819 1.890 1.964 2.032 2.087 2.127 2.154 2.174 2.192 2.208 2.225 2.237 2.251 2.257 2.259 2.261 2.264 2.274 2.289 2.311 2.334 2.358 2.381 2.405 2.426 2.458 2.509 2.569 2.651 2.761 2.886 3.019 3.139 3.224 3.258 3.228 3.140 3.038 2.921 2.800 2.707 2.639 2.595 2.579 2.582 2.596 2.618 2.640 2.668 2.684 2.723 2.761 2.804 2.840 2.853 2.829 2.777 2.713 2.655 2.627 2.644 2.695 2.800 2.899 3.012 3.121 3.217 3.308 3.395 3.464 3.497 3.498 3.474 3.431 3.398 3.377 3.381 3.404 3.438 3.483 3.525 3.566 3.609 3.659 3.710 3.762 3.809 3.821 3.794 3.730 3.645 3.573 3.540 3.552 3.599 3.667 3.748 3.843 3.935 3.989 4.005 3.993 3.977 3.949 3.926 3.917 3.954 3.997 1.500 1.555 1.613 1.646 1.666 1.678 1.678 1.674 1.671 1.665 1.666 1.678 1.702 1.743 1.799 1.862 1.929 1.991 2.046 2.091 2.131 2.162 2.190 2.211 2.225 2.237 2.245 2.249 2.252 2.255 2.262 2.277 2.297 2.320 2.343 2.366 2.389 2.412 2.444 2.489 2.554 2.634 2.742 2.865 2.993 3.112 3.200 3.241 3.217 3.132 3.021 2.902 2.797 2.701 2.634 2.586 2.567 2.568 2.582 2.602 2.624 2.644 2.672 2.686 2.734 2.771 2.816 2.849 2.854 2.818 2.760 2.697 2.645 2.625 2.652 2.707 2.816 2.916 3.031 3.138 3.232 3.321 3.406 3.472 3.500 3.495 3.466 3.424 3.394 3.378 3.384 3.410 3.446 3.490 3.536 3.572 3.607 3.645 3.684 3.725 3.759 3.762 3.737 3.680 3.608 3.555 3.544 3.571 3.630 3.704 3.787 3.882 3.963 3.998 4.004 3.984 3.965 3.942 3.924 3.921 3.960 3.952 1.500 1.557 1.614 1.646 1.664 1.673 1.670 1.665 1.662 1.656 1.658 1.667 1.688 1.726 1.773 1.825 1.883 1.940 1.995 2.050 2.101 2.146 2.183 2.205 2.220 2.233 2.238 2.242 2.246 2.253 2.266 2.284 2.306 2.329 2.352 2.374 2.396 2.427 2.470 2.532 2.611 2.705 2.820 2.940 3.054 3.144 3.194 3.185 3.117 3.013 2.890 2.782 2.690 2.619 2.573 2.551 2.551 2.566 2.588 2.610 2.629 2.645 2.673 2.693 2.743 2.782 2.829 2.857 2.851 2.806 2.743 2.682 2.635 2.624 2.660 2.720 2.832 2.937 3.053 3.157 3.248 3.334 3.416 3.479 3.502 3.494 3.461 3.420 3.392 3.382 3.387 3.416 3.454 3.498 3.542 3.575 3.602 3.628 3.654 3.687 3.709 3.706 3.683 3.633 3.578 3.542 3.552 3.594 3.660 3.740 3.828 3.920 3.981 4.000 3.998 3.979 3.957 3.937 3.923 3.923 3.954 3.900 1.500 1.557 1.613 1.642 1.658 1.665 1.661 1.656 1.654 1.651 1.651 1.659 1.680 1.710 1.747 1.788 1.836 1.889 1.948 2.009 2.071 2.127 2.170 2.198 2.217 2.226 2.231 2.236 2.244 2.256 2.273 2.293 2.314 2.337 2.359 2.379 2.407 2.448 2.506 2.579 2.666 2.767 2.869 2.967 3.048 3.103 3.109 3.065 2.987 2.877 2.770 2.676 2.608 2.561 2.535 2.535 2.551 2.575 2.597 2.618 2.633 2.649 2.673 2.698 2.751 2.796 2.844 2.867 2.850 2.801 2.732 2.671 2.628 2.625 2.660 2.737 2.848 2.954 3.072 3.174 3.266 3.352 3.425 3.484 3.503 3.492 3.456 3.417 3.388 3.382 3.391 3.422 3.462 3.505 3.548 3.576 3.593 3.605 3.621 3.647 3.660 3.659 3.636 3.595 3.555 3.538 3.569 3.622 3.693 3.775 3.870 3.954 3.995 4.004 3.989 3.976 3.953 3.933 3.921 3.926 3.939 3.863 1.500 1.557 1.611 1.636 1.650 1.654 1.649 1.645 1.646 1.645 1.647 1.659 1.677 1.699 1.725 1.756 1.797 1.847 1.907 1.974 2.046 2.109 2.159 2.193 2.212 2.220 2.226 2.234 2.246 2.263 2.282 2.302 2.323 2.346 2.365 2.389 2.425 2.476 2.547 2.625 2.712 2.796 2.873 2.938 2.982 2.995 2.970 2.918 2.841 2.749 2.667 2.595 2.548 2.521 2.518 2.536 2.561 2.587 2.610 2.627 2.637 2.657 2.675 2.706 2.760 2.811 2.858 2.873 2.847 2.794 2.721 2.661 2.622 2.625 2.662 2.750 2.859 2.970 3.086 3.187 3.279 3.364 3.431 3.487 3.501 3.487 3.448 3.411 3.383 3.382 3.395 3.428 3.470 3.511 3.553 3.575 3.582 3.586 3.595 3.612 3.618 3.616 3.594 3.564 3.538 3.541 3.589 3.651 3.729 3.817 3.912 3.980 4.003 4.002 3.983 3.970 3.947 3.929 3.920 3.930 3.923 3.858 1.500 1.556 1.606 1.628 1.638 1.641 1.637 1.633 1.636 1.639 1.649 1.663 1.678 1.694 1.712 1.738 1.773 1.820 1.880 1.950 2.029 2.099 2.154 2.190 2.208 2.217 2.225 2.237 2.253 2.273 2.292 2.312 2.333 2.353 2.376 2.409 2.453 2.515 2.588 2.666 2.733 2.789 2.831 2.861 2.868 2.852 2.820 2.769 2.703 2.639 2.581 2.535 2.507 2.503 2.521 2.550 2.579 2.602 2.619 2.628 2.635 2.661 2.678 2.720 2.772 2.827 2.871 2.877 2.841 2.783 2.708 2.649 2.616 2.626 2.666 2.762 2.865 2.983 3.098 3.196 3.287 3.371 3.436 3.489 3.498 3.480 3.439 3.404 3.379 3.382 3.399 3.432 3.476 3.515 3.556 3.573 3.568 3.567 3.572 3.582 3.586 3.581 3.561 3.539 3.528 3.553 3.614 3.683 3.764 3.862 3.950 3.999 4.010 3.995 3.977 3.962 3.944 3.927 3.921 3.936 3.915 3.893 1.500 1.554 1.600 1.617 1.625 1.629 1.625 1.622 1.629 1.640 1.653 1.668 1.682 1.694 1.710 1.732 1.765 1.811 1.870 1.944 2.025 2.100 2.154 2.189 2.208 2.218 2.229 2.244 2.263 2.284 2.303 2.323 2.341 2.363 2.392 2.435 2.491 2.555 2.627 2.686 2.727 2.751 2.758 2.756 2.736 2.711 2.679 2.640 2.597 2.553 2.519 2.493 2.489 2.506 2.535 2.571 2.597 2.614 2.622 2.624 2.635 2.664 2.686 2.743 2.798 2.850 2.882 2.877 2.832 2.769 2.694 2.636 2.611 2.631 2.678 2.782 2.881 2.997 3.109 3.205 3.296 3.380 3.444 3.490 3.494 3.472 3.431 3.398 3.377 3.382 3.404 3.438 3.483 3.521 3.559 3.571 3.562 3.557 3.556 3.557 3.559 3.551 3.537 3.524 3.528 3.568 3.643 3.720 3.806 3.903 3.978 4.007 4.010 3.991 3.976 3.956 3.941 3.929 3.928 3.947 3.922 3.968 1.500 1.551 1.591 1.605 1.612 1.617 1.614 1.616 1.624 1.640 1.657 1.673 1.687 1.701 1.717 1.739 1.772 1.819 1.881 1.955 2.033 2.108 2.159 2.192 2.210 2.221 2.236 2.254 2.275 2.294 2.314 2.331 2.351 2.378 2.416 2.471 2.534 2.595 2.651 2.687 2.699 2.692 2.673 2.647 2.619 2.592 2.567 2.548 2.522 2.496 2.479 2.476 2.492 2.521 2.558 2.593 2.611 2.618 2.620 2.625 2.641 2.673 2.701 2.765 2.822 2.872 2.893 2.878 2.824 2.757 2.685 2.631 2.614 2.637 2.690 2.797 2.898 3.014 3.120 3.217 3.306 3.390 3.454 3.492 3.491 3.464 3.424 3.394 3.378 3.384 3.410 3.446 3.491 3.526 3.561 3.567 3.555 3.549 3.545 3.541 3.540 3.531 3.522 3.517 3.537 3.589 3.672 3.755 3.845 3.938 3.995 4.010 4.004 3.985 3.968 3.949 3.939 3.934 3.942 3.965 3.952 4.075 1.500 1.547 1.581 1.593 1.600 1.606 1.607 1.614 1.628 1.644 1.660 1.676 1.692 1.709 1.729 1.756 1.793 1.844 1.909 1.983 2.057 2.120 2.165 2.196 2.213 2.227 2.244 2.264 2.284 2.303 2.320 2.340 2.365 2.401 2.449 2.505 2.563 2.613 2.649 2.664 2.652 2.622 2.587 2.553 2.522 2.497 2.486 2.477 2.468 2.462 2.466 2.480 2.508 2.543 2.581 2.605 2.612 2.613 2.619 2.624 2.646 2.676 2.713 2.783 2.842 2.889 2.904 2.877 2.816 2.746 2.679 2.627 2.614 2.637 2.703 2.811 2.917 3.033 3.138 3.232 3.320 3.404 3.469 3.494 3.488 3.458 3.420 3.393 3.382 3.387 3.416 3.454 3.498 3.532 3.562 3.560 3.549 3.543 3.538 3.533 3.529 3.520 3.515 3.520 3.555 3.617 3.704 3.788 3.886 3.970 4.009 4.014 4.001 3.983 3.964 3.950 3.943 3.946 3.964 3.991 4.007 4.200 1.500 1.542 1.571 1.581 1.591 1.599 1.604 1.617 1.635 1.651 1.666 1.679 1.697 1.718 1.745 1.779 1.824 1.882 1.950 2.023 2.089 2.141 2.176 2.198 2.214 2.229 2.252 2.271 2.290 2.310 2.328 2.353 2.385 2.431 2.484 2.534 2.578 2.609 2.627 2.620 2.594 2.557 2.514 2.478 2.451 2.440 2.438 2.438 2.443 2.452 2.472 2.499 2.533 2.569 2.597 2.608 2.609 2.611 2.613 2.621 2.652 2.684 2.734 2.805 2.864 2.910 2.915 2.877 2.810 2.735 2.668 2.621 2.615 2.641 2.718 2.824 2.936 3.053 3.156 3.247 3.333 3.415 3.476 3.497 3.488 3.453 3.414 3.389 3.382 3.391 3.422 3.461 3.505 3.537 3.561 3.560 3.550 3.540 3.531 3.527 3.520 3.514 3.515 3.530 3.576 3.647 3.739 3.830 3.924 3.992 4.013 4.010 3.994 3.978 3.957 3.950 3.949 3.962 3.995 4.026 4.087 4.330 1.500 1.536 1.562 1.573 1.585 1.595 1.608 1.624 1.643 1.658 1.672 1.687 1.705 1.729 1.765 1.808 1.863 1.928 1.999 2.066 2.122 2.162 2.187 2.200 2.211 2.229 2.254 2.274 2.294 2.313 2.335 2.367 2.409 2.461 2.511 2.552 2.579 2.588 2.582 2.563 2.533 2.492 2.453 2.422 2.410 2.409 2.415 2.426 2.442 2.464 2.492 2.526 2.563 2.589 2.600 2.602 2.604 2.604 2.608 2.626 2.664 2.699 2.760 2.825 2.886 2.925 2.918 2.873 2.802 2.725 2.661 2.621 2.617 2.646 2.733 2.834 2.954 3.071 3.171 3.261 3.343 3.423 3.481 3.498 3.486 3.449 3.411 3.384 3.382 3.393 3.426 3.468 3.509 3.540 3.556 3.554 3.547 3.535 3.530 3.524 3.516 3.511 3.517 3.547 3.601 3.678 3.772 3.872 3.960 4.008 4.019 4.003 3.990 3.973 3.958 3.960 3.961 3.986 4.032 4.073 4.185 4.451 1.500 1.531 1.554 1.567 1.581 1.595 1.614 1.631 1.650 1.664 1.679 1.696 1.718 1.750 1.793 1.846 1.909 1.979 2.046 2.104 2.149 2.177 2.193 2.204 2.216 2.234 2.256 2.274 2.295 2.316 2.342 2.382 2.430 2.482 2.526 2.555 2.563 2.554 2.525 2.497 2.470 2.435 2.404 2.389 2.387 2.396 2.411 2.431 2.456 2.486 2.514 2.553 2.586 2.597 2.596 2.596 2.594 2.594 2.602 2.633 2.681 2.722 2.792 2.857 2.913 2.938 2.921 2.867 2.788 2.710 2.650 2.618 2.621 2.656 2.751 2.848 2.970 3.085 3.185 3.273 3.351 3.428 3.483 3.496 3.481 3.442 3.405 3.379 3.381 3.397 3.431 3.473 3.512 3.542 3.555 3.552 3.545 3.531 3.527 3.518 3.513 3.511 3.526 3.566 3.631 3.716 3.812 3.909 3.987 4.016 4.017 3.998 3.985 3.966 3.959 3.966 3.976 4.014 4.074 4.129 4.291 4.549 1.500 1.526 1.549 1.565 1.582 1.600 1.621 1.637 1.656 1.671 1.687 1.708 1.737 1.776 1.828 1.890 1.959 2.027 2.087 2.135 2.168 2.185 2.197 2.207 2.221 2.239 2.256 2.272 2.292 2.313 2.347 2.393 2.444 2.491 2.526 2.541 2.533 2.507 2.470 2.435 2.412 2.385 2.373 2.372 2.379 2.397 2.420 2.448 2.481 2.513 2.543 2.575 2.597 2.595 2.591 2.586 2.583 2.587 2.608 2.648 2.701 2.746 2.822 2.888 2.936 2.949 2.923 2.861 2.781 2.700 2.643 2.613 2.620 2.661 2.760 2.859 2.980 3.094 3.195 3.285 3.365 3.434 3.486 3.493 3.474 3.434 3.399 3.375 3.380 3.399 3.434 3.478 3.516 3.543 3.553 3.550 3.542 3.527 3.523 3.513 3.509 3.513 3.540 3.591 3.665 3.756 3.853 3.946 4.004 4.019 4.012 3.993 3.978 3.962 3.963 3.968 3.992 4.044 4.117 4.193 4.394 4.615 1.500 1.523 1.547 1.567 1.587 1.608 1.628 1.645 1.664 1.680 1.700 1.726 1.761 1.812 1.871 1.939 2.007 2.070 2.121 2.157 2.178 2.189 2.199 2.210 2.226 2.243 2.256 2.270 2.289 2.312 2.348 2.394 2.442 2.483 2.509 2.512 2.493 2.456 2.420 2.389 2.367 2.354 2.355 2.362 2.379 2.403 2.433 2.469 2.504 2.538 2.573 2.594 2.599 2.592 2.581 2.574 2.574 2.585 2.618 2.667 2.724 2.776 2.855 2.917 2.958 2.961 2.926 2.855 2.772 2.690 2.634 2.607 2.619 2.666 2.765 2.866 2.986 3.099 3.202 3.296 3.378 3.442 3.488 3.490 3.467 3.427 3.394 3.373 3.380 3.403 3.439 3.484 3.520 3.545 3.552 3.548 3.539 3.528 3.520 3.509 3.507 3.518 3.556 3.618 3.701 3.796 3.896 3.980 4.019 4.023 4.009 3.991 3.971 3.959 3.966 3.979 4.013 4.078 4.161 4.262 4.480 4.636 1.500 1.522 1.549 1.572 1.595 1.616 1.636 1.654 1.674 1.693 1.718 1.751 1.795 1.852 1.916 1.987 2.051 2.105 2.145 2.169 2.180 2.191 2.201 2.214 2.228 2.243 2.254 2.267 2.282 2.305 2.342 2.383 2.425 2.461 2.478 2.473 2.446 2.411 2.378 2.354 2.340 2.337 2.345 2.360 2.382 2.412 2.450 2.489 2.529 2.569 2.598 2.607 2.598 2.584 2.570 2.565 2.568 2.593 2.636 2.691 2.753 2.812 2.886 2.946 2.984 2.980 2.935 2.855 2.767 2.686 2.626 2.602 2.618 2.672 2.768 2.875 2.994 3.107 3.210 3.305 3.390 3.453 3.491 3.488 3.461 3.423 3.392 3.376 3.382 3.409 3.446 3.491 3.525 3.547 3.553 3.547 3.536 3.527 3.514 3.506 3.508 3.529 3.576 3.649 3.740 3.838 3.935 4.003 4.024 4.020 4.003 3.985 3.964 3.958 3.966 3.993 4.039 4.116 4.203 4.329 4.536 4.605 1.500 1.523 1.554 1.581 1.604 1.625 1.645 1.664 1.688 1.712 1.744 1.785 1.839 1.900 1.967 2.032 2.087 2.130 2.159 2.173 2.181 2.191 2.204 2.218 2.233 2.242 2.251 2.261 2.273 2.296 2.327 2.364 2.400 2.430 2.442 2.432 2.407 2.374 2.348 2.329 2.323 2.329 2.343 2.363 2.390 2.427 2.468 2.513 2.557 2.597 2.614 2.607 2.592 2.574 2.561 2.559 2.571 2.608 2.659 2.721 2.788 2.859 2.918 2.981 3.019 3.007 2.951 2.861 2.767 2.686 2.623 2.600 2.622 2.682 2.770 2.889 3.007 3.119 3.222 3.317 3.404 3.469 3.494 3.490 3.460 3.423 3.391 3.381 3.387 3.416 3.454 3.498 3.531 3.549 3.555 3.547 3.532 3.523 3.510 3.504 3.513 3.546 3.602 3.682 3.778 3.879 3.969 4.017 4.025 4.014 3.999 3.979 3.963 3.964 3.973 4.010 4.069 4.152 4.242 4.385 4.553 4.528 1.500 1.526 1.562 1.590 1.614 1.633 1.654 1.675 1.703 1.736 1.777 1.829 1.888 1.952 2.014 2.070 2.115 2.146 2.164 2.172 2.181 2.195 2.209 2.223 2.232 2.240 2.247 2.253 2.264 2.283 2.310 2.342 2.375 2.399 2.406 2.398 2.375 2.348 2.327 2.314 2.316 2.327 2.346 2.373 2.406 2.444 2.490 2.539 2.584 2.615 2.622 2.603 2.583 2.565 2.555 2.561 2.586 2.631 2.691 2.757 2.830 2.904 2.969 3.030 3.066 3.047 2.979 2.878 2.776 2.686 2.621 2.600 2.627 2.694 2.784 2.904 3.022 3.133 3.236 3.329 3.415 3.477 3.497 3.489 3.456 3.420 3.388 3.382 3.391 3.422 3.462 3.504 3.536 3.551 3.555 3.545 3.532 3.520 3.509 3.505 3.521 3.562 3.629 3.717 3.815 3.915 3.997 4.027 4.027 4.011 3.994 3.972 3.962 3.969 3.988 4.031 4.101 4.187 4.277 4.423 4.529 4.412 1.500 1.531 1.571 1.599 1.621 1.642 1.664 1.690 1.724 1.766 1.818 1.876 1.940 2.001 2.056 2.102 2.134 2.154 2.163 2.172 2.183 2.199 2.213 2.223 2.231 2.237 2.242 2.248 2.256 2.271 2.294 2.323 2.352 2.374 2.380 2.372 2.354 2.333 2.316 2.311 2.316 2.331 2.354 2.388 2.424 2.468 2.516 2.566 2.604 2.621 2.614 2.594 2.573 2.559 2.559 2.580 2.614 2.666 2.728 2.796 2.871 2.951 3.027 3.096 3.128 3.102 3.022 2.909 2.789 2.690 2.622 2.603 2.638 2.709 2.801 2.923 3.041 3.151 3.253 3.342 3.426 3.484 3.499 3.487 3.450 3.414 3.385 3.383 3.395 3.427 3.469 3.509 3.540 3.552 3.554 3.543 3.530 3.518 3.507 3.508 3.534 3.584 3.660 3.754 3.853 3.948 4.014 4.032 4.025 4.010 3.989 3.969 3.967 3.973 4.001 4.054 4.132 4.218 4.305 4.437 4.469 4.273 1.500 1.536 1.579 1.606 1.627 1.653 1.678 1.710 1.752 1.804 1.863 1.927 1.989 2.045 2.090 2.124 2.146 2.156 2.163 2.173 2.186 2.203 2.213 2.221 2.228 2.233 2.238 2.243 2.250 2.263 2.284 2.310 2.334 2.357 2.364 2.357 2.345 2.328 2.318 2.317 2.325 2.343 2.371 2.407 2.448 2.498 2.546 2.586 2.610 2.610 2.598 2.580 2.566 2.564 2.578 2.614 2.658 2.713 2.775 2.837 2.916 3.001 3.091 3.171 3.200 3.165 3.071 2.943 2.807 2.697 2.626 2.611 2.653 2.724 2.820 2.944 3.061 3.171 3.272 3.359 3.439 3.492 3.501 3.482 3.442 3.407 3.380 3.383 3.400 3.434 3.476 3.515 3.544 3.555 3.552 3.539 3.526 3.515 3.506 3.514 3.547 3.606 3.691 3.790 3.893 3.980 4.026 4.033 4.025 4.007 3.982 3.967 3.970 3.985 4.023 4.084 4.164 4.244 4.324 4.426 4.382 4.132 1.500 1.540 1.584 1.610 1.635 1.666 1.697 1.737 1.787 1.846 1.911 1.974 2.032 2.079 2.114 2.137 2.148 2.154 2.162 2.174 2.189 2.203 2.211 2.219 2.224 2.228 2.234 2.240 2.248 2.261 2.282 2.304 2.330 2.350 2.358 2.355 2.344 2.333 2.329 2.332 2.343 2.365 2.396 2.434 2.481 2.530 2.572 2.596 2.600 2.592 2.579 2.571 2.576 2.590 2.627 2.671 2.722 2.778 2.830 2.887 2.973 3.059 3.165 3.259 3.287 3.238 3.131 2.977 2.826 2.708 2.634 2.623 2.669 2.735 2.837 2.962 3.080 3.190 3.291 3.375 3.451 3.499 3.502 3.478 3.435 3.400 3.377 3.383 3.405 3.439 3.483 3.521 3.547 3.556 3.549 3.539 3.524 3.513 3.507 3.523 3.564 3.632 3.724 3.825 3.928 4.004 4.034 4.033 4.019 3.999 3.974 3.965 3.977 3.999 4.045 4.113 4.195 4.265 4.335 4.392 4.279 4.005 1.500 1.542 1.587 1.615 1.646 1.684 1.722 1.770 1.829 1.893 1.956 2.016 2.066 2.102 2.126 2.139 2.145 2.153 2.164 2.178 2.192 2.201 2.209 2.215 2.219 2.224 2.231 2.240 2.250 2.267 2.285 2.310 2.333 2.351 2.358 2.355 2.348 2.345 2.347 2.356 2.373 2.398 2.429 2.470 2.516 2.555 2.580 2.586 2.579 2.571 2.567 2.577 2.604 2.642 2.695 2.751 2.807 2.852 2.896 2.949 3.028 3.116 3.241 3.348 3.374 3.312 3.182 3.006 2.840 2.712 2.637 2.626 2.668 2.739 2.852 2.978 3.096 3.208 3.309 3.390 3.463 3.506 3.502 3.473 3.429 3.396 3.377 3.385 3.410 3.446 3.491 3.526 3.549 3.556 3.547 3.538 3.523 3.512 3.512 3.538 3.586 3.662 3.758 3.860 3.958 4.019 4.036 4.030 4.015 3.994 3.974 3.972 3.985 4.017 4.072 4.145 4.222 4.282 4.337 4.343 4.171 3.903 1.500 1.543 1.589 1.623 1.664 1.709 1.755 1.811 1.876 1.938 1.998 2.050 2.089 2.116 2.131 2.137 2.144 2.155 2.168 2.182 2.191 2.198 2.205 2.210 2.215 2.220 2.230 2.242 2.258 2.277 2.298 2.321 2.341 2.356 2.360 2.361 2.358 2.363 2.375 2.392 2.416 2.443 2.473 2.512 2.546 2.569 2.572 2.567 2.556 2.557 2.570 2.604 2.657 2.714 2.788 2.857 2.908 2.943 2.973 3.026 3.104 3.200 3.332 3.438 3.450 3.364 3.218 3.021 2.844 2.711 2.638 2.632 2.671 2.747 2.864 2.991 3.111 3.223 3.323 3.402 3.472 3.510 3.501 3.467 3.425 3.394 3.380 3.389 3.417 3.454 3.498 3.532 3.552 3.556 3.546 3.537 3.525 3.514 3.522 3.555 3.612 3.695 3.793 3.897 3.984 4.027 4.034 4.029 4.011 3.987 3.974 3.976 3.996 4.039 4.103 4.179 4.249 4.297 4.329 4.283 4.067 3.830 1.500 1.544 1.594 1.638 1.689 1.741 1.795 1.855 1.922 1.980 2.033 2.075 2.104 2.122 2.129 2.136 2.146 2.160 2.173 2.181 2.189 2.196 2.201 2.207 2.212 2.220 2.230 2.247 2.269 2.290 2.311 2.331 2.348 2.357 2.364 2.367 2.373 2.389 2.411 2.439 2.469 2.493 2.524 2.550 2.563 2.561 2.554 2.543 2.541 2.558 2.595 2.655 2.729 2.807 2.895 2.970 3.016 3.041 3.066 3.125 3.201 3.299 3.427 3.514 3.496 3.385 3.216 3.017 2.837 2.707 2.641 2.638 2.674 2.751 2.872 2.999 3.121 3.234 3.334 3.412 3.481 3.512 3.498 3.462 3.420 3.392 3.385 3.393 3.423 3.461 3.505 3.537 3.556 3.557 3.548 3.537 3.525 3.518 3.537 3.576 3.642 3.729 3.828 3.929 4.005 4.035 4.034 4.025 4.005 3.982 3.977 3.984 4.010 4.062 4.134 4.209 4.272 4.306 4.311 4.218 3.976 3.784 1.500 1.546 1.605 1.662 1.723 1.782 1.839 1.900 1.966 2.018 2.061 2.092 2.111 2.120 2.127 2.137 2.151 2.165 2.173 2.180 2.187 2.193 2.198 2.205 2.212 2.223 2.237 2.257 2.282 2.303 2.323 2.340 2.350 2.359 2.366 2.378 2.397 2.428 2.461 2.496 2.527 2.550 2.569 2.573 2.560 2.545 2.530 2.529 2.544 2.584 2.643 2.729 2.823 2.925 3.017 3.093 3.128 3.140 3.163 3.221 3.299 3.398 3.518 3.578 3.525 3.387 3.197 2.996 2.820 2.697 2.639 2.639 2.676 2.754 2.874 3.001 3.126 3.241 3.340 3.419 3.488 3.511 3.493 3.454 3.413 3.388 3.384 3.395 3.427 3.467 3.510 3.543 3.559 3.558 3.550 3.538 3.528 3.526 3.551 3.598 3.673 3.764 3.863 3.958 4.018 4.037 4.031 4.019 3.995 3.977 3.978 3.992 4.028 4.088 4.164 4.233 4.288 4.306 4.282 4.152 3.900 3.755 1.500 1.552 1.625 1.695 1.764 1.829 1.885 1.944 2.006 2.049 2.080 2.100 2.110 2.117 2.128 2.142 2.155 2.164 2.171 2.178 2.185 2.190 2.197 2.205 2.215 2.230 2.248 2.272 2.295 2.314 2.332 2.343 2.351 2.359 2.372 2.395 2.429 2.476 2.518 2.556 2.579 2.595 2.596 2.574 2.546 2.523 2.517 2.531 2.569 2.633 2.716 2.817 2.928 3.048 3.139 3.194 3.219 3.224 3.248 3.302 3.378 3.474 3.579 3.607 3.527 3.363 3.154 2.950 2.798 2.687 2.638 2.638 2.676 2.755 2.875 3.002 3.127 3.245 3.343 3.423 3.494 3.506 3.488 3.447 3.405 3.383 3.383 3.396 3.428 3.471 3.513 3.546 3.561 3.559 3.552 3.540 3.532 3.538 3.569 3.624 3.706 3.800 3.900 3.986 4.028 4.036 4.031 4.015 3.986 3.975 3.982 4.003 4.050 4.118 4.197 4.250 4.297 4.297 4.243 4.086 3.839 3.731 1.500 1.562 1.651 1.733 1.809 1.877 1.931 1.986 2.039 2.071 2.091 2.101 2.108 2.117 2.129 2.146 2.155 2.163 2.170 2.177 2.183 2.189 2.197 2.208 2.221 2.239 2.262 2.286 2.307 2.323 2.335 2.343 2.353 2.363 2.386 2.423 2.473 2.529 2.576 2.605 2.623 2.622 2.597 2.560 2.528 2.508 2.518 2.555 2.620 2.708 2.806 2.921 3.049 3.164 3.240 3.272 3.280 3.275 3.291 3.332 3.412 3.505 3.592 3.601 3.502 3.319 3.101 2.902 2.768 2.669 2.626 2.628 2.675 2.756 2.877 3.002 3.128 3.246 3.343 3.422 3.489 3.499 3.479 3.437 3.396 3.378 3.380 3.396 3.430 3.474 3.516 3.547 3.561 3.558 3.553 3.541 3.537 3.554 3.590 3.653 3.740 3.836 3.934 4.008 4.037 4.035 4.033 4.010 3.985 3.980 3.986 4.017 4.074 4.148 4.224 4.267 4.301 4.279 4.195 4.019 3.790 3.703 1.500 1.575 1.683 1.775 1.854 1.923 1.971 2.019 2.062 2.082 2.092 2.098 2.106 2.117 2.131 2.146 2.154 2.162 2.169 2.175 2.182 2.190 2.200 2.214 2.231 2.253 2.277 2.299 2.315 2.326 2.336 2.345 2.355 2.375 2.409 2.460 2.521 2.578 2.616 2.634 2.639 2.619 2.579 2.537 2.507 2.506 2.538 2.602 2.684 2.791 2.905 3.030 3.162 3.261 3.310 3.310 3.287 3.277 3.282 3.309 3.383 3.478 3.556 3.555 3.448 3.261 3.044 2.855 2.735 2.657 2.616 2.620 2.673 2.757 2.877 3.002 3.128 3.246 3.342 3.418 3.483 3.490 3.470 3.429 3.390 3.375 3.378 3.397 3.433 3.477 3.517 3.548 3.560 3.560 3.556 3.544 3.543 3.565 3.610 3.682 3.773 3.870 3.965 4.024 4.044 4.043 4.032 4.003 3.982 3.981 3.994 4.033 4.098 4.177 4.241 4.272 4.296 4.250 4.140 3.952 3.751 3.672 1.500 1.591 1.717 1.814 1.895 1.961 2.003 2.041 2.073 2.083 2.089 2.097 2.107 2.120 2.134 2.144 2.152 2.160 2.167 2.173 2.181 2.192 2.206 2.222 2.245 2.268 2.288 2.306 2.317 2.327 2.337 2.348 2.366 2.396 2.442 2.504 2.565 2.611 2.636 2.639 2.622 2.591 2.547 2.508 2.496 2.518 2.576 2.662 2.765 2.892 3.018 3.135 3.245 3.318 3.329 3.300 3.251 3.215 3.215 3.233 3.315 3.408 3.476 3.470 3.369 3.190 2.988 2.814 2.705 2.636 2.608 2.615 2.671 2.759 2.879 3.003 3.128 3.245 3.341 3.415 3.478 3.484 3.463 3.426 3.388 3.378 3.379 3.400 3.437 3.480 3.519 3.548 3.558 3.558 3.554 3.546 3.550 3.577 3.632 3.710 3.804 3.904 3.991 4.035 4.046 4.045 4.027 3.997 3.983 3.988 4.008 4.057 4.127 4.207 4.258 4.277 4.283 4.211 4.079 3.888 3.718 3.642 1.500 1.607 1.747 1.846 1.927 1.989 2.022 2.050 2.074 2.080 2.088 2.098 2.110 2.124 2.134 2.142 2.150 2.158 2.165 2.172 2.183 2.196 2.214 2.235 2.259 2.279 2.297 2.309 2.318 2.328 2.339 2.356 2.384 2.428 2.486 2.548 2.597 2.627 2.636 2.621 2.588 2.544 2.504 2.484 2.495 2.544 2.623 2.730 2.860 2.999 3.129 3.225 3.292 3.322 3.303 3.245 3.177 3.122 3.100 3.125 3.207 3.289 3.361 3.359 3.272 3.118 2.938 2.783 2.683 2.616 2.594 2.611 2.670 2.759 2.878 3.003 3.128 3.245 3.340 3.413 3.475 3.479 3.458 3.421 3.386 3.377 3.380 3.404 3.442 3.485 3.523 3.549 3.557 3.557 3.551 3.545 3.558 3.592 3.654 3.738 3.833 3.932 4.010 4.043 4.046 4.044 4.021 3.996 3.991 3.996 4.026 4.083 4.156 4.231 4.270 4.273 4.256 4.162 4.016 3.830 3.693 3.620 1.500 1.622 1.770 1.870 1.949 2.006 2.031 2.052 2.071 2.078 2.088 2.101 2.114 2.124 2.132 2.140 2.148 2.155 2.163 2.173 2.186 2.203 2.224 2.248 2.270 2.288 2.300 2.310 2.320 2.329 2.344 2.371 2.410 2.469 2.529 2.580 2.612 2.624 2.613 2.584 2.541 2.495 2.465 2.465 2.500 2.571 2.670 2.802 2.949 3.094 3.212 3.281 3.300 3.281 3.227 3.156 3.070 3.004 2.982 3.003 3.072 3.150 3.223 3.236 3.169 3.041 2.891 2.757 2.664 2.605 2.587 2.608 2.669 2.759 2.878 3.003 3.128 3.245 3.340 3.413 3.473 3.477 3.456 3.420 3.386 3.379 3.384 3.410 3.449 3.491 3.527 3.550 3.561 3.558 3.550 3.546 3.564 3.605 3.675 3.765 3.860 3.957 4.022 4.048 4.054 4.042 4.013 3.993 3.997 4.008 4.048 4.112 4.186 4.245 4.269 4.260 4.218 4.108 3.957 3.782 3.676 3.617 1.500 1.632 1.784 1.884 1.960 2.014 2.033 2.051 2.069 2.078 2.090 2.104 2.114 2.123 2.131 2.139 2.146 2.153 2.162 2.175 2.192 2.212 2.236 2.259 2.278 2.291 2.301 2.310 2.319 2.333 2.357 2.393 2.445 2.506 2.559 2.595 2.608 2.600 2.574 2.535 2.487 2.450 2.433 2.449 2.506 2.592 2.712 2.858 3.013 3.154 3.248 3.283 3.259 3.198 3.120 3.037 2.958 2.890 2.865 2.880 2.938 3.010 3.082 3.108 3.062 2.961 2.843 2.728 2.650 2.597 2.584 2.610 2.667 2.759 2.879 3.002 3.128 3.243 3.338 3.411 3.471 3.475 3.454 3.419 3.387 3.383 3.388 3.415 3.456 3.497 3.532 3.552 3.563 3.558 3.549 3.550 3.572 3.620 3.697 3.784 3.882 3.976 4.030 4.049 4.057 4.038 4.009 3.996 4.006 4.024 4.071 4.136 4.214 4.262 4.271 4.243 4.177 4.053 3.901 3.745 3.666 3.638 1.500 1.638 1.792 1.891 1.965 2.015 2.032 2.048 2.069 2.080 2.093 2.104 2.113 2.122 2.130 2.137 2.144 2.152 2.164 2.180 2.200 2.223 2.246 2.267 2.281 2.291 2.300 2.308 2.320 2.342 2.375 2.421 2.479 2.533 2.572 2.591 2.583 2.560 2.524 2.479 2.440 2.414 2.409 2.438 2.506 2.603 2.730 2.882 3.033 3.160 3.231 3.233 3.180 3.090 3.005 2.922 2.847 2.787 2.758 2.772 2.819 2.889 2.962 2.993 2.965 2.890 2.801 2.702 2.636 2.591 2.582 2.608 2.663 2.759 2.879 3.003 3.127 3.240 3.336 3.408 3.468 3.473 3.452 3.419 3.389 3.387 3.394 3.421 3.463 3.501 3.536 3.555 3.564 3.557 3.549 3.559 3.584 3.640 3.722 3.807 3.909 3.995 4.037 4.053 4.055 4.029 4.005 4.002 4.010 4.040 4.097 4.164 4.242 4.275 4.269 4.223 4.132 4.000 3.853 3.723 3.667 3.682 1.500 1.640 1.795 1.893 1.965 2.014 2.029 2.047 2.071 2.083 2.093 2.103 2.112 2.120 2.128 2.135 2.143 2.155 2.170 2.189 2.211 2.233 2.255 2.271 2.280 2.289 2.296 2.307 2.326 2.356 2.398 2.451 2.503 2.542 2.562 2.562 2.540 2.510 2.468 2.430 2.402 2.388 2.394 2.432 2.502 2.597 2.720 2.865 3.003 3.116 3.160 3.138 3.065 2.970 2.889 2.819 2.754 2.698 2.674 2.691 2.730 2.798 2.863 2.894 2.879 2.826 2.757 2.677 2.622 2.584 2.577 2.604 2.657 2.760 2.880 3.002 3.126 3.238 3.333 3.404 3.464 3.469 3.449 3.417 3.389 3.389 3.398 3.427 3.468 3.507 3.541 3.557 3.564 3.556 3.551 3.566 3.599 3.662 3.750 3.834 3.935 4.008 4.039 4.049 4.044 4.013 3.995 4.002 4.018 4.062 4.128 4.194 4.258 4.275 4.256 4.194 4.084 3.953 3.815 3.714 3.680 3.747 1.500 1.641 1.796 1.892 1.963 2.011 2.027 2.047 2.075 2.084 2.094 2.103 2.111 2.119 2.127 2.135 2.145 2.159 2.178 2.199 2.222 2.243 2.260 2.270 2.278 2.284 2.293 2.310 2.337 2.375 2.423 2.471 2.509 2.529 2.531 2.515 2.485 2.452 2.418 2.392 2.376 2.372 2.387 2.425 2.487 2.573 2.685 2.814 2.939 3.031 3.054 3.018 2.940 2.848 2.778 2.724 2.670 2.631 2.620 2.644 2.683 2.740 2.794 2.818 2.806 2.766 2.716 2.653 2.609 2.579 2.576 2.605 2.657 2.761 2.880 3.001 3.125 3.236 3.329 3.399 3.459 3.464 3.445 3.414 3.388 3.390 3.401 3.430 3.472 3.511 3.544 3.559 3.565 3.557 3.558 3.577 3.615 3.686 3.778 3.862 3.960 4.019 4.038 4.041 4.028 3.997 3.987 4.006 4.031 4.087 4.159 4.223 4.276 4.274 4.239 4.161 4.040 3.913 3.787 3.716 3.704 3.824 1.500 1.642 1.796 1.890 1.960 2.008 2.026 2.046 2.075 2.086 2.095 2.103 2.111 2.118 2.126 2.136 2.149 2.167 2.188 2.210 2.231 2.249 2.260 2.268 2.275 2.282 2.296 2.319 2.352 2.397 2.440 2.475 2.494 2.496 2.483 2.458 2.428 2.399 2.377 2.363 2.359 2.366 2.383 2.413 2.462 2.536 2.636 2.749 2.857 2.926 2.936 2.895 2.819 2.745 2.680 2.635 2.605 2.592 2.598 2.627 2.661 2.709 2.750 2.764 2.750 2.722 2.678 2.633 2.602 2.578 2.577 2.604 2.657 2.761 2.879 2.998 3.124 3.234 3.325 3.394 3.453 3.458 3.441 3.412 3.387 3.391 3.402 3.431 3.474 3.513 3.545 3.560 3.565 3.558 3.567 3.590 3.634 3.710 3.792 3.881 3.979 4.026 4.033 4.027 4.006 3.979 3.980 3.999 4.037 4.104 4.174 4.247 4.289 4.272 4.218 4.123 3.997 3.877 3.768 3.725 3.735 3.902 1.500 1.642 1.794 1.887 1.957 2.006 2.025 2.047 2.077 2.087 2.095 2.102 2.110 2.117 2.127 2.139 2.157 2.177 2.199 2.220 2.239 2.251 2.258 2.265 2.271 2.281 2.301 2.331 2.372 2.413 2.445 2.463 2.464 2.450 2.426 2.400 2.374 2.358 2.347 2.344 2.350 2.362 2.375 2.400 2.439 2.502 2.589 2.688 2.774 2.828 2.826 2.784 2.722 2.662 2.605 2.575 2.568 2.577 2.598 2.629 2.661 2.702 2.729 2.732 2.719 2.694 2.658 2.621 2.599 2.578 2.578 2.604 2.659 2.764 2.879 2.998 3.123 3.232 3.321 3.390 3.448 3.453 3.439 3.409 3.386 3.390 3.402 3.431 3.475 3.513 3.546 3.560 3.565 3.560 3.573 3.600 3.650 3.732 3.809 3.903 3.993 4.028 4.028 4.007 3.975 3.952 3.964 3.992 4.046 4.124 4.191 4.262 4.292 4.263 4.194 4.080 3.956 3.848 3.758 3.738 3.772 3.968 1.500 1.641 1.791 1.883 1.954 2.005 2.025 2.049 2.078 2.087 2.095 2.102 2.109 2.117 2.128 2.145 2.165 2.187 2.209 2.229 2.242 2.249 2.256 2.260 2.268 2.284 2.311 2.349 2.388 2.420 2.437 2.438 2.425 2.398 2.372 2.348 2.332 2.327 2.327 2.334 2.344 2.357 2.369 2.388 2.423 2.478 2.556 2.638 2.706 2.742 2.730 2.689 2.641 2.594 2.555 2.537 2.553 2.580 2.613 2.642 2.671 2.701 2.716 2.710 2.698 2.676 2.644 2.611 2.599 2.580 2.579 2.602 2.661 2.766 2.882 2.998 3.123 3.230 3.318 3.386 3.444 3.449 3.437 3.408 3.385 3.391 3.404 3.431 3.475 3.513 3.546 3.560 3.566 3.563 3.580 3.607 3.663 3.749 3.826 3.922 4.002 4.024 4.013 3.975 3.938 3.920 3.945 3.984 4.058 4.145 4.208 4.275 4.289 4.248 4.164 4.038 3.920 3.824 3.754 3.752 3.811 4.010 1.500 1.640 1.788 1.880 1.952 2.004 2.026 2.051 2.079 2.087 2.094 2.101 2.108 2.118 2.133 2.153 2.175 2.197 2.219 2.235 2.242 2.248 2.250 2.256 2.269 2.291 2.325 2.363 2.396 2.414 2.417 2.405 2.381 2.352 2.326 2.310 2.305 2.308 2.316 2.324 2.341 2.354 2.368 2.388 2.421 2.473 2.540 2.607 2.660 2.674 2.654 2.621 2.587 2.552 2.532 2.532 2.559 2.596 2.634 2.656 2.681 2.696 2.704 2.698 2.686 2.668 2.642 2.612 2.600 2.581 2.578 2.597 2.662 2.767 2.885 2.999 3.122 3.229 3.316 3.384 3.441 3.447 3.436 3.407 3.385 3.391 3.405 3.431 3.475 3.513 3.546 3.560 3.566 3.566 3.583 3.612 3.672 3.761 3.839 3.933 4.002 4.011 3.984 3.931 3.891 3.882 3.910 3.969 4.065 4.164 4.222 4.281 4.277 4.223 4.126 3.996 3.886 3.804 3.755 3.767 3.848 4.021 1.500 1.638 1.784 1.878 1.952 2.005 2.029 2.052 2.079 2.085 2.092 2.098 2.107 2.120 2.139 2.161 2.184 2.207 2.225 2.234 2.240 2.242 2.245 2.255 2.273 2.300 2.337 2.370 2.390 2.395 2.388 2.367 2.338 2.311 2.291 2.285 2.288 2.295 2.307 2.317 2.331 2.349 2.368 2.393 2.429 2.481 2.539 2.589 2.621 2.623 2.601 2.573 2.549 2.533 2.529 2.544 2.572 2.610 2.647 2.665 2.684 2.695 2.697 2.687 2.677 2.665 2.642 2.614 2.599 2.585 2.582 2.600 2.663 2.769 2.886 2.999 3.122 3.229 3.316 3.384 3.441 3.447 3.433 3.406 3.384 3.391 3.405 3.431 3.475 3.513 3.546 3.560 3.565 3.569 3.584 3.617 3.679 3.768 3.853 3.941 3.995 3.992 3.948 3.879 3.838 3.841 3.874 3.953 4.070 4.182 4.246 4.284 4.263 4.197 4.085 3.958 3.859 3.787 3.758 3.779 3.881 4.003 1.500 1.637 1.782 1.877 1.953 2.006 2.030 2.052 2.078 2.084 2.090 2.098 2.109 2.126 2.147 2.170 2.193 2.214 2.226 2.232 2.236 2.237 2.243 2.257 2.279 2.311 2.343 2.364 2.372 2.368 2.352 2.328 2.304 2.281 2.270 2.272 2.279 2.290 2.300 2.309 2.321 2.343 2.369 2.402 2.448 2.499 2.546 2.583 2.600 2.595 2.569 2.543 2.528 2.532 2.544 2.568 2.596 2.623 2.651 2.667 2.683 2.688 2.685 2.681 2.675 2.667 2.649 2.624 2.607 2.589 2.586 2.604 2.666 2.771 2.889 3.004 3.123 3.230 3.318 3.386 3.444 3.449 3.434 3.407 3.385 3.391 3.403 3.431 3.474 3.513 3.545 3.560 3.566 3.569 3.584 3.618 3.682 3.759 3.853 3.936 3.980 3.968 3.906 3.827 3.786 3.793 3.837 3.934 4.065 4.178 4.258 4.278 4.247 4.168 4.044 3.926 3.835 3.774 3.761 3.790 3.908 3.964 1.500 1.635 1.781 1.879 1.955 2.008 2.030 2.051 2.075 2.082 2.088 2.098 2.113 2.132 2.155 2.178 2.201 2.217 2.225 2.229 2.230 2.233 2.242 2.260 2.287 2.315 2.340 2.349 2.347 2.335 2.314 2.294 2.275 2.263 2.263 2.270 2.279 2.288 2.296 2.304 2.319 2.339 2.372 2.419 2.472 2.521 2.556 2.582 2.587 2.575 2.553 2.533 2.530 2.544 2.571 2.597 2.621 2.635 2.646 2.662 2.671 2.676 2.675 2.675 2.676 2.675 2.663 2.639 2.624 2.601 2.591 2.612 2.670 2.771 2.888 3.007 3.123 3.232 3.321 3.390 3.448 3.453 3.437 3.409 3.385 3.390 3.401 3.429 3.472 3.510 3.544 3.559 3.569 3.570 3.583 3.618 3.682 3.754 3.852 3.929 3.962 3.937 3.860 3.778 3.741 3.753 3.810 3.923 4.065 4.174 4.261 4.263 4.221 4.129 4.003 3.894 3.813 3.763 3.764 3.798 3.929 3.918 1.500 1.634 1.782 1.881 1.957 2.010 2.030 2.049 2.074 2.080 2.088 2.101 2.118 2.140 2.163 2.186 2.206 2.216 2.222 2.222 2.224 2.230 2.243 2.266 2.290 2.312 2.322 2.322 2.314 2.296 2.279 2.263 2.255 2.254 2.260 2.269 2.277 2.284 2.290 2.301 2.318 2.345 2.385 2.438 2.496 2.536 2.567 2.581 2.576 2.560 2.545 2.535 2.547 2.573 2.603 2.632 2.648 2.649 2.656 2.655 2.655 2.660 2.666 2.672 2.681 2.689 2.686 2.668 2.653 2.627 2.611 2.623 2.675 2.772 2.888 3.008 3.124 3.236 3.326 3.395 3.453 3.458 3.441 3.411 3.386 3.388 3.398 3.425 3.469 3.509 3.541 3.557 3.572 3.572 3.584 3.618 3.681 3.750 3.850 3.917 3.942 3.906 3.817 3.733 3.706 3.717 3.790 3.920 4.070 4.181 4.261 4.243 4.191 4.087 3.962 3.865 3.790 3.756 3.766 3.807 3.942 3.870 1.500 1.633 1.784 1.885 1.959 2.010 2.029 2.047 2.071 2.078 2.089 2.105 2.126 2.149 2.172 2.194 2.207 2.213 2.217 2.217 2.220 2.229 2.245 2.267 2.287 2.299 2.299 2.291 2.275 2.261 2.250 2.241 2.243 2.250 2.259 2.270 2.276 2.280 2.286 2.298 2.321 2.359 2.407 2.461 2.516 2.553 2.574 2.577 2.564 2.548 2.542 2.552 2.578 2.615 2.650 2.674 2.684 2.675 2.661 2.648 2.643 2.650 2.667 2.683 2.699 2.717 2.722 2.707 2.691 2.658 2.634 2.639 2.683 2.772 2.887 3.011 3.131 3.240 3.330 3.400 3.459 3.464 3.445 3.414 3.385 3.382 3.395 3.422 3.463 3.504 3.536 3.554 3.571 3.572 3.584 3.618 3.679 3.747 3.846 3.901 3.924 3.875 3.777 3.694 3.671 3.690 3.780 3.925 4.080 4.189 4.256 4.221 4.165 4.047 3.928 3.842 3.774 3.753 3.770 3.816 3.949 3.826 1.500 1.634 1.788 1.888 1.960 2.010 2.026 2.045 2.070 2.078 2.092 2.111 2.134 2.157 2.180 2.198 2.206 2.210 2.211 2.211 2.216 2.228 2.247 2.266 2.277 2.278 2.270 2.256 2.241 2.232 2.227 2.228 2.237 2.249 2.260 2.267 2.270 2.274 2.281 2.299 2.334 2.380 2.433 2.486 2.529 2.559 2.570 2.564 2.548 2.538 2.547 2.579 2.626 2.672 2.710 2.728 2.721 2.702 2.669 2.643 2.636 2.649 2.675 2.703 2.739 2.760 2.770 2.756 2.735 2.694 2.660 2.656 2.693 2.775 2.887 3.014 3.141 3.241 3.333 3.404 3.464 3.470 3.451 3.418 3.385 3.378 3.390 3.416 3.456 3.497 3.530 3.550 3.569 3.571 3.584 3.618 3.679 3.745 3.841 3.890 3.908 3.845 3.741 3.662 3.645 3.674 3.780 3.939 4.093 4.198 4.250 4.202 4.136 4.009 3.897 3.824 3.763 3.753 3.775 3.828 3.950 3.791 1.500 1.635 1.793 1.891 1.961 2.008 2.024 2.042 2.069 2.081 2.097 2.119 2.142 2.164 2.185 2.198 2.203 2.204 2.204 2.206 2.214 2.226 2.244 2.257 2.259 2.252 2.238 2.223 2.213 2.210 2.213 2.223 2.236 2.247 2.257 2.260 2.262 2.267 2.280 2.310 2.353 2.405 2.460 2.508 2.543 2.560 2.559 2.547 2.532 2.534 2.562 2.616 2.679 2.741 2.786 2.801 2.783 2.739 2.689 2.655 2.645 2.660 2.692 2.737 2.784 2.822 2.829 2.810 2.777 2.730 2.689 2.677 2.706 2.781 2.892 3.024 3.152 3.254 3.331 3.401 3.460 3.475 3.458 3.421 3.387 3.376 3.386 3.411 3.449 3.490 3.524 3.546 3.566 3.570 3.583 3.616 3.678 3.744 3.834 3.878 3.888 3.814 3.709 3.633 3.625 3.667 3.789 3.957 4.115 4.208 4.238 4.177 4.099 3.972 3.869 3.806 3.756 3.755 3.781 3.840 3.944 3.767 1.500 1.638 1.796 1.892 1.960 2.006 2.021 2.040 2.070 2.084 2.104 2.128 2.151 2.173 2.189 2.197 2.199 2.198 2.198 2.202 2.210 2.224 2.238 2.243 2.237 2.224 2.210 2.198 2.195 2.197 2.207 2.221 2.234 2.245 2.251 2.252 2.254 2.262 2.289 2.328 2.378 2.431 2.480 2.522 2.545 2.551 2.542 2.527 2.521 2.539 2.590 2.668 2.749 2.826 2.880 2.891 2.852 2.789 2.726 2.683 2.671 2.688 2.726 2.781 2.834 2.879 2.884 2.861 2.822 2.772 2.726 2.706 2.725 2.790 2.895 3.025 3.153 3.258 3.330 3.399 3.457 3.479 3.464 3.426 3.391 3.376 3.383 3.406 3.442 3.483 3.519 3.541 3.564 3.569 3.581 3.614 3.678 3.744 3.822 3.864 3.868 3.789 3.684 3.612 3.607 3.665 3.801 3.976 4.135 4.212 4.218 4.152 4.066 3.941 3.845 3.790 3.751 3.757 3.787 3.850 3.933 3.754 1.500 1.641 1.798 1.891 1.958 2.003 2.019 2.040 2.071 2.089 2.111 2.135 2.158 2.177 2.189 2.194 2.193 2.191 2.191 2.195 2.203 2.216 2.223 2.221 2.210 2.197 2.185 2.180 2.182 2.192 2.206 2.219 2.231 2.240 2.242 2.243 2.249 2.268 2.305 2.353 2.405 2.454 2.497 2.526 2.536 2.532 2.519 2.510 2.520 2.560 2.633 2.726 2.829 2.923 2.987 2.985 2.930 2.853 2.777 2.728 2.713 2.732 2.776 2.828 2.882 2.926 2.931 2.909 2.873 2.825 2.774 2.746 2.754 2.810 2.902 3.021 3.146 3.251 3.324 3.395 3.454 3.481 3.469 3.433 3.396 3.377 3.378 3.402 3.436 3.476 3.514 3.537 3.562 3.569 3.581 3.614 3.679 3.744 3.805 3.845 3.845 3.764 3.663 3.597 3.599 3.669 3.815 3.990 4.146 4.205 4.187 4.128 4.035 3.918 3.828 3.777 3.746 3.757 3.790 3.857 3.919 3.750 1.500 1.643 1.799 1.889 1.954 2.000 2.017 2.041 2.074 2.094 2.119 2.142 2.164 2.179 2.186 2.189 2.186 2.184 2.184 2.189 2.197 2.205 2.206 2.195 2.182 2.169 2.164 2.168 2.177 2.191 2.206 2.220 2.230 2.234 2.235 2.236 2.250 2.281 2.327 2.379 2.428 2.466 2.501 2.518 2.518 2.508 2.498 2.501 2.535 2.597 2.690 2.799 2.919 3.023 3.086 3.076 3.008 2.916 2.833 2.782 2.769 2.787 2.831 2.874 2.922 2.961 2.976 2.964 2.934 2.884 2.834 2.799 2.794 2.835 2.912 3.015 3.135 3.242 3.323 3.384 3.444 3.473 3.474 3.441 3.402 3.381 3.376 3.397 3.429 3.467 3.507 3.532 3.560 3.570 3.582 3.613 3.677 3.743 3.802 3.836 3.825 3.743 3.647 3.586 3.595 3.675 3.828 4.007 4.157 4.201 4.168 4.098 4.001 3.892 3.813 3.764 3.741 3.757 3.792 3.862 3.903 3.750 1.500 1.644 1.797 1.885 1.950 1.996 2.016 2.042 2.078 2.101 2.125 2.148 2.167 2.178 2.183 2.181 2.177 2.175 2.175 2.182 2.187 2.189 2.181 2.167 2.155 2.146 2.150 2.160 2.174 2.190 2.208 2.221 2.225 2.226 2.225 2.233 2.260 2.302 2.354 2.403 2.442 2.475 2.498 2.500 2.494 2.484 2.484 2.509 2.569 2.653 2.756 2.881 3.014 3.128 3.176 3.154 3.075 2.973 2.888 2.836 2.824 2.841 2.878 2.917 2.955 2.991 3.016 3.018 3.001 2.959 2.911 2.868 2.849 2.872 2.926 3.003 3.113 3.222 3.311 3.373 3.436 3.468 3.478 3.450 3.412 3.388 3.377 3.390 3.424 3.460 3.501 3.534 3.560 3.571 3.583 3.613 3.676 3.742 3.801 3.830 3.814 3.729 3.637 3.582 3.594 3.684 3.839 4.018 4.163 4.191 4.146 4.066 3.969 3.866 3.795 3.756 3.738 3.757 3.794 3.865 3.886 3.750 1.500 1.644 1.793 1.880 1.945 1.994 2.017 2.045 2.083 2.108 2.131 2.152 2.168 2.176 2.176 2.172 2.167 2.164 2.165 2.171 2.173 2.170 2.155 2.142 2.132 2.130 2.140 2.155 2.172 2.191 2.208 2.218 2.219 2.216 2.218 2.239 2.277 2.327 2.379 2.420 2.455 2.477 2.485 2.478 2.468 2.464 2.484 2.533 2.621 2.721 2.836 2.973 3.116 3.215 3.242 3.203 3.113 3.009 2.925 2.877 2.871 2.879 2.914 2.946 2.979 3.014 3.053 3.083 3.086 3.053 3.006 2.953 2.917 2.912 2.938 2.991 3.089 3.198 3.297 3.370 3.425 3.461 3.479 3.459 3.423 3.397 3.379 3.385 3.417 3.452 3.492 3.530 3.558 3.570 3.584 3.616 3.678 3.741 3.803 3.827 3.807 3.722 3.631 3.581 3.597 3.693 3.847 4.026 4.161 4.174 4.124 4.035 3.940 3.845 3.781 3.749 3.735 3.758 3.796 3.867 3.870 3.750 1.500 1.643 1.789 1.875 1.942 1.992 2.018 2.047 2.085 2.110 2.133 2.156 2.168 2.172 2.169 2.163 2.156 2.153 2.154 2.156 2.156 2.145 2.130 2.121 2.116 2.121 2.135 2.153 2.170 2.190 2.205 2.209 2.207 2.204 2.218 2.249 2.296 2.348 2.396 2.434 2.458 2.470 2.463 2.451 2.445 2.459 2.501 2.577 2.681 2.804 2.935 3.079 3.203 3.275 3.274 3.215 3.115 3.015 2.935 2.892 2.887 2.905 2.934 2.965 2.996 3.038 3.095 3.142 3.170 3.158 3.108 3.046 2.991 2.958 2.953 2.982 3.062 3.166 3.267 3.342 3.408 3.447 3.468 3.464 3.433 3.407 3.383 3.381 3.410 3.442 3.481 3.523 3.552 3.568 3.585 3.622 3.683 3.739 3.809 3.829 3.805 3.721 3.629 3.579 3.601 3.703 3.858 4.032 4.156 4.154 4.105 4.006 3.916 3.828 3.767 3.740 3.737 3.762 3.801 3.872 3.858 3.750 1.500 1.640 1.782 1.868 1.937 1.990 2.019 2.050 2.087 2.110 2.131 2.150 2.160 2.164 2.161 2.152 2.144 2.140 2.140 2.138 2.133 2.120 2.108 2.103 2.106 2.120 2.136 2.153 2.172 2.189 2.199 2.198 2.195 2.199 2.223 2.266 2.318 2.368 2.406 2.437 2.454 2.453 2.441 2.430 2.438 2.474 2.541 2.639 2.757 2.896 3.038 3.174 3.267 3.302 3.272 3.190 3.083 2.989 2.916 2.877 2.878 2.904 2.935 2.975 3.011 3.067 3.146 3.210 3.269 3.277 3.222 3.147 3.068 3.002 2.969 2.978 3.033 3.131 3.233 3.312 3.390 3.435 3.461 3.469 3.443 3.414 3.386 3.377 3.398 3.432 3.470 3.515 3.549 3.568 3.591 3.631 3.692 3.733 3.808 3.829 3.805 3.720 3.628 3.579 3.607 3.710 3.865 4.032 4.140 4.121 4.078 3.978 3.896 3.815 3.760 3.739 3.743 3.769 3.808 3.881 3.849 3.750 1.500 1.634 1.769 1.854 1.925 1.981 2.016 2.051 2.090 2.113 2.133 2.149 2.154 2.152 2.144 2.135 2.128 2.124 2.123 2.119 2.108 2.096 2.091 2.092 2.104 2.121 2.139 2.156 2.174 2.185 2.190 2.185 2.183 2.199 2.234 2.283 2.335 2.378 2.413 2.435 2.441 2.431 2.420 2.420 2.448 2.508 2.602 2.715 2.851 3.000 3.148 3.250 3.297 3.288 3.230 3.131 3.025 2.936 2.871 2.843 2.852 2.884 2.925 2.970 3.024 3.100 3.203 3.287 3.376 3.400 3.346 3.248 3.134 3.037 2.976 2.966 3.007 3.098 3.199 3.282 3.370 3.418 3.448 3.463 3.451 3.422 3.393 3.377 3.389 3.423 3.459 3.504 3.544 3.569 3.599 3.644 3.707 3.745 3.819 3.835 3.808 3.720 3.627 3.580 3.611 3.713 3.867 4.028 4.126 4.099 4.052 3.953 3.878 3.805 3.757 3.742 3.750 3.779 3.819 3.893 3.844 3.750 1.500 1.624 1.748 1.831 1.903 1.961 1.997 2.037 2.083 2.109 2.132 2.146 2.150 2.142 2.131 2.118 2.106 2.102 2.101 2.094 2.086 2.076 2.078 2.087 2.104 2.124 2.142 2.159 2.174 2.181 2.179 2.173 2.178 2.203 2.246 2.298 2.344 2.379 2.407 2.421 2.419 2.409 2.406 2.425 2.476 2.563 2.677 2.808 2.954 3.099 3.229 3.292 3.291 3.245 3.158 3.049 2.946 2.866 2.809 2.793 2.810 2.850 2.903 2.966 3.042 3.140 3.247 3.358 3.474 3.513 3.456 3.335 3.189 3.060 2.976 2.950 2.980 3.056 3.150 3.248 3.345 3.401 3.436 3.457 3.457 3.430 3.400 3.379 3.382 3.411 3.449 3.494 3.539 3.573 3.608 3.659 3.725 3.760 3.831 3.845 3.815 3.724 3.628 3.579 3.613 3.710 3.863 4.017 4.109 4.076 4.028 3.932 3.864 3.797 3.755 3.745 3.756 3.790 3.831 3.906 3.843 3.750 1.500 1.611 1.718 1.797 1.869 1.928 1.967 2.012 2.059 2.087 2.115 2.131 2.135 2.128 2.118 2.103 2.089 2.083 2.078 2.068 2.059 2.057 2.067 2.084 2.105 2.128 2.148 2.163 2.172 2.174 2.167 2.164 2.179 2.213 2.259 2.308 2.347 2.380 2.399 2.402 2.397 2.391 2.405 2.447 2.524 2.634 2.764 2.910 3.061 3.196 3.282 3.305 3.264 3.179 3.070 2.957 2.860 2.787 2.740 2.738 2.765 2.814 2.883 2.968 3.071 3.186 3.299 3.431 3.562 3.606 3.538 3.393 3.213 3.059 2.963 2.932 2.957 3.017 3.103 3.211 3.313 3.379 3.420 3.445 3.451 3.436 3.411 3.386 3.379 3.401 3.439 3.484 3.532 3.574 3.617 3.675 3.745 3.780 3.847 3.857 3.825 3.728 3.629 3.580 3.614 3.710 3.857 4.005 4.089 4.053 4.004 3.913 3.853 3.790 3.754 3.749 3.763 3.800 3.842 3.917 3.842 3.750 1.500 1.594 1.682 1.755 1.823 1.881 1.923 1.970 2.019 2.051 2.078 2.097 2.102 2.101 2.096 2.083 2.074 2.067 2.058 2.046 2.040 2.042 2.058 2.080 2.104 2.130 2.150 2.164 2.170 2.164 2.157 2.161 2.184 2.224 2.271 2.311 2.343 2.370 2.381 2.382 2.377 2.383 2.418 2.486 2.583 2.710 2.858 3.013 3.154 3.263 3.302 3.277 3.200 3.088 2.971 2.863 2.772 2.712 2.679 2.684 2.724 2.783 2.864 2.970 3.100 3.234 3.357 3.501 3.629 3.666 3.578 3.407 3.213 3.045 2.943 2.910 2.928 2.978 3.053 3.166 3.274 3.354 3.404 3.435 3.449 3.446 3.422 3.393 3.379 3.391 3.424 3.472 3.523 3.573 3.625 3.689 3.765 3.800 3.864 3.869 3.833 3.731 3.630 3.580 3.613 3.708 3.850 3.991 4.069 4.029 3.982 3.895 3.841 3.785 3.754 3.754 3.770 3.807 3.849 3.925 3.842 3.750 1.500 1.576 1.645 1.710 1.771 1.826 1.870 1.916 1.964 1.998 2.026 2.047 2.055 2.059 2.059 2.051 2.049 2.044 2.037 2.027 2.025 2.033 2.054 2.078 2.103 2.129 2.148 2.159 2.161 2.152 2.150 2.161 2.191 2.233 2.276 2.310 2.339 2.357 2.362 2.362 2.363 2.386 2.445 2.540 2.659 2.803 2.961 3.112 3.234 3.295 3.285 3.218 3.103 2.985 2.877 2.783 2.702 2.652 2.633 2.646 2.691 2.761 2.853 2.975 3.116 3.287 3.419 3.563 3.670 3.692 3.581 3.389 3.184 3.013 2.913 2.880 2.892 2.941 3.001 3.115 3.227 3.323 3.383 3.419 3.440 3.444 3.433 3.404 3.384 3.387 3.413 3.460 3.512 3.567 3.627 3.697 3.770 3.814 3.879 3.881 3.841 3.734 3.631 3.581 3.610 3.702 3.839 3.969 4.036 4.007 3.961 3.880 3.831 3.780 3.754 3.755 3.773 3.811 3.853 3.928 3.842 3.750 1.500 1.559 1.610 1.668 1.722 1.772 1.814 1.857 1.901 1.934 1.962 1.982 1.994 2.004 2.009 2.007 2.007 2.010 2.008 2.006 2.012 2.030 2.054 2.080 2.106 2.129 2.143 2.149 2.145 2.141 2.144 2.164 2.199 2.242 2.279 2.306 2.329 2.341 2.343 2.345 2.357 2.400 2.485 2.600 2.738 2.895 3.054 3.187 3.278 3.290 3.236 3.131 3.004 2.886 2.790 2.706 2.641 2.607 2.601 2.624 2.674 2.752 2.852 2.977 3.132 3.313 3.458 3.599 3.693 3.692 3.559 3.352 3.141 2.975 2.874 2.836 2.846 2.890 2.952 3.062 3.180 3.285 3.357 3.405 3.433 3.444 3.442 3.416 3.391 3.385 3.402 3.442 3.499 3.559 3.624 3.704 3.775 3.826 3.892 3.888 3.843 3.733 3.628 3.583 3.604 3.696 3.829 3.954 4.012 3.989 3.944 3.869 3.824 3.776 3.755 3.758 3.774 3.812 3.855 3.929 3.842 3.750 1.500 1.543 1.582 1.634 1.681 1.725 1.764 1.801 1.840 1.869 1.893 1.911 1.925 1.937 1.945 1.950 1.955 1.962 1.971 1.982 1.998 2.023 2.051 2.079 2.106 2.126 2.137 2.135 2.126 2.128 2.143 2.170 2.206 2.245 2.277 2.301 2.321 2.327 2.328 2.334 2.363 2.428 2.540 2.669 2.823 2.987 3.136 3.246 3.289 3.254 3.162 3.029 2.904 2.796 2.712 2.638 2.595 2.577 2.585 2.619 2.671 2.745 2.850 2.974 3.136 3.317 3.468 3.606 3.685 3.660 3.517 3.303 3.091 2.929 2.830 2.786 2.795 2.840 2.905 3.008 3.128 3.239 3.324 3.384 3.419 3.436 3.439 3.429 3.403 3.388 3.395 3.428 3.484 3.545 3.615 3.702 3.775 3.835 3.900 3.890 3.836 3.723 3.616 3.576 3.597 3.690 3.821 3.945 3.997 3.976 3.932 3.862 3.819 3.773 3.755 3.761 3.774 3.812 3.855 3.929 3.842 3.750 1.500 1.532 1.563 1.610 1.651 1.690 1.724 1.755 1.787 1.810 1.830 1.844 1.858 1.869 1.878 1.887 1.897 1.910 1.929 1.952 1.981 2.013 2.045 2.077 2.104 2.120 2.130 2.123 2.114 2.120 2.144 2.177 2.214 2.247 2.272 2.295 2.308 2.312 2.317 2.333 2.381 2.468 2.592 2.738 2.905 3.067 3.197 3.274 3.263 3.187 3.064 2.929 2.811 2.713 2.635 2.586 2.564 2.563 2.585 2.625 2.677 2.747 2.847 2.968 3.121 3.291 3.448 3.584 3.650 3.605 3.462 3.254 3.049 2.890 2.789 2.742 2.749 2.795 2.862 2.954 3.067 3.182 3.285 3.358 3.404 3.430 3.440 3.439 3.415 3.393 3.390 3.416 3.463 3.528 3.601 3.693 3.772 3.836 3.899 3.882 3.820 3.700 3.596 3.560 3.582 3.679 3.815 3.941 3.992 3.971 3.928 3.859 3.816 3.772 3.755 3.762 3.774 3.812 3.855 3.929 3.842 3.750 1.500 1.524 1.554 1.598 1.635 1.669 1.699 1.723 1.748 1.764 1.777 1.788 1.798 1.807 1.815 1.824 1.839 1.859 1.885 1.917 1.953 1.990 2.027 2.065 2.095 2.114 2.121 2.113 2.109 2.121 2.147 2.182 2.215 2.243 2.268 2.288 2.297 2.302 2.312 2.343 2.413 2.525 2.659 2.818 2.987 3.137 3.242 3.268 3.212 3.099 2.959 2.834 2.731 2.648 2.580 2.553 2.549 2.564 2.596 2.637 2.688 2.750 2.833 2.946 3.082 3.236 3.386 3.520 3.585 3.545 3.412 3.216 3.022 2.860 2.751 2.698 2.703 2.749 2.813 2.903 3.010 3.130 3.242 3.325 3.384 3.419 3.435 3.439 3.431 3.404 3.392 3.411 3.447 3.509 3.584 3.679 3.765 3.831 3.891 3.866 3.796 3.671 3.568 3.536 3.560 3.665 3.810 3.943 3.997 3.976 3.932 3.862 3.819 3.774 3.755 3.761 3.774 3.812 3.855 3.929 3.842 3.750 1.500 1.520 1.552 1.594 1.630 1.661 1.686 1.705 1.723 1.732 1.738 1.745 1.750 1.756 1.761 1.771 1.786 1.811 1.842 1.877 1.917 1.959 2.002 2.045 2.080 2.104 2.112 2.108 2.108 2.126 2.153 2.186 2.215 2.237 2.262 2.278 2.287 2.294 2.317 2.366 2.461 2.584 2.730 2.896 3.059 3.188 3.261 3.237 3.138 2.999 2.864 2.753 2.661 2.585 2.542 2.531 2.542 2.572 2.611 2.652 2.700 2.750 2.820 2.908 3.023 3.158 3.297 3.430 3.499 3.477 3.360 3.187 3.005 2.838 2.722 2.664 2.670 2.713 2.771 2.854 2.953 3.070 3.189 3.286 3.360 3.409 3.434 3.445 3.445 3.418 3.395 3.405 3.429 3.485 3.565 3.664 3.766 3.829 3.879 3.844 3.765 3.634 3.530 3.501 3.533 3.648 3.807 3.956 4.024 3.990 3.945 3.873 3.826 3.777 3.755 3.758 3.774 3.812 3.855 3.929 3.842 3.750 1.500 1.518 1.555 1.596 1.632 1.661 1.682 1.696 1.707 1.712 1.713 1.716 1.717 1.719 1.722 1.730 1.744 1.771 1.802 1.838 1.879 1.923 1.972 2.022 2.065 2.094 2.108 2.112 2.120 2.139 2.165 2.190 2.212 2.236 2.258 2.269 2.278 2.293 2.334 2.409 2.520 2.651 2.809 2.977 3.130 3.237 3.256 3.184 3.051 2.906 2.782 2.684 2.600 2.541 2.519 2.524 2.546 2.585 2.626 2.666 2.707 2.753 2.802 2.865 2.955 3.070 3.194 3.307 3.390 3.397 3.303 3.157 2.990 2.829 2.709 2.644 2.640 2.676 2.723 2.793 2.896 3.008 3.125 3.239 3.327 3.390 3.428 3.444 3.448 3.433 3.405 3.405 3.419 3.464 3.539 3.644 3.755 3.816 3.863 3.819 3.734 3.600 3.495 3.465 3.505 3.631 3.804 3.968 4.049 4.009 3.963 3.886 3.834 3.781 3.754 3.753 3.774 3.812 3.855 3.929 3.842 3.750 1.500 1.518 1.560 1.601 1.636 1.664 1.682 1.693 1.701 1.702 1.700 1.697 1.695 1.693 1.694 1.701 1.717 1.741 1.770 1.804 1.844 1.890 1.944 1.999 2.051 2.089 2.110 2.124 2.140 2.158 2.180 2.199 2.217 2.240 2.256 2.265 2.275 2.301 2.360 2.456 2.581 2.725 2.889 3.053 3.188 3.260 3.229 3.112 2.965 2.822 2.708 2.617 2.547 2.512 2.509 2.527 2.559 2.600 2.641 2.679 2.720 2.752 2.781 2.818 2.882 2.978 3.085 3.194 3.287 3.314 3.252 3.130 2.977 2.824 2.703 2.632 2.616 2.642 2.681 2.745 2.842 2.951 3.067 3.186 3.289 3.364 3.414 3.437 3.444 3.440 3.419 3.413 3.416 3.448 3.517 3.622 3.738 3.796 3.843 3.798 3.711 3.576 3.471 3.442 3.487 3.620 3.803 3.979 4.071 4.029 3.981 3.901 3.844 3.786 3.755 3.753 3.774 3.812 3.855 3.929 3.842 3.750 1.500 1.518 1.565 1.606 1.640 1.665 1.682 1.693 1.700 1.700 1.697 1.692 1.686 1.678 1.676 1.682 1.698 1.721 1.747 1.778 1.817 1.864 1.923 1.983 2.041 2.085 2.117 2.139 2.162 2.182 2.200 2.215 2.230 2.251 2.262 2.269 2.281 2.319 2.398 2.511 2.650 2.807 2.970 3.124 3.227 3.258 3.181 3.038 2.884 2.752 2.650 2.566 2.512 2.496 2.507 2.535 2.575 2.618 2.657 2.699 2.733 2.753 2.761 2.777 2.818 2.895 2.980 3.087 3.191 3.236 3.203 3.104 2.965 2.823 2.703 2.629 2.603 2.616 2.644 2.702 2.790 2.893 3.006 3.123 3.240 3.329 3.392 3.429 3.444 3.445 3.434 3.423 3.418 3.439 3.497 3.596 3.718 3.777 3.828 3.788 3.701 3.567 3.462 3.434 3.480 3.618 3.807 3.992 4.090 4.049 3.999 3.915 3.854 3.790 3.757 3.753 3.774 3.812 3.855 3.929 3.842 3.750 1.500 1.519 1.571 1.612 1.645 1.669 1.680 1.689 1.696 1.696 1.693 1.689 1.681 1.673 1.671 1.675 1.690 1.711 1.734 1.762 1.800 1.848 1.910 1.976 2.039 2.091 2.131 2.161 2.191 2.209 2.223 2.239 2.254 2.267 2.272 2.281 2.299 2.351 2.442 2.565 2.718 2.882 3.048 3.179 3.234 3.209 3.096 2.953 2.804 2.686 2.592 2.523 2.491 2.492 2.514 2.548 2.587 2.630 2.667 2.709 2.739 2.750 2.744 2.746 2.768 2.824 2.886 2.992 3.100 3.161 3.149 3.072 2.949 2.818 2.704 2.628 2.593 2.590 2.603 2.661 2.740 2.838 2.946 3.061 3.181 3.285 3.360 3.410 3.434 3.440 3.439 3.437 3.426 3.438 3.484 3.576 3.697 3.761 3.817 3.788 3.706 3.576 3.472 3.442 3.488 3.626 3.818 4.004 4.104 4.065 4.014 3.926 3.861 3.794 3.758 3.753 3.774 3.812 3.855 3.929 3.842 3.750 1.500 1.520 1.576 1.618 1.649 1.672 1.682 1.690 1.693 1.691 1.687 1.683 1.675 1.669 1.669 1.677 1.694 1.713 1.733 1.757 1.792 1.841 1.905 1.976 2.045 2.106 2.153 2.192 2.221 2.237 2.254 2.272 2.288 2.296 2.296 2.301 2.329 2.394 2.494 2.626 2.786 2.955 3.117 3.216 3.222 3.140 3.005 2.862 2.737 2.633 2.549 2.494 2.482 2.495 2.526 2.563 2.602 2.642 2.680 2.715 2.740 2.743 2.732 2.723 2.733 2.772 2.826 2.924 3.028 3.095 3.094 3.031 2.922 2.804 2.702 2.629 2.590 2.577 2.578 2.623 2.693 2.782 2.884 2.994 3.109 3.228 3.319 3.383 3.421 3.436 3.438 3.443 3.437 3.442 3.478 3.560 3.674 3.750 3.817 3.798 3.727 3.599 3.496 3.465 3.507 3.643 3.831 4.015 4.111 4.076 4.024 3.934 3.865 3.796 3.758 3.754 3.774 3.812 3.855 3.929 3.842 3.750 1.500 1.521 1.581 1.623 1.653 1.674 1.683 1.689 1.691 1.689 1.682 1.677 1.668 1.665 1.668 1.680 1.699 1.719 1.738 1.761 1.796 1.845 1.910 1.984 2.057 2.124 2.176 2.219 2.246 2.266 2.289 2.312 2.329 2.334 2.331 2.332 2.360 2.426 2.532 2.669 2.831 3.008 3.156 3.224 3.184 3.068 2.917 2.776 2.665 2.579 2.517 2.478 2.480 2.503 2.537 2.575 2.613 2.657 2.691 2.714 2.733 2.733 2.720 2.706 2.707 2.737 2.787 2.876 2.973 3.037 3.038 2.984 2.893 2.788 2.698 2.630 2.589 2.570 2.562 2.591 2.652 2.730 2.824 2.929 3.039 3.157 3.265 3.343 3.398 3.427 3.435 3.450 3.451 3.453 3.482 3.552 3.652 3.735 3.819 3.813 3.756 3.634 3.529 3.497 3.534 3.663 3.844 4.020 4.107 4.081 4.028 3.933 3.865 3.796 3.759 3.756 3.776 3.813 3.855 3.929 3.842 3.750 1.500 1.522 1.584 1.628 1.655 1.675 1.684 1.689 1.690 1.686 1.681 1.674 1.665 1.663 1.668 1.683 1.702 1.724 1.745 1.771 1.808 1.861 1.928 2.003 2.076 2.142 2.196 2.240 2.264 2.292 2.324 2.353 2.372 2.375 2.368 2.366 2.396 2.455 2.553 2.687 2.843 3.015 3.145 3.187 3.123 2.991 2.839 2.709 2.611 2.535 2.492 2.475 2.486 2.518 2.555 2.592 2.630 2.670 2.698 2.717 2.722 2.722 2.709 2.694 2.694 2.720 2.767 2.846 2.934 2.991 2.992 2.945 2.862 2.768 2.688 2.629 2.590 2.568 2.552 2.566 2.612 2.680 2.764 2.862 2.968 3.080 3.201 3.297 3.367 3.412 3.435 3.453 3.459 3.467 3.491 3.554 3.634 3.722 3.821 3.830 3.784 3.673 3.571 3.532 3.566 3.684 3.853 4.016 4.093 4.082 4.029 3.932 3.865 3.799 3.764 3.763 3.777 3.814 3.855 3.928 3.842 3.750 1.500 1.523 1.587 1.631 1.656 1.675 1.683 1.688 1.689 1.684 1.679 1.672 1.663 1.663 1.670 1.686 1.704 1.726 1.750 1.781 1.823 1.880 1.951 2.026 2.098 2.161 2.211 2.247 2.272 2.311 2.353 2.390 2.410 2.411 2.400 2.394 2.414 2.461 2.547 2.665 2.816 2.970 3.078 3.099 3.030 2.904 2.766 2.650 2.563 2.503 2.479 2.478 2.501 2.535 2.571 2.607 2.647 2.681 2.705 2.716 2.713 2.708 2.697 2.685 2.689 2.718 2.766 2.845 2.918 2.961 2.958 2.911 2.834 2.750 2.678 2.626 2.592 2.571 2.554 2.555 2.579 2.632 2.707 2.799 2.899 3.007 3.126 3.238 3.323 3.385 3.425 3.449 3.462 3.477 3.508 3.567 3.638 3.720 3.821 3.844 3.805 3.703 3.604 3.563 3.592 3.700 3.859 4.016 4.091 4.082 4.031 3.934 3.869 3.804 3.769 3.771 3.777 3.813 3.853 3.925 3.842 3.750 1.500 1.525 1.589 1.633 1.656 1.675 1.682 1.686 1.687 1.681 1.677 1.669 1.662 1.663 1.671 1.689 1.708 1.730 1.758 1.794 1.840 1.901 1.974 2.050 2.119 2.176 2.223 2.253 2.282 2.327 2.381 2.418 2.437 2.435 2.419 2.413 2.418 2.447 2.514 2.610 2.745 2.876 2.964 2.981 2.922 2.817 2.703 2.607 2.527 2.484 2.473 2.487 2.519 2.553 2.587 2.626 2.663 2.692 2.709 2.714 2.706 2.691 2.682 2.679 2.691 2.723 2.775 2.852 2.911 2.945 2.937 2.888 2.815 2.736 2.670 2.622 2.592 2.573 2.555 2.549 2.554 2.592 2.657 2.739 2.832 2.934 3.046 3.167 3.270 3.349 3.408 3.444 3.465 3.489 3.529 3.588 3.655 3.729 3.825 3.852 3.823 3.722 3.625 3.581 3.606 3.707 3.861 4.015 4.093 4.086 4.037 3.941 3.876 3.809 3.772 3.772 3.775 3.809 3.848 3.917 3.842 3.750 1.500 1.528 1.592 1.634 1.656 1.674 1.679 1.683 1.684 1.679 1.675 1.666 1.662 1.665 1.676 1.694 1.713 1.736 1.765 1.803 1.855 1.921 1.996 2.070 2.139 2.193 2.236 2.260 2.295 2.345 2.398 2.434 2.452 2.445 2.424 2.407 2.398 2.411 2.458 2.534 2.647 2.756 2.826 2.847 2.809 2.731 2.644 2.565 2.501 2.472 2.473 2.500 2.537 2.569 2.601 2.644 2.678 2.700 2.711 2.709 2.696 2.678 2.670 2.677 2.700 2.743 2.796 2.868 2.927 2.948 2.934 2.883 2.814 2.739 2.673 2.625 2.597 2.580 2.558 2.549 2.544 2.561 2.611 2.683 2.770 2.865 2.972 3.091 3.208 3.303 3.378 3.429 3.460 3.497 3.547 3.618 3.687 3.750 3.838 3.861 3.835 3.733 3.636 3.589 3.611 3.708 3.860 4.016 4.101 4.095 4.049 3.954 3.888 3.816 3.775 3.771 3.771 3.802 3.840 3.906 3.842 3.750 1.500 1.532 1.595 1.635 1.656 1.673 1.678 1.682 1.683 1.678 1.674 1.665 1.663 1.668 1.680 1.697 1.716 1.742 1.772 1.813 1.868 1.937 2.015 2.088 2.155 2.206 2.242 2.268 2.309 2.361 2.406 2.438 2.451 2.440 2.420 2.391 2.367 2.364 2.393 2.454 2.544 2.632 2.697 2.725 2.707 2.660 2.600 2.533 2.487 2.469 2.481 2.515 2.553 2.586 2.619 2.657 2.686 2.705 2.711 2.703 2.686 2.666 2.659 2.674 2.714 2.768 2.823 2.891 2.947 2.963 2.949 2.901 2.832 2.757 2.688 2.637 2.610 2.588 2.563 2.550 2.539 2.540 2.576 2.632 2.710 2.798 2.898 3.012 3.136 3.245 3.337 3.406 3.453 3.501 3.560 3.642 3.727 3.782 3.858 3.870 3.838 3.737 3.637 3.591 3.610 3.706 3.859 4.021 4.117 4.108 4.065 3.971 3.902 3.826 3.778 3.768 3.765 3.793 3.828 3.892 3.842 3.750 1.500 1.537 1.598 1.635 1.656 1.673 1.677 1.680 1.682 1.680 1.674 1.665 1.664 1.670 1.684 1.700 1.718 1.744 1.776 1.821 1.881 1.953 2.031 2.104 2.168 2.215 2.250 2.279 2.322 2.372 2.410 2.433 2.438 2.423 2.398 2.363 2.331 2.318 2.336 2.383 2.455 2.526 2.589 2.625 2.625 2.601 2.561 2.513 2.480 2.473 2.494 2.530 2.566 2.597 2.635 2.668 2.690 2.705 2.706 2.694 2.673 2.659 2.659 2.677 2.728 2.792 2.851 2.916 2.971 3.000 2.986 2.943 2.877 2.802 2.728 2.666 2.633 2.600 2.569 2.554 2.540 2.532 2.547 2.591 2.655 2.738 2.832 2.938 3.058 3.183 3.285 3.372 3.436 3.498 3.572 3.665 3.768 3.825 3.889 3.887 3.842 3.744 3.634 3.589 3.608 3.704 3.862 4.034 4.143 4.124 4.084 3.989 3.915 3.836 3.781 3.765 3.757 3.783 3.816 3.877 3.842 3.750 1.500 1.542 1.602 1.635 1.656 1.672 1.675 1.679 1.680 1.680 1.673 1.666 1.667 1.672 1.686 1.702 1.721 1.747 1.780 1.828 1.893 1.968 2.046 2.118 2.178 2.222 2.256 2.292 2.340 2.384 2.412 2.424 2.419 2.405 2.374 2.335 2.300 2.286 2.297 2.336 2.394 2.456 2.516 2.559 2.573 2.568 2.533 2.499 2.479 2.482 2.508 2.543 2.578 2.613 2.649 2.677 2.694 2.702 2.696 2.681 2.663 2.654 2.663 2.689 2.747 2.819 2.879 2.944 3.003 3.046 3.052 3.016 2.953 2.876 2.795 2.717 2.663 2.616 2.577 2.558 2.544 2.533 2.534 2.558 2.609 2.684 2.769 2.864 2.975 3.099 3.215 3.321 3.408 3.490 3.578 3.687 3.799 3.861 3.919 3.901 3.841 3.736 3.633 3.587 3.605 3.701 3.862 4.039 4.154 4.142 4.104 4.008 3.929 3.846 3.784 3.762 3.749 3.772 3.804 3.863 3.842 3.750 1.500 1.546 1.606 1.635 1.656 1.671 1.673 1.676 1.679 1.679 1.673 1.668 1.669 1.674 1.689 1.704 1.725 1.750 1.785 1.836 1.904 1.981 2.060 2.130 2.185 2.229 2.264 2.304 2.353 2.392 2.411 2.414 2.400 2.378 2.345 2.308 2.277 2.267 2.274 2.308 2.356 2.416 2.473 2.517 2.538 2.541 2.517 2.491 2.479 2.490 2.517 2.551 2.584 2.625 2.659 2.682 2.697 2.698 2.687 2.667 2.654 2.654 2.671 2.705 2.767 2.846 2.909 2.976 3.042 3.100 3.132 3.111 3.056 2.978 2.885 2.790 2.712 2.643 2.590 2.564 2.546 2.534 2.527 2.535 2.574 2.633 2.709 2.796 2.896 3.011 3.138 3.260 3.369 3.474 3.580 3.700 3.822 3.882 3.946 3.919 3.846 3.732 3.631 3.585 3.600 3.696 3.858 4.040 4.163 4.157 4.123 4.026 3.943 3.853 3.786 3.758 3.741 3.763 3.793 3.852 3.842 3.750 1.500 1.549 1.609 1.634 1.655 1.669 1.671 1.675 1.677 1.677 1.671 1.669 1.671 1.676 1.690 1.706 1.727 1.753 1.791 1.845 1.915 1.994 2.073 2.142 2.192 2.230 2.270 2.312 2.360 2.393 2.406 2.403 2.382 2.352 2.316 2.282 2.259 2.256 2.269 2.301 2.347 2.403 2.458 2.500 2.521 2.522 2.502 2.484 2.478 2.493 2.520 2.551 2.587 2.629 2.663 2.683 2.695 2.692 2.675 2.656 2.647 2.655 2.679 2.722 2.791 2.873 2.938 3.006 3.084 3.161 3.222 3.225 3.185 3.107 3.000 2.886 2.780 2.686 2.612 2.574 2.552 2.536 2.524 2.519 2.544 2.590 2.653 2.733 2.823 2.937 3.060 3.190 3.316 3.442 3.567 3.700 3.833 3.895 3.959 3.939 3.859 3.743 3.630 3.581 3.594 3.693 3.854 4.038 4.166 4.167 4.136 4.040 3.954 3.860 3.788 3.756 3.738 3.756 3.786 3.845 3.842 3.750 1.500 1.550 1.611 1.632 1.654 1.667 1.669 1.673 1.675 1.676 1.670 1.669 1.672 1.680 1.694 1.710 1.730 1.757 1.796 1.853 1.925 2.006 2.086 2.153 2.203 2.240 2.277 2.321 2.365 2.390 2.398 2.389 2.363 2.324 2.286 2.257 2.247 2.251 2.275 2.306 2.353 2.405 2.458 2.493 2.507 2.499 2.481 2.472 2.472 2.486 2.512 2.541 2.583 2.625 2.657 2.677 2.687 2.681 2.663 2.648 2.643 2.657 2.689 2.741 2.817 2.897 2.966 3.036 3.123 3.223 3.315 3.348 3.329 3.253 3.133 2.994 2.861 2.738 2.644 2.589 2.560 2.541 2.525 2.511 2.523 2.557 2.607 2.673 2.755 2.861 2.974 3.109 3.250 3.395 3.543 3.694 3.835 3.901 3.961 3.938 3.866 3.749 3.628 3.576 3.586 3.684 3.843 4.029 4.163 4.171 4.147 4.051 3.963 3.865 3.789 3.753 3.736 3.752 3.782 3.841 3.842 3.750 1.500 1.550 1.611 1.630 1.652 1.664 1.667 1.670 1.674 1.674 1.668 1.669 1.672 1.683 1.696 1.714 1.732 1.761 1.802 1.863 1.937 2.019 2.098 2.162 2.212 2.249 2.285 2.332 2.366 2.387 2.389 2.375 2.344 2.304 2.267 2.238 2.238 2.250 2.284 2.323 2.370 2.420 2.464 2.490 2.499 2.483 2.464 2.453 2.461 2.474 2.501 2.530 2.571 2.611 2.643 2.665 2.674 2.666 2.651 2.641 2.644 2.663 2.704 2.763 2.843 2.923 2.995 3.067 3.159 3.277 3.400 3.479 3.482 3.408 3.274 3.109 2.949 2.802 2.688 2.612 2.572 2.548 2.531 2.513 2.509 2.530 2.570 2.623 2.696 2.792 2.895 3.023 3.174 3.336 3.505 3.675 3.828 3.902 3.964 3.937 3.869 3.752 3.626 3.569 3.577 3.672 3.828 4.015 4.154 4.170 4.153 4.058 3.970 3.870 3.791 3.754 3.735 3.751 3.781 3.840 3.842 3.750 1.500 1.550 1.610 1.628 1.650 1.662 1.664 1.668 1.672 1.671 1.667 1.668 1.672 1.684 1.697 1.714 1.733 1.764 1.809 1.872 1.948 2.032 2.110 2.170 2.217 2.255 2.291 2.336 2.363 2.380 2.378 2.361 2.326 2.286 2.251 2.230 2.234 2.252 2.294 2.340 2.387 2.436 2.472 2.490 2.486 2.465 2.445 2.436 2.440 2.456 2.485 2.520 2.561 2.594 2.621 2.643 2.650 2.646 2.638 2.635 2.644 2.673 2.724 2.799 2.876 2.946 3.020 3.095 3.189 3.318 3.466 3.585 3.613 3.551 3.409 3.227 3.038 2.869 2.740 2.644 2.587 2.556 2.537 2.517 2.503 2.511 2.539 2.581 2.651 2.733 2.824 2.944 3.094 3.270 3.460 3.650 3.819 3.900 3.969 3.945 3.883 3.754 3.625 3.563 3.569 3.659 3.811 3.999 4.143 4.167 4.158 4.063 3.974 3.876 3.796 3.758 3.737 3.753 3.782 3.840 3.842 3.750 1.500 1.550 1.608 1.627 1.648 1.660 1.662 1.666 1.671 1.669 1.666 1.667 1.671 1.685 1.697 1.715 1.735 1.768 1.816 1.882 1.961 2.045 2.121 2.178 2.223 2.260 2.297 2.338 2.362 2.373 2.366 2.345 2.308 2.270 2.239 2.226 2.238 2.262 2.307 2.358 2.406 2.448 2.473 2.483 2.468 2.446 2.428 2.421 2.426 2.440 2.466 2.505 2.543 2.575 2.598 2.620 2.626 2.628 2.627 2.632 2.647 2.685 2.743 2.831 2.908 2.973 3.040 3.120 3.214 3.350 3.515 3.662 3.712 3.666 3.521 3.330 3.121 2.940 2.796 2.684 2.605 2.564 2.542 2.522 2.501 2.501 2.517 2.550 2.612 2.679 2.759 2.869 3.017 3.206 3.416 3.627 3.814 3.904 3.973 3.951 3.892 3.756 3.628 3.556 3.564 3.648 3.796 3.985 4.135 4.167 4.166 4.076 3.987 3.888 3.807 3.767 3.741 3.754 3.782 3.839 3.842 3.750 1.500 1.552 1.608 1.627 1.648 1.659 1.660 1.663 1.668 1.666 1.663 1.664 1.670 1.685 1.698 1.716 1.738 1.773 1.825 1.894 1.974 2.057 2.131 2.185 2.228 2.265 2.303 2.338 2.359 2.366 2.355 2.330 2.291 2.255 2.229 2.226 2.243 2.273 2.323 2.374 2.424 2.457 2.471 2.470 2.450 2.427 2.412 2.408 2.413 2.428 2.452 2.489 2.524 2.551 2.576 2.598 2.610 2.620 2.627 2.637 2.659 2.701 2.763 2.856 2.931 2.995 3.065 3.150 3.243 3.378 3.546 3.707 3.774 3.743 3.607 3.415 3.199 3.013 2.858 2.731 2.631 2.574 2.547 2.526 2.502 2.496 2.502 2.524 2.577 2.632 2.701 2.806 2.954 3.149 3.379 3.611 3.814 3.912 3.977 3.954 3.897 3.756 3.625 3.551 3.556 3.637 3.784 3.974 4.130 4.172 4.179 4.094 4.005 3.905 3.820 3.775 3.745 3.755 3.781 3.834 3.842 3.750 1.500 1.554 1.608 1.628 1.648 1.658 1.659 1.661 1.665 1.663 1.660 1.661 1.669 1.685 1.700 1.718 1.743 1.780 1.835 1.906 1.987 2.069 2.140 2.190 2.230 2.269 2.309 2.342 2.361 2.362 2.346 2.316 2.277 2.242 2.223 2.227 2.249 2.288 2.341 2.391 2.436 2.461 2.463 2.454 2.431 2.412 2.401 2.401 2.405 2.420 2.447 2.478 2.507 2.530 2.557 2.587 2.607 2.627 2.642 2.658 2.686 2.730 2.794 2.878 2.951 3.014 3.084 3.168 3.266 3.403 3.569 3.733 3.811 3.795 3.670 3.483 3.266 3.074 2.908 2.768 2.660 2.590 2.555 2.532 2.505 2.496 2.495 2.505 2.550 2.597 2.658 2.759 2.910 3.113 3.355 3.607 3.827 3.931 3.992 3.959 3.902 3.754 3.622 3.546 3.549 3.628 3.774 3.968 4.130 4.180 4.195 4.114 4.023 3.920 3.835 3.784 3.748 3.754 3.776 3.824 3.843 3.750 1.500 1.557 1.609 1.630 1.649 1.658 1.658 1.659 1.662 1.660 1.657 1.658 1.667 1.685 1.705 1.723 1.750 1.789 1.844 1.917 2.000 2.081 2.147 2.195 2.233 2.276 2.317 2.344 2.360 2.358 2.340 2.306 2.266 2.233 2.220 2.229 2.255 2.301 2.355 2.405 2.444 2.461 2.456 2.437 2.414 2.398 2.391 2.393 2.401 2.418 2.444 2.469 2.493 2.517 2.550 2.588 2.623 2.652 2.676 2.699 2.729 2.771 2.831 2.902 2.971 3.035 3.104 3.189 3.302 3.433 3.592 3.752 3.830 3.824 3.712 3.534 3.324 3.128 2.951 2.804 2.691 2.608 2.563 2.535 2.507 2.496 2.492 2.506 2.536 2.573 2.628 2.727 2.881 3.091 3.343 3.615 3.853 3.966 4.028 3.995 3.903 3.755 3.620 3.544 3.546 3.622 3.773 3.967 4.133 4.190 4.212 4.134 4.042 3.935 3.848 3.791 3.749 3.750 3.769 3.812 3.844 3.750 1.500 1.560 1.611 1.632 1.650 1.659 1.657 1.657 1.659 1.655 1.653 1.656 1.666 1.685 1.706 1.726 1.756 1.797 1.854 1.929 2.012 2.091 2.156 2.202 2.236 2.279 2.317 2.344 2.359 2.353 2.332 2.297 2.257 2.228 2.221 2.233 2.263 2.314 2.366 2.415 2.446 2.455 2.445 2.422 2.399 2.386 2.385 2.388 2.401 2.422 2.445 2.464 2.484 2.512 2.553 2.604 2.655 2.702 2.735 2.765 2.795 2.832 2.876 2.932 2.994 3.053 3.123 3.210 3.327 3.467 3.620 3.771 3.843 3.841 3.741 3.573 3.369 3.163 2.982 2.827 2.710 2.627 2.576 2.540 2.509 2.497 2.491 2.506 2.523 2.555 2.609 2.710 2.872 3.093 3.356 3.636 3.887 4.002 4.058 4.018 3.899 3.755 3.619 3.543 3.543 3.617 3.769 3.963 4.133 4.196 4.226 4.152 4.060 3.951 3.858 3.794 3.747 3.744 3.760 3.798 3.849 3.750 1.500 1.563 1.613 1.634 1.652 1.659 1.657 1.655 1.655 1.652 1.650 1.655 1.667 1.686 1.708 1.729 1.760 1.804 1.864 1.939 2.023 2.101 2.162 2.206 2.238 2.281 2.319 2.343 2.356 2.348 2.325 2.286 2.248 2.223 2.221 2.239 2.273 2.327 2.378 2.420 2.445 2.446 2.432 2.407 2.387 2.377 2.379 2.385 2.401 2.425 2.446 2.462 2.482 2.516 2.570 2.636 2.706 2.768 2.812 2.847 2.877 2.907 2.933 2.970 3.016 3.069 3.137 3.227 3.349 3.505 3.656 3.797 3.860 3.855 3.760 3.597 3.395 3.187 3.003 2.847 2.729 2.648 2.590 2.549 2.513 2.499 2.491 2.505 2.517 2.541 2.600 2.710 2.882 3.117 3.393 3.681 3.927 4.041 4.084 4.033 3.896 3.746 3.619 3.542 3.539 3.612 3.762 3.954 4.128 4.198 4.235 4.167 4.077 3.965 3.866 3.796 3.743 3.737 3.751 3.786 3.858 3.750 1.500 1.565 1.613 1.636 1.653 1.659 1.655 1.652 1.652 1.648 1.647 1.654 1.668 1.687 1.709 1.731 1.763 1.809 1.871 1.948 2.031 2.108 2.166 2.208 2.239 2.282 2.319 2.342 2.351 2.340 2.315 2.276 2.240 2.221 2.223 2.246 2.284 2.339 2.387 2.424 2.441 2.436 2.418 2.394 2.378 2.373 2.374 2.382 2.400 2.426 2.446 2.464 2.487 2.531 2.599 2.684 2.773 2.847 2.902 2.945 2.973 2.992 2.998 3.015 3.044 3.087 3.151 3.241 3.366 3.521 3.693 3.826 3.878 3.868 3.772 3.611 3.412 3.202 3.014 2.858 2.739 2.660 2.606 2.559 2.521 2.503 2.492 2.505 2.513 2.532 2.600 2.723 2.910 3.161 3.451 3.744 3.984 4.091 4.108 4.039 3.889 3.730 3.618 3.540 3.535 3.606 3.753 3.945 4.125 4.210 4.241 4.181 4.095 3.979 3.875 3.798 3.740 3.731 3.744 3.777 3.870 3.750 1.500 1.567 1.612 1.636 1.653 1.658 1.654 1.650 1.649 1.645 1.646 1.655 1.669 1.689 1.709 1.732 1.764 1.810 1.874 1.952 2.036 2.112 2.169 2.209 2.240 2.282 2.317 2.338 2.345 2.330 2.304 2.265 2.232 2.218 2.225 2.252 2.295 2.348 2.394 2.426 2.435 2.424 2.405 2.382 2.370 2.368 2.372 2.382 2.399 2.424 2.444 2.465 2.496 2.552 2.636 2.739 2.851 2.940 3.009 3.052 3.072 3.078 3.063 3.059 3.072 3.106 3.164 3.254 3.382 3.536 3.711 3.839 3.891 3.877 3.781 3.625 3.425 3.212 3.018 2.859 2.740 2.663 2.612 2.568 2.531 2.507 2.502 2.509 2.515 2.538 2.613 2.749 2.950 3.216 3.516 3.810 4.038 4.132 4.143 4.038 3.892 3.736 3.620 3.541 3.533 3.602 3.743 3.932 4.116 4.214 4.245 4.194 4.112 3.994 3.885 3.802 3.741 3.727 3.740 3.773 3.886 3.750 1.500 1.568 1.610 1.636 1.652 1.657 1.652 1.648 1.647 1.643 1.644 1.654 1.672 1.692 1.710 1.731 1.762 1.810 1.875 1.954 2.038 2.115 2.172 2.215 2.248 2.282 2.314 2.333 2.337 2.320 2.293 2.256 2.228 2.217 2.227 2.257 2.303 2.354 2.400 2.426 2.429 2.414 2.394 2.374 2.365 2.363 2.369 2.383 2.404 2.425 2.445 2.469 2.508 2.576 2.674 2.796 2.927 3.033 3.115 3.159 3.174 3.153 3.117 3.094 3.093 3.116 3.166 3.255 3.387 3.545 3.722 3.850 3.915 3.889 3.786 3.631 3.430 3.212 3.012 2.852 2.735 2.662 2.617 2.581 2.547 2.515 2.509 2.508 2.516 2.550 2.632 2.782 2.998 3.278 3.584 3.871 4.080 4.154 4.148 4.034 3.903 3.754 3.626 3.550 3.539 3.608 3.740 3.922 4.107 4.213 4.250 4.206 4.129 4.011 3.898 3.810 3.747 3.725 3.739 3.774 3.903 3.750 1.500 1.568 1.606 1.634 1.649 1.654 1.650 1.646 1.645 1.642 1.642 1.654 1.673 1.694 1.710 1.730 1.760 1.808 1.874 1.954 2.040 2.117 2.174 2.219 2.256 2.289 2.314 2.329 2.329 2.313 2.283 2.248 2.222 2.214 2.228 2.264 2.312 2.360 2.404 2.425 2.424 2.406 2.384 2.366 2.360 2.360 2.368 2.384 2.407 2.425 2.446 2.475 2.524 2.603 2.713 2.849 2.988 3.112 3.203 3.247 3.249 3.210 3.155 3.121 3.103 3.114 3.157 3.247 3.377 3.548 3.726 3.857 3.923 3.895 3.789 3.635 3.432 3.211 3.007 2.845 2.728 2.660 2.621 2.592 2.559 2.524 2.517 2.507 2.519 2.560 2.654 2.821 3.053 3.345 3.653 3.926 4.108 4.157 4.141 4.021 3.915 3.770 3.640 3.569 3.556 3.619 3.744 3.918 4.102 4.213 4.258 4.221 4.145 4.027 3.910 3.821 3.753 3.727 3.742 3.780 3.919 3.750 1.500 1.568 1.602 1.632 1.647 1.651 1.647 1.643 1.644 1.640 1.641 1.653 1.673 1.693 1.708 1.728 1.758 1.807 1.875 1.955 2.042 2.119 2.177 2.219 2.260 2.292 2.316 2.329 2.324 2.307 2.275 2.241 2.217 2.213 2.229 2.267 2.320 2.367 2.407 2.422 2.416 2.399 2.375 2.360 2.356 2.358 2.368 2.385 2.408 2.426 2.448 2.485 2.546 2.634 2.754 2.900 3.042 3.173 3.267 3.305 3.295 3.242 3.174 3.134 3.103 3.101 3.140 3.230 3.361 3.541 3.722 3.866 3.929 3.900 3.795 3.646 3.438 3.216 3.008 2.844 2.728 2.660 2.626 2.603 2.568 2.531 2.523 2.511 2.528 2.577 2.683 2.867 3.115 3.413 3.718 3.969 4.121 4.146 4.127 4.020 3.937 3.796 3.669 3.599 3.584 3.641 3.756 3.921 4.100 4.214 4.266 4.235 4.161 4.044 3.923 3.832 3.763 3.732 3.749 3.788 3.932 3.750 1.500 1.568 1.598 1.629 1.643 1.648 1.644 1.641 1.642 1.639 1.640 1.652 1.672 1.692 1.707 1.728 1.759 1.810 1.879 1.961 2.047 2.123 2.179 2.220 2.263 2.296 2.319 2.330 2.321 2.302 2.269 2.237 2.215 2.214 2.233 2.273 2.326 2.371 2.407 2.419 2.409 2.391 2.368 2.357 2.353 2.358 2.369 2.385 2.408 2.427 2.451 2.500 2.574 2.672 2.797 2.946 3.088 3.218 3.307 3.334 3.313 3.249 3.173 3.136 3.089 3.075 3.110 3.204 3.340 3.528 3.714 3.860 3.924 3.900 3.807 3.669 3.455 3.234 3.021 2.850 2.731 2.660 2.626 2.605 2.573 2.537 2.529 2.516 2.543 2.600 2.718 2.917 3.179 3.480 3.776 4.003 4.123 4.126 4.109 4.026 3.971 3.830 3.707 3.639 3.621 3.670 3.775 3.928 4.099 4.213 4.270 4.246 4.172 4.054 3.934 3.842 3.771 3.739 3.756 3.797 3.941 3.750 1.500 1.568 1.595 1.626 1.640 1.644 1.641 1.638 1.640 1.637 1.639 1.651 1.671 1.692 1.707 1.730 1.763 1.816 1.887 1.970 2.056 2.128 2.182 2.221 2.264 2.298 2.320 2.330 2.320 2.298 2.264 2.233 2.214 2.217 2.238 2.279 2.330 2.375 2.406 2.414 2.401 2.382 2.361 2.352 2.350 2.357 2.369 2.389 2.409 2.430 2.456 2.511 2.595 2.708 2.841 2.992 3.130 3.254 3.333 3.350 3.306 3.232 3.146 3.099 3.050 3.038 3.072 3.171 3.314 3.511 3.703 3.852 3.916 3.896 3.814 3.689 3.482 3.263 3.044 2.865 2.739 2.663 2.626 2.605 2.575 2.542 2.535 2.523 2.554 2.623 2.753 2.967 3.242 3.545 3.828 4.027 4.116 4.098 4.085 4.026 3.993 3.869 3.752 3.685 3.663 3.703 3.797 3.942 4.100 4.209 4.270 4.252 4.184 4.067 3.945 3.852 3.780 3.747 3.763 3.802 3.943 3.750 1.500 1.568 1.592 1.624 1.637 1.641 1.638 1.636 1.637 1.636 1.638 1.652 1.671 1.692 1.709 1.734 1.770 1.825 1.898 1.982 2.065 2.135 2.186 2.223 2.264 2.299 2.320 2.329 2.317 2.294 2.260 2.230 2.213 2.221 2.245 2.286 2.336 2.379 2.406 2.409 2.393 2.374 2.355 2.348 2.348 2.357 2.369 2.392 2.410 2.432 2.464 2.525 2.616 2.736 2.881 3.035 3.167 3.279 3.342 3.345 3.287 3.202 3.107 3.049 2.997 2.987 3.032 3.135 3.286 3.490 3.687 3.845 3.913 3.892 3.823 3.714 3.515 3.297 3.074 2.886 2.752 2.669 2.627 2.605 2.576 2.556 2.546 2.535 2.568 2.644 2.787 3.013 3.299 3.601 3.870 4.047 4.117 4.097 4.063 4.030 4.014 3.904 3.794 3.729 3.702 3.734 3.817 3.950 4.096 4.199 4.263 4.250 4.189 4.075 3.956 3.861 3.786 3.751 3.765 3.802 3.937 3.750 1.500 1.566 1.590 1.621 1.634 1.638 1.635 1.633 1.635 1.634 1.638 1.652 1.672 1.694 1.713 1.740 1.780 1.838 1.911 1.995 2.076 2.142 2.189 2.225 2.261 2.297 2.318 2.325 2.313 2.289 2.256 2.227 2.213 2.224 2.250 2.292 2.340 2.383 2.405 2.404 2.386 2.367 2.351 2.345 2.347 2.357 2.370 2.392 2.411 2.435 2.477 2.543 2.641 2.767 2.917 3.069 3.198 3.298 3.342 3.333 3.263 3.170 3.068 2.989 2.937 2.932 2.985 3.096 3.259 3.467 3.669 3.833 3.906 3.888 3.827 3.729 3.551 3.335 3.109 2.911 2.767 2.678 2.631 2.606 2.578 2.565 2.552 2.548 2.582 2.666 2.822 3.060 3.354 3.654 3.902 4.054 4.106 4.086 4.048 4.043 4.032 3.930 3.828 3.765 3.734 3.758 3.833 3.954 4.086 4.185 4.253 4.245 4.190 4.079 3.968 3.872 3.792 3.753 3.764 3.797 3.922 3.750 1.500 1.563 1.587 1.618 1.632 1.636 1.633 1.631 1.633 1.631 1.638 1.653 1.674 1.697 1.718 1.747 1.790 1.850 1.925 2.008 2.086 2.148 2.191 2.226 2.261 2.295 2.314 2.318 2.305 2.280 2.251 2.223 2.212 2.227 2.256 2.299 2.346 2.386 2.404 2.400 2.381 2.363 2.349 2.341 2.345 2.357 2.369 2.391 2.412 2.441 2.487 2.562 2.666 2.799 2.953 3.100 3.229 3.316 3.342 3.318 3.237 3.136 3.022 2.936 2.885 2.886 2.945 3.061 3.236 3.443 3.647 3.818 3.896 3.884 3.833 3.745 3.585 3.372 3.141 2.935 2.782 2.687 2.634 2.606 2.579 2.572 2.557 2.566 2.602 2.691 2.860 3.110 3.410 3.707 3.934 4.059 4.096 4.080 4.048 4.069 4.045 3.949 3.853 3.790 3.756 3.773 3.844 3.953 4.076 4.173 4.243 4.242 4.196 4.089 3.979 3.882 3.798 3.752 3.758 3.787 3.902 3.754 1.500 1.558 1.585 1.615 1.629 1.633 1.631 1.629 1.631 1.629 1.639 1.655 1.676 1.700 1.722 1.753 1.798 1.860 1.936 2.018 2.095 2.154 2.195 2.227 2.260 2.293 2.309 2.311 2.296 2.271 2.242 2.216 2.210 2.229 2.261 2.306 2.352 2.390 2.405 2.397 2.376 2.358 2.345 2.339 2.344 2.357 2.370 2.392 2.413 2.451 2.501 2.582 2.692 2.832 2.991 3.133 3.256 3.332 3.340 3.304 3.216 3.106 2.981 2.891 2.836 2.846 2.910 3.029 3.207 3.416 3.619 3.797 3.880 3.873 3.833 3.751 3.600 3.402 3.168 2.957 2.795 2.694 2.635 2.606 2.581 2.576 2.563 2.576 2.620 2.717 2.901 3.166 3.473 3.766 3.972 4.071 4.087 4.072 4.042 4.067 4.051 3.956 3.869 3.802 3.766 3.779 3.844 3.946 4.066 4.167 4.239 4.244 4.207 4.103 3.988 3.888 3.803 3.750 3.750 3.774 3.881 3.767 1.500 1.553 1.582 1.612 1.626 1.631 1.629 1.627 1.630 1.629 1.640 1.657 1.679 1.703 1.726 1.757 1.804 1.866 1.943 2.026 2.101 2.159 2.198 2.228 2.261 2.291 2.304 2.303 2.287 2.260 2.233 2.209 2.206 2.229 2.264 2.311 2.357 2.394 2.405 2.395 2.373 2.354 2.342 2.338 2.344 2.357 2.370 2.392 2.416 2.455 2.513 2.601 2.720 2.866 3.027 3.167 3.282 3.340 3.329 3.283 3.189 3.073 2.948 2.856 2.801 2.810 2.879 2.997 3.172 3.374 3.579 3.766 3.860 3.862 3.833 3.756 3.607 3.412 3.186 2.973 2.804 2.698 2.636 2.607 2.583 2.581 2.574 2.589 2.641 2.744 2.944 3.226 3.539 3.828 4.014 4.087 4.083 4.072 4.052 4.068 4.053 3.953 3.877 3.808 3.771 3.781 3.843 3.942 4.063 4.174 4.248 4.254 4.225 4.121 4.003 3.897 3.809 3.750 3.741 3.761 3.859 3.791 1.500 1.547 1.579 1.609 1.624 1.630 1.628 1.627 1.630 1.630 1.642 1.663 1.684 1.706 1.728 1.759 1.807 1.870 1.947 2.030 2.105 2.162 2.202 2.234 2.263 2.290 2.301 2.297 2.279 2.252 2.224 2.202 2.202 2.228 2.265 2.314 2.360 2.396 2.406 2.394 2.371 2.352 2.341 2.337 2.344 2.358 2.370 2.393 2.418 2.460 2.523 2.619 2.745 2.898 3.061 3.197 3.303 3.339 3.318 3.263 3.165 3.043 2.919 2.828 2.776 2.784 2.852 2.965 3.129 3.319 3.530 3.721 3.829 3.844 3.829 3.757 3.611 3.417 3.196 2.980 2.808 2.698 2.636 2.608 2.588 2.587 2.590 2.608 2.668 2.780 2.994 3.289 3.609 3.893 4.060 4.107 4.086 4.086 4.074 4.073 4.056 3.955 3.879 3.813 3.776 3.786 3.845 3.942 4.072 4.192 4.255 4.264 4.241 4.142 4.021 3.911 3.817 3.751 3.734 3.748 3.837 3.826 1.500 1.541 1.577 1.608 1.623 1.629 1.628 1.628 1.632 1.632 1.645 1.667 1.689 1.709 1.730 1.761 1.809 1.873 1.949 2.032 2.107 2.163 2.204 2.239 2.266 2.290 2.299 2.293 2.273 2.246 2.217 2.196 2.198 2.226 2.265 2.315 2.362 2.397 2.407 2.393 2.370 2.352 2.341 2.337 2.345 2.358 2.370 2.393 2.422 2.466 2.534 2.633 2.766 2.924 3.089 3.222 3.318 3.342 3.309 3.243 3.142 3.014 2.892 2.805 2.758 2.765 2.828 2.932 3.080 3.258 3.462 3.652 3.783 3.814 3.815 3.755 3.611 3.417 3.198 2.982 2.808 2.696 2.636 2.610 2.595 2.593 2.611 2.633 2.700 2.821 3.045 3.350 3.680 3.962 4.114 4.135 4.098 4.099 4.102 4.074 4.058 3.957 3.882 3.818 3.787 3.795 3.850 3.942 4.072 4.190 4.258 4.273 4.258 4.164 4.044 3.927 3.827 3.753 3.728 3.737 3.815 3.870 1.500 1.537 1.575 1.607 1.623 1.630 1.629 1.630 1.633 1.634 1.647 1.670 1.693 1.712 1.733 1.765 1.812 1.876 1.952 2.034 2.108 2.165 2.206 2.243 2.272 2.291 2.300 2.292 2.269 2.243 2.214 2.193 2.196 2.224 2.262 2.313 2.362 2.397 2.406 2.393 2.370 2.353 2.341 2.337 2.345 2.357 2.368 2.393 2.428 2.472 2.542 2.646 2.783 2.944 3.102 3.236 3.323 3.341 3.300 3.230 3.125 2.989 2.870 2.788 2.743 2.747 2.794 2.892 3.023 3.188 3.381 3.570 3.724 3.775 3.794 3.746 3.605 3.410 3.189 2.981 2.807 2.695 2.637 2.614 2.616 2.603 2.623 2.651 2.727 2.861 3.095 3.410 3.750 4.029 4.171 4.174 4.132 4.096 4.101 4.074 4.059 3.961 3.885 3.828 3.801 3.809 3.860 3.945 4.069 4.184 4.255 4.277 4.270 4.185 4.067 3.946 3.839 3.757 3.723 3.728 3.795 3.918 1.500 1.534 1.575 1.607 1.623 1.631 1.631 1.632 1.635 1.637 1.650 1.672 1.695 1.714 1.737 1.770 1.818 1.882 1.958 2.038 2.110 2.166 2.206 2.242 2.273 2.292 2.302 2.292 2.269 2.244 2.213 2.192 2.195 2.223 2.260 2.311 2.361 2.397 2.406 2.393 2.371 2.356 2.341 2.338 2.345 2.358 2.368 2.393 2.429 2.475 2.547 2.654 2.794 2.958 3.112 3.247 3.321 3.333 3.286 3.210 3.095 2.965 2.849 2.774 2.733 2.734 2.768 2.853 2.962 3.114 3.290 3.472 3.634 3.717 3.758 3.731 3.598 3.405 3.184 2.980 2.806 2.693 2.635 2.613 2.622 2.607 2.629 2.665 2.752 2.899 3.146 3.471 3.816 4.084 4.210 4.194 4.146 4.090 4.096 4.071 4.062 3.969 3.895 3.841 3.819 3.826 3.874 3.950 4.066 4.175 4.248 4.278 4.279 4.200 4.085 3.962 3.851 3.762 3.720 3.720 3.776 3.964 1.500 1.532 1.575 1.608 1.625 1.633 1.634 1.635 1.637 1.639 1.652 1.674 1.696 1.717 1.740 1.776 1.826 1.891 1.967 2.047 2.115 2.169 2.207 2.240 2.272 2.293 2.303 2.294 2.269 2.244 2.213 2.191 2.194 2.222 2.259 2.308 2.361 2.397 2.406 2.393 2.371 2.356 2.341 2.338 2.345 2.358 2.368 2.394 2.429 2.475 2.548 2.657 2.800 2.965 3.117 3.251 3.321 3.326 3.271 3.189 3.070 2.942 2.829 2.762 2.726 2.726 2.749 2.816 2.908 3.040 3.201 3.376 3.546 3.650 3.714 3.709 3.589 3.401 3.177 2.972 2.805 2.690 2.632 2.610 2.623 2.609 2.635 2.679 2.778 2.938 3.198 3.533 3.878 4.128 4.232 4.196 4.142 4.080 4.086 4.066 4.064 3.980 3.911 3.860 3.836 3.842 3.886 3.957 4.064 4.172 4.242 4.277 4.286 4.215 4.105 3.977 3.865 3.771 3.719 3.714 3.757 3.994 1.500 1.532 1.576 1.609 1.626 1.635 1.635 1.638 1.639 1.641 1.654 1.675 1.697 1.719 1.744 1.782 1.834 1.902 1.979 2.058 2.122 2.172 2.208 2.240 2.272 2.294 2.303 2.294 2.269 2.244 2.213 2.191 2.193 2.221 2.258 2.308 2.361 2.397 2.406 2.393 2.371 2.356 2.341 2.338 2.345 2.358 2.368 2.397 2.429 2.476 2.548 2.658 2.801 2.965 3.117 3.249 3.316 3.315 3.255 3.170 3.045 2.919 2.811 2.751 2.721 2.722 2.738 2.788 2.864 2.978 3.121 3.287 3.459 3.591 3.670 3.683 3.579 3.397 3.174 2.968 2.804 2.687 2.629 2.608 2.626 2.620 2.643 2.696 2.807 2.980 3.252 3.595 3.936 4.167 4.243 4.188 4.129 4.071 4.072 4.064 4.067 3.992 3.929 3.881 3.857 3.861 3.902 3.968 4.063 4.168 4.238 4.282 4.294 4.228 4.125 3.997 3.883 3.783 3.717 3.707 3.737 3.995 1.500 1.532 1.576 1.609 1.627 1.635 1.636 1.638 1.639 1.642 1.655 1.675 1.697 1.719 1.747 1.788 1.843 1.913 1.991 2.069 2.130 2.176 2.209 2.240 2.273 2.294 2.302 2.294 2.269 2.244 2.213 2.191 2.193 2.221 2.258 2.307 2.361 2.397 2.405 2.393 2.371 2.356 2.341 2.338 2.345 2.358 2.368 2.401 2.432 2.477 2.549 2.658 2.800 2.964 3.114 3.243 3.309 3.304 3.239 3.154 3.021 2.898 2.793 2.739 2.718 2.721 2.732 2.769 2.832 2.927 3.053 3.208 3.379 3.526 3.617 3.649 3.564 3.394 3.174 2.968 2.804 2.686 2.625 2.605 2.626 2.633 2.656 2.718 2.834 3.023 3.310 3.661 3.998 4.207 4.253 4.178 4.116 4.066 4.052 4.048 4.048 4.000 3.945 3.904 3.881 3.885 3.921 3.983 4.065 4.163 4.230 4.283 4.299 4.249 4.150 4.024 3.906 3.799 3.716 3.698 3.713 3.963 1.500 1.532 1.577 1.609 1.627 1.635 1.636 1.638 1.640 1.642 1.655 1.674 1.696 1.719 1.750 1.793 1.851 1.923 2.002 2.079 2.138 2.181 2.211 2.241 2.274 2.295 2.303 2.294 2.269 2.245 2.213 2.192 2.194 2.221 2.258 2.307 2.361 2.397 2.405 2.393 2.371 2.356 2.341 2.338 2.345 2.358 2.368 2.401 2.432 2.477 2.549 2.658 2.800 2.962 3.112 3.234 3.297 3.287 3.216 3.128 2.999 2.878 2.778 2.727 2.713 2.722 2.731 2.758 2.810 2.891 3.001 3.145 3.312 3.462 3.562 3.610 3.551 3.395 3.182 2.976 2.811 2.692 2.625 2.603 2.625 2.650 2.676 2.747 2.872 3.075 3.377 3.736 4.065 4.250 4.265 4.173 4.110 4.073 4.034 4.034 4.032 4.002 3.959 3.928 3.908 3.911 3.942 3.996 4.065 4.155 4.222 4.281 4.306 4.269 4.181 4.059 3.935 3.818 3.718 3.689 3.689 3.902 1.500 1.532 1.577 1.609 1.627 1.635 1.635 1.637 1.639 1.641 1.654 1.672 1.694 1.718 1.750 1.796 1.857 1.932 2.011 2.087 2.145 2.184 2.213 2.243 2.275 2.297 2.305 2.296 2.270 2.246 2.213 2.192 2.195 2.221 2.258 2.307 2.361 2.397 2.405 2.393 2.371 2.356 2.341 2.338 2.345 2.358 2.368 2.401 2.432 2.477 2.549 2.658 2.799 2.960 3.109 3.222 3.283 3.269 3.194 3.104 2.975 2.857 2.763 2.713 2.705 2.721 2.731 2.750 2.798 2.867 2.961 3.093 3.253 3.403 3.510 3.570 3.542 3.405 3.198 2.992 2.825 2.703 2.630 2.606 2.626 2.656 2.691 2.776 2.913 3.133 3.448 3.815 4.134 4.292 4.270 4.158 4.083 4.049 4.016 4.021 4.022 4.004 3.973 3.949 3.933 3.936 3.963 4.008 4.066 4.147 4.214 4.278 4.314 4.289 4.209 4.095 3.966 3.839 3.724 3.681 3.667 3.824 1.500 1.532 1.577 1.609 1.626 1.634 1.635 1.636 1.637 1.640 1.652 1.670 1.692 1.716 1.749 1.797 1.861 1.937 2.018 2.093 2.149 2.187 2.216 2.245 2.278 2.300 2.307 2.298 2.271 2.246 2.213 2.192 2.195 2.221 2.258 2.307 2.361 2.397 2.405 2.393 2.371 2.356 2.342 2.339 2.345 2.358 2.368 2.401 2.432 2.477 2.549 2.658 2.799 2.961 3.111 3.218 3.274 3.255 3.176 3.083 2.954 2.837 2.749 2.704 2.699 2.720 2.734 2.752 2.793 2.850 2.932 3.054 3.207 3.356 3.473 3.550 3.539 3.422 3.225 3.019 2.846 2.719 2.639 2.611 2.627 2.660 2.705 2.802 2.955 3.189 3.515 3.885 4.186 4.312 4.258 4.128 4.047 4.021 3.999 4.010 4.017 4.008 3.986 3.966 3.954 3.954 3.979 4.019 4.068 4.140 4.212 4.277 4.322 4.305 4.232 4.122 3.993 3.861 3.734 3.676 3.650 3.744 1.500 1.532 1.577 1.609 1.625 1.632 1.633 1.634 1.635 1.638 1.651 1.669 1.690 1.714 1.748 1.797 1.862 1.940 2.022 2.096 2.151 2.189 2.218 2.248 2.281 2.303 2.310 2.300 2.273 2.247 2.213 2.192 2.195 2.221 2.258 2.307 2.361 2.397 2.405 2.393 2.371 2.356 2.343 2.339 2.345 2.358 2.369 2.397 2.431 2.477 2.549 2.659 2.799 2.961 3.112 3.216 3.268 3.242 3.157 3.059 2.938 2.822 2.737 2.696 2.690 2.714 2.734 2.753 2.790 2.840 2.913 3.026 3.172 3.319 3.445 3.535 3.541 3.447 3.261 3.053 2.874 2.738 2.651 2.616 2.628 2.662 2.715 2.824 2.989 3.236 3.570 3.934 4.214 4.306 4.225 4.085 4.006 3.990 3.983 4.003 4.017 4.015 3.999 3.979 3.971 3.971 3.993 4.028 4.071 4.135 4.208 4.269 4.321 4.315 4.247 4.144 4.021 3.884 3.748 3.674 3.638 3.672 1.500 1.532 1.577 1.609 1.624 1.630 1.631 1.631 1.632 1.636 1.649 1.670 1.689 1.713 1.747 1.795 1.861 1.940 2.023 2.097 2.152 2.190 2.221 2.253 2.284 2.306 2.313 2.303 2.277 2.249 2.214 2.192 2.195 2.222 2.259 2.307 2.361 2.397 2.405 2.393 2.371 2.356 2.344 2.339 2.345 2.358 2.370 2.396 2.432 2.478 2.550 2.658 2.797 2.959 3.110 3.215 3.266 3.236 3.146 3.044 2.926 2.811 2.729 2.691 2.688 2.709 2.732 2.753 2.788 2.831 2.899 3.007 3.147 3.296 3.430 3.536 3.558 3.472 3.301 3.090 2.903 2.758 2.664 2.630 2.634 2.664 2.720 2.837 3.013 3.268 3.606 3.959 4.210 4.279 4.189 4.054 3.962 3.957 3.972 4.001 4.023 4.026 4.013 3.992 3.983 3.987 4.007 4.038 4.077 4.133 4.204 4.256 4.316 4.321 4.265 4.171 4.051 3.909 3.766 3.675 3.630 3.616 1.500 1.532 1.577 1.609 1.623 1.629 1.629 1.629 1.630 1.635 1.651 1.673 1.692 1.713 1.747 1.794 1.861 1.940 2.023 2.098 2.154 2.195 2.230 2.260 2.287 2.309 2.317 2.307 2.280 2.249 2.213 2.192 2.195 2.222 2.259 2.307 2.361 2.397 2.405 2.392 2.369 2.353 2.344 2.339 2.346 2.360 2.372 2.398 2.434 2.481 2.550 2.656 2.792 2.952 3.103 3.211 3.264 3.232 3.141 3.039 2.920 2.807 2.725 2.689 2.687 2.708 2.730 2.753 2.787 2.827 2.893 2.998 3.133 3.283 3.425 3.545 3.584 3.510 3.340 3.126 2.930 2.777 2.675 2.639 2.636 2.662 2.722 2.846 3.032 3.293 3.629 3.963 4.185 4.233 4.136 4.011 3.921 3.925 3.953 3.995 4.028 4.033 4.026 4.004 3.999 4.005 4.021 4.046 4.083 4.128 4.191 4.241 4.306 4.321 4.283 4.198 4.081 3.937 3.788 3.679 3.628 3.580 1.500 1.532 1.577 1.609 1.622 1.627 1.627 1.627 1.628 1.634 1.653 1.674 1.693 1.714 1.748 1.795 1.861 1.940 2.023 2.097 2.154 2.197 2.233 2.262 2.289 2.311 2.321 2.310 2.283 2.250 2.214 2.192 2.195 2.221 2.259 2.307 2.360 2.397 2.405 2.392 2.369 2.352 2.344 2.339 2.347 2.362 2.375 2.402 2.439 2.483 2.549 2.650 2.783 2.940 3.088 3.201 3.259 3.231 3.141 3.037 2.918 2.804 2.724 2.688 2.687 2.707 2.725 2.753 2.788 2.826 2.889 2.992 3.127 3.279 3.428 3.558 3.608 3.541 3.371 3.154 2.952 2.791 2.684 2.643 2.640 2.663 2.725 2.857 3.052 3.319 3.652 3.963 4.159 4.187 4.084 3.967 3.891 3.893 3.934 3.988 4.031 4.039 4.037 4.014 4.014 4.019 4.032 4.052 4.082 4.119 4.176 4.227 4.299 4.324 4.300 4.222 4.111 3.966 3.813 3.687 3.633 3.566 1.500 1.532 1.577 1.609 1.621 1.626 1.626 1.625 1.626 1.634 1.654 1.676 1.695 1.716 1.750 1.798 1.865 1.943 2.025 2.097 2.153 2.198 2.236 2.264 2.291 2.315 2.324 2.313 2.287 2.252 2.216 2.193 2.194 2.220 2.257 2.304 2.358 2.395 2.404 2.392 2.369 2.351 2.344 2.340 2.349 2.365 2.380 2.408 2.444 2.485 2.547 2.642 2.770 2.923 3.063 3.183 3.249 3.228 3.142 3.038 2.918 2.804 2.724 2.688 2.685 2.703 2.714 2.749 2.786 2.825 2.888 2.992 3.127 3.282 3.432 3.567 3.622 3.557 3.385 3.171 2.965 2.799 2.688 2.643 2.649 2.671 2.736 2.876 3.080 3.356 3.687 3.983 4.152 4.156 4.044 3.935 3.877 3.863 3.915 3.979 4.029 4.041 4.044 4.023 4.022 4.027 4.034 4.053 4.080 4.111 4.163 4.221 4.294 4.326 4.312 4.240 4.137 3.995 3.839 3.697 3.643 3.572 1.500 1.532 1.577 1.609 1.620 1.625 1.625 1.624 1.626 1.635 1.655 1.677 1.697 1.720 1.754 1.803 1.871 1.949 2.030 2.101 2.155 2.198 2.236 2.265 2.294 2.318 2.328 2.317 2.290 2.254 2.218 2.193 2.192 2.216 2.252 2.299 2.353 2.391 2.401 2.391 2.369 2.351 2.344 2.340 2.350 2.368 2.384 2.413 2.448 2.486 2.542 2.631 2.752 2.902 3.049 3.170 3.239 3.224 3.142 3.040 2.917 2.804 2.725 2.688 2.686 2.704 2.718 2.745 2.784 2.823 2.886 2.992 3.128 3.290 3.452 3.580 3.632 3.566 3.393 3.175 2.970 2.801 2.687 2.641 2.649 2.681 2.759 2.902 3.119 3.407 3.739 4.023 4.167 4.143 4.013 3.899 3.845 3.837 3.896 3.968 4.021 4.037 4.044 4.027 4.024 4.029 4.033 4.050 4.076 4.106 4.153 4.215 4.286 4.324 4.319 4.252 4.160 4.023 3.867 3.710 3.657 3.589 1.500 1.532 1.577 1.608 1.619 1.624 1.623 1.623 1.626 1.635 1.656 1.678 1.699 1.724 1.760 1.811 1.880 1.958 2.038 2.107 2.159 2.199 2.237 2.267 2.296 2.320 2.330 2.320 2.292 2.256 2.219 2.193 2.190 2.211 2.246 2.292 2.346 2.386 2.398 2.389 2.368 2.351 2.344 2.341 2.352 2.371 2.388 2.418 2.452 2.486 2.536 2.618 2.734 2.879 3.029 3.151 3.227 3.219 3.142 3.043 2.919 2.805 2.727 2.688 2.685 2.703 2.718 2.737 2.778 2.818 2.882 2.989 3.127 3.297 3.464 3.585 3.632 3.564 3.391 3.171 2.971 2.800 2.685 2.639 2.650 2.693 2.781 2.934 3.165 3.469 3.808 4.083 4.203 4.149 3.997 3.874 3.821 3.814 3.877 3.957 4.008 4.032 4.043 4.029 4.021 4.024 4.029 4.046 4.071 4.105 4.146 4.209 4.275 4.318 4.322 4.265 4.186 4.054 3.899 3.726 3.672 3.611 1.500 1.532 1.577 1.607 1.617 1.622 1.622 1.622 1.626 1.636 1.656 1.679 1.702 1.728 1.767 1.821 1.890 1.969 2.048 2.115 2.163 2.200 2.238 2.268 2.298 2.322 2.332 2.321 2.294 2.258 2.220 2.192 2.186 2.205 2.239 2.284 2.338 2.379 2.393 2.387 2.368 2.351 2.344 2.341 2.353 2.373 2.392 2.423 2.451 2.483 2.529 2.606 2.716 2.858 3.008 3.133 3.215 3.215 3.144 3.045 2.920 2.810 2.730 2.689 2.684 2.701 2.716 2.734 2.775 2.814 2.877 2.985 3.125 3.306 3.472 3.601 3.639 3.567 3.395 3.177 2.978 2.806 2.688 2.641 2.656 2.712 2.808 2.978 3.211 3.533 3.881 4.152 4.250 4.166 3.991 3.857 3.801 3.795 3.858 3.946 3.992 4.027 4.039 4.029 4.020 4.022 4.026 4.042 4.067 4.098 4.138 4.201 4.258 4.308 4.323 4.281 4.213 4.087 3.931 3.747 3.686 3.635 1.500 1.532 1.577 1.606 1.616 1.621 1.621 1.621 1.625 1.635 1.656 1.679 1.703 1.731 1.774 1.830 1.901 1.980 2.058 2.122 2.168 2.202 2.239 2.269 2.299 2.323 2.333 2.322 2.294 2.258 2.220 2.190 2.183 2.199 2.231 2.275 2.330 2.371 2.388 2.384 2.367 2.351 2.344 2.343 2.354 2.375 2.394 2.426 2.451 2.481 2.525 2.596 2.701 2.838 2.989 3.117 3.204 3.215 3.152 3.055 2.928 2.821 2.738 2.693 2.684 2.699 2.714 2.730 2.770 2.810 2.872 2.979 3.120 3.300 3.468 3.605 3.643 3.574 3.408 3.193 2.996 2.822 2.699 2.647 2.660 2.720 2.828 3.016 3.250 3.587 3.946 4.213 4.294 4.185 3.988 3.846 3.785 3.776 3.837 3.923 3.964 4.020 4.037 4.032 4.022 4.025 4.027 4.037 4.060 4.088 4.124 4.182 4.244 4.300 4.325 4.298 4.239 4.118 3.963 3.772 3.700 3.658 1.500 1.532 1.578 1.605 1.615 1.619 1.619 1.620 1.624 1.635 1.655 1.679 1.704 1.734 1.780 1.839 1.911 1.990 2.067 2.129 2.172 2.203 2.238 2.269 2.298 2.322 2.331 2.320 2.293 2.258 2.219 2.189 2.180 2.193 2.224 2.267 2.322 2.365 2.383 2.382 2.366 2.351 2.344 2.343 2.355 2.376 2.395 2.427 2.452 2.482 2.522 2.586 2.685 2.818 2.968 3.100 3.195 3.217 3.164 3.070 2.942 2.835 2.749 2.699 2.687 2.698 2.713 2.728 2.767 2.807 2.867 2.974 3.115 3.294 3.464 3.608 3.650 3.591 3.434 3.225 3.030 2.853 2.722 2.662 2.669 2.727 2.843 3.044 3.288 3.636 4.001 4.262 4.328 4.191 3.982 3.836 3.770 3.759 3.821 3.909 3.955 4.015 4.038 4.038 4.024 4.021 4.026 4.033 4.053 4.079 4.111 4.165 4.231 4.289 4.324 4.311 4.263 4.150 3.997 3.802 3.713 3.677 1.500 1.532 1.579 1.605 1.614 1.619 1.619 1.620 1.624 1.635 1.655 1.678 1.704 1.737 1.784 1.845 1.919 1.999 2.075 2.133 2.173 2.202 2.237 2.267 2.297 2.321 2.329 2.317 2.291 2.256 2.217 2.187 2.177 2.188 2.218 2.261 2.315 2.359 2.380 2.380 2.366 2.351 2.345 2.344 2.355 2.376 2.396 2.428 2.454 2.483 2.520 2.578 2.671 2.799 2.947 3.081 3.184 3.220 3.177 3.087 2.961 2.852 2.763 2.708 2.692 2.700 2.714 2.729 2.767 2.805 2.865 2.970 3.110 3.289 3.461 3.611 3.663 3.620 3.475 3.274 3.080 2.896 2.757 2.687 2.683 2.735 2.852 3.061 3.315 3.670 4.037 4.296 4.347 4.192 3.976 3.830 3.757 3.746 3.808 3.899 3.950 4.016 4.043 4.044 4.026 4.017 4.023 4.028 4.045 4.070 4.101 4.149 4.216 4.276 4.317 4.317 4.282 4.183 4.032 3.838 3.725 3.690 1.500 1.532 1.581 1.605 1.614 1.619 1.620 1.620 1.624 1.635 1.655 1.678 1.704 1.738 1.787 1.850 1.925 2.006 2.081 2.135 2.172 2.201 2.236 2.265 2.294 2.318 2.325 2.314 2.288 2.253 2.215 2.185 2.175 2.185 2.214 2.256 2.311 2.356 2.377 2.379 2.366 2.351 2.347 2.345 2.355 2.376 2.398 2.428 2.456 2.486 2.519 2.572 2.658 2.780 2.926 3.060 3.172 3.221 3.188 3.103 2.982 2.872 2.779 2.719 2.699 2.705 2.717 2.732 2.765 2.803 2.863 2.966 3.105 3.285 3.457 3.614 3.680 3.655 3.526 3.332 3.136 2.951 2.810 2.723 2.701 2.742 2.855 3.068 3.328 3.689 4.058 4.313 4.358 4.202 3.993 3.826 3.746 3.733 3.794 3.888 3.944 4.016 4.048 4.050 4.029 4.011 4.016 4.021 4.037 4.061 4.093 4.134 4.198 4.260 4.307 4.321 4.299 4.217 4.071 3.878 3.736 3.698 1.500 1.532 1.583 1.607 1.615 1.620 1.621 1.622 1.626 1.637 1.656 1.678 1.703 1.738 1.788 1.852 1.929 2.009 2.083 2.136 2.172 2.200 2.236 2.264 2.292 2.316 2.322 2.310 2.285 2.250 2.213 2.184 2.174 2.184 2.212 2.254 2.308 2.354 2.376 2.379 2.365 2.350 2.347 2.345 2.355 2.377 2.400 2.426 2.457 2.489 2.519 2.566 2.645 2.761 2.902 3.037 3.156 3.217 3.193 3.113 3.003 2.892 2.794 2.730 2.707 2.711 2.723 2.737 2.767 2.805 2.864 2.963 3.100 3.278 3.451 3.614 3.696 3.693 3.583 3.399 3.200 3.009 2.862 2.761 2.720 2.749 2.856 3.071 3.336 3.700 4.069 4.318 4.354 4.202 4.003 3.829 3.735 3.720 3.780 3.875 3.937 4.013 4.049 4.050 4.028 4.010 4.012 4.015 4.029 4.051 4.079 4.116 4.177 4.246 4.298 4.322 4.318 4.250 4.112 3.921 3.745 3.701 1.500 1.532 1.586 1.609 1.617 1.621 1.623 1.623 1.628 1.639 1.659 1.679 1.703 1.738 1.788 1.852 1.931 2.011 2.084 2.136 2.173 2.201 2.238 2.263 2.290 2.313 2.319 2.308 2.283 2.247 2.212 2.183 2.174 2.184 2.212 2.253 2.308 2.353 2.376 2.379 2.365 2.349 2.347 2.345 2.356 2.379 2.403 2.431 2.462 2.493 2.519 2.561 2.633 2.743 2.879 3.021 3.144 3.213 3.200 3.126 3.019 2.908 2.808 2.742 2.715 2.719 2.731 2.748 2.771 2.808 2.864 2.957 3.092 3.267 3.439 3.606 3.717 3.730 3.637 3.464 3.263 3.065 2.908 2.801 2.743 2.760 2.865 3.084 3.361 3.716 4.083 4.324 4.348 4.203 4.016 3.844 3.726 3.707 3.765 3.860 3.926 4.004 4.045 4.046 4.027 4.011 4.010 4.011 4.020 4.040 4.066 4.099 4.156 4.229 4.286 4.323 4.335 4.280 4.154 3.966 3.757 3.706 1.500 1.532 1.588 1.611 1.618 1.623 1.624 1.624 1.629 1.641 1.663 1.681 1.704 1.738 1.788 1.852 1.931 2.012 2.085 2.136 2.175 2.205 2.243 2.263 2.289 2.312 2.316 2.305 2.281 2.243 2.209 2.183 2.173 2.184 2.212 2.253 2.308 2.353 2.376 2.378 2.364 2.346 2.347 2.345 2.356 2.381 2.406 2.435 2.468 2.498 2.520 2.558 2.623 2.727 2.859 3.003 3.129 3.206 3.204 3.137 3.035 2.922 2.820 2.754 2.722 2.725 2.737 2.757 2.775 2.811 2.861 2.949 3.080 3.250 3.422 3.592 3.721 3.749 3.676 3.518 3.318 3.115 2.947 2.828 2.760 2.772 2.878 3.105 3.393 3.749 4.116 4.347 4.358 4.207 4.017 3.839 3.717 3.694 3.748 3.844 3.913 3.994 4.040 4.044 4.033 4.015 4.011 4.010 4.014 4.032 4.055 4.085 4.137 4.209 4.274 4.322 4.349 4.308 4.196 4.014 3.776 3.714 1.500 1.532 1.590 1.612 1.620 1.624 1.625 1.624 1.630 1.644 1.665 1.682 1.705 1.738 1.787 1.853 1.932 2.012 2.086 2.137 2.179 2.210 2.242 2.262 2.288 2.311 2.315 2.305 2.280 2.242 2.209 2.182 2.173 2.182 2.209 2.253 2.308 2.353 2.376 2.378 2.364 2.346 2.346 2.345 2.357 2.382 2.409 2.440 2.474 2.503 2.522 2.556 2.615 2.715 2.845 2.989 3.116 3.201 3.209 3.148 3.050 2.936 2.831 2.763 2.728 2.729 2.742 2.762 2.779 2.813 2.857 2.940 3.064 3.229 3.400 3.571 3.710 3.752 3.700 3.560 3.366 3.160 2.982 2.856 2.780 2.790 2.899 3.134 3.436 3.797 4.165 4.386 4.380 4.216 4.014 3.834 3.708 3.680 3.732 3.826 3.900 3.985 4.037 4.045 4.033 4.014 4.005 4.008 4.010 4.025 4.046 4.076 4.123 4.193 4.261 4.314 4.357 4.334 4.239 4.063 3.804 3.726 1.500 1.532 1.592 1.613 1.620 1.624 1.625 1.623 1.630 1.646 1.666 1.683 1.705 1.739 1.788 1.855 1.934 2.014 2.086 2.139 2.180 2.213 2.242 2.263 2.288 2.310 2.314 2.304 2.279 2.241 2.209 2.183 2.172 2.182 2.208 2.253 2.308 2.353 2.376 2.378 2.363 2.346 2.346 2.344 2.357 2.383 2.411 2.443 2.478 2.503 2.522 2.554 2.611 2.707 2.838 2.980 3.109 3.200 3.215 3.160 3.062 2.944 2.843 2.772 2.733 2.731 2.745 2.763 2.780 2.807 2.848 2.928 3.046 3.205 3.379 3.548 3.689 3.757 3.720 3.594 3.405 3.194 3.016 2.884 2.803 2.815 2.932 3.166 3.489 3.872 4.226 4.436 4.411 4.230 4.015 3.832 3.702 3.667 3.711 3.797 3.884 3.974 4.031 4.047 4.037 4.017 4.000 4.005 4.007 4.019 4.039 4.070 4.111 4.176 4.245 4.304 4.360 4.355 4.280 4.115 3.842 3.741 1.500 1.532 1.592 1.613 1.619 1.623 1.623 1.622 1.630 1.646 1.666 1.683 1.706 1.741 1.791 1.859 1.938 2.018 2.088 2.141 2.181 2.215 2.242 2.263 2.289 2.309 2.312 2.302 2.276 2.238 2.208 2.182 2.171 2.181 2.208 2.253 2.308 2.353 2.376 2.378 2.363 2.345 2.345 2.344 2.356 2.383 2.412 2.446 2.480 2.504 2.524 2.554 2.608 2.701 2.837 2.976 3.107 3.204 3.228 3.177 3.078 2.958 2.858 2.782 2.741 2.736 2.750 2.762 2.781 2.804 2.842 2.916 3.026 3.180 3.362 3.527 3.668 3.755 3.733 3.623 3.445 3.230 3.051 2.916 2.833 2.849 2.974 3.206 3.545 3.948 4.291 4.488 4.438 4.237 4.015 3.831 3.697 3.655 3.694 3.773 3.865 3.960 4.023 4.049 4.042 4.022 4.000 4.001 4.003 4.009 4.029 4.057 4.094 4.156 4.232 4.295 4.362 4.372 4.319 4.164 3.887 3.757 1.500 1.532 1.592 1.612 1.618 1.622 1.621 1.621 1.629 1.646 1.666 1.684 1.708 1.744 1.796 1.865 1.944 2.024 2.091 2.144 2.183 2.217 2.244 2.264 2.288 2.307 2.309 2.298 2.271 2.234 2.205 2.180 2.170 2.181 2.207 2.253 2.308 2.353 2.376 2.378 2.363 2.345 2.345 2.343 2.355 2.382 2.412 2.446 2.479 2.503 2.526 2.554 2.606 2.695 2.829 2.969 3.102 3.206 3.240 3.195 3.096 2.976 2.874 2.794 2.747 2.737 2.750 2.761 2.780 2.801 2.837 2.905 3.009 3.153 3.330 3.502 3.645 3.748 3.743 3.653 3.489 3.274 3.094 2.956 2.870 2.884 3.013 3.252 3.597 4.015 4.351 4.530 4.456 4.235 4.009 3.824 3.689 3.643 3.677 3.750 3.846 3.945 4.015 4.049 4.047 4.028 4.002 3.998 3.998 4.001 4.019 4.043 4.078 4.134 4.214 4.281 4.357 4.382 4.352 4.210 3.937 3.772 1.500 1.532 1.592 1.611 1.617 1.620 1.620 1.620 1.629 1.646 1.666 1.686 1.711 1.749 1.804 1.874 1.953 2.032 2.097 2.148 2.185 2.219 2.245 2.265 2.287 2.304 2.304 2.291 2.265 2.231 2.201 2.178 2.168 2.181 2.207 2.253 2.308 2.353 2.376 2.378 2.364 2.347 2.344 2.343 2.355 2.382 2.412 2.447 2.475 2.501 2.525 2.552 2.601 2.687 2.818 2.957 3.092 3.203 3.245 3.207 3.111 2.998 2.893 2.806 2.754 2.738 2.749 2.759 2.780 2.800 2.835 2.895 2.992 3.127 3.299 3.484 3.628 3.742 3.770 3.693 3.541 3.327 3.145 3.002 2.914 2.924 3.056 3.302 3.643 4.072 4.413 4.549 4.454 4.217 3.992 3.810 3.676 3.629 3.661 3.731 3.826 3.930 4.005 4.046 4.050 4.030 4.004 3.997 3.994 3.994 4.009 4.030 4.062 4.112 4.190 4.263 4.346 4.386 4.380 4.253 3.994 3.785 1.500 1.532 1.592 1.609 1.615 1.618 1.618 1.620 1.629 1.646 1.666 1.687 1.716 1.755 1.812 1.883 1.963 2.041 2.105 2.153 2.187 2.220 2.247 2.267 2.288 2.301 2.299 2.284 2.257 2.224 2.195 2.174 2.166 2.180 2.208 2.254 2.308 2.354 2.376 2.378 2.364 2.348 2.343 2.344 2.355 2.382 2.411 2.446 2.475 2.501 2.525 2.549 2.593 2.675 2.803 2.941 3.075 3.193 3.247 3.220 3.131 3.018 2.911 2.818 2.760 2.740 2.748 2.758 2.780 2.800 2.829 2.884 2.976 3.103 3.271 3.455 3.604 3.731 3.790 3.729 3.593 3.385 3.202 3.056 2.962 2.964 3.091 3.332 3.670 4.098 4.436 4.539 4.427 4.183 3.965 3.784 3.655 3.612 3.643 3.712 3.808 3.915 3.995 4.043 4.050 4.032 4.004 3.988 3.988 3.986 3.998 4.017 4.051 4.095 4.170 4.244 4.332 4.381 4.401 4.295 4.054 3.794 1.500 1.533 1.592 1.608 1.614 1.617 1.618 1.620 1.632 1.648 1.668 1.689 1.720 1.762 1.821 1.894 1.975 2.051 2.113 2.160 2.193 2.221 2.249 2.268 2.287 2.298 2.293 2.276 2.249 2.217 2.189 2.170 2.165 2.181 2.210 2.256 2.311 2.355 2.377 2.378 2.363 2.348 2.343 2.344 2.356 2.382 2.411 2.446 2.474 2.501 2.524 2.543 2.583 2.660 2.784 2.920 3.055 3.178 3.242 3.226 3.145 3.035 2.925 2.828 2.766 2.742 2.748 2.759 2.780 2.800 2.827 2.879 2.964 3.084 3.247 3.428 3.580 3.717 3.800 3.762 3.647 3.451 3.274 3.120 3.015 3.007 3.124 3.354 3.682 4.099 4.427 4.509 4.386 4.138 3.934 3.755 3.634 3.595 3.627 3.695 3.789 3.899 3.984 4.037 4.047 4.031 4.007 3.986 3.984 3.981 3.990 4.006 4.035 4.076 4.146 4.228 4.317 4.376 4.417 4.336 4.115 3.799 1.500 1.535 1.592 1.607 1.613 1.617 1.617 1.621 1.635 1.649 1.669 1.692 1.725 1.770 1.830 1.905 1.986 2.060 2.120 2.165 2.197 2.220 2.249 2.268 2.287 2.296 2.287 2.269 2.241 2.210 2.183 2.166 2.164 2.181 2.214 2.261 2.315 2.359 2.379 2.379 2.363 2.348 2.342 2.343 2.357 2.382 2.411 2.446 2.475 2.501 2.522 2.539 2.573 2.645 2.763 2.897 3.032 3.159 3.232 3.226 3.154 3.046 2.935 2.836 2.771 2.744 2.749 2.761 2.780 2.803 2.828 2.876 2.956 3.067 3.224 3.401 3.555 3.698 3.799 3.787 3.697 3.523 3.358 3.192 3.074 3.052 3.155 3.371 3.687 4.086 4.401 4.469 4.342 4.102 3.913 3.728 3.613 3.579 3.610 3.679 3.771 3.881 3.970 4.030 4.047 4.036 4.012 3.986 3.982 3.978 3.979 3.995 4.021 4.061 4.124 4.209 4.300 4.367 4.427 4.376 4.178 3.812 1.500 1.538 1.593 1.607 1.612 1.616 1.617 1.621 1.637 1.651 1.671 1.695 1.730 1.778 1.840 1.916 1.996 2.068 2.127 2.167 2.200 2.220 2.250 2.269 2.287 2.293 2.282 2.263 2.234 2.204 2.180 2.164 2.165 2.184 2.220 2.267 2.322 2.364 2.383 2.380 2.364 2.347 2.342 2.343 2.357 2.382 2.411 2.447 2.476 2.502 2.523 2.536 2.565 2.631 2.745 2.875 3.009 3.138 3.218 3.221 3.157 3.053 2.942 2.842 2.774 2.747 2.750 2.764 2.778 2.803 2.828 2.873 2.948 3.052 3.201 3.374 3.529 3.674 3.787 3.814 3.742 3.593 3.450 3.271 3.139 3.101 3.189 3.391 3.693 4.074 4.381 4.453 4.308 4.080 3.905 3.706 3.596 3.564 3.594 3.660 3.749 3.859 3.954 4.020 4.047 4.042 4.019 3.990 3.983 3.976 3.974 3.987 4.010 4.047 4.105 4.189 4.283 4.359 4.434 4.416 4.245 3.846 1.500 1.541 1.593 1.606 1.611 1.615 1.617 1.622 1.639 1.653 1.674 1.699 1.736 1.786 1.851 1.928 2.007 2.076 2.132 2.168 2.201 2.220 2.250 2.270 2.286 2.291 2.278 2.256 2.228 2.199 2.177 2.163 2.169 2.189 2.227 2.275 2.330 2.371 2.387 2.383 2.364 2.347 2.342 2.343 2.357 2.382 2.412 2.448 2.478 2.510 2.528 2.537 2.560 2.621 2.730 2.860 2.997 3.124 3.206 3.215 3.159 3.062 2.944 2.846 2.776 2.749 2.754 2.771 2.785 2.805 2.828 2.870 2.941 3.037 3.177 3.346 3.506 3.649 3.769 3.828 3.779 3.674 3.530 3.346 3.204 3.154 3.229 3.418 3.708 4.066 4.363 4.442 4.292 4.078 3.883 3.691 3.580 3.550 3.579 3.640 3.727 3.838 3.937 4.007 4.044 4.045 4.023 3.990 3.978 3.975 3.970 3.982 4.002 4.041 4.090 4.170 4.265 4.350 4.439 4.459 4.318 3.910 1.500 1.545 1.594 1.605 1.610 1.614 1.617 1.623 1.641 1.656 1.678 1.704 1.742 1.795 1.863 1.941 2.018 2.084 2.137 2.169 2.202 2.221 2.250 2.269 2.284 2.286 2.273 2.250 2.221 2.194 2.174 2.164 2.173 2.196 2.235 2.284 2.338 2.377 2.392 2.386 2.365 2.347 2.342 2.343 2.357 2.382 2.413 2.450 2.482 2.517 2.533 2.541 2.560 2.618 2.723 2.855 2.992 3.115 3.197 3.206 3.158 3.067 2.947 2.852 2.782 2.754 2.758 2.778 2.787 2.805 2.826 2.865 2.931 3.023 3.155 3.319 3.491 3.629 3.750 3.831 3.800 3.731 3.595 3.415 3.269 3.216 3.281 3.461 3.744 4.070 4.351 4.425 4.275 4.074 3.870 3.683 3.572 3.541 3.566 3.621 3.705 3.816 3.918 3.994 4.040 4.048 4.029 3.995 3.974 3.973 3.968 3.980 3.998 4.032 4.077 4.153 4.248 4.340 4.442 4.501 4.397 4.007 1.500 1.548 1.595 1.603 1.608 1.613 1.616 1.626 1.644 1.661 1.682 1.710 1.749 1.805 1.874 1.953 2.028 2.093 2.144 2.174 2.202 2.224 2.249 2.268 2.280 2.281 2.267 2.244 2.215 2.189 2.172 2.165 2.176 2.201 2.241 2.292 2.346 2.383 2.397 2.388 2.366 2.347 2.342 2.343 2.357 2.383 2.415 2.453 2.486 2.523 2.539 2.547 2.565 2.621 2.724 2.856 2.992 3.113 3.195 3.206 3.160 3.072 2.953 2.859 2.789 2.758 2.760 2.778 2.788 2.803 2.824 2.863 2.924 3.012 3.134 3.296 3.464 3.605 3.729 3.823 3.813 3.771 3.651 3.484 3.340 3.288 3.346 3.516 3.787 4.102 4.359 4.424 4.270 4.075 3.864 3.681 3.570 3.537 3.555 3.600 3.683 3.792 3.896 3.979 4.033 4.047 4.035 4.004 3.979 3.974 3.969 3.975 3.994 4.024 4.066 4.137 4.233 4.330 4.441 4.539 4.473 4.132 1.500 1.551 1.595 1.601 1.606 1.611 1.616 1.628 1.646 1.666 1.687 1.717 1.758 1.816 1.887 1.967 2.039 2.101 2.149 2.180 2.205 2.229 2.246 2.266 2.276 2.275 2.260 2.237 2.207 2.182 2.168 2.163 2.177 2.204 2.244 2.299 2.352 2.389 2.401 2.390 2.367 2.347 2.342 2.343 2.357 2.383 2.416 2.457 2.491 2.527 2.545 2.555 2.574 2.631 2.735 2.866 3.002 3.121 3.202 3.213 3.167 3.080 2.963 2.869 2.797 2.763 2.762 2.779 2.789 2.801 2.823 2.864 2.921 3.004 3.118 3.275 3.442 3.590 3.712 3.812 3.833 3.806 3.707 3.555 3.420 3.374 3.431 3.591 3.857 4.163 4.393 4.448 4.294 4.079 3.864 3.683 3.570 3.532 3.542 3.576 3.658 3.765 3.872 3.961 4.019 4.042 4.035 4.012 3.985 3.980 3.974 3.975 3.993 4.019 4.058 4.120 4.215 4.316 4.433 4.568 4.539 4.275 1.500 1.553 1.594 1.598 1.604 1.610 1.616 1.630 1.648 1.669 1.692 1.725 1.769 1.828 1.901 1.981 2.051 2.110 2.152 2.184 2.203 2.229 2.246 2.264 2.272 2.269 2.252 2.229 2.199 2.176 2.163 2.161 2.174 2.207 2.248 2.303 2.357 2.392 2.403 2.391 2.367 2.348 2.342 2.343 2.357 2.384 2.418 2.460 2.496 2.528 2.550 2.563 2.586 2.646 2.752 2.884 3.020 3.137 3.217 3.225 3.177 3.089 2.979 2.883 2.809 2.771 2.766 2.781 2.791 2.799 2.823 2.863 2.920 3.000 3.108 3.260 3.424 3.586 3.705 3.803 3.843 3.823 3.754 3.625 3.508 3.476 3.540 3.690 3.956 4.254 4.442 4.476 4.317 4.087 3.871 3.689 3.572 3.523 3.525 3.546 3.632 3.737 3.846 3.942 4.009 4.041 4.040 4.018 3.988 3.979 3.978 3.977 3.993 4.017 4.052 4.107 4.198 4.297 4.416 4.583 4.591 4.418 1.500 1.554 1.591 1.595 1.602 1.609 1.616 1.631 1.650 1.672 1.697 1.732 1.779 1.842 1.917 1.994 2.062 2.118 2.156 2.187 2.204 2.230 2.246 2.263 2.268 2.262 2.244 2.220 2.191 2.170 2.158 2.157 2.171 2.207 2.249 2.305 2.359 2.394 2.404 2.391 2.367 2.348 2.342 2.343 2.357 2.384 2.419 2.462 2.500 2.533 2.556 2.573 2.599 2.662 2.772 2.907 3.042 3.159 3.239 3.245 3.197 3.109 2.999 2.901 2.822 2.780 2.772 2.784 2.795 2.802 2.827 2.866 2.923 2.999 3.104 3.250 3.413 3.576 3.700 3.798 3.851 3.840 3.797 3.698 3.609 3.595 3.671 3.821 4.079 4.355 4.513 4.509 4.335 4.093 3.878 3.695 3.576 3.519 3.515 3.529 3.607 3.710 3.819 3.920 3.997 4.038 4.045 4.027 3.996 3.978 3.979 3.977 3.992 4.014 4.049 4.096 4.179 4.277 4.392 4.581 4.628 4.542 1.500 1.555 1.588 1.591 1.599 1.608 1.619 1.634 1.652 1.674 1.701 1.739 1.790 1.855 1.931 2.007 2.073 2.128 2.162 2.188 2.204 2.231 2.247 2.261 2.265 2.257 2.237 2.212 2.186 2.165 2.152 2.153 2.168 2.205 2.248 2.306 2.360 2.395 2.405 2.393 2.370 2.349 2.342 2.343 2.357 2.384 2.420 2.464 2.502 2.536 2.562 2.582 2.612 2.679 2.793 2.930 3.067 3.183 3.262 3.267 3.219 3.131 3.021 2.920 2.836 2.789 2.778 2.789 2.798 2.806 2.831 2.870 2.929 3.003 3.105 3.249 3.410 3.572 3.704 3.798 3.855 3.855 3.836 3.773 3.717 3.726 3.821 3.976 4.226 4.478 4.602 4.546 4.351 4.102 3.886 3.700 3.580 3.518 3.508 3.515 3.584 3.683 3.792 3.897 3.983 4.033 4.047 4.034 4.005 3.983 3.984 3.979 3.987 4.007 4.038 4.080 4.156 4.253 4.363 4.566 4.650 4.632 1.500 1.554 1.583 1.587 1.597 1.607 1.621 1.636 1.656 1.678 1.707 1.747 1.800 1.868 1.945 2.019 2.084 2.135 2.165 2.189 2.206 2.232 2.249 2.260 2.262 2.252 2.230 2.204 2.179 2.161 2.148 2.150 2.165 2.204 2.247 2.305 2.359 2.395 2.405 2.394 2.373 2.352 2.342 2.343 2.357 2.384 2.420 2.464 2.503 2.538 2.565 2.588 2.623 2.694 2.812 2.953 3.091 3.205 3.283 3.288 3.239 3.152 3.041 2.938 2.850 2.799 2.784 2.793 2.802 2.811 2.833 2.874 2.934 3.008 3.110 3.251 3.411 3.573 3.720 3.807 3.861 3.866 3.868 3.842 3.824 3.864 3.981 4.143 4.387 4.615 4.707 4.583 4.363 4.110 3.895 3.704 3.586 3.521 3.501 3.502 3.563 3.656 3.765 3.871 3.965 4.024 4.046 4.040 4.013 3.986 3.983 3.981 3.983 4.001 4.029 4.066 4.134 4.229 4.332 4.535 4.656 4.681 1.500 1.553 1.577 1.583 1.594 1.607 1.622 1.639 1.660 1.683 1.714 1.756 1.812 1.883 1.960 2.031 2.093 2.140 2.168 2.189 2.208 2.232 2.249 2.258 2.259 2.246 2.223 2.196 2.173 2.155 2.142 2.146 2.164 2.202 2.247 2.306 2.360 2.396 2.405 2.394 2.373 2.353 2.343 2.343 2.358 2.383 2.420 2.465 2.504 2.539 2.567 2.592 2.631 2.706 2.828 2.972 3.111 3.223 3.300 3.303 3.255 3.169 3.058 2.953 2.861 2.806 2.789 2.796 2.806 2.815 2.833 2.876 2.938 3.013 3.114 3.255 3.413 3.575 3.721 3.809 3.861 3.873 3.892 3.908 3.924 3.995 4.136 4.304 4.538 4.733 4.778 4.614 4.369 4.115 3.903 3.708 3.591 3.525 3.498 3.492 3.544 3.629 3.735 3.843 3.941 4.012 4.044 4.042 4.022 3.992 3.984 3.983 3.982 3.998 4.023 4.058 4.116 4.205 4.300 4.492 4.648 4.693 1.500 1.552 1.571 1.579 1.592 1.607 1.624 1.641 1.666 1.689 1.722 1.766 1.826 1.899 1.974 2.044 2.103 2.144 2.172 2.191 2.213 2.232 2.248 2.255 2.254 2.239 2.215 2.189 2.166 2.150 2.139 2.143 2.165 2.202 2.250 2.310 2.363 2.398 2.406 2.393 2.373 2.353 2.343 2.344 2.360 2.383 2.421 2.465 2.504 2.539 2.567 2.594 2.635 2.714 2.840 2.987 3.121 3.231 3.308 3.312 3.265 3.181 3.070 2.963 2.869 2.811 2.790 2.795 2.803 2.819 2.837 2.876 2.940 3.015 3.116 3.256 3.414 3.576 3.722 3.813 3.862 3.880 3.912 3.950 4.006 4.105 4.268 4.451 4.669 4.832 4.834 4.641 4.374 4.122 3.912 3.718 3.600 3.532 3.500 3.491 3.528 3.603 3.704 3.812 3.915 3.996 4.042 4.048 4.031 4.000 3.985 3.985 3.980 3.995 4.017 4.052 4.102 4.183 4.272 4.442 4.633 4.685 1.500 1.549 1.565 1.575 1.590 1.607 1.625 1.643 1.669 1.694 1.730 1.777 1.842 1.916 1.990 2.058 2.115 2.150 2.173 2.190 2.214 2.229 2.244 2.251 2.247 2.231 2.206 2.180 2.159 2.143 2.137 2.142 2.166 2.203 2.256 2.316 2.368 2.401 2.406 2.392 2.372 2.352 2.343 2.345 2.360 2.383 2.421 2.465 2.504 2.540 2.568 2.595 2.637 2.719 2.846 2.994 3.126 3.235 3.312 3.315 3.269 3.186 3.075 2.967 2.871 2.813 2.791 2.795 2.804 2.821 2.840 2.876 2.941 3.016 3.117 3.255 3.410 3.574 3.720 3.821 3.865 3.892 3.928 3.981 4.064 4.187 4.366 4.558 4.763 4.901 4.874 4.666 4.380 4.135 3.923 3.728 3.607 3.538 3.503 3.488 3.513 3.578 3.672 3.779 3.886 3.976 4.033 4.048 4.037 4.007 3.984 3.985 3.979 3.987 4.008 4.040 4.084 4.159 4.244 4.391 4.614 4.673 1.500 1.546 1.559 1.572 1.590 1.608 1.627 1.644 1.671 1.699 1.739 1.790 1.857 1.934 2.006 2.071 2.123 2.154 2.174 2.189 2.214 2.228 2.240 2.244 2.238 2.220 2.196 2.170 2.150 2.137 2.135 2.141 2.170 2.209 2.263 2.323 2.373 2.403 2.405 2.389 2.369 2.350 2.342 2.345 2.361 2.384 2.421 2.465 2.504 2.543 2.569 2.594 2.637 2.720 2.848 2.997 3.131 3.238 3.311 3.314 3.267 3.185 3.070 2.961 2.867 2.811 2.791 2.796 2.805 2.822 2.840 2.876 2.941 3.016 3.116 3.251 3.403 3.566 3.714 3.831 3.871 3.911 3.944 4.002 4.101 4.240 4.431 4.628 4.835 4.955 4.912 4.704 4.395 4.160 3.936 3.741 3.615 3.546 3.508 3.485 3.504 3.554 3.641 3.748 3.855 3.952 4.020 4.047 4.043 4.014 3.987 3.981 3.979 3.981 4.000 4.030 4.067 4.137 4.219 4.341 4.590 4.657 1.500 1.543 1.555 1.570 1.590 1.609 1.628 1.647 1.674 1.705 1.748 1.803 1.874 1.950 2.020 2.083 2.129 2.156 2.174 2.189 2.213 2.226 2.234 2.235 2.227 2.208 2.184 2.162 2.143 2.132 2.133 2.143 2.174 2.215 2.270 2.329 2.378 2.404 2.404 2.388 2.365 2.347 2.341 2.344 2.361 2.384 2.422 2.466 2.504 2.548 2.572 2.595 2.637 2.720 2.849 2.998 3.139 3.243 3.312 3.311 3.263 3.182 3.059 2.950 2.860 2.806 2.789 2.797 2.809 2.822 2.839 2.876 2.940 3.015 3.112 3.244 3.392 3.553 3.701 3.821 3.874 3.940 3.964 4.021 4.125 4.276 4.472 4.669 4.875 4.983 4.935 4.735 4.443 4.206 3.956 3.760 3.625 3.555 3.513 3.483 3.497 3.535 3.614 3.716 3.824 3.924 4.001 4.040 4.042 4.022 3.992 3.981 3.979 3.977 3.994 4.021 4.050 4.114 4.194 4.293 4.557 4.641 1.500 1.540 1.551 1.570 1.592 1.611 1.631 1.651 1.678 1.712 1.757 1.816 1.890 1.965 2.035 2.094 2.133 2.158 2.173 2.190 2.211 2.223 2.228 2.226 2.216 2.195 2.172 2.153 2.135 2.126 2.129 2.144 2.179 2.222 2.278 2.335 2.382 2.403 2.401 2.384 2.359 2.342 2.338 2.343 2.361 2.385 2.422 2.466 2.505 2.548 2.572 2.595 2.638 2.721 2.850 2.999 3.140 3.244 3.309 3.304 3.251 3.166 3.043 2.935 2.848 2.797 2.783 2.793 2.805 2.818 2.836 2.874 2.937 3.013 3.108 3.234 3.379 3.534 3.681 3.805 3.870 3.935 3.963 4.026 4.137 4.300 4.491 4.690 4.897 5.000 4.953 4.761 4.484 4.239 3.987 3.788 3.646 3.566 3.517 3.483 3.492 3.518 3.587 3.684 3.792 3.897 3.984 4.035 4.045 4.030 4.001 3.982 3.982 3.975 3.984 4.009 4.034 4.092 4.170 4.250 4.515 4.627 1.500 1.536 1.549 1.570 1.594 1.614 1.634 1.657 1.685 1.720 1.767 1.832 1.907 1.981 2.049 2.105 2.138 2.159 2.175 2.194 2.208 2.219 2.223 2.220 2.205 2.184 2.162 2.144 2.126 2.121 2.126 2.146 2.183 2.229 2.286 2.342 2.385 2.402 2.396 2.378 2.353 2.339 2.336 2.342 2.360 2.384 2.422 2.466 2.510 2.551 2.573 2.596 2.640 2.724 2.851 2.999 3.139 3.244 3.305 3.300 3.244 3.147 3.023 2.915 2.831 2.784 2.773 2.786 2.800 2.814 2.833 2.873 2.934 3.008 3.100 3.220 3.360 3.511 3.658 3.785 3.865 3.930 3.961 4.030 4.146 4.314 4.506 4.706 4.912 5.030 4.984 4.802 4.539 4.282 4.027 3.824 3.674 3.583 3.526 3.487 3.488 3.509 3.563 3.654 3.761 3.869 3.964 4.028 4.047 4.038 4.007 3.979 3.976 3.973 3.977 4.000 4.019 4.072 4.146 4.211 4.461 4.614 1.500 1.533 1.549 1.572 1.597 1.618 1.637 1.660 1.691 1.730 1.780 1.849 1.925 1.996 2.061 2.114 2.142 2.159 2.174 2.193 2.207 2.215 2.217 2.211 2.195 2.173 2.152 2.136 2.119 2.117 2.125 2.148 2.185 2.235 2.293 2.348 2.387 2.400 2.391 2.371 2.347 2.335 2.332 2.340 2.357 2.385 2.423 2.467 2.513 2.551 2.573 2.596 2.642 2.728 2.854 3.001 3.139 3.242 3.299 3.290 3.230 3.125 3.001 2.894 2.813 2.770 2.763 2.779 2.795 2.809 2.829 2.871 2.930 3.002 3.090 3.205 3.340 3.488 3.634 3.763 3.866 3.930 3.964 4.037 4.157 4.330 4.524 4.725 4.931 5.059 5.020 4.853 4.610 4.334 4.074 3.866 3.708 3.604 3.539 3.493 3.485 3.502 3.543 3.626 3.731 3.841 3.941 4.015 4.047 4.047 4.018 3.986 3.976 3.973 3.972 3.992 4.008 4.053 4.123 4.177 4.396 4.603 1.500 1.529 1.549 1.575 1.601 1.621 1.641 1.665 1.699 1.739 1.794 1.865 1.940 2.011 2.073 2.119 2.144 2.158 2.174 2.193 2.203 2.209 2.209 2.202 2.185 2.163 2.143 2.128 2.113 2.113 2.124 2.150 2.187 2.242 2.301 2.354 2.389 2.398 2.386 2.365 2.342 2.332 2.330 2.339 2.356 2.386 2.424 2.468 2.514 2.551 2.572 2.597 2.645 2.734 2.860 3.008 3.143 3.243 3.293 3.278 3.214 3.103 2.979 2.874 2.797 2.758 2.755 2.774 2.790 2.805 2.825 2.868 2.927 2.997 3.081 3.191 3.321 3.466 3.611 3.743 3.852 3.923 3.967 4.047 4.174 4.353 4.548 4.751 4.955 5.086 5.051 4.891 4.660 4.390 4.125 3.912 3.746 3.627 3.552 3.501 3.484 3.497 3.527 3.601 3.701 3.810 3.913 3.995 4.040 4.048 4.030 3.996 3.980 3.975 3.970 3.983 3.996 4.035 4.099 4.148 4.322 4.588 1.500 1.526 1.550 1.579 1.605 1.625 1.647 1.671 1.706 1.749 1.809 1.882 1.957 2.026 2.087 2.126 2.145 2.159 2.175 2.192 2.200 2.204 2.202 2.192 2.174 2.154 2.135 2.119 2.110 2.111 2.124 2.153 2.192 2.250 2.309 2.361 2.391 2.396 2.381 2.360 2.339 2.329 2.329 2.339 2.357 2.388 2.427 2.470 2.516 2.552 2.573 2.599 2.650 2.743 2.871 3.019 3.152 3.247 3.289 3.268 3.199 3.087 2.962 2.859 2.785 2.750 2.750 2.771 2.788 2.803 2.823 2.866 2.925 2.993 3.074 3.181 3.307 3.448 3.593 3.728 3.841 3.920 3.973 4.061 4.196 4.382 4.572 4.779 4.981 5.110 5.089 4.929 4.706 4.444 4.179 3.960 3.788 3.656 3.564 3.510 3.487 3.490 3.516 3.575 3.669 3.779 3.884 3.975 4.034 4.051 4.038 4.004 3.981 3.974 3.972 3.978 3.988 4.020 4.076 4.121 4.243 4.558 1.500 1.523 1.552 1.584 1.609 1.629 1.653 1.679 1.716 1.763 1.826 1.900 1.972 2.040 2.097 2.130 2.148 2.162 2.178 2.190 2.196 2.198 2.194 2.181 2.164 2.145 2.129 2.113 2.108 2.109 2.124 2.156 2.199 2.257 2.316 2.366 2.393 2.395 2.379 2.356 2.337 2.326 2.328 2.340 2.360 2.391 2.431 2.473 2.517 2.552 2.574 2.603 2.659 2.756 2.888 3.030 3.163 3.253 3.289 3.261 3.187 3.074 2.951 2.851 2.781 2.747 2.748 2.768 2.789 2.802 2.823 2.865 2.923 2.991 3.070 3.174 3.297 3.436 3.581 3.717 3.835 3.920 3.980 4.076 4.219 4.413 4.603 4.810 5.006 5.127 5.107 4.949 4.736 4.489 4.230 4.007 3.830 3.688 3.579 3.521 3.491 3.485 3.506 3.552 3.639 3.746 3.853 3.950 4.021 4.050 4.047 4.017 3.985 3.975 3.973 3.974 3.980 4.006 4.053 4.096 4.162 4.499 1.500 1.522 1.554 1.589 1.612 1.632 1.658 1.687 1.727 1.777 1.845 1.919 1.989 2.054 2.104 2.133 2.147 2.161 2.177 2.186 2.190 2.190 2.184 2.170 2.151 2.134 2.120 2.105 2.101 2.107 2.125 2.157 2.204 2.264 2.323 2.370 2.393 2.393 2.375 2.350 2.334 2.324 2.327 2.340 2.363 2.395 2.435 2.476 2.518 2.553 2.577 2.610 2.672 2.772 2.908 3.048 3.179 3.265 3.294 3.258 3.178 3.066 2.945 2.848 2.781 2.751 2.753 2.770 2.792 2.804 2.824 2.865 2.923 2.991 3.068 3.170 3.291 3.429 3.574 3.712 3.832 3.921 3.987 4.088 4.241 4.443 4.635 4.844 5.027 5.130 5.104 4.946 4.745 4.515 4.270 4.051 3.874 3.724 3.599 3.535 3.497 3.482 3.496 3.531 3.608 3.711 3.821 3.922 4.000 4.042 4.047 4.028 3.995 3.981 3.976 3.972 3.974 3.992 4.029 4.069 4.088 4.409 1.500 1.522 1.558 1.594 1.616 1.636 1.663 1.695 1.739 1.794 1.864 1.937 2.006 2.069 2.113 2.135 2.147 2.161 2.175 2.181 2.182 2.179 2.172 2.157 2.139 2.124 2.110 2.097 2.096 2.104 2.125 2.158 2.210 2.269 2.328 2.373 2.391 2.387 2.369 2.343 2.330 2.321 2.325 2.338 2.365 2.397 2.440 2.485 2.523 2.555 2.580 2.617 2.685 2.789 2.930 3.069 3.198 3.281 3.305 3.263 3.170 3.060 2.940 2.846 2.783 2.756 2.759 2.775 2.795 2.808 2.827 2.864 2.924 2.992 3.069 3.170 3.289 3.427 3.573 3.711 3.832 3.922 3.991 4.095 4.259 4.468 4.663 4.876 5.043 5.121 5.079 4.932 4.739 4.525 4.297 4.089 3.914 3.763 3.629 3.554 3.506 3.483 3.489 3.517 3.579 3.676 3.787 3.891 3.979 4.033 4.051 4.037 4.003 3.984 3.977 3.973 3.970 3.981 4.006 4.044 4.024 4.295 1.500 1.523 1.562 1.599 1.618 1.640 1.670 1.705 1.753 1.812 1.883 1.955 2.023 2.082 2.117 2.136 2.147 2.161 2.174 2.176 2.175 2.169 2.158 2.142 2.127 2.113 2.100 2.091 2.091 2.102 2.127 2.163 2.218 2.277 2.334 2.374 2.387 2.379 2.360 2.336 2.324 2.317 2.324 2.339 2.369 2.403 2.446 2.493 2.526 2.556 2.581 2.623 2.698 2.810 2.955 3.094 3.215 3.292 3.311 3.263 3.159 3.048 2.930 2.840 2.781 2.759 2.764 2.778 2.796 2.814 2.832 2.862 2.922 2.992 3.068 3.169 3.287 3.427 3.573 3.718 3.835 3.922 3.989 4.092 4.271 4.485 4.683 4.903 5.050 5.103 5.045 4.908 4.713 4.518 4.313 4.121 3.954 3.804 3.665 3.581 3.519 3.487 3.483 3.506 3.554 3.643 3.752 3.858 3.953 4.020 4.051 4.046 4.015 3.989 3.979 3.975 3.966 3.970 3.986 4.020 3.978 4.172 1.500 1.526 1.569 1.604 1.621 1.645 1.679 1.717 1.769 1.833 1.904 1.974 2.042 2.096 2.122 2.136 2.148 2.161 2.169 2.168 2.165 2.157 2.144 2.129 2.117 2.102 2.091 2.084 2.088 2.100 2.129 2.168 2.225 2.284 2.338 2.373 2.381 2.370 2.350 2.327 2.318 2.313 2.323 2.341 2.374 2.410 2.452 2.499 2.529 2.557 2.583 2.630 2.713 2.832 2.982 3.122 3.237 3.303 3.310 3.254 3.143 3.030 2.915 2.827 2.773 2.757 2.769 2.784 2.800 2.817 2.834 2.862 2.922 2.991 3.067 3.166 3.286 3.428 3.576 3.721 3.838 3.923 3.990 4.096 4.280 4.497 4.697 4.902 5.042 5.072 4.998 4.866 4.677 4.500 4.319 4.148 3.990 3.845 3.699 3.600 3.536 3.494 3.480 3.495 3.532 3.611 3.715 3.824 3.924 4.002 4.046 4.053 4.028 3.994 3.981 3.976 3.963 3.963 3.970 4.000 3.951 4.055 1.500 1.529 1.575 1.607 1.624 1.651 1.688 1.730 1.788 1.855 1.926 1.994 2.058 2.104 2.123 2.134 2.145 2.157 2.163 2.160 2.155 2.145 2.131 2.116 2.105 2.093 2.084 2.079 2.085 2.101 2.132 2.174 2.232 2.291 2.342 2.371 2.376 2.363 2.340 2.320 2.311 2.310 2.323 2.343 2.378 2.416 2.458 2.504 2.531 2.558 2.586 2.637 2.728 2.855 3.010 3.149 3.258 3.310 3.303 3.236 3.122 3.009 2.896 2.812 2.765 2.755 2.771 2.787 2.802 2.818 2.834 2.862 2.922 2.991 3.067 3.166 3.285 3.429 3.577 3.723 3.841 3.924 3.993 4.102 4.289 4.510 4.709 4.903 5.043 5.049 4.953 4.818 4.648 4.479 4.320 4.171 4.028 3.889 3.738 3.625 3.556 3.502 3.480 3.486 3.516 3.580 3.678 3.789 3.893 3.981 4.036 4.054 4.040 4.005 3.987 3.979 3.964 3.958 3.959 3.983 3.941 3.955 1.500 1.532 1.582 1.610 1.628 1.658 1.700 1.746 1.808 1.878 1.947 2.015 2.075 2.108 2.123 2.131 2.142 2.153 2.154 2.150 2.143 2.132 2.116 2.104 2.094 2.084 2.077 2.077 2.084 2.102 2.134 2.180 2.239 2.298 2.345 2.369 2.371 2.356 2.332 2.316 2.306 2.307 2.320 2.346 2.383 2.422 2.464 2.507 2.535 2.560 2.591 2.649 2.745 2.879 3.030 3.173 3.272 3.314 3.293 3.217 3.102 2.987 2.877 2.798 2.755 2.749 2.766 2.788 2.802 2.817 2.833 2.862 2.923 2.992 3.069 3.166 3.286 3.430 3.579 3.725 3.849 3.931 4.001 4.113 4.305 4.529 4.725 4.912 5.040 5.029 4.911 4.770 4.616 4.450 4.313 4.188 4.064 3.931 3.777 3.656 3.577 3.515 3.482 3.478 3.502 3.552 3.642 3.752 3.860 3.956 4.025 4.057 4.051 4.020 3.995 3.984 3.967 3.956 3.953 3.970 3.945 3.886 1.500 1.535 1.588 1.611 1.634 1.669 1.714 1.766 1.832 1.902 1.969 2.034 2.087 2.110 2.121 2.129 2.138 2.147 2.144 2.139 2.130 2.118 2.104 2.094 2.084 2.076 2.069 2.072 2.082 2.104 2.136 2.188 2.248 2.306 2.349 2.367 2.364 2.347 2.323 2.310 2.302 2.306 2.320 2.349 2.387 2.427 2.473 2.512 2.539 2.562 2.597 2.661 2.763 2.904 3.052 3.197 3.288 3.321 3.292 3.200 3.086 2.965 2.861 2.786 2.748 2.746 2.763 2.789 2.801 2.817 2.834 2.864 2.926 2.995 3.073 3.167 3.287 3.430 3.579 3.726 3.850 3.936 4.012 4.130 4.328 4.556 4.747 4.929 5.045 5.015 4.873 4.717 4.567 4.414 4.298 4.200 4.095 3.970 3.816 3.692 3.600 3.530 3.487 3.473 3.489 3.528 3.609 3.714 3.824 3.927 4.009 4.053 4.061 4.036 4.001 3.987 3.969 3.955 3.950 3.961 3.960 3.855 1.500 1.539 1.592 1.612 1.641 1.683 1.732 1.788 1.857 1.925 1.992 2.055 2.095 2.112 2.119 2.127 2.135 2.138 2.133 2.127 2.116 2.103 2.093 2.085 2.074 2.068 2.063 2.069 2.080 2.106 2.142 2.196 2.257 2.314 2.352 2.365 2.357 2.339 2.314 2.304 2.298 2.306 2.322 2.354 2.390 2.432 2.479 2.514 2.544 2.565 2.604 2.676 2.784 2.932 3.076 3.219 3.300 3.328 3.289 3.187 3.073 2.944 2.844 2.774 2.742 2.745 2.763 2.791 2.802 2.819 2.835 2.868 2.930 2.998 3.077 3.172 3.289 3.431 3.579 3.727 3.852 3.943 4.025 4.151 4.357 4.590 4.783 4.963 5.050 5.012 4.844 4.669 4.518 4.384 4.283 4.207 4.124 4.012 3.861 3.730 3.622 3.549 3.493 3.471 3.479 3.510 3.576 3.676 3.788 3.895 3.985 4.042 4.061 4.047 4.013 3.992 3.973 3.955 3.950 3.955 3.978 3.862 1.500 1.543 1.593 1.614 1.651 1.699 1.753 1.814 1.885 1.952 2.016 2.073 2.101 2.112 2.116 2.123 2.130 2.128 2.124 2.115 2.105 2.092 2.083 2.075 2.067 2.062 2.058 2.065 2.080 2.108 2.149 2.205 2.266 2.320 2.354 2.363 2.352 2.330 2.307 2.298 2.295 2.304 2.323 2.357 2.394 2.437 2.484 2.514 2.542 2.566 2.611 2.691 2.806 2.957 3.104 3.242 3.312 3.328 3.277 3.165 3.050 2.924 2.830 2.766 2.740 2.746 2.765 2.792 2.803 2.820 2.836 2.871 2.934 3.004 3.083 3.177 3.292 3.433 3.579 3.727 3.855 3.951 4.041 4.175 4.388 4.627 4.819 4.997 5.063 5.006 4.821 4.628 4.470 4.349 4.262 4.206 4.146 4.051 3.904 3.772 3.653 3.570 3.506 3.473 3.470 3.496 3.547 3.640 3.751 3.862 3.961 4.031 4.062 4.057 4.026 3.996 3.977 3.957 3.949 3.952 3.992 3.900 1.500 1.546 1.591 1.617 1.664 1.718 1.778 1.843 1.915 1.979 2.041 2.084 2.103 2.109 2.113 2.119 2.122 2.117 2.111 2.103 2.092 2.081 2.074 2.065 2.059 2.054 2.053 2.062 2.079 2.110 2.156 2.215 2.275 2.325 2.354 2.359 2.346 2.321 2.300 2.293 2.292 2.304 2.326 2.362 2.400 2.441 2.486 2.513 2.540 2.568 2.620 2.707 2.831 2.979 3.129 3.258 3.319 3.322 3.258 3.142 3.026 2.904 2.814 2.757 2.737 2.744 2.768 2.792 2.804 2.821 2.837 2.875 2.940 3.011 3.089 3.184 3.297 3.434 3.586 3.732 3.860 3.960 4.056 4.197 4.418 4.662 4.847 5.025 5.080 5.011 4.815 4.592 4.425 4.308 4.232 4.197 4.161 4.084 3.943 3.817 3.689 3.594 3.523 3.479 3.466 3.484 3.524 3.606 3.713 3.826 3.931 4.013 4.057 4.064 4.039 4.002 3.981 3.959 3.949 3.948 3.996 3.952 1.500 1.548 1.588 1.623 1.680 1.741 1.805 1.872 1.941 2.003 2.061 2.092 2.105 2.108 2.112 2.116 2.114 2.108 2.099 2.090 2.079 2.071 2.065 2.056 2.052 2.047 2.050 2.059 2.081 2.114 2.163 2.225 2.285 2.331 2.354 2.354 2.338 2.312 2.296 2.289 2.290 2.303 2.329 2.366 2.404 2.449 2.489 2.512 2.537 2.570 2.631 2.725 2.857 3.005 3.157 3.274 3.325 3.317 3.233 3.116 3.000 2.885 2.801 2.751 2.737 2.747 2.772 2.791 2.805 2.822 2.839 2.879 2.946 3.019 3.097 3.192 3.303 3.439 3.591 3.735 3.864 3.969 4.071 4.220 4.447 4.695 4.868 5.046 5.092 5.002 4.807 4.563 4.383 4.265 4.205 4.183 4.169 4.110 3.977 3.862 3.729 3.618 3.544 3.488 3.467 3.476 3.509 3.576 3.676 3.788 3.897 3.988 4.046 4.064 4.049 4.013 3.987 3.963 3.947 3.943 3.987 3.997 1.500 1.548 1.586 1.633 1.698 1.766 1.833 1.903 1.970 2.030 2.075 2.097 2.103 2.104 2.107 2.108 2.103 2.097 2.088 2.079 2.068 2.062 2.056 2.049 2.044 2.041 2.048 2.059 2.084 2.121 2.173 2.236 2.294 2.336 2.355 2.351 2.331 2.306 2.293 2.285 2.288 2.302 2.332 2.369 2.408 2.454 2.488 2.510 2.535 2.573 2.643 2.745 2.885 3.035 3.184 3.282 3.324 3.302 3.204 3.088 2.970 2.863 2.786 2.744 2.738 2.749 2.775 2.789 2.807 2.822 2.843 2.891 2.955 3.029 3.106 3.199 3.309 3.444 3.597 3.738 3.870 3.980 4.093 4.254 4.477 4.727 4.896 5.065 5.102 4.993 4.791 4.536 4.343 4.219 4.170 4.160 4.166 4.131 4.016 3.907 3.772 3.651 3.567 3.504 3.472 3.471 3.497 3.549 3.641 3.751 3.863 3.962 4.033 4.064 4.059 4.026 3.997 3.968 3.945 3.937 3.968 4.023 1.500 1.546 1.586 1.648 1.720 1.793 1.863 1.931 1.997 2.049 2.083 2.096 2.098 2.100 2.101 2.099 2.091 2.082 2.073 2.064 2.057 2.053 2.046 2.042 2.036 2.035 2.043 2.059 2.087 2.129 2.186 2.247 2.303 2.340 2.353 2.347 2.323 2.298 2.287 2.281 2.287 2.304 2.336 2.372 2.411 2.456 2.486 2.509 2.534 2.579 2.658 2.769 2.917 3.066 3.210 3.292 3.319 3.282 3.174 3.059 2.940 2.840 2.770 2.737 2.737 2.752 2.778 2.790 2.808 2.822 2.847 2.900 2.965 3.040 3.114 3.205 3.315 3.450 3.603 3.745 3.876 3.991 4.114 4.285 4.508 4.759 4.924 5.085 5.112 4.989 4.769 4.512 4.306 4.173 4.127 4.127 4.153 4.143 4.050 3.951 3.816 3.687 3.590 3.522 3.481 3.469 3.485 3.526 3.608 3.713 3.828 3.932 4.014 4.059 4.064 4.037 4.009 3.976 3.945 3.931 3.945 4.023 1.500 1.545 1.592 1.668 1.747 1.823 1.892 1.957 2.021 2.064 2.086 2.093 2.094 2.096 2.094 2.086 2.078 2.068 2.059 2.051 2.048 2.042 2.036 2.032 2.030 2.031 2.040 2.061 2.092 2.139 2.199 2.260 2.312 2.343 2.350 2.340 2.314 2.291 2.282 2.276 2.284 2.306 2.340 2.375 2.413 2.456 2.483 2.510 2.537 2.589 2.676 2.794 2.943 3.095 3.231 3.297 3.311 3.257 3.144 3.030 2.909 2.816 2.753 2.727 2.731 2.754 2.780 2.790 2.808 2.822 2.852 2.908 2.974 3.050 3.124 3.214 3.323 3.459 3.614 3.759 3.890 4.007 4.137 4.317 4.542 4.794 4.952 5.103 5.124 4.993 4.759 4.506 4.278 4.132 4.081 4.095 4.134 4.147 4.076 3.991 3.863 3.730 3.618 3.547 3.494 3.473 3.480 3.514 3.579 3.676 3.790 3.897 3.987 4.044 4.063 4.049 4.024 3.986 3.948 3.927 3.922 3.997 1.500 1.545 1.607 1.694 1.777 1.855 1.919 1.979 2.039 2.073 2.086 2.088 2.088 2.087 2.081 2.071 2.060 2.050 2.043 2.039 2.038 2.033 2.029 2.025 2.024 2.026 2.038 2.063 2.098 2.151 2.214 2.274 2.321 2.346 2.348 2.331 2.304 2.285 2.277 2.273 2.283 2.310 2.344 2.378 2.420 2.457 2.479 2.506 2.541 2.603 2.696 2.824 2.976 3.130 3.257 3.313 3.310 3.229 3.112 2.996 2.880 2.793 2.738 2.721 2.731 2.758 2.783 2.793 2.809 2.824 2.858 2.915 2.982 3.059 3.134 3.223 3.335 3.472 3.630 3.782 3.913 4.030 4.165 4.351 4.580 4.831 4.985 5.119 5.136 5.000 4.759 4.501 4.250 4.090 4.032 4.053 4.103 4.138 4.092 4.023 3.907 3.774 3.653 3.572 3.510 3.481 3.478 3.504 3.553 3.640 3.748 3.859 3.956 4.027 4.060 4.058 4.039 3.999 3.955 3.926 3.905 3.952 1.500 1.550 1.630 1.725 1.810 1.888 1.943 2.000 2.053 2.076 2.083 2.082 2.081 2.077 2.065 2.053 2.040 2.031 2.028 2.028 2.027 2.023 2.021 2.018 2.018 2.023 2.039 2.067 2.108 2.164 2.229 2.286 2.327 2.345 2.343 2.321 2.295 2.279 2.271 2.270 2.284 2.313 2.348 2.381 2.422 2.454 2.475 2.503 2.545 2.617 2.718 2.858 3.012 3.165 3.277 3.320 3.299 3.199 3.079 2.964 2.854 2.774 2.728 2.719 2.733 2.762 2.785 2.795 2.809 2.826 2.864 2.921 2.991 3.068 3.145 3.235 3.351 3.497 3.654 3.805 3.936 4.056 4.194 4.386 4.618 4.866 5.021 5.134 5.153 5.018 4.757 4.481 4.226 4.052 3.982 4.002 4.059 4.115 4.093 4.044 3.949 3.818 3.691 3.596 3.531 3.491 3.478 3.493 3.530 3.606 3.707 3.818 3.921 4.001 4.050 4.061 4.053 4.014 3.966 3.929 3.896 3.903 1.500 1.560 1.659 1.760 1.845 1.920 1.968 2.019 2.063 2.076 2.077 2.074 2.070 2.060 2.048 2.034 2.022 2.014 2.015 2.018 2.017 2.014 2.012 2.011 2.012 2.022 2.042 2.073 2.119 2.180 2.243 2.296 2.330 2.342 2.335 2.310 2.286 2.274 2.264 2.267 2.286 2.316 2.349 2.382 2.422 2.450 2.469 2.500 2.551 2.633 2.745 2.890 3.047 3.194 3.288 3.315 3.276 3.164 3.045 2.931 2.827 2.755 2.719 2.715 2.736 2.764 2.782 2.794 2.807 2.828 2.869 2.926 3.002 3.080 3.159 3.252 3.370 3.522 3.676 3.827 3.959 4.080 4.223 4.422 4.660 4.889 5.046 5.153 5.168 5.035 4.762 4.472 4.214 4.023 3.936 3.947 4.011 4.075 4.088 4.064 3.986 3.864 3.734 3.626 3.557 3.504 3.483 3.487 3.516 3.574 3.666 3.775 3.880 3.972 4.034 4.059 4.067 4.033 3.982 3.937 3.898 3.866 1.500 1.575 1.693 1.795 1.879 1.948 1.990 2.031 2.065 2.070 2.067 2.063 2.056 2.041 2.026 2.011 2.001 1.999 2.003 2.006 2.007 2.006 2.004 2.005 2.007 2.021 2.045 2.081 2.133 2.197 2.256 2.305 2.333 2.339 2.324 2.298 2.275 2.265 2.258 2.267 2.289 2.319 2.349 2.382 2.419 2.443 2.465 2.500 2.559 2.651 2.776 2.927 3.084 3.221 3.289 3.302 3.245 3.129 3.012 2.899 2.804 2.741 2.714 2.714 2.738 2.763 2.775 2.792 2.804 2.831 2.880 2.937 3.014 3.093 3.173 3.268 3.389 3.544 3.696 3.847 3.978 4.108 4.260 4.455 4.699 4.919 5.075 5.176 5.178 5.044 4.765 4.466 4.199 3.994 3.893 3.893 3.961 4.032 4.074 4.076 4.017 3.907 3.777 3.661 3.582 3.521 3.490 3.484 3.505 3.547 3.627 3.731 3.840 3.939 4.015 4.056 4.076 4.052 4.002 3.951 3.910 3.851 1.500 1.592 1.725 1.827 1.909 1.972 2.007 2.039 2.063 2.060 2.054 2.047 2.035 2.020 2.004 1.990 1.983 1.986 1.992 1.996 1.998 1.997 1.998 1.999 2.004 2.021 2.048 2.091 2.148 2.213 2.270 2.312 2.332 2.332 2.311 2.285 2.266 2.257 2.253 2.266 2.291 2.322 2.350 2.385 2.417 2.438 2.466 2.506 2.574 2.671 2.808 2.963 3.121 3.248 3.304 3.299 3.215 3.097 2.982 2.867 2.781 2.727 2.710 2.715 2.742 2.764 2.775 2.790 2.803 2.837 2.890 2.948 3.027 3.105 3.187 3.284 3.407 3.564 3.714 3.863 3.993 4.128 4.289 4.485 4.736 4.951 5.103 5.194 5.175 5.038 4.764 4.460 4.178 3.970 3.856 3.845 3.910 3.993 4.054 4.079 4.039 3.945 3.821 3.697 3.605 3.540 3.499 3.484 3.495 3.528 3.593 3.688 3.798 3.903 3.988 4.044 4.079 4.070 4.024 3.970 3.929 3.858 1.500 1.609 1.753 1.853 1.933 1.998 2.035 2.056 2.064 2.057 2.046 2.030 2.010 1.993 1.979 1.971 1.969 1.975 1.982 1.986 1.987 1.987 1.987 1.987 1.996 2.017 2.051 2.102 2.166 2.234 2.290 2.327 2.338 2.327 2.301 2.273 2.255 2.244 2.246 2.262 2.289 2.319 2.350 2.382 2.407 2.425 2.452 2.498 2.577 2.691 2.844 3.015 3.182 3.301 3.348 3.311 3.201 3.067 2.937 2.823 2.743 2.701 2.696 2.712 2.740 2.760 2.771 2.783 2.800 2.838 2.891 2.953 3.028 3.107 3.195 3.302 3.432 3.586 3.736 3.878 4.009 4.147 4.312 4.516 4.772 5.015 5.208 5.310 5.258 5.078 4.780 4.446 4.142 3.919 3.791 3.769 3.836 3.944 4.043 4.100 4.083 4.001 3.875 3.742 3.629 3.550 3.494 3.468 3.468 3.495 3.553 3.645 3.758 3.873 3.976 4.044 4.085 4.086 4.045 3.990 3.949 3.881 1.500 1.624 1.774 1.871 1.948 2.011 2.048 2.060 2.058 2.046 2.028 2.005 1.984 1.966 1.956 1.953 1.956 1.965 1.972 1.977 1.978 1.978 1.977 1.979 1.992 2.018 2.060 2.118 2.185 2.251 2.304 2.333 2.335 2.316 2.286 2.259 2.242 2.236 2.243 2.262 2.289 2.319 2.349 2.376 2.397 2.416 2.445 2.500 2.591 2.721 2.886 3.064 3.229 3.335 3.359 3.294 3.168 3.028 2.893 2.787 2.716 2.686 2.690 2.713 2.740 2.757 2.767 2.778 2.800 2.841 2.897 2.962 3.035 3.115 3.208 3.322 3.457 3.608 3.755 3.893 4.025 4.168 4.337 4.549 4.804 5.058 5.264 5.360 5.287 5.073 4.769 4.430 4.121 3.888 3.752 3.716 3.775 3.890 4.013 4.100 4.112 4.047 3.929 3.792 3.667 3.570 3.506 3.467 3.456 3.473 3.521 3.604 3.715 3.836 3.949 4.034 4.082 4.096 4.066 4.011 3.968 3.914 1.500 1.640 1.790 1.883 1.956 2.015 2.049 2.056 2.047 2.029 2.005 1.979 1.957 1.941 1.935 1.938 1.946 1.956 1.964 1.968 1.969 1.969 1.968 1.974 1.991 2.023 2.072 2.134 2.203 2.266 2.311 2.331 2.325 2.301 2.271 2.247 2.233 2.231 2.242 2.263 2.290 2.319 2.346 2.368 2.385 2.406 2.443 2.509 2.613 2.754 2.925 3.103 3.259 3.350 3.349 3.261 3.123 2.980 2.852 2.754 2.695 2.675 2.687 2.714 2.739 2.753 2.762 2.775 2.801 2.844 2.902 2.969 3.043 3.125 3.223 3.339 3.476 3.622 3.766 3.905 4.043 4.191 4.366 4.583 4.837 5.091 5.291 5.368 5.275 5.046 4.739 4.410 4.107 3.873 3.729 3.682 3.727 3.837 3.968 4.076 4.119 4.083 3.980 3.845 3.712 3.603 3.525 3.477 3.456 3.461 3.498 3.570 3.673 3.794 3.915 4.012 4.074 4.103 4.087 4.032 3.984 3.951 1.500 1.640 1.789 1.880 1.953 2.011 2.044 2.047 2.031 2.007 1.978 1.951 1.930 1.919 1.918 1.927 1.940 1.951 1.958 1.961 1.961 1.960 1.961 1.971 1.993 2.033 2.088 2.154 2.223 2.281 2.317 2.326 2.312 2.284 2.255 2.235 2.225 2.227 2.241 2.265 2.292 2.320 2.344 2.363 2.379 2.403 2.449 2.529 2.647 2.801 2.978 3.155 3.296 3.362 3.331 3.221 3.077 2.936 2.816 2.729 2.681 2.672 2.690 2.718 2.739 2.750 2.758 2.774 2.804 2.851 2.912 2.981 3.057 3.143 3.244 3.362 3.498 3.639 3.779 3.918 4.062 4.219 4.404 4.627 4.882 5.132 5.314 5.359 5.242 5.001 4.699 4.383 4.093 3.865 3.720 3.665 3.697 3.796 3.927 4.046 4.115 4.108 4.026 3.899 3.761 3.641 3.551 3.492 3.462 3.459 3.486 3.547 3.640 3.756 3.878 3.985 4.059 4.104 4.107 4.056 4.000 4.000 1.500 1.640 1.784 1.875 1.951 2.009 2.041 2.041 2.020 1.992 1.962 1.935 1.917 1.910 1.914 1.926 1.939 1.948 1.952 1.954 1.953 1.952 1.955 1.969 1.998 2.043 2.102 2.170 2.234 2.284 2.310 2.310 2.289 2.260 2.235 2.220 2.216 2.224 2.242 2.266 2.291 2.314 2.334 2.351 2.368 2.398 2.453 2.543 2.668 2.825 3.000 3.171 3.297 3.341 3.288 3.164 3.015 2.878 2.766 2.691 2.656 2.658 2.683 2.713 2.732 2.742 2.751 2.770 2.804 2.855 2.917 2.990 3.072 3.166 3.277 3.405 3.546 3.689 3.828 3.965 4.106 4.260 4.444 4.668 4.920 5.162 5.320 5.326 5.172 4.911 4.610 4.310 4.042 3.833 3.699 3.648 3.675 3.767 3.897 4.032 4.128 4.153 4.097 3.979 3.835 3.699 3.591 3.516 3.474 3.461 3.478 3.526 3.609 3.718 3.839 3.952 4.038 4.096 4.119 4.070 4.000 4.000 1.500 1.633 1.777 1.861 1.939 1.996 2.027 2.028 2.009 1.981 1.952 1.927 1.911 1.905 1.911 1.923 1.933 1.940 1.943 1.943 1.942 1.942 1.949 1.968 2.004 2.055 2.118 2.185 2.244 2.283 2.296 2.285 2.260 2.231 2.211 2.203 2.206 2.222 2.247 2.276 2.304 2.329 2.349 2.363 2.385 2.427 2.502 2.616 2.769 2.950 3.136 3.300 3.399 3.404 3.317 3.178 3.033 2.901 2.797 2.728 2.699 2.703 2.726 2.748 2.757 2.756 2.756 2.769 2.799 2.848 2.910 2.986 3.074 3.178 3.300 3.439 3.588 3.733 3.868 3.997 4.127 4.269 4.446 4.668 4.917 5.158 5.315 5.323 5.174 4.920 4.626 4.333 4.071 3.857 3.707 3.632 3.632 3.698 3.816 3.961 4.093 4.169 4.163 4.074 3.932 3.778 3.644 3.542 3.478 3.447 3.446 3.476 3.540 3.636 3.753 3.874 3.979 4.060 4.133 4.086 4.000 4.000 'END of complex blocks, end of the input data for the model' / mar/mar-grd.h 100666 1750 1750 2716 6612015430 12421 0 ustar klimes klimes # History file 'mar-grd.h' to generate PostScript files showing # the P wave velocity sections in both INRIA bench-mark versions # of the Marmousi model. The sections are rotated 90 degrees # clockwise (landscape printed as portrait) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Input files required: #chk.pl: "forms/" "echo.pl" #chk.pl: "model/mar/" "marh-mod.dat" #chk.pl: "model/mar/" "mars-mod.dat" # Grid dimensions and plotting parameters: N1=767 N2=243 D1=0.012 D2=0.012 O1=0.006 O2=0.006 VCIRC=5 CREF=0. # VREF=1.00 # more green VREF=1.25 # VREF=1.50 # more red HSIZE=23.01 VSIZE=-7.29 ROTATE=90. # MARmousi Hard model: MODEL='marh-mod.dat' echo.pl: "' ' 'marh-vel.out' ' ' /" >grid.tmp echo.pl: "/" >>grid.tmp grid: 'mar-grd.h' 'grid.tmp' / # Gridding velocities grdps: 'mar-grd.h' 'marh-vel.out' 'marh-vel.ps' / # Plotting velocities # MARmousi Smoothed model: MODEL='mars-mod.dat' echo.pl: "' ' 'mars-vel.out' ' ' /" >grid.tmp echo.pl: "/" >>grid.tmp grid: 'mar-grd.h' 'grid.tmp' / # Gridding velocities grdps: 'mar-grd.h' 'mars-vel.out' 'mars-vel.ps' / # Plotting velocities # ====================================================================== # List of output PostScript figures displaying the velocities: # marh-vel.ps: Section across Marmousi hard model # mars-vel.ps: Section across Marmousi smoothed model means.for 100666 1750 1750 104126 6600630366 12021 0 ustar klimes klimes C
C Subroutine file 'means.for' containing some utility programs helpful C when dealing with the model. C C Date: 1998, September 19 C Coded by Ludek Klimes C C....................................................................... C C This file consists of the following subroutines: C CDE... Subroutine designed to search for the point of C intersection of the given curve with the boundaries of the C complex block. The curve is interpolated from the two C given points. The subroutine performs the steps 5.8.3(c), C (d) and (e) of the algorithm. C CDE C CROSS...Subroutine designed to find the point of intersection of a C curve with a surface (see C.R.T.5.8.4b). C CROSS C HIVD2...Subroutine performing the Hermite interpolation of a C vector and its derivatives using functional values and C derivatives at 2 given points (see C.R.T.5.8.4a). C HIVD2 C SMVPRD..Subroutine designed to evaluate symmetric matrix by vector C product. It may be, e.g., called after the invocation of C the METRIC subroutine to transform the covariant vectors C to the contravariant ones and vice versa. C SMVPRD C C======================================================================= C C C SUBROUTINE CDE(NOUGHT,NEND,KEND,NBOUND,KBOUND,BOUND, * KDIM1,KDIM2,NDIM,IY,ERR,X0,X1,Y1,D1,X2,Y2,D2,X,Y,D,XB,YB,DB) INTEGER NOUGHT,NEND,KEND(*),NBOUND,KBOUND(*) INTEGER IY(8),KDIM1,KDIM2,NDIM,MY PARAMETER (MY=35) REAL BOUND(*),ERR,X0,X1,Y1(NDIM),D1(NDIM),X2,Y2(NDIM),D2(NDIM) REAL X,Y(NDIM),D(NDIM),XB,YB(NDIM),DB(NDIM) C C This subroutine determines the point of intersection of the given C curve element with the boundary of the complex block. The curve is C interpolated from the two given points. The subroutine performs the C steps 5.8.3(c), (d) and (e) of the algorithm. C C General meaning of some arguments used: C X1,X2,X,XB... Independent variable along the curve. C Y1,Y2,Y,YB,D1,D2,D,DB... Arrays of the dimension NDIM. C Y1(KDIM1:KDIM2),Y2(KDIM1:KDIM2),Y(KDIM1:KDIM2),YB(KDIM1:KDIM2)... C Coordinates. C D1(1:NDIM),D2(1:NDIM),D(1:NDIM),DB(1:NDIM)... Derivatives of C arrays Y1,Y2,Y,YB with respect to the independent C variable. C C Input: C NOUGHT..Zero if the curve is not situated along the structural C interface, C otherwise the index of the surface on which the curve is C situated. C NEND... Number of end surfaces limiting the computational volume. C Usually NEND=0. C KEND... Contains the indices of end surfaces. C Array of dimension NEND, not used if NEND=0. C NBOUND..Number of isosurfaces of computed quantities, limiting the C computational volume. These isosurfaces will likely be C the boundaries X1MIN,X1MAX,X2MIN,X2MAX,X3MIN,X3MAX of the C computational volume. C KBOUND..Indices of the quantities corresponding to the C isosurfaces. The computational volume is limited by the C inequalities C Y(IABS(KBOUND(I))).LE.BOUND(I) for KBOUND(I).LT.0, C Y(IABS(KBOUND(I))).GE.BOUND(I) for KBOUND(I).GT.0. C Array of dimension NBOUND, not used if NBOUND=0. C BOUND...Values of the isosurfaces, likely coinciding with C boundaries X1MIN,X1MAX,X2MIN,X2MAX,X3MIN,X3MAX of the C computational volume. In such a case, KBOUND would take C the values KDIM1,-KDIM1,KDIM1+1,-KDIM1-1,KDIM2,-KDIM2. C Array of dimension NBOUND, not used if NBOUND=0. C KDIM1,KDIM2... KDIM1-th to KDIM2-th elements of arrays Y1,Y2,Y,YB C contain coordinates. KDIM2 is assumed to be KDIM1+2. C NDIM... Dimension of the arrays Y1,Y2,Y,YB,D1,D2,D,DB. It must C not exceed the parameter MY. C IY... Integer array of the dimension at least 8. C IY(4)=ISB1... Index of the simple block containing the point X1. C IY(5)=ICB1... Index of the complex block containing the point X1. C It may (but need not) be supplemented by a sign '+' for P C wave and sign '-' for S wave. C ERR... Maximum error in independent variable for the C determination of the point of intersection. C X0... For X.LE.X0 just the intersection with the boundary of C the computational volume is checked, not with the C structural interfaces. C For X1.LE.X0, the initial point X1 is checked for location C outside the complex block, but very close to its boundary. C In such a case, X0 should be close to X1 (within an C interval of ERR) and may be located inside the complex C block. C X1,Y1,D1... Quantities at the initial point of the curve element. C X2,Y2,D2... Quantities at another point of the curve. The curve C is interpolated using the values and their derivatives at C the points X1 and X2. C X,Y,D...Quantities at the endpoint of the curve element. C XB,YB,DB... Values ignored. C C Output: C NOUGHT,KDIM1,KDIM2,NDIM,ERR,X0,X1,Y1,D1,X2,Y2,D2... Unchanged C input. C IY(1),IY(2),IY(3),IY(5)... Unchanged input. C IY(4)=ISB1... Index of the simple block containing the point X. C Output if the endpoint of the curve element is situated in the complex C block IY(5): C IY(6),IY(7),IY(8)... Unchanged input. C X,Y,D...Unchanged input. C XB,YB,DB... Copy of X,Y,D. C Output if the endpoint of the curve element is situated in another C complex block or outside the computational volume: C IY(6)=ISRF... Index of the surface at which the point of C intersection with the boundary of the complex block is C situated, supplemented by a sign '+' or '-' for the point C situated at the positive or negative side of the surface, C respectively. C IY(7)=ISB2... Index of the simple block touching the complex C block ICB1 from the other side of the surface ISRF at C the point of intersection. C ISB2=0 for a free space on the other side of ISRF. C IY(8)=ICB2... Index of the complex block touching the complex C block ICB1 from the other side of the surface ISRF at C the point of intersection. C ICB2=0 for a free space on the other side of ISRF. C X,Y,D...Values corresponding to the point of intersection of the C curve with the boundary of the complex block or the C computational volume. If possible, this point is situated C inside the given complex block close to its boundary, or C directly on its boundary. C XB,YB,DB... Values corresponding to another approximation of the C point of intersection. This point is situated outside the C the given complex block, close to its boundary or directly C on its boundary. C Note that XB-X should be less than ERR. C C Subroutines and external functions required: EXTERNAL NSRFC,BLOCK,SRFC2,CROSS INTEGER NSRFC C NSRFC,BLOCK... File 'model.for'. C SRFC2 and subsequent routines... File 'srfc.for' and subsequent C files (like 'val.for' and 'fit.for'). C CROSS,HIVD2... This file. C C Date: 1995, October 29 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations for local model parameters: FAUX(10), C G(12),GAMMA(18),GSQRD, UP(10),US(10),RO,QP,QS, VP,VS,VD(10),QL: INCLUDE 'auxmod.inc' C auxmod.inc C C....................................................................... C C Other auxiliary storage locations: INTEGER ISRAUX,ISBAUX,ISB1,ISRF2,ISB2,ICB2,K0,K1,K2,K,I REAL XAUX,YAUX(MY),DAUX(MY),X01,Y01(MY),D01(MY) C C ISB1,X01,Y01,D01,VD... Used only to check for the location of the C point X1. C C....................................................................... C C (c) Check for crossing the coordinate boundaries of the C computational volume: DO 31 I=1,NBOUND K=IABS(KBOUND(I)) IF((KBOUND(I).GT.0.AND.Y(K).LT.BOUND(I)).OR. * (KBOUND(I).LT.0.AND.Y(K).GT.BOUND(I))) THEN IY(6)=100+I FAUX(1)=BOUND(I) CALL CROSS(SRFC2,IY(6),K,K,NDIM,ERR,X1,Y1,D1,X2,Y2,D2, * X,Y,D,XB,YB,DB,FAUX) END IF 31 CONTINUE IF(IY(6).GT.100) THEN IY(7)=IY(4) IY(8)=IABS(IY(5)) END IF ISB1=IY(4) C XB=X DO 39 I=1,NDIM YB(I)=Y(I) DB(I)=D(I) 39 CONTINUE C C (d) Check for crossing the boundary of the complex block: C Note: IY(4)=ISB1, IY(5)=ICB1, IY(6)=ISRF. IF(X.GT.X0) THEN CALL BLOCK(.TRUE.,Y(KDIM1),NOUGHT,IY(4),ISRF2,ISB2,ICB2,FAUX) 40 CONTINUE IF(ISRF2.NE.0) THEN C Boundary of the simple block is crossed C Note: in this routine, unlike in the paper on C.R.T., the C point of intersection with the boundary of the simple block is C found even if the boundary of the complex block is not C crossed. C (d1) ISRAUX=IY(6) ISBAUX=ISB2 XAUX=X DO 41 I=1,NDIM YAUX(I)=Y(I) DAUX(I)=D(I) 41 CONTINUE C Following loop is included to avoid infinite repeating of the C steps (d2) and (d3) of the algorithm DO 47 K=1,100 C (d2) IY(6)=ISRF2 C (d3) C Check for the location of the point X1 before calling cross IF(X1.LE.X0) THEN C X1 may be located outside the complex block CALL SRFC2(IABS(IY(6)),Y1(KDIM1),VD) IF(VD(1)*FAUX(1).GT.0.) THEN C Points X1 and X are located outside the complex block, C looking for the point X01 between X0 and X, situated C inside the complex block. X01=X0 42 CONTINUE CALL HIVD2(KDIM2-KDIM1+1,X1,Y1(KDIM1),D1(KDIM1),X2, * Y2(KDIM1),D2(KDIM1),X01,Y01(KDIM1),D01(KDIM1)) CALL SRFC2(IABS(IY(6)),Y01(KDIM1),VD) IF(VD(1)*FAUX(1).LE.0.) THEN C Point X01 is likely located inside the complex block CALL BLOCK * (.TRUE.,Y01(KDIM1),NOUGHT,ISB1,ISRF2,K1,K2,VD) IF(ISRF2.EQ.0) THEN C Point X01 is located inside the simple block ISB1, C point X1 may be replaced by X01. CALL HIVD2(NDIM,X1,Y1,D1,X2,Y2,D2,X01,Y01,D01) CALL CROSS(SRFC2,IABS(IY(6)),KDIM1,KDIM2,NDIM,ERR, * X01,Y01,D01,X2,Y2,D2,X,Y,D,XB,YB,DB,FAUX) GO TO 43 END IF ELSE C Trying a new point X01 IF(X01.EQ.X0) THEN X01=X01+ERR ELSE X01=X01+(X01-X0) END IF IF(X01.LT.X) THEN GO TO 42 END IF END IF END IF END IF CALL CROSS(SRFC2,IABS(IY(6)),KDIM1,KDIM2,NDIM,ERR, * X1,Y1,D1,X2,Y2,D2,X,Y,D,XB,YB,DB,FAUX) 43 CONTINUE C X and XB are the approximations of the point of intersection C with the surface IY(6) CALL BLOCK * (.TRUE.,Y(KDIM1),NOUGHT,IY(4),ISRF2,ISB2,ICB2,FAUX) IF(ISRF2.EQ.IY(6).AND.X.NE.X1) THEN C 587 CALL ERROR('587 in CDE: Boundary point out of block') C This error should not appear. Contact the authors. ELSE IF(ISRF2.NE.0.AND.ISRF2.NE.IY(6).AND. * FAUX(1)*(D(KDIM1)*FAUX(2)+D(KDIM1+1)*FAUX(3) * +D(KDIM2)*FAUX(4)).GT.0.) THEN C (d3-i) C Point X is not situated at the boundary of the simple C block. It is separated from the simple block IY(4) by C the surface ISRF2 situated before (not after) the point X. C Go to (d2) ELSE C X is situated at the boundary of the simple block IY(4) CALL BLOCK * (.TRUE.,YB(KDIM1),NOUGHT,IY(4),ISRF2,ISB2,ICB2,FAUX) IF(ISB2.EQ.IY(4)) THEN CALL SRFC2(IABS(IY(6)),YB(KDIM1),FAUX) IF(FAUX(1).NE.0.) THEN C 582 CALL ERROR('582 in CDE: Excluded program branch') C This error should not appear. Contact the authors. END IF C Point XB is situated exactly at the surface IY(6) CALL BLOCK * (.TRUE.,YB(KDIM1),IY(6),IY(4),ISRF2,ISB2,ICB2,FAUX) IF(NOUGHT.NE.0.AND.NOUGHT.EQ.ISRF2) THEN K1=ISB2 CALL BLOCK * (.TRUE.,YB(KDIM1),IY(6),K1,ISRF2,ISB2,ICB2,FAUX) END IF END IF IF(NOUGHT.EQ.0) THEN C Near the edge of a simple block, two different surfaces C bounding simple block IY(4) may be situated between C points X and XB. In such a case, only one of them C separates simple block IY(4) from ISB2 and IY(6) may C be the second. CALL BLOCK(.TRUE.,Y(KDIM1),IY(6),IY(4),ISRF2,K1,K2,FAUX) IF(ISRF2.EQ.0.AND.ISB2.NE.K1) THEN C Surface IY(6) does not form the interface between C simple blocks IY(4) and ISB2: CALL BLOCK * (.TRUE.,YB(KDIM1),IY(6),IY(4),ISRF2,K1,K2,FAUX) IF(ISRF2.NE.0) THEN C Surface ISRF2 separates the point XB from the simple C block IY(4): CALL BLOCK * (.TRUE.,Y(KDIM1),ISRF2,IY(4),K0,K1,K2,FAUX) IF(K0.EQ.0.AND.ISB2.EQ.K1) THEN C Surface ISRF2 forms the interface between simple C blocks IY(4) and ISB2: IY(6)=ISRF2 END IF END IF END IF END IF IF(ICB2.EQ.IABS(IY(5))) THEN C (d3-ii) C X,Y is situated at the boundary of the simple block C but not situated at the boundary of the complex block IY(4)=ISB2 X=XAUX DO 45 I=1,NDIM Y(I)=YAUX(I) D(I)=DAUX(I) 45 CONTINUE IF(ISB2.EQ.ISBAUX) THEN C Boundary of the complex block has not been crossed C during the last step of numerical integration XB=X DO 46 I=1,NDIM YB(I)=Y(I) DB(I)=D(I) 46 CONTINUE IY(6)=ISRAUX GO TO 49 END IF CALL BLOCK * (.TRUE.,YAUX(KDIM1),NOUGHT,IY(4),ISRF2,ISB2,ICB2,FAUX) IF(ISRF2.EQ.0) THEN C ISRF2 can be zero only if ISB2.EQ.ISBAUX: WRITE(*,'(20(A,I3))') ' ISRFC1=',ISRAUX, * ' ISB1=',ISBAUX, * ' ICB1=',IY(5), * ' ISRFC2=',ISRF2, * ' ISB2=',IY(4), * ' ICB2=',ICB2 C 583 CALL ERROR('583 in CDE: Excluded program branch') C This error should not appear. Contact the authors. END IF C Go to (d2) ELSE C (d3-iii) C X is situated at the boundary of the simple block and C X is situated at the boundary of the complex block GO TO 48 END IF END IF 47 CONTINUE C 581 CALL ERROR('581 in CDE: Too many fictitious interfaces') C More than 100 fictitious interfaces crossed during one C step of the numerical integration. C This error should not appear. Contact the authors. 48 CONTINUE IY(7)=ISB2 IY(8)=ICB2 END IF 49 CONTINUE END IF C C (e) Check for crossing the end surfaces DO 51 I=1,NEND IF(IABS(KEND(I)).GT.NSRFC()) THEN CALL SRFC2(IABS(KEND(I)),Y(KDIM1),FAUX) IF(FAUX(1)*FLOAT(KEND(I)).LE.0.) THEN IY(6)=IABS(KEND(I)) CALL CROSS(SRFC2,IY(6),KDIM1,KDIM2,NDIM,ERR, * X1,Y1,D1,X2,Y2,D2,X,Y,D,XB,YB,DB,FAUX) END IF END IF 51 CONTINUE C RETURN END C C======================================================================= C C C SUBROUTINE CROSS(SRFC2,ISRF,KDIM1,KDIM2,NDIM, * ERR,X1,Y1,D1,X2,Y2,D2,XA,YA,DA,XB,YB,DB,F) EXTERNAL SRFC2 INTEGER ISRF,KDIM1,KDIM2,NDIM REAL ERR,X1,Y1(NDIM),D1(NDIM),X2,Y2(NDIM),D2(NDIM) REAL XA,YA(NDIM),DA(NDIM),XB,YB(NDIM),DB(NDIM),F(10) C C This subroutine finds the point of intersection of a curve with C a surface (see C.R.T.5.8.4b). The curve is parametrized by an C independent variable X and evaluated by the Hermite interpolation from C the two given points. The surface is specified in an implicit way by C subroutine SRFC2 which is described elsewhere, or may coincide with an C isosurface of a computed quantity (e.g. with a coordinate plane). C C Input: C SRFC2...Name of the external procedure evaluating the function C describing the surface ISRF, for ISRF.LE.100. C ISRF... Index of the surface. C For ISRF.LE.100: C The surface coincides with the zero isosurface of the C function no. ISRF evaluated by the subroutine SRFC2. C For ISRF.GT.100: C The surface coincides with an isosurface Y(KDIM1)=F(1). C KDIM1,KDIM2... Indices of quantities on which the function C describing the surface is dependent: C For ISRF.LE.100: C KDIM1-th to KDIM2-th elements of arrays Y1, Y2, YA, and C YB contain coordinates. KDIM2 is assumed to be KDIM1+1 C (2 coordinates) or KDIM1+2 (3 coordinates). C The function describing the surface ISRF is determined C by the subroutine SRFC2. C For ISRF.GT.100: C The surface coincides with an isosurface Y(KDIM1)=F(1). C KDIM2 is assumed to equal KDIM1. C When searching for the point of intersection, only C quantities Y(KDIM1:KDIM2) and their derivatives are C interpolated along the curve. C NDIM... Dimension of arrays Y1,D1,Y2,D2,YA,DA,YB,DB. C At the point of intersection, quantities Y(1:NDIM) and C their derivatives are interpolated. C ERR... Maximum error in independent variable for the C determination of the point of intersection. C X1... Independent variable corresponding to the first point C given for the interpolation of the curve. C Y1... Array containing dependent variables at point X1. C Y1(KDIM1) to Y1(KDIM2) must contain the coordinates of C point X1. C D1... Array containing the derivatives of the dependent C variables at point X1. C X2... Independent variable corresponding to the second point C given for the interpolation of the curve. C Y2... Array containing dependent variables at point X2. C Y2(KDIM1) to Y2(KDIM2) must contain the coordinates of C point X2. C D2... Array containing the derivatives of the dependent C variables at point X2. C XA... Independent variable corresponding to the point of the C curve at which the function specifying the surface has the C opposite sign than at X1. Then the point of intersection C is being found between the points X1 and XA. The found C approximations XA and XB of the point of intersection are C situated close to the surface, XA at the same side as the C given point X1, XB at the oposite side than the given C point X1. If, accidentally, the function has the same C sign at the points X1 and XA, the value at X1 is assumed C to equal zero. Then XA=X1 and XB=X1 on output. C YA... Array of the dimension at least NDIM. YA(KDIM1) to C YA(KDIM2) must contain the coordinates of the point. C Other storage locations may be undefined. C DA... Array of the dimension at least NDIM, containing the C derivatives of the dependent variables at point X. C DA(KDIM1) to DA(KDIM2) must contain the derivatives of C coordinates with respect to X, at the point XA. Other C storage locations may be undefined. C YB... Array of the dimension at least NDIM. C DB... Array of the dimension at least NDIM. C F... For ISRF.LE.100: C Array containing the value, and at least first C derivatives of the function ISRF specifying the surface, C at point XA. C For ISRF.GT.100: C The surface coincides with an isosurface Y(KDIM1)=F(1). C ISRF, KDIM1, KDIM2, NDIM, ERR, X1, Y1, D1, X2, Y2, D2 are unaltered. C C Output: C XA... Independent variable corresponding to the approximation of C the point of intersection, situated close to the surface C at the same side as the given point X1. XA=X1 if the C function had at point X1 the same sign as F(1) on input. C YA... Array containing dependent variables at the point XA. C DA... Array containing the derivatives of the dependent C variables at the point XA. C XB... Independent variable corresponding to the approximation of C the point of intersection, situated close to the surface C at the oposite side than the given point X1. XB=X1 if the C function had at point X1 the same sign as F(1) on input. C YB... Array containing dependent variables at the point XB. C DB... Array containing the derivatives of the dependent C variables at the point XB. C F... Undefined. C C Subroutines and external functions required: EXTERNAL HIVD2 C SRFC2 and subsequent routines... File 'srfc.for' and subsequent C files (like 'val.for' and 'fit.for') - dummy argument. C HIVD2... This file. C C Date: 1996, July 10 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER I,ITER REAL FAOLD,X,FX,DFX,FB,DFB,FA,DFA,XC,XCB *old REAL ,XCA *!!! REAL XD,XD2,XE,AUX0,AUX1,AUX2,AUX3 *out real xam(50),fam(50),dfam(50),xbm(50),fbm(50),dfbm(50) *out integer icross,jcross,mcross *out data icross,jcross,mcross/0,0,0/ C C....................................................................... C C Initial values: IF(ISRF.LE.100) THEN FA=F(1) DFA=F(2)*DA(KDIM1) DO 1 I=1,KDIM2-KDIM1 DFA=DFA+F(2+I)*DA(KDIM1+I) 1 CONTINUE ELSE FA=YA(KDIM1)-F(1) DFA=DA(KDIM1) END IF FAOLD=FA XB=X1 X =X1 DO 2 I=KDIM1,KDIM2 YB(I)=Y1(I) DB(I)=D1(I) 2 CONTINUE C In the beginning, both points XB and X are identical with point X1 C C Check for zero intervals: IF(XA.EQ.X1) THEN DO 3 I=1,NDIM YA(I)=Y1(I) DA(I)=D1(I) YB(I)=Y1(I) DB(I)=D1(I) 3 CONTINUE RETURN END IF IF(X2.EQ.X1) THEN C 585 CALL ERROR('585 in CROSS: Zero-length interval') C Two points X1 and X2 used for interpolation of the given C line (e.g. the velocity isoline, or the ray), when C searching for its intersection with the interface, are C identical and no interpolation is possible. Likely a bug C in the procedure calling this subroutine. END IF C C Iterations: DO 9 ITER=1,50 C C Functional value and derivative at X: IF(ISRF.LE.100) THEN CALL SRFC2(ISRF,YB(KDIM1),F) FX=F(1) DFX=F(2)*DB(KDIM1) DO 5 I=1,KDIM2-KDIM1 DFX=DFX+F(2+I)*DB(KDIM1+I) 5 CONTINUE ELSE FX=YB(KDIM1)-F(1) DFX=DB(KDIM1) END IF C C Selection of points: IF(FX.EQ.0.) THEN XA=X FA=FX ELSE IF(FA*FX.GE.0.) THEN IF(ITER.EQ.1) THEN C Input points X1 and XA are situated at the same side IF(FA.EQ.0.) THEN X=XA FX=FA ELSE XA=X FA=FX END IF ELSE C Here FA, FX and FB should be non-zero due to previous checks XA=XB FA=FB DFA=DFB END IF END IF XB=X FB=FX DFB=DFX C *out xam(iter)=xa *out fam(iter)=fa *out dfam(iter)=dfa *out xbm(iter)=xb *out fbm(iter)=fb *out dfbm(iter)=dfb c C New point or end of iterations: IF(ABS(XB-XA).LE.ERR) THEN C Point of intersection is found within the specified error err C *** end of iterations *** IF(FB*FAOLD.LT.0.) THEN C Point XA is situated at the other side of the surface than C the point X1 - changing XA and XB X =XA XA=XB XB=X END IF IF((XB-XA)*(XB-X1).LT.0.) THEN C Point XB is closer to X1 than point XA IF(FA*FB.LT.0.) THEN C Points XA and XB cannot be changed C 586 CALL ERROR('586 in CROSS: Reverse order of points') C A pair of close points XA and XB situated at different C sides of the surface has been found, but point XA situated C at the same side as point X1 is far from X1 than point XB. C This error should not appear. Contact the authors. ELSE C Points XA and XB are situated at the same side of the C surface (and, hopefully, FA and FB should be zero) C - changing XA and XB X =XA XA=XB XB=X END IF END IF CALL HIVD2(NDIM,X1,Y1,D1,X2,Y2,D2,XA,YA,DA) CALL HIVD2(NDIM,X1,Y1,D1,X2,Y2,D2,XB,YB,DB) *out if(icross.eq.0) then *out open(57,file='cross.out') *out end if *out icross=icross+1 *out jcross=jcross+iter-1 *out mcross=max0(mcross,iter-1) *out if(mod(icross,100).eq.0) then *out write(57,*) icross,jcross,mcross,float(jcross)/float(icross) *out end if *out if(iter.gt.20) then *out open(58,file='error.out') *out do 7 I=1,iter *out write(58,*) xam(i),xbm(i),fam(i),fbm(i),dfam(i),dfbm(i) *out7 continue *out endfile (58) *out backspace(58) *out pause 'Error new in CROSS: More than 20 iterations' *out end if RETURN END IF C cccc (a) Odstranit *old cccc (b) Odstranit *old, odstranit *??? cccc (c) Odstranit *old, odstranit *???, odstranit *new (nedulezite) cccc (d) Vratit *old, vratit *???, vratit *new cccc (e) Odstranit *!!! cccc (f) Odstranit *!!!, odstranit *old cccc C New approximation: IF(MOD(ITER,2).EQ.1) THEN C Regula falsi: X=(FA*XB-FB*XA)/(FA-FB) C!!! CHECKING THE ACCURACY OF THE REGULA FALSI METHOD: *!!! IF(ITER.EQ.1) THEN C!!! COEFFICIENTS OF THE CUBIC TAYLOR EXPANSION AT XC=(XA+XB)/2.: *!!! XD=XB-XA *!!! XD2=XD*XD/2. *!!! AUX3=(DFB+DFA)/2. *!!! AUX2=(DFB-DFA)/XD *!!! AUX1=(FB-FA)/XD *!!! AUX0=(FB+FA)/2.-AUX2*XD2 *!!! AUX1=1.5*AUX1-0.5*AUX3 *!!! AUX3=(AUX3-AUX1)/XD2 C!!! COEFFICIENTS OF THE QUADRATIC TAYLOR EXPANSION AT X: *!!! XD=X-XC *!!! XD=X-XC *!!! XD2=XD*XD/2. *!!! XE=SIGN(1.,AUX1) *!!! AUX0=AUX0+AUX1*XD+AUX2*XD2+AUX3*XD*XD2/3. *!!! AUX1=AUX1+AUX2*XD+AUX3*XD2 *!!! IF(ABS(AUX0).GT.0.5*ERR*ABS(AUX1)) THEN C!!! THE ACCURACY SHOULD BE IMPROVED: *!!! AUX2=AUX2+AUX3*XD *!!! AUX3=AUX1**2-2.*AUX0*AUX2 C!!! HERE 2**(24/2)=4096 ASSUMES 24 BIT FLOATING-POINT ACCURACY *!!! IF(4096.*ABS(AUX0*AUX2).GT.AUX1**2.AND.AUX3.GE.0.) THEN *!!! XE=X+(XE*SQRT(AUX3)-AUX1)/AUX2 *!!! ELSE *!!! XE=X-AUX0/AUX1 *!!! END IF *!!! IF((XE-XA)*(XE-XB).LE.0.) THEN *!!! X=XE *!!! END IF *!!! END IF *!!! END IF ELSE C Modified Newton-Raphson: XC=(XA+XB)/2. *old XCA=XA-FA/DFA+SIGN(ERR/50.,XA-XB) XCB=XB-FB/DFB+SIGN(ERR/50.,XA-XB) *old IF((XCA-XC)*(XCA-XB).LT.0.) THEN *old IF((XCB-XC)*(XCB-XB).LT.0.) THEN *old IF(ABS(XCA-XB).LT.ABS(XCB-XB)) THEN *old X=XCA *old ELSE *old X=XCB *old END IF *old ELSE *old X=XCA *old END IF *old ELSE IF((XCB-XC)*(XCB-XB).LT.0.) THEN X=XCB ELSE X=XC *??? IF(ABS(XCB-XB).LT.SQRT(ABS(XC-XB)*ERR)) THEN C Attempt to halve the number of iterations *??? X=XB+SIGN(SQRT(ABS(XC-XB)*ERR),XA-XB) *new IF((X-XC)*(X-XB).GE.0.) THEN *new X=XC *new pause 'New warning in CROSS' *new END IF *??? END IF END IF *old END IF END IF C C Interpolation of the ray: CALL HIVD2(KDIM2-KDIM1+1,X1,Y1(KDIM1),D1(KDIM1), * X2,Y2(KDIM1),D2(KDIM1),X,YB(KDIM1),DB(KDIM1)) C 9 CONTINUE C End of loop for iterations *out open(58,file='error.out') *out do 8 iter=1,50 *out write(58,*) xam(iter),xbm(iter),fam(iter),fbm(iter), *out * dfam(iter),dfbm(iter) *out8 continue C 584 CALL ERROR('584 in CROSS: Too many iterations') C More than 50 iterations when determining the point of C intersection of the ray with a surface. This may be C caused by too small upper error bound UEB in the input C data 'dcrt.dat' - less than rounding errors. Usually, C this error should not appear. Contact the authors. END C C======================================================================= C C C SUBROUTINE HIVD2(NDIM,X1,Y1,D1,X2,Y2,D2,X,Y,D) INTEGER NDIM REAL X1,Y1(NDIM),D1(NDIM),X2,Y2(NDIM),D2(NDIM) REAL X,Y(NDIM),D(NDIM) C C This subroutine performs Hermite interpolation of a vector and its C derivatives using functional values and derivatives at 2 given points. C C Input: C NDIM... Dimension of arrays Y1,D1,Y2,D2,Y,D (the number of C independent variables). C X1... Independent variable corresponding to the first given C point. C Y1... Array containing functional values at the first given C point. C D1... Array containing the derivatives at the first given point. C X2... Independent variable corresponding to the second given C point. C Y2... Array containing functional values at the second given C point. C D2... Array containing the derivatives at the second given point C X... Independent variable of the point at which the C interpolated vector is to be evaluated. C None of the input parameters are altered. C C Output: C Y... Array containing interpolated functional values at X. C D... Array containing the derivatives of the interpolated C functional values at X. C C No subroutines and external functions required. C C Date: 1989, October 20 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER I REAL A,B,A1,A2,B1,B2,DA1,DB1,DB2 C C Substitutions: A=(X-X2)/(X1-X2) B=(A-1.)*A C C Basic functions: A1=(A-B-B)*A A2=1.-A1 B1=B*(X-X2) B2=B*(X-X1) C Derivatives of basic functions: DA1=6.*B/(X2-X1) DB1=3.*B+A DB2=3.*B+1.-A C C Interpolation: DO 1 I=1,NDIM Y(I)=A1*Y1(I)+A2*Y2(I)+B1*D1(I)+B2*D2(I) D(I)=DA1*(Y1(I)-Y2(I))+DB1*D1(I)+DB2*D2(I) 1 CONTINUE C RETURN END C C======================================================================= C C C SUBROUTINE SMVPRD(G,A1,A2,A3,B1,B2,B3) REAL G(6),A1,A2,A3,B1,B2,B3 C C This subroutine is designed to evaluate symmetric matrix by vector C product. It may be, e.g., called after the invocation of the METRIC C subroutine to transform the covariant vectors to the contravariant C ones and vice versa. C C Input: C G... Array containing components G11, G12, G22, G13, G23, G33 C of the 3*3 symmetric matrix. C A1,A2,A3... Components of the 3-vector. C C Output: C B1,B2,B3... Components of vector B=G*A. C C No subroutines and external functions required. C C Date: 1989, September 5 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C B1=G(1)*A1+G(2)*A2+G(4)*A3 B2=G(2)*A1+G(3)*A2+G(5)*A3 B3=G(4)*A1+G(5)*A2+G(6)*A3 RETURN END C C======================================================================= Cmetric.for 100666 1750 1750 25076 6621466644 12200 0 ustar klimes klimes C
C Subroutine file 'metric.for' to define the coordinate system C C Date: 1998, November 9 C Coded by Ludek Klimes C C....................................................................... C C This file consists of the following subroutines: C METR1...Subroutine designed to store the data into the common C block /METRC/. C METR1 C KOOR... Integer function returning the type of the coordinate C system. C KOOR C METRIC..Subroutine designed to evaluate the metric tensor and C Christoffel symbols at a given point. C METRIC C CARTES..Subroutine designed to transform the model coordinates to C Cartesian coordinates and vice versa. The indexing of C coordinate systems should correspond to the subroutine C METRIC. C CARTES C C....................................................................... C C Storage in the memory: C The data describing the coordinate system are stored in the common C block /METRC/ defined in the include file 'metric.inc'. C metric.inc C C======================================================================= C C C SUBROUTINE METR1(KOOR) INTEGER KOOR C C Subroutine METR1 is designed to store the data specifying the C coordinate system into the common block /METRC/. C C Input: C KOOR... Specifies the type of the right-handed coordinate system. C The input parameter is not altered. C C No output. C C Common block /METRC/: INCLUDE 'metric.inc' C metric.inc C All the storage locations of the common block are defined in this C subroutine. C C No subroutines and external functions required. C C Date: 1993, December 18 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C No auxiliary storage locations. C KOORS=KOOR RETURN END C C======================================================================= C C C INTEGER FUNCTION KOOR() C C Integer function KOOR is designed to return the type of the coordinate C system. C C No input. C C Output: C KOOR... Specifies the type of the right-handed coordinate system: C KOOR.LE.0: Cartesian coordinates. C KOOR.EQ.1: Polar spherical coordinates (X1,X2,X3)= C (COLATITUDE,LONGITUDE,RADIUS). C KOOR.GE.2: Geographic spherical coordinates (X1,X2,X3)= C (longitude,latitude,radius). C C Common block /METRC/: INCLUDE 'metric.inc' C metric.inc C None of the storage locations of the common block are altered. C C No subroutines and external functions required. C C Date: 1989, December 18 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C No auxiliary storage locations. C KOOR=KOORS RETURN END C C======================================================================= C C C SUBROUTINE METRIC(COOR,GSQRD,G,GAMMA) REAL COOR(3),GSQRD,G(12),GAMMA(18) C C This subroutine evaluates the metric tensor and Christoffel C symbols at a given point. C C Input: C COOR... Array containing coordinates X1, X2, X3 of the given point C None of the input parameters are altered. C C Output: C GSQRD...Square root of the determinant of the covariant metric C tensor. C G... Array containing covariant components G11, G12, G22, G13, C G23, G33, and contravariant components G11, G12, G22, G13, C G23, G33 of the metric tensor at the given point. C GAMMA...Array containing Christoffel symbols GAMMA111, GAMMA121, C GAMMA221, GAMMA131, GAMMA231, GAMMA331, GAMMA112, C GAMMA122, GAMMA222, GAMMA132, GAMMA232, GAMMA332, C GAMMA113, GAMMA123, GAMMA223, GAMMA133, GAMMA233, C GAMMA333, where the first two indices are subscripts and C the third index is a superscript. C C Common block /METRC/: INCLUDE 'metric.inc' C metric.inc C None of the storage locations of the common block are altered. C C No subroutines and external functions required. C C Date: 1991, May 19 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C INTEGER I REAL SMALL,C,S,R PARAMETER (SMALL=1.E-12) C C I... Auxiliary loop variable. C SMALL...The lower limit for the distance from the singularities of C the coordinate system measured in the coordinate units. C C,S,R...Auxiliary storage locations. C C....................................................................... C DO 1 I=1,12 G(I)=0. 1 CONTINUE DO 2 I=1,18 GAMMA(I)=0. 2 CONTINUE C IF(KOORS.LE.0) THEN GSQRD=1. G(1) =1. G(3) =1. G(6) =1. G(7) =1. G(9) =1. G(12)=1. ELSE IF(KOORS.EQ.1) THEN C=COS(COOR(1)) S=SIN(COOR(1)) R=COOR(3) IF(S.EQ.0.) S=SMALL IF(R.EQ.0.) R=SMALL GSQRD=R*R*ABS(S) G(1) =R*R G(3) =(R*S)**2 G(6) =1. G(7) =1./G(1) G(9) =1./G(3) G(12)=1. GAMMA(3) =-S*C GAMMA(4) =1./R GAMMA(8) =C/S GAMMA(11)=1./R GAMMA(13)=-R GAMMA(15)=-R*S*S ELSE C=COS(COOR(2)) S=SIN(COOR(2)) R=COOR(3) IF(C.EQ.0.) C=SMALL IF(R.EQ.0.) R=SMALL GSQRD=R*R*ABS(C) G(1)=(R*C)**2 G(3)=R*R G(6)=1. G(7)=1./G(1) G(9)=1./G(3) G(12)=1. GAMMA(3)=-S/C GAMMA(4)=1./R GAMMA(8)=S*C GAMMA(11)=1./R GAMMA(13)=-R*C*C GAMMA(15)=-R END IF RETURN END C C======================================================================= C C C SUBROUTINE CARTES(COOR,TO,CART,PDER) LOGICAL TO REAL COOR(3),CART(3),PDER(9) C C This subroutine transforms the model coordinates to Cartesian C coordinates and vice versa. This subroutine has to correspond to the C subroutine METRIC. C C Arguments: C COOR... Array containing the model coordinates X1,X2,X3 of the C given point. C TO... .TRUE. To transform the model coordinates to the Cartesian C coordinates. C Input: COOR, C Output: CART,PDER. C .FALSE. To transform the Cartesian coordinates to the C model coordinates. C Input: CART, C Output: COOR,PDER. C CART... Array containing the Cartesian coordinates C1, C2, C3 of C the given point. C PDER... Partial derivatives of the output coordinates with respect C to the input coordinates. I.e. the transformation matrix C of contravariant vectors, corresponding to the coordinate C transformation. I.e. the transposed transformation matrix C of covariant vectors, corresponding to the inverse C transformation. C C Subroutines and external functions required: EXTERNAL KOOR INTEGER KOOR C KOOR... This file. C C Date: 1996, September 30 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER I REAL C,S,R C C....................................................................... C IF(KOOR().LE.0) THEN C Cartesian coordinates: IF(TO) THEN CART(1)=COOR(1) CART(2)=COOR(2) CART(3)=COOR(3) ELSE COOR(1)=CART(1) COOR(2)=CART(2) COOR(3)=CART(3) END IF DO 11 I=2,8 PDER(I)=0. 11 CONTINUE DO 12 I=1,9,4 PDER(I)=1. 12 CONTINUE ELSE IF(KOOR().EQ.1) THEN C Polar spherical coordinates: IF(TO) THEN R=COOR(3) S=R*SIN(COOR(1)) CART(1)=S*COS(COOR(2)) CART(2)=S*SIN(COOR(2)) CART(3)=R*COS(COOR(1)) PDER(1)= CART(1)*CART(3)/S PDER(2)= CART(2)*CART(3)/S PDER(3)=-S PDER(4)=-CART(2) PDER(5)= CART(1) PDER(6)= 0. PDER(7)= CART(1)/R PDER(8)= CART(2)/R PDER(9)= CART(3)/R ELSE S=CART(1)**2+CART(2)**2 R=SQRT(S+CART(3)**2) S=SQRT(S) IF(R.NE.0.) THEN COOR(1)=ATAN2(S,CART(3)) ELSE COOR(1)=0. END IF IF(S.NE.0.) THEN COOR(2)=ATAN2(CART(2),CART(1)) ELSE COOR(2)=0. END IF COOR(3)=R PDER(1)= CART(1)*CART(3)/S/R PDER(2)=-CART(2)/S PDER(3)= CART(1)/R PDER(4)= CART(2)*CART(3)/S/R PDER(5)= CART(1)/S PDER(6)= CART(2)/R PDER(7)=-S/R PDER(8)= 0. PDER(9)= CART(3)/R END IF ELSE C Geographic spherical coordinates: IF(TO) THEN R=COOR(3) C=R*COS(COOR(2)) CART(1)=C*COS(COOR(1)) CART(2)=C*SIN(COOR(1)) CART(3)=R*SIN(COOR(2)) PDER(1)=-CART(2) PDER(2)= CART(1) PDER(3)= 0. PDER(4)=-CART(1)*CART(3)/C PDER(5)=-CART(2)*CART(3)/C PDER(6)= C PDER(7)= CART(1)/R PDER(8)= CART(2)/R PDER(9)= CART(3)/R ELSE C=CART(1)**2+CART(2)**2 R=SQRT(C+CART(3)**2) C=SQRT(C) IF(R.NE.0.) THEN COOR(2)= ATAN2(CART(3),C) PDER(3)= CART(1)/R PDER(6)= CART(2)/R PDER(8)= C/R PDER(9)= CART(3)/R ELSE COOR(2)= 0. PDER(3)= 1. PDER(6)= 1. PDER(8)= 0. PDER(9)= 1. END IF IF(C.NE.0.) THEN COOR(1)= ATAN2(CART(2),CART(1)) PDER(1)=-CART(2)/C PDER(2)=-CART(1)*CART(3)/C/R PDER(4)= CART(1)/C PDER(5)=-CART(2)*CART(3)/C/R ELSE COOR(1)= 0. PDER(1)= 0. PDER(2)=-1. PDER(4)= 0. PDER(5)=-1. END IF COOR(3)= R PDER(7)= 0. END IF END IF RETURN END C C======================================================================= Cmetric.inc 100666 1750 1750 1664 6355630646 12137 0 ustar klimes klimes C
C INCLUDE 'metric.inc' C ------------------------------------------------------------------ INTEGER KOORS COMMON/METRC/KOORS SAVE /METRC/ C ------------------------------------------------------------------ C KOORS...Specifies the type of the right-handed coordinate system: C KOORS.LE.0: Cartesian coordinates. C KOORS.EQ.1: Polar spherical coordinates (X1,X2,X3)= C (colatitude,longitude,radius). C KOORS.GE.2: Geographic spherical coordinates (X1,X2,X3)= C (longitude,latitude,radius). C C Common block /METRC/ is included in FORTRAN 77 source code files C 'metric.for'. C C Date: 1996, July 8 C Coded by Ludek Klimes C C======================================================================= Cmod.pl 100666 1750 1750 3610 6622460776 11270 0 ustar klimes klimes #!perl #
# # Perl script file 'mod.pl' to modify FORTRAN77 source code files # 'model.for', 'parm.for', 'val.for' and 'fit.for', # containing the model routines required when solving forward # problems, in order to yield FORTRAN77 source code files # 'modelv.for', 'parmv.for', 'valv.for' and 'fitv.for', # containing the model routines required when solving inverse # problems. # require 'go.pl'; # &RUN("clean","'model.for' 'modelv.for' '*V' ' ' /"); &RUN("clean","'parm.for' 'parmv.for' '*V' ' ' /"); &RUN("clean","'val.for' 'valv.for' '*V' ' ' /"); &RUN("clean","'fit.for' 'fitv.for' '*V' ' ' /"); # # ---------------------------------------------------------------------- # # 'model.for', 'parm.for', 'val.for' and 'fit.for' are used, e.g., by # (A) the 'grid.for' program, # (B) the 'sec.for' program, # (C) the 'intf.for' program, # (D) the complete ray tracing program. # # The derived files 'modelv.for', 'parmv.for', 'valv.for' and # 'fitv.for' are used, e.g., by # (I) the 'inv1.for' program of the CRT package, generating the # linearized system of equations for model parameters. # # The derived files 'modelv.for', 'parmv.for', 'valv.for' and # 'fitv.for' have all the functionality of files 'model.for', # 'parm.for', 'val.for' and 'fit.for' for the purposes of forward # modelling, and many inverse modelling functions on # the top of it if linked with 'var.for'. On the other hand, are # slower. # The derived files 'modelv.for', 'parmv.for', 'valv.for' and # 'fitv.for' with 'varnul.for' instead of 'var.for' are # very close to 'model.for', 'parm.for', 'val.for' and 'fit.for' # in performance, see the table in the file 'var.for'. # # ====================================================================== 1; #modchk.dat 100666 1750 1750 40 6223642746 12041 0 ustar klimes klimes 1 Free-space simple block: -2 / modchk.for 100666 1750 1750 60015 6600357624 12144 0 ustar klimes klimes C
C Program MODCHK to perform the consistency check of the data describing C the structure of the model. C C Version: 5.20 C Date: 1998, February 2 C C Coded by: Ludek Klimes C Department of Geophysics, Charles University Prague, C Ke Karlovu 3, 121 16 Praha 2, Czech Republic, C E-mail: klimes@seis.karlov.mff.cuni.cz C C....................................................................... C C Logical test for possible cavities in the model: C C The MODEL package does not require the free-space block to be C explicitly specified. All simple blocks, not defined in the data C file describing the model, are deemed to be free-space blocks. C In such a case, it is hard to check for the possible cavities C in the model. Although the 'modchk' program reports all simple C blocks that could, in principle, form such cavities, most of the C reported simple blocks are parts of the desired free space and C often mutually overlap. The number of reported undefined simple C blocks is thus often too large to be comfortably checked by a C user. C C It is thus recommended to specify free-space simple blocks in C addition to the material simple blocks. It may be done directly C in the data file specifying the model. All given simple blocks C which do not form material complex blocks are deemed to be C free-space simple blocks. Since the free-space simple blocks need C not be explicitly specified in the model data, they may also be C specified in a separate file submitted to the 'modchk' program. C The table of simple blocks in the separate file is just a C continuation of the corresponding table in the model data file. C Then the list of undefined free-space simple blocks reported by C the 'modchk' program should be much more useful. C C Although the undefined free-space blocks need not necessarily C physically exist and form cavities in the particular model, they C should be removed. They may often be unified with a neighbouring C simple block from which they are separated by an interface. C Especially if a user knows that an undefined simple block does C not physically exist, there is often no reason to separate it C from neighbouring defined simple blocks. If an undefined simple C block is allowed to form free space, the list of free-space blocks C should be updated. C C It is recommended to fix all undefined free-space simple blocks C before performing detailed numerical test for overlapping simple C and complex blocks in the model. C C Example: Assume three mutually intersecting interfaces 1, 2, 3, C limiting four simple blocks in the following way: C +3- C / C / C / | C / | C (+1,+3) / | C / | C / | C + / (+1,-2,-3)| C 1-----------------|(+2,-3) C - (-1,-2) | C | C -2+ C Then simple block (-1,+2,+3) is an undefined free-space simple C block and is reported by program 'modchk'. Although simple block C (-1,+2,+3) probably does not exist, it is recommended to make it C defined. The best way would be to unify it with an existing C simple block. Unfortunately, block (-1,+2,+3) cannot by simply C unified with any of the above simple blocks (+1,+3), (-1,-2), C (+2,-3), (+1,-2,-3). There are still at least two possibilities C how to fix this problem: C (a) C A safer but slower way is to define also simple block (-1,+2,+3) C and to attach it to a material of free-space complex block. C (b) C If we are sure that simple block (-1,+2,+3) does not exist and C thus cannot form an undesired cavity in the model, we may leave it C undefined free-space simple block, and run the 'modchk' program C with parameter LFREE=.TRUE. and dense test grid. C C Numerical test for overlapping simple or complex blocks in the model: C C The model is covered by a regular rectangular grid of points. C The position of each gridpoint with respect to all simple blocks C is then determined. Normally, each gridpoint situated inside C two or more simple blocks is reported. Here the word 'inside', C naturally, does not include the boundary of a simple block. C C Although overlapping simple blocks in the model are allowed if C they form the same complex blocks, the are not recommended. C If the overlapping simple blocks are present in the model, the C test for overlapping simple blocks may be disabled. In such a C case, only overlapping complex blocks are reported. C C It is reasonable to start the numerical test for overlapping C blocks with a small numbers of gridpoints (e.g., 10*10*10), and C increase the number of gridpoints if the model passes successfully C the first test, and so on. The number of gridpoints for the final C test is limited especially by the computational time. C C....................................................................... C C C Description of the data files: C C The data are read in by the list directed input (free format). C In the description of data files, each numbered paragraph indicates C the beginning of a new input operation (new READ statement). C If the symbolic name of the input variable is enclosed in apostrophes, C the corresponding value in input data is of the type CHARACTER, i.e. C it should be a character string enclosed in apostrophes. If the first C letter of the symbolic name is I-N, the corresponding value is of the C type INTEGER. Otherwise, the input parameter is of the type REAL and C may or may not contain a decimal point. C C Input data read from the * external unit: C The interactive * external unit may also be redirected to the file C containing the relevant data. C (1) 'MODEL','MODCHK','FOUT',N1,N2,N3,LOVER,LFREE/ C 'MODEL'... String with the name of the input data file specifying C the model to be checked for consistency. C 'MODCHK'... String with the name of the input data file containing C the additional free-space blocks. C 'MODCHK'=' ': No additional free-space blocks defined. C 'FOUT'..String with the name of the output data file with the C report on the consistency check. C N1,N2,N3... Specification of the regular rectangular grid of C points for the numerical test for overlapping simple or C complex blocks in the model. The model volume is divided C into N1*N2*N3 rectangular cells. The (N1+1)*(N2+1)*(N3+1) C gridpoints are the corner points of the cells. C If one of N1,N2,N3 is zero, the model is assumed 2-D. C The corresponding 2-D test grid then passes through the C centre of the 3-D model volume. C If all N1,N2,N3 are zero, the numerical test for C overlapping simple or complex blocks is not performed. C LOVER...Logical value indicating whether the overlapping simple C blocks are allowed in the model. C LOVER=.FALSE.: Overlapping simple blocks are reported. C LOVER=.TRUE.: Overlapping complex blocks are reported. C LFREE...Logical value indicating whether undefined free-space C simple blocks are to be reported together with overlapping C blocks. C LFREE=.FALSE.: Undefined free-space simple blocks are not C reported. C LFREE=.TRUE.: Undefined free-space simple blocks are C reported. C Default: 'MODEL'='model.dat', 'MODCHK'=' ', 'FOUT'='modchk.out', C N1=0, N2=0, N3=0, LOVER=.FALSE., LFREE=.FALSE. C C Input data file 'MODEL' specifying the model: C Refer to the description in 'model.for'. C Description of input file MODEL C Example of data set MODEL C C Input file 'MODCHK' specifying additional free-space simple blocks: C (1) NSBADD C Number of additional free-space simple blocks defined within this C data file. See also description of data (5) in 'model.for'. C (2) NSBADD input operations (READ statements): C For each simple block with index ISB, the indices of the surfaces C forming the set F(+) and the indices of the surfaces forming the C set F(-). The indices of surfaces from F(+) must be positive, the C indices of surfaces from F(-) must be indicated by negative signs. C The indices may be specified in an arbitrary order and must be C terminated by a slash. These data lines form the continuation of C of data (6) described in 'model.for'. C Example of data set MODCHK C C======================================================================= C C Common blocks /MODELT/ and /MODELC/: INCLUDE 'model.inc' C model.inc C C----------------------------------------------------------------------- C C Common block /RAMC/: INCLUDE 'ram.inc' C ram.inc C C Allocation of the working array: INTEGER MUB PARAMETER (MUB=MRAM) INTEGER KUB(MUB) EQUIVALENCE (KUB,RAM) C C----------------------------------------------------------------------- C C Input data: CHARACTER*80 FMODEL,FCHK,FOUT LOGICAL LOVER,LFREE INTEGER LU1,N1,N2,N3 PARAMETER (LU1=1) C C Temporary storage locations: INTEGER NSBOLD,I,J,K,L C C Logical test for undefined free-space simple blocks: INTEGER NUB,KUBNUB,NUNDEF,ISRF,ISB INTEGER MININT,MINSUB,MINKUB,NUMINT,NUMSUB C NUB... Starting index of the last candidate for undefined block C in array KUB. Each candidate occupies NSB+1 locations. C KUB(NUB)... Number of interfaces limiting the last candidate. C KUB(NUB+1:NUB+KUB(NUB))... Indices of interfaces limiting the last C candidate, including signs. C KUB(NUB+KUB(NUB)+1,NUB+NSB)... Indices of simple blocks with which C complements the candidate should be intersected. C Similarly for preceding candidates, if any. C NUNDEF... Number of undefined free-space simple blocks. C C Numerical test for overlapping blocks: INTEGER I1,I2,I3,I123,N123,NB,IB(100) REAL COOR(3) C C....................................................................... C C Reading input data: C C Main input data: WRITE(*,'(A)') ' Enter FMODEL,FCHK,FOUT,N1,N2,N3,LOVER,LFREE: ' FMODEL='model.dat' FCHK=' ' FOUT='modchk.out' N1=0 N2=0 N3=0 LOVER=.FALSE. LFREE=.FALSE. READ(*,*) FMODEL,FCHK,FOUT,N1,N2,N3,LOVER,LFREE WRITE(*,'(A)') '+Reading input data. ' C C Reading data for model: OPEN(LU1,FILE=FMODEL,STATUS='OLD') CALL MODEL1(LU1) CLOSE(LU1) C C Reading additional free-space simple blocks: NSBOLD=NSB IF(FCHK.NE.' ') THEN OPEN(LU1,FILE=FCHK,STATUS='OLD') C Number of additional simple blocks READ(LU1,*) K IF(KSB(NSB)+K.GT.MSB) THEN C MODCHK-01 CALL ERROR('MODCHK-01: Insufficient memory in /MODELC/') END IF DO 10 J=KSB(NSB),NSB+1,-1 KSB(J+K)=KSB(J) 10 CONTINUE DO 11 J=NSB,1,-1 KSB(J)=KSB(J)+K 11 CONTINUE NSB=NSB+K C Reading indices of surfaces bounding additional simple blocks: L=KSB(NSBOLD)+1 DO 14 J=NSBOLD+1,NSB READ(LU1,*) (KSB(I),I=L,MSB) DO 12 I=L,MSB IF(IABS(KSB(I)).GT.NSRFCS) THEN C MODCHK-02 CALL ERROR('MODCHK-02: Block bounded by wrong interface') ELSE IF(KSB(I).EQ.0) THEN KSB(J)=I-1 L=I GO TO 13 END IF 12 CONTINUE C MODCHK-03 CALL ERROR('MODCHK-03: Insufficient memory in /MODELC/') 13 CONTINUE 14 CONTINUE END IF CLOSE(LU1) C C Opening output report file: OPEN(LU1,FILE=FOUT) WRITE(LU1,'(A)') 'Report on the consistency check of the model' WRITE(LU1,'(A)') WRITE(LU1,'(I3,A)') NSBOLD, * ' simple blocks defined in model data file' WRITE(LU1,'(A)') FMODEL IF(FCHK.EQ.' ') THEN WRITE(LU1,'(2A)') 'None additional free-space simple block', * ' defined for the consistency check.' ELSE WRITE(LU1,'(I3,A)') NSB-NSBOLD, * ' additional free-space simple blocks defined in file' WRITE(LU1,'(A)') FCHK END IF WRITE(LU1,'(A)') C C....................................................................... C C Defining free-space complex block: C C Adding the free-space complex block: DO 20 J=KCB(NCB),NCB+1,-1 KCB(J+1)=KCB(J) 20 CONTINUE DO 21 J=NCB,1,-1 KCB(J)=KCB(J)+1 21 CONTINUE L=KCB(NCB) NCB=NCB+1 KCB(NCB)=L C C Creating the list of free-space simple blocks: C List of all simple blocks: DO 22 J=1,NSB KCB(L+J)=J 22 CONTINUE C Removing material simple blocks from the list: DO 23 J=NCB+1,L IF(KCB(L+KCB(J)).EQ.0) THEN WRITE(LU1,'(A,I3,A)') 'Simple block',KCB(J), * ' is situated in two different complex blocks!' ELSE KCB(L+KCB(J))=0 END IF 23 CONTINUE C List of remaining (i.e. free-space) simple blocks: DO 24 J=1,NSB IF(KCB(L+J).NE.0) THEN KCB(NCB)=KCB(NCB)+1 KCB(KCB(NCB))=KCB(L+J) END IF 24 CONTINUE C IF(KCB(NCB).EQ.L) THEN WRITE(LU1,'(A)') * 'There is no explicitly defined free space in the model.' ELSE WRITE(LU1,'(A)') 'Free space is composed of simple blocks:' WRITE(LU1,'(20I4)') (KCB(J),J=L+1,KCB(NCB)) END IF WRITE(LU1,'(A)') C C....................................................................... C WRITE(*,'(A)') '+Logical test for undefined free-space blocks. ' WRITE(LU1,'(2A)') 'Undefined free-space simple blocks ', * '(indices of surfaces limiting each one):' NUNDEF=0 C NUB=1 KUB(NUB)=0 DO 30 I=1,NSB KUB(NUB+I)=I 30 CONTINUE C 40 CONTINUE IF(NUB.LT.0) THEN C No candidates for undefined free-space simple block left: GO TO 70 END IF C KUBNUB=KUB(NUB) IF(KUBNUB.GE.NSB) THEN C Printing undefined free-space simple block: I=NUB DO 41 J=NUB+1,NUB+NSB IF(KUB(J).NE.0) THEN I=I+1 KUB(I)=KUB(J) END IF 41 CONTINUE NUNDEF=NUNDEF+1 WRITE(LU1,'(20I4/99(4X,20I4))') (KUB(J),J=NUB+1,I) NUB=NUB-NSB-1 GO TO 40 END IF C C Selecting simple block with minimum number MININT of C intersections: MININT=999999 C Loop over simple blocks DO 55 K=NUB+KUBNUB+1,NUB+NSB ISB=KUB(K) NUMINT=0 C Loop over surfaces limiting the simple block C (each surface separates the simple block from its complement) DO 53 J=KSB(ISB-1)+1,KSB(ISB) ISRF=KSB(J) C Loop over surfaces limiting the candidate DO 51 I=NUB+1,NUB+KUBNUB IF(KUB(I).EQ.ISRF) THEN C Empty intersection of the candidate and the complement GO TO 52 ELSE IF(KUB(I).EQ.-ISRF) THEN C The candidate is a subset of the complement NUMINT=1 NUMSUB=1 GO TO 54 END IF 51 CONTINUE NUMINT=NUMINT+1 52 CONTINUE 53 CONTINUE NUMSUB=0 54 CONTINUE IF(NUMINT.LT.MININT) THEN MININT=NUMINT MINSUB=NUMSUB MINKUB=K END IF 55 CONTINUE C IF(MININT.EQ.0) THEN C Candidate discarded: NUB=NUB-NSB-1 ELSE IF(MINSUB.GT.0) THEN C The candidate is a subset of one of the complements: KUB(MINKUB)=KUB(NUB+KUBNUB+1) KUB(NUB)=KUBNUB+1 KUB(NUB+KUBNUB+1)=0 ELSE C Candidate is intersected with each complement: ISB=KUB(MINKUB) KUB(MINKUB)=KUB(NUB+KUBNUB+1) KUB(NUB)=KUBNUB+1 C Candidate is MININT times reproduced IF(NUB+(ISB+1)*MININT-1.GT.MUB) THEN C MODCHK-04 CALL ERROR('MODCHK-04: Array dimension MUB too small') END IF DO 60 I=NUB+NSB+1,NUB+(NSB+1)*MININT-1 KUB(I)=KUB(I-NSB-1) 60 CONTINUE C Loop over surfaces limiting the simple block C (each surface separates the simple block from its complement) K=NUB DO 63 J=KSB(ISB-1)+1,KSB(ISB) ISRF=KSB(J) C Loop over surfaces limiting the candidate DO 61 I=K+1,K+KUBNUB IF(KUB(I).EQ.ISRF) THEN C Empty intersection of the candidate and the complement GO TO 62 END IF 61 CONTINUE KUB(NUB+KUBNUB+1)=-ISRF NUB=NUB+NSB+1 62 CONTINUE 63 CONTINUE NUB=NUB-NSB-1 END IF GO TO 40 C 70 CONTINUE C IF(NUNDEF.LE.0) THEN WRITE(LU1,'(A)') * 'O.K. There is no undefined free space in the model.' ELSE WRITE(LU1,'(2A)') 'Please, check carefully the above list ', * 'and edit the data for simple blocks!' END IF WRITE(LU1,'(A)') C C....................................................................... C C Test for overlapping simple blocks or complex blocks: C IF(N1.LE.0.AND.N2.LE.0.AND.N3.LE.0) THEN WRITE(LU1,'(A)') * 'Numerical test for overlapping blocks not performed.' ELSE WRITE(*,'(A)') '+ 0% Numerical test for overlapping blocks. ' C IF(LOVER) THEN WRITE(LU1,'(A)') * 'Overlapping simple blocks are allowed in the model,' WRITE(LU1,'(A)') * 'test for overlapping simple blocks is not performed!' WRITE(LU1,'(A)') WRITE(LU1,'(2A)') * 'List of points situated in more than one complex block', * ' (0=free space):' ELSE WRITE(LU1,'(A)') * 'List of points situated in more than one simple block:' END IF C I123=0 N123=(N1+1)*(N2+1)*(N3+1) DO 83 I3=0,N3 IF(N3.LE.0) THEN COOR(3)=(BOUNDM(5)+BOUNDM(6))/2. ELSE COOR(3)=BOUNDM(5)+(BOUNDM(6)-BOUNDM(5))*FLOAT(I3)/FLOAT(N3) END IF DO 82 I2=0,N2 IF(N2.LE.0) THEN COOR(2)=(BOUNDM(3)+BOUNDM(4))/2. ELSE COOR(2)=BOUNDM(3) * +(BOUNDM(4)-BOUNDM(3))*FLOAT(I2)/FLOAT(N2) END IF DO 81 I1=0,N1 IF(N1.LE.0) THEN COOR(1)=(BOUNDM(1)+BOUNDM(2))/2. ELSE COOR(1)=BOUNDM(1) * +(BOUNDM(2)-BOUNDM(1))*FLOAT(I1)/FLOAT(N1) END IF CALL CHK(COOR,NB,IB,LOVER) C Subroutine CHK IF(NB.GT.1.OR.(LFREE.AND.NB.LT.1)) THEN WRITE(LU1,'(3F9.3,3X,15I3/(30X,15I3))') * (COOR(I),I=1,3),(IB(I),I=1,NB) END IF C Displaying progress on the console: I123=I123+100 IF(MOD(I123,N123).LT.100) THEN WRITE(*,'(A,I3)') '+',I123/N123 END IF 81 CONTINUE 82 CONTINUE 83 CONTINUE C WRITE(LU1,'(A)') '---------' END IF CLOSE(LU1) WRITE(*,'(A)') '+Done. ' STOP END C C======================================================================= C C C SUBROUTINE CHK(COOR,NB,IB,LOVER) REAL COOR(3) INTEGER NB,IB(*) LOGICAL LOVER C C This is an auxiliary subroutine to program MODCHK. It determines the C position of a given point with respect to all simple (LOVER=.FALSE.) C or complex (LOVER=.TRUE.) blocks. C C Input: C COOR... Array containing coordinates X1, X2, X3 of a given point. C LOVER...Logical value indicating whether the overlapping simple C blocks are allowed in the model. C LOVER=.FALSE.: Simple blocks containing the given point C are reported. C LOVER=.TRUE.: Complex blocks containing the given point C are reported. C None of the input parameters are altered. C C Output: C NB... Number of blocks inside which the given point is situated. C IB(1:NB)... Indices of blocks inside which the given point is C situated. C C Common block /MODELC/: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: EXTERNAL NSRFC,SRFC2 INTEGER NSRFC C SRFC2 and subsequent routines... File 'srfc.for' and subsequent C files (like 'val.for' and 'fit.for'). C C Date: 1996, September 30 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER ISB,ICB,I REAL F(10),F1(100) C C....................................................................... C C Values of functions describing the surfaces in the model: DO 11 I=1,NSRFC() CALL SRFC2(I,COOR,F) F1(I)=F(1) 11 CONTINUE C C Loop for simple blocks: NB=0 DO 29 ISB=1,NSB C Loop for surfaces bounding simple block ISB: DO 21 I=KSB(ISB-1)+1,KSB(ISB) IF(F1(IABS(KSB(I)))*FLOAT(KSB(I)).LE.0.) THEN C The point is not inside the simple block. GO TO 25 END IF 21 CONTINUE C The point is inside the simple block. NB=NB+1 IB(NB)=ISB 25 CONTINUE 29 CONTINUE C IF (LOVER.AND.NB.GT.0) THEN C Loop for simple blocks inside which the point is situated: DO 39 ISB=1,NB C Loop for complex blocks: DO 32 ICB=1,NCB C Loop for simple blocks composing complex block ICB: DO 31 I=KCB(ICB-1)+1,KCB(ICB) IF(KCB(I).EQ.IB(ISB)) THEN C The point is inside the complex block. IB(ISB)=ICB GO TO 35 END IF 31 CONTINUE 32 CONTINUE 35 CONTINUE 39 CONTINUE C Removing identical complex blocks: ICB=1 DO 49 ISB=2,NB DO 42 I=1,ICB IF(IB(ISB).EQ.IB(I)) THEN C Repeated index of complex block. GO TO 45 END IF 42 CONTINUE ICB=ICB+1 IB(ICB)=IB(ISB) 45 CONTINUE 49 CONTINUE NB=ICB C Renaming free-space complex block from NCB to 0: DO 51 ICB=1,NB IF(IB(ICB).EQ.NCB) THEN IB(ICB)=0 END IF 51 CONTINUE END IF C RETURN END C C======================================================================= C INCLUDE 'error.for' C error.for INCLUDE 'model.for' C model.for INCLUDE 'metric.for' C metric.for INCLUDE 'srfc.for' C srfc.for INCLUDE 'parm.for' C parm.for INCLUDE 'val.for' C val.for INCLUDE 'fit.for' C fit.for C C======================================================================= Cmodel.dat 100666 1750 1750 36770 6177033500 11765 0 ustar klimes klimes 'SAMPLE INPUT DATA MODEL.DAT: DATA FOR THE MODEL. 1996, JULY 29.' 0 1 1 / (Cartesian coordinates, velocities, loss factors) 0 60 -20 20 -25 10 (boundaries of the model) 4 SURFACES 4 SIMPLE BLOCKS: -1 2 -3 / -1 3 / 1 2 -4 / 4 / 3 COMPLEX BLOCKS: 1 3 / 2 / 4 / 'SURFACE' 1 1 2 -3 0 / (i.e. W(X1,X2)-X3=0, tension=0) 3 3 (numbers of grid points) 0 20 40 (X1 grid coordinates) -20 0 20 (X2 grid coordinates) 0 0 0 0 -12 0 0 0 0 (X3 coordinates at grid points) 'SURFACE' 2 1 -3 0 0 / (i.e. W(X1)-X3=0, tension=0) 4 (numbers of grid points) 0 20 40 60 (X1 grid coordinates) 3 3 0 3.5 (X3 coordinates at grid points) 'SURFACE' 3 1 2 -3 0 / (i.e. W(X1,X2)-X3=0, tension=0) 3 3 (numbers of grid points) 0 20 30 (X1 grid coordinates) -20 0 20 (X2 grid coordinates) -12 -12 -12 -12 -5 -12 -12 -12 -12 (X3 coordinates at grid points) 'SURFACE' 4 1 -3 0 0 / (i.e. W(X1)-X3=0, tension=0) 5 (numbers of grid points) 0 10 25 40 60 (X1 grid coordinates) -16 -17 -20 -17 -15 (X3 coordinates at grid points) 'END OF SURFACES' / 'COMPLEX BLOCK' 1 'VP ' 1 (P wave velocity) 3 0 0 0 / (i.e. VP=W(X3), tension=0) 2 (numbers of grid points) 0 -20 (X3 grid coordinates) 4 6 (velocities at grid points) 'DEN' 1 (density) 4 0 0 0 / (i.e. density=W(VP), tension=0) 2 (numbers of grid points) 0 10 (VP grid coordinates) 1.7 3.7 (densities at grid points, density=1.7+0.2*VP) 'COMPLEX BLOCK' 2 'VP ' 1 (P wave velocity) 0 0 0 0 / (i.e. VP=constant, tension=0) 6 (the value of velocity) 'DEN' 1 (density) 0 0 0 0 / (i.e. density=constant, tension=0) 2.9 (the value of density) 'COMPLEX BLOCK' 3 'VP ' 1 (P wave velocity) 0 0 0 0 / (i.e. VP=constant, tension=0) 7 (the value of velocity) 'DEN' 1 (density) 0 0 0 0 / (i.e. density=constant, tension=0) 3.1 (the value of density) 'END OF COMPLEX BLOCKS, END OF THE INPUT DATA FOR THE MODEL' / ------------------------------------------------------------------------ This 3-D model consists of two layers and of the lenticular inclusion with edges, situated in the upper layer, see the schematic Figure 5 in V.Cerveny, L.Klimes, I.Psencik: Complete Seismic-Ray Tracing in 3-D Structures (In: D.Doornbos, ed.: Seismological Algorithms, Academic Press 1988). For the general description of the input data format see the subroutine packages 'model', 'srfc' and 'parm'. P wave velocity in the upper layer (Complex Block 1) increases linearly with depth and has no lateral variations. The lenticular inclusion (Complex Block 2) and the bottom layer (Complex Block 3) are homogeneous. S wave velocities and loss factors are not specified by these input data, the default values (VS=0.57735*VP, zero loss factors) are assumed. The comments in brackets (starting from the column 23) in these input data have no influence on reading the data. ------------------------------------------------------------------------ Debugging information: The input data are stored in the common blocks /MODELT/, /MODELC/ and /VALC/. For the description of the common blocks /MODELT/ and /MODELC/ refer to the subroutine package 'model', for the common block /VALC/ refer to the subroutine package 'val'. The arrays KSB and KCB of the common block /MODELC/ and the arrays IPAR and RPAR of the common block /VALC/ are filled by the parameters of the model in the following way: Arrays KSB and KCB of the common block /MODELC/: I-----------I-----------I I-----------I-----------I I I K KSB(K) I I I K KCB(K) I I-----------I-----------I I-----------I-----------I I NSB I 0 4 I I NCB I 0 3 I I-----------I-----------I I-----------I-----------I I S.Block 1 I 1 7 I I C.Block 1 I 1 5 I I S.Block 2 I 2 9 I I C.Block 2 I 2 6 I I S.Block 3 I 3 12 I I C.Block 3 I 3 7 I I S.Block 4 I 4 13 I I-----------I-----------I I-----------I-----------I I C.Block 1 I 4 1 I I I 5 -1 I I I 5 3 I I S.Block 1 I 6 2 I I-----------I-----------I I I 7 -3 I I C.Block 2 I 6 2 I I-----------I-----------I I-----------I-----------I I S.Block 2 I 8 -1 I I C.Block 3 I 7 4 I I I 9 3 I I-----------I-----------I I-----------I-----------I I I 10 1 I I S.Block 3 I 11 2 I I I 12 -4 I I-----------I-----------I I S.Block 4 I 13 4 I I-----------I-----------I Arrays IPAR and RPAR of the common block /VALC/: I--------------------------------------I------------I I Description I K IPAR(K) I I--------------------------------------I------------I I (A) Number of the classes I 0 2 I I-------------------------I------------I------------I I (B) Classes I Class 1 I 1 6 I I I Class 2 I 2 9 I I------------I------------I------------I------------I I I I Surface 1 I 3 10 I I I Class 1 I Surface 2 I 4 11 I I I I Surface 3 I 5 12 I I (C) Groups I I Surface 4 I 6 13 I I I------------I------------I------------I I I I C.Block 1 I 7 18 I I I Class 2 I C.Block 2 I 8 23 I I I I C.Block 3 I 9 28 I I------------I------------I------------I------------I I I Surface 1 I I 10 81 I I I------------I------------I------------I I I Surface 2 I I 11 116 I I I------------I------------I------------I I I Surface 3 I I 12 169 I I I------------I------------I------------I I I Surface 4 I I 13 211 I I I------------I------------I------------I I I I P velocity I 14 232 I I I I Density I 15 253 I I I C.Block 1 I No data I 16 253 I I (D) I I No data I 17 253 I I Functions I I No data I 18 253 I I I------------I------------I------------I I I I P velocity I 19 260 I I I I Density I 20 267 I I I C.Block 2 I No data I 21 267 I I I I No data I 22 267 I I I I No data I 23 267 I I I------------I------------I------------I I I I P velocity I 24 274 I I I I Density I 25 281 I I I C.Block 3 I No data I 26 281 I I I I No data I 27 281 I I I I No data I 28 281 I I------------I------------I------------I------------I (E) Parameters of individual functions: Surface 1: Surface 2: Surface 3: Surface 4: I-------------I I-------------I I-------------I I-------------I I K IPAR(K) I I K IPAR(K) I I K IPAR(K) I I K IPAR(K) I I RPAR(K) I I RPAR(K) I I RPAR(K) I I RPAR(K) I I-------------I I-------------I I-------------I I-------------I I 29 1 I I 82 1 I I 117 1 I I 170 1 I I 30 1.000 I I 83 1.000 I I 118 1.000 I I 171 1.000 I I 31 1 I I 84 1 I I 119 1 I I 172 1 I I 32 2 I I 85 -3 I I 120 2 I I 173 -3 I I 33 -3 I I 86 0 I I 121 -3 I I 174 0 I I 34 0.000 I I 87 0.000 I I 122 0.000 I I 175 0.000 I I 35 3 I I 88 4 I I 123 3 I I 176 5 I I 36 3 I I 89 0.000 I I 124 3 I I 177 0.000 I I 37 0.000 I I 90 20.000 I I 125 0.000 I I 178 10.000 I I 38 20.000 I I 91 40.000 I I 126 20.000 I I 179 25.000 I I 39 40.000 I I 92 60.000 I I 127 30.000 I I 180 40.000 I I 40 -20.000 I I 93 3.000 I I 128 -20.000 I I 181 60.000 I I 41 0.000 I I 94 2.822 I I 129 0.000 I I 182 -16.000 I I 42 20.000 I I 95 -1.289 I I 130 20.000 I I 183 -10.691 I I 43 0.000 I I 96 3.500 I I 131 -12.000 I I 184 -14.537 I I 44 0.000 I I 97 .004 I I 132 -7.200 I I 185 -10.231 I I 45 0.000 I I 98 .000 I I 133 -12.000 I I 186 -15.000 I I 46 0.000 I I 99 .002 I I 134 -8.000 I I 187 .005 I I 47 -12.000 I I 100 .250 I I 135 2.200 I I 188 .000 I I 48 0.000 I I 101 .167 I I 136 -8.000 I I 189 .007 I I 49 0.000 I I 102 .000 I I 137 -12.000 I I 190 .345 I I 50 0.000 I I 103 -.007 I I 138 -7.200 I I 191 .257 I I 51 0.000 I I 104 .004 I I 139 -12.000 I I 192 .000 I I 52 .002 I I 105 .000 I I 140 .004 I I 193 -.020 I I 53 .000 I I 106 .250 I I 141 .000 I I 194 .008 I I 54 .002 I I 107 .004 I I 142 .004 I I 195 .000 I I 55 .167 I I 108 -.007 I I 143 .067 I I 196 .292 I I 56 .167 I I 109 .000 I I 144 .067 I I 197 .009 I I 57 .000 I I 110 .250 I I 145 .000 I I 198 -.014 I I 58 -.007 I I 111 .000 I I 146 -.015 I I 199 .005 I I 59 .000 I I 112 .002 I I 147 .000 I I 200 .151 I I 60 .000 I I 113 .000 I I 148 .000 I I 201 .345 I I 61 .000 I I 114 .004 I I 149 .000 I I 202 .006 I I 62 .002 I I 115 .167 I I 150 .005 I I 203 -.010 I I 63 .000 I I 116 .250 I I 151 .000 I I 204 .000 I I 64 .002 I I-------------I I 152 .005 I I 205 .229 I I 65 .167 I I 153 .333 I I 206 .000 I I 66 .167 I I 154 .333 I I 207 .003 I I 67 .002 I I 155 .002 I I 208 .000 I I 68 .000 I I 156 .000 I I 209 .009 I I 69 .002 I I 157 .002 I I 210 .117 I I 70 .167 I I 158 .167 I I 211 .151 I I 71 .167 I I 159 .167 I I-------------I I 72 .000 I I 160 .000 I I 73 -.007 I I 161 -.007 I I 74 .000 I I 162 .000 I I 75 .000 I I 163 .000 I I 76 .000 I I 164 .000 I I 77 .002 I I 165 .002 I I 78 .000 I I 166 .000 I I 79 .002 I I 167 .002 I I 80 .167 I I 168 .167 I I 81 .167 I I 169 .167 I I-------------I I-------------I C.Block 1: VP: C.B.1: Density: C.Block 2: VP: C.Block 3: VP: I-------------I I-------------I I-------------I I-------------I I K IPAR(K) I I K IPAR(K) I I K IPAR(K) I I K IPAR(K) I I RPAR(K) I I RPAR(K) I I RPAR(K) I I RPAR(K) I I-------------I I-------------I I-------------I I-------------I I 212 1 I I 233 3 I I 254 1 I I 268 1 I I 213 1.000 I I 234 1.000 I I 255 1.000 I I 269 1.000 I I 214 3 I I 235 4 I I 256 0 I I 270 0 I I 215 0 I I 236 0 I I 257 0 I I 271 0 I I 216 0 I I 237 0 I I 258 0 I I 272 0 I I 217 0.000 I I 238 0.000 I I 259 0.000 I I 273 0.000 I I 218 2 I I 239 2 I I 260 6.000 I I 274 7.000 I I 219 -20.000 I I 240 0.000 I I-------------I I-------------I I 220 0.000 I I 241 1.000 I I 221 6.000 I I 242 1.700 I C.B.2: Density: C.B.3: Density: I 222 4.000 I I 243 1.900 I I-------------I I-------------I I 223 .002 I I 244 1.000 I I K IPAR(K) I I K IPAR(K) I I 224 .000 I I 245 .000 I I RPAR(K) I I RPAR(K) I I 225 .000 I I 246 .000 I I-------------I I-------------I I 226 .167 I I 247 .167 I I 261 3 I I 275 3 I I 227 .000 I I 248 .000 I I 262 1.000 I I 276 1.000 I I 228 .000 I I 249 .000 I I 263 0 I I 277 0 I I 229 .000 I I 250 .000 I I 264 0 I I 278 0 I I 230 .002 I I 251 1.000 I I 265 0 I I 279 0 I I 231 .000 I I 252 .000 I I 266 0.000 I I 280 0.000 I I 232 .167 I I 253 .167 I I 267 2.900 I I 281 3.100 I I-------------I I-------------I I-------------I I-------------I Attention: The storage of the above model coefficients in the common block /VALC/ may be changed when reading additional input data, especially when defining auxiliary surfaces in the model. Example: If calling subroutine SRFC1 once again to read the data 'AUXILIARY SURFACE' 5 -1 0 0 0 (I.E. W-X1=0, TENSION=0) 0. (W=0) 'END OF AUXILIARY SURFACES' / in order to define additional surface 5, the above contents of arrays IPAR and RPAR of the common block /VALC/ would become modified in the following way: (A),(B),(C): Parameters (IPAR(K),K=1,6) are increased by 1. (C),(D): Parameters (IPAR(K),K=7,13) are increased by 2 and shifted to (IPAR(K),K=8,14). (D): Parameters (IPAR(K),K=14,28) are increased by 9 and shifted to (IPAR(K),K=16,30). (E): Parameters (*PAR(K),K=29,211) are shifted to (*PAR(K),K=31,213). Parameters (*PAR(K),K=214,281) are shifted to (*PAR(K),K=223,290). New data added to the common block /VALC/: I--------------------------------------I------------I I Description I K IPAR(K) I I--------------------------------------I------------I I (C) Groups I Class 1 I Surface 5 I 7 15 I I------------I------------I------------I------------I I (D) Funct. I Surface 5 I I 15 220 I I------------I------------I------------I------------I (E) Parameters of individual functions: Surface 5: I-------------I I K IPAR(K) I I RPAR(K) I I-------------I I 214 1 I I 215 1.000 I I 216 -1 I I 217 0 I I 218 0 I I 219 0.000 I I 220 0.000 I I-------------I ======================================================================== model.for 100666 1750 1750 74712 6614774200 12006 0 ustar klimes klimes C
C Subroutine file 'model.for' to specify a seismic model. C C Date: 1998, October 26 C Coded by Ludek Klimes C C....................................................................... C C This file consists of the following external procedures: C MODEL1..Subroutine designed to read the input data for the C description of the model and to store them in the memory. C Subroutine MODEL1 reads the input data (1)-(8) listed C below itself, then calls subroutine SRFC1 (included in the C subroutine file 'srfc.for') to read the input data (9) for C smooth surfaces, and finally calls subroutine PARM1 C (included in the subroutine file 'parm.for') to read the C input data (10) for the parameters of the medium. C MODEL1 C NSRFC...Integer function returning the number of surfaces covering C structural interfaces. C NSRFC C BLOCK...Subroutine designed to determine the mutual position of a C point and a simple and a complex block. C BLOCK C ISIDE...Auxiliary function to subroutine BLOCK. C ISIDE C INTERF..Auxiliary subroutine to subroutine BLOCK. C INTERF C VELOC...Subroutine transforming the values of a medium parameters C into velocities and loss factors. C VELOC C FPOWER..Subroutine evaluating the value and, possibly, the three C first and six second partial derivatives of a function, if C the value and the three first and six second partial C derivatives of the POWER-th power of the function are C are known. Particularly, this is an auxiliary subroutine C to the subroutine VELOC. C FPOWER C C Note: C The lines denoted by '*V' in the first two columns of file C 'model.for' in subroutines VELOC and FPOWER are designed to C calculate the model variations with respect to the model C parameters. C File 'modelv.for', intended for the model inversion, is created C from 'model.for' by replacing each '*V' in the first two columns C by spaces using program 'clean.for'. Subroutines VAR4 and VAR5 C of file 'var.for' may then be called to handle the variations. C C....................................................................... C C C Input data MODEL for the specification of the model: C The data are read in by the list directed input (free format). In C the list of input data below, each numbered paragraph indicates C the beginning of a new input operation (new READ statement). If C the first letter of the symbolic name of the input variable is C I-N, the corresponding value in input data must be of the type C INTEGER. Otherwise (except TEXTM), the input parameter is of the C type REAL. C (1) TEXTM C The string containing the name of the model. Only the first 80 C characters of the string are significant. C (2) KOORS,NEXPV,NEXPQ,IVERT,/ C KOORS...Specifies the type of the coordinate system: C KOORS.LE.0: Cartesian coordinates (default). C KOORS.EQ.1: polar spherical coordinates in radians, C (X1,X2,X3)=(colatitude,longitude,radius). C KOORS.GE.2: geographic spherical coordinates in radians, C (X1,X2,X3)=(longitude,latitude,radius). C If the coordinate system is right-handed (recommended), C all vectorial products are evaluated using the right-hand C rule, otherwise using the left-hand rule. C KOORS is passed to the subroutines of file 'metric.for' C by means of invocation of subroutine METR1 and presently C represents the only input data for the coordinate system. C Note that possible future additional data for the C coordinate system should be read by subroutine METR1 and C should be located between input data (2) and (3). C metric.for C NEXPV,NEXPQ... The default values are highly recommended! C Velocities powered to NEXPV and loss factors powered to C NEXPQ are reported by the subroutines evaluating isotropic C material parameters. C For example, unit values of NEXPV and NEXPQ indicate that C velocities and loss factors are the output parameters C of the subroutines evaluating isotropic material C parameters, indices equal -1 indicate reciprocal values of C these quantities, i.e. slownesses and quality factors. C When using the basic submitted version of the subroutine C file 'parm.for', the default values of NEXPV=1, NEXPQ=1 C are highly recommended. Other values make sense only if a C user is submitting his own subroutines to evaluate C isotropic material parameters which, e.g., output the C slowness instead of the velocity. In such a case, C switching NEXPV from 1 to -1 may avoid the modification C of the user's subroutines. C IVERT...Orientation of the vertical axis: C IVERT=0: unknown (default), C IVERT=+1: X1 vertical, pointing upwards, C IVERT=-1: X1 vertical, pointing downwards, C IVERT=+2: X2 vertical, pointing upwards, C IVERT=-2: X2 vertical, pointing downwards, C IVERT=+3: X3 vertical, pointing upwards, C IVERT=-3: X3 vertical, pointing downwards, C Has no influence on the calculations, and need not be C specified. If it is non-zero, it may be considered for C plotting purposes. C /... Obligatory slash at the end of line for future extensions. C Default: KOORS=0, NEXPV=1, NEXPQ=1, IVERT=0. C (3) X1MIN,X1MAX,X2MIN,X2MAX,X3MIN,X3MAX C Boundaries of the model. C (4) NSRFC C Number of smooth surfaces in the model. The surfaces are indexed C sequentially in any order by positive integers ISRFC from 1 to C NSRFC. C It is recommended to define only surfaces covering structural C interfaces (model surfaces) in this data set. Auxiliary surfaces C related to particular source-receiver configurations, numerical C procedures, etc., should preferably be defined in other data sets. C (5) NSB C Number of simple blocks in the model, defined in this data set. C The defined blocks are indexed sequentially by positive integers C ISB from 1 to NSB in the same order as they are specified in data C (6). Intersecting simple blocks are allowed but not recommended. C All material simple blocks in the model must be defined. C Free-space blocks need not be (and usually are not) defined in C this data set. Free-space blocks may be defined at user's C discretion in order to enhance the possibility to check for the C model consistency. Free-space blocks may be defined either here C or in the additional data file designed just for the consistency C check by program MODCHK. C Program MODCHK C (6) NSB input operations (READ statements): C For each simple block with index ISB, the indices of the surfaces C forming the set F(+) and the indices of the surfaces forming the C set F(-). The indices of surfaces from F(+) must be positive, the C indices of surfaces from F(-) must be indicated by negative signs. C The indices may be specified in an arbitrary order and must be C terminated by a slash. C (7) NCB C Number of material complex blocks in the model. The blocks are C indexed sequentially by positive integers ICB from 1 to NCB. The C free-space blocks are not indexed. C (8) NCB input operations (READ statements): C For each material complex block, the indices of material simple C blocks forming the complex block. The indices may be specified C in an arbitrary order and must be terminated by a slash. C Each material simple block must appear exactly once within these C data lines. Simple blocks defined by data (6) but not listed here C are deemed to be free-space simple blocks. C (9) The data specifying NSRFC functions F(X1,X2,X3) describing the C smooth surfaces in the model. The data are read by subroutine C SRFC1. For their description refer to subroutine SRFC1 (included C in the subroutine file 'srfc.for'). C srfc.for: Input data C (10) The data specifying the distribution of parameters of the model C in all NCB material complex blocks. The data are read by C subroutine PARM1. For their description refer to subroutine C PARM1 (included in the subroutine file 'parm.for'). C parm.for: Input data C For an example refer to the sample input data for the model. C Example of data set MODEL C C....................................................................... C C Storage in the memory: C The input data (1) to (8) describing the structure of the model C are stored in common blocks /MODELT/ and /MODELC/ defined in the C include file 'model.inc'. C model.inc C C======================================================================= C C C SUBROUTINE MODEL1(LUN) INTEGER LUN C C Subroutine MODEL1 reads the input data (1)-(8) for the description C of the model and stores them in common blocks /MODELT/ and /MODELC/. C Then it calls subroutine SRFC1 (included in the subroutine file C 'srfc.for') to read the input data (9) for smooth surfaces and to C store them in the memory. Finally, it calls subroutine PARM1 C (included in the subroutine file 'parm.for') to read the input data C (10) for the parameters of the medium and to store them in the memory. C C Input: C LUN... Logical unit number of the external input device C containing the input data. C The input parameter is not altered. C C No output. C C Common blocks /MODELT/ and /MODELC/: INCLUDE 'model.inc' C model.inc C All the storage locations of the common blocks are defined in this C subroutine. C C Subroutines and external functions required: EXTERNAL METR1,SRFC1,PARM1 C METR1...File 'metric.for'. C SRFC1 and subsequent routines... File 'srfc.for' and subsequent C files (like 'val.for' and 'fit.for'). C PARM1 and subsequent routines... File 'parm.for' and subsequent C files (like 'val.for' and 'fit.for'). C C Date: 1996, September 30 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER I,J,L C READ(LUN,*) TEXTM I=0 NEXPV=1 NEXPQ=1 IVERT=0 READ(LUN,*) I,NEXPV,NEXPQ,IVERT CALL METR1(I) READ(LUN,*) BOUNDM READ(LUN,*) NSRFCS C C Simple blocks: C Number of simple blocks READ(LUN,*) NSB C Initializing memory for indices of surfaces bounding simple blocks L=NSB+1 DO 11 I=L,MSB KSB(I)=0 11 CONTINUE C Reading indices of surfaces bounding simple blocks: DO 14 J=1,NSB READ(LUN,*) (KSB(I),I=L,MSB) DO 12 I=L,MSB IF(IABS(KSB(I)).GT.NSRFCS) THEN C 311 CALL ERROR('311 in MODEL: Block bounded by wrong interface') C Index of the surface bounding the simple block is greater C than the specified number of surfaces. ELSE IF(KSB(I).EQ.0) THEN KSB(J)=I-1 L=I GO TO 13 END IF 12 CONTINUE GO TO 99 13 CONTINUE 14 CONTINUE C C Complex blocks: C Number of complex blocks READ(LUN,*) NCB C Initializing memory for indices of simple blocks forming c. blocks L=NCB+1 DO 21 I=L,MCB KCB(I)=0 21 CONTINUE C Reading indices of simple blocks forming complex blocks DO 24 J=1,NCB READ(LUN,*) (KCB(I),I=L,MCB) DO 22 I=L,MCB IF(KCB(I).LT.0.OR.KCB(I).GT.NSB) THEN C 312 CALL ERROR * ('312 in MODEL: C. block composed of wrong s. block.') C Complex block composed of wrong simple block: C Index of a simple block composing the complex block is C greater than the specified number of simple blocks. ELSE IF(KCB(I).EQ.0) THEN KCB(J)=I-1 L=I GO TO 23 END IF 22 CONTINUE GO TO 99 23 CONTINUE 24 CONTINUE C C Smooth surfaces: CALL SRFC1(LUN,NSRFCS) C C Material parameters: CALL PARM1(LUN,NCB) RETURN C 99 CONTINUE C 310 CALL ERROR('310 in MODEL1: Insufficient memory in /MODELC/') C Insufficient memory for the input data in common block /MODELC/. C The dimensions MSB or MCB of arrays KSB or KCB, respectively, C must be enlarged. C Refer to include file model.inc END C C======================================================================= C C C INTEGER FUNCTION NSRFC() C C Integer function NSRFC is designed to return the number of surfaces C covering structural interfaces. C C No input. C C Output: C NSRFC...Number of surfaces covering structural interfaces. C C Common block /MODELC/: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C No subroutines and external functions required. C C Date: 1989, December 19 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C No auxiliary storage locations. C NSRFC=NSRFCS RETURN END C C======================================================================= C C C SUBROUTINE BLOCK(INSIDE,COOR,ISRF1,ISB1,ISRF2,ISB2,ICB2,F) LOGICAL INSIDE REAL COOR(3) INTEGER ISRF1,ISB1,ISB2,ICB2,ISRF2 REAL F(10) C C This subroutine searches for the simple block and the complex block in C which a given point is situated. This routine may be also used to C determine the index of a block touching a specified block at a given C point situated on the boundary of the specified block (the situation C which may occur when a ray impinges on a boundary of a block). C Another function of the routine is to determine the index of any of C the surfaces bounding a block and separating the block from the given C point. C C Input: C INSIDE..INSIDE=.TRUE.: the given point is checked for its C location inside simple block ISB1. C INSIDE=.FALSE.: the given point is expected to be C situated outside simple block ISB1, and simple block C ISB2 (different from ISB1) in which the point is C situated is being searched for. If ISRF1.NE.0, the C position with respect to surface ISRF1 is not checked, C and the simple blocks situated at the other side of C ISRF1 than simple block ISB1 are preferred when C searching for ISB2. C COOR... Array containing coordinates X1, X2, X3 of a given point. C ISRF1...ISRF1.NE.0: index of the surface at which the given point C is situated. The sign is ignored. C ISRF1.EQ.0: the given point is not situated at any surface C ISB1... For ISRF1.NE.0: index of a simple block bounded by the C surface IABS(ISRF1) - search for the index of a C neighbouring simple block touching ISB1 at the given C point. C For ISRF1.EQ.0: index of an arbitrary simple block or C ISB1=0. C None of the input parameters are altered. C C Output: C ISRF2...for the given point not situated inside the block ISB1 or C at its boundary, ISRF2 has the meaning of the index of one C of the surfaces bounding the simple block ISB1 and C separating the given point from the simple block ISB1, C supplemented by a sign '+' or '-' for the simple block C ISB1 situated at the positive or negative side of the C surface, respectively. C Otherwise zero. C If ISRF1.NE.0, the position with respect to surface ISRF1 C is not checked, and if INSIDE=.FALSE., ISRF2=0 without any C checking. C ISB2... For ISRF1.NE.0, ISRF2.EQ.0: index of a simple block C neighbouring to the simple block isb1 and separated from C the simple block ISB1 by surface IABS(ISRF1) at the C given point. C For ISRF1.NE.0, ISRF2.NE.0: index of a simple block in C which the given point is situated. In this case, the C given point may be situated either inside the simple C block ISB2 or in the vicinity of its boundary formed by C the surface IABS(ISRF1). From the two possible simple C blocks touching the surface IABS(ISRF1) at the given C point, that being situated at the same side of the C surface ISRF1 as the simple block ISB1, is selected. C For ISRF1.EQ.0: index of the simple block in which the C given point is situated. C If there is no simple material block of the above C properties, ISB2=0. C ICB2... Index of the complex block in which the simple block ISB2 C is situated. ICB2=0 if the simple block ISB2 is not C situated in any complex block. For ISB2=0: ICB2=0. C F... For ISRF2.NE.0: array containing the value and partial C derivatives F, F1, F3, F11, F12, F22, F13, F23, F33 of C the function describing the surface IABS(ISRF2). C For ISRF2.EQ.0: undefined. C C Common block /MODELC/: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: EXTERNAL ISIDE,INTERF,SRFC2 INTEGER ISIDE C ISIDE,INTERF... This file. C SRFC2 and subsequent routines... File 'srfc.for' and subsequent C files (like 'val.for' and 'fit.for'). C C Date: 1995, October 29 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER I,J,I1,I2,ISIDE1,ISIDE2,ISRF REAL FAUX(10) C C Checking input values: IF(ISRF1.LT.-NSRFCS.OR.ISRF1.GT.NSRFCS) THEN C 313 CALL ERROR('313 in BLOCK: Wrong index of surface') C Absolute value of the input parameter ISRFC1 (index of the C surface) is greater than the number NSRFC of the surfaces C covering structural interfaces. END IF IF(ISB1.LT.0.OR.ISB1.GT.NSB) THEN C 314 CALL ERROR('314 in BLOCK: Wrong index of simple block') C Parameter ISB1 (index of the simple block) is either C negative or greater than the number nsb of simple blocks. END IF C C Initialization: ISRF2=0 IF(ISRF1.EQ.0.OR.ISB1.EQ.0) THEN ISIDE1=2 ELSE ISIDE1=-ISIDE(ISRF1,ISB1) END IF C C Position of the given point with respect to the given simple block C ISB1: IF(INSIDE) THEN IF(ISB1.NE.0) THEN CALL INTERF(COOR,ISRF1,ISB1,ISRF2,F) IF(ISRF1.EQ.0) THEN IF(ISRF2.EQ.0) THEN C The point is inside simple block ISB1: ISB2=ISB1 GO TO 10 END IF ELSE IF(ISRF2.NE.0) THEN C The point being situated at surface ISRF1 bounding simple C block ISB1 is not situated at the boundary of simple block C ISB1: ISIDE1=-ISIDE1 END IF END IF END IF END IF C C Search for the simple block in which the given point is C situated: I2=MAX0(ISB1-1,NSB-ISB1) DO 2 J=1,I2 DO 1 I=1,-1,-2 ISB2=ISB1+I*J IF(ISB2.GT.0.AND.ISB2.LE.NSB) THEN IF(ISRF1.NE.0) THEN ISIDE2=ISIDE(ISRF1,ISB2) END IF IF(ISRF1.EQ.0.OR.ISIDE1.EQ.ISIDE2) THEN CALL INTERF(COOR,ISRF1,ISB2,ISRF,FAUX) IF(ISRF.EQ.0) GO TO 10 END IF END IF 1 CONTINUE 2 CONTINUE IF(.NOT.INSIDE) THEN DO 4 J=1,I2 DO 3 I=1,-1,-2 ISB2=ISB1+I*J IF(ISB2.GT.0.AND.ISB2.LE.NSB) THEN CALL INTERF(COOR,ISRF1,ISB2,ISRF,FAUX) IF(ISRF.EQ.0) GO TO 10 END IF 3 CONTINUE 4 CONTINUE END IF C No simple block has been found: ISB2=0 ICB2=0 RETURN C C Determination of the complex block: 10 CONTINUE DO 12 J=1,NCB I1=KCB(J-1)+1 I2=KCB(J) DO 11 I=I1,I2 IF(KCB(I).EQ.ISB2) THEN ICB2=J RETURN END IF 11 CONTINUE 12 CONTINUE C No complex block: ICB2=0 C RETURN END C C======================================================================= C C C INTEGER FUNCTION ISIDE(ISRF,ISB) INTEGER ISRF,ISB C C This is an auxiliary function to the subroutine BLOCK. C This function determines the mutual position of a surface and a simple C block. C C Input: C ISRF... Index of the surface. The sign is ignored. C ISB... Index of the simple block. C None of the input parameters are altered. C C Output: C ISIDE...ISIDE=-1: The simple block is bounded by the surface and C is situated on its negative side. C ISIDE= 1: The simple block is bounded by the surface and C is situated on its positive side. C ISIDE= 2: The simple block is not bounded by the surface. C C Common block /MODELC/: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C No subroutines and external functions required. C C Date: 1989, December 19 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER IS,LS,MS C LS=KSB(ISB-1)+1 MS=KSB(ISB) C C Loop for surfaces bounding simple block ISB: DO 1 IS=LS,MS IF(IABS(KSB(IS)).EQ.IABS(ISRF)) THEN ISIDE=ISIGN(1,KSB(IS)) RETURN END IF 1 CONTINUE C ISIDE=2 RETURN END C C======================================================================= C C C SUBROUTINE INTERF(COOR,ISRF1,ISB,ISRF2,F) REAL COOR(3),F(10) INTEGER ISRF1,ISB,ISRF2 C C This is an auxiliary subroutine to the subroutine BLOCK. C This subroutine determines the position of a given point with respect C to a given simple block. C C Input: C COOR... Array containing coordinates X1, X2, X3 of a given point. C ISRF1...ISRF1.NE.0: Index of the surface at which the given point C is situated. The sign is ignored. C ISRF1.EQ.0: The given point is not situated at any C surface. C ISB... Index of the given simple block. C None of the input parameters are altered. C C Output: C ISRF2...Index of a surface separating the given point and the C simple block ISB, supplemented by a sign '+' or '-' for C the simple block ISB1 situated at the positive or C negative side of the surface, respectively. C ISRF2=0 if the given point is situated inside the simple C block ISB. C F... For ISRF2.NE.0: Array containing the value and partial C derivatives F, F1, F3, F11, F12, F22, F13, F23, F33 of C the function describing the surface IABS(ISRF2) at the C given point. C For ISRF2.EQ.0: Undefined. C C Common block /MODELC/: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: EXTERNAL SRFC2 C SRFC2 and subsequent routines... File 'srfc.for' and subsequent C files (like 'val.for' and 'fit.for'). C C Date: 1989, December 19 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER IS,JS,KS,LS,MS C LS=KSB(ISB-1)+1 MS=KSB(ISB) C C Loop for surfaces bounding simple block ISB: DO 1 IS=LS,MS KS=KSB(IS) JS=IABS(KS) IF(JS.NE.IABS(ISRF1)) THEN CALL SRFC2(JS,COOR,F) IF(F(1)*FLOAT(KS).LT.0.) THEN ISRF2=KS RETURN END IF END IF 1 CONTINUE C ISRF2=0 RETURN END C C======================================================================= C C C SUBROUTINE VELOC(IWAVE,UP,US,QP,QS,VP,VS,VD,QL) INTEGER IWAVE REAL UP(10),US(10),QP,QS,VP,VS,VD(10),QL C C This subroutine transforms the values of parameters of the medium into C velocities and loss factors. C C Input: C IWAVE...Type of wave. C IWAVE.GE.0: P wave, C IWAVE.LT.0: S wave. C UP,US...Powers of P and S wave velocities and their first and C second partial derivatives (the exponent of the powers is C NEXPV, see 'Input data for the model'), in order U, U1, C U2, U3, U11, U12, U22, U13, U23, U33. C QP,QS...Powers of the loss factors of P and S waves (the exponent C of the powers is NEXPQ, see 'Input data for the model'). C None of the input parameters are altered. C C Output: C VP,VS...P and S wave velocities. C VD... Velocity and its first and second partial derivatives C ordered as UP, US, corresponding to the wave specified by C IWAVE, in order V, V1, V2, V3, V11, V12, V22, V13, V23, C V33. C QL... Loss factor corresponding to the wave specified by IWAVE. C C Common block /MODELC/: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: EXTERNAL FPOWER C FPOWER...This file. C C Date: 1992, December 31 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage location: REAL POWER,AUX1(1),AUX2(1) C POWER=FLOAT(NEXPV) IF(IWAVE.GE.0) THEN CALL FPOWER(10,UP,POWER,VD) *V CALL VAR5(1,1) VP=VD(1) CALL FPOWER(1,US,POWER,AUX2) VS=AUX2(1) AUX1(1)=QP ELSE CALL FPOWER(1,UP,POWER,AUX2) VP=AUX2(1) CALL FPOWER(10,US,POWER,VD) *V CALL VAR5(2,2) VS=VD(1) AUX1(1)=QS END IF CALL FPOWER(1,AUX1,FLOAT(NEXPQ),AUX2) QL=AUX2(1) RETURN END C C======================================================================= C C C SUBROUTINE FPOWER(N,FINP,POWER,FOUT) INTEGER N REAL FINP(N),POWER,FOUT(N) C C This subroutine evaluates the value and, possibly, the three first and C six second partial derivatives of a function if the value and the C three first and six second partial derivatives of the POWER-th power C of the function are known. C C Input: C N... For N=1: only the function value is evaluated. The C derivatives are ignored. C For N=4: the value and the three first partial derivatives C are evaluated. C For N=10: the value and the three first and six second C partial derivatives are evaluated. C FINP... Array containing the value, the first and second partial C derivatives of the POWER-th power of the function to be C evaluated, in the order F, F1, F2, F3, F11, F12, F22, F13, C F23, F33. For N=1, only the function value is required. C POWER...The specified function is equal to the POWER-th power of C the corresponding physical quantity. C POWER=0: Zero output array FOUT is generated. C None of the input parameters are altered (except FINP if this C parameter and FOUT are identical in the calling sequence). C C Output: C FOUT... Array containing the value, the first and second partial C derivatives of the evaluated function, in the order F, F1, C F2, F3, F11, F12, F22, F13, F23, F33. This parameter may C coincide with FINP, in which case FINP is destroyed on C output. Note that this coincidence is an exception to C ANSI standard of FORTRAN 77. C C No subroutines and external functions required. C C Date: 1996, September 30 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER I REAL F,AUX1,AUX2 C IF(POWER.EQ.0.) THEN DO 1 I=1,N FOUT(I)=0. 1 CONTINUE ELSE IF(0.999.LT.POWER.AND.POWER.LT.1.001) THEN DO 2 I=1,N FOUT(I)=FINP(I) 2 CONTINUE *V CALL VAR4(0,1.) ELSE IF(-1.001.LT.POWER.AND.POWER.LT.-0.999) THEN F=1./FINP(1) ELSE F=FINP(1)**(1./POWER) END IF FOUT(1)=F IF(N.GT.1) THEN AUX1= F/(FINP(1)*POWER) AUX2= (POWER-1.)/F FOUT(2)=AUX1*FINP(2) FOUT(3)=AUX1*FINP(3) FOUT(4)=AUX1*FINP(4) IF(N.GT.4) THEN FOUT(5)=AUX1*FINP(5)-AUX2*FOUT(2)*FOUT(2) FOUT(6)=AUX1*FINP(6)-AUX2*FOUT(2)*FOUT(3) FOUT(7)=AUX1*FINP(7)-AUX2*FOUT(3)*FOUT(3) FOUT(8)=AUX1*FINP(8)-AUX2*FOUT(2)*FOUT(4) FOUT(9)=AUX1*FINP(9)-AUX2*FOUT(3)*FOUT(4) FOUT(10)=AUX1*FINP(10)-AUX2*FOUT(4)*FOUT(4) END IF *V CALL VAR4(0,AUX1) *V CALL VAR4(2,-AUX2*FOUT(2)) *V CALL VAR4(3,-AUX2*FOUT(3)) *V CALL VAR4(4,-AUX2*FOUT(4)) END IF END IF RETURN END C C======================================================================= Cmodel.htm 100666 1750 1750 41407 6614252610 11777 0 ustar klimes klimes
The model is specified in terms of subroutines (e.g., subroutines to evaluate the values and partial derivatives of the functions describing surfaces or material parameters) and of the input data for the subroutines. Although both the subroutines and the data may be modified by a user, most of the users wish to modify only the input data, using the interpolation routines contained within the basic version of the MODEL package.
Description of input data to specify the model
It is recommended to run the programs from the history files. The history files may contain the information how to execute the programs, the data read from standard input (Fortran) or from the command line (Perl) and the data read from the SEP parameter files.
Main input data of each program are read from the standard input, and mostly consist of a single line containing filenames and at most few numerical parameters.
C INCLUDE 'model.inc' C ------------------------------------------------------------------ CHARACTER*80 TEXTM COMMON/MODELT/TEXTM SAVE /MODELT/ C .................................................................. INTEGER MSB,MCB PARAMETER (MSB=128) PARAMETER (MCB=128) INTEGER NEXPV,NEXPQ,IVERT REAL BOUNDM(6) INTEGER NSRFCS,NSB,KSB(0:MSB),NCB,KCB(0:MSB) EQUIVALENCE (KSB(0),NSB),(KCB(0),NCB) COMMON/MODELC/NEXPV,NEXPQ,IVERT,BOUNDM,NSRFCS,KSB,KCB SAVE /MODELC/ C ------------------------------------------------------------------ C TEXTM...The name of the model. String of 80 characters. C C NEXPV,NEXPQ... Specify exponents of the power of velocities C (NEXPV) and Q-factors (NEXPQ) in input data. For example, C unit values of NEXPV and NEXPQ indicate that the C parameters of the medium are velocities and Q factors, C indices equal -1 indicate reciprocal values of these C quantities, i.e. slownesses and loss factors. C IVERT...Orientation of the vertical axis: C IVERT=0: unknown (default), C IVERT=+1: X1 vertical, pointing upwards, C IVERT=-1: X1 vertical, pointing downwards, C IVERT=+2: X2 vertical, pointing upwards, C IVERT=-2: X2 vertical, pointing downwards, C IVERT=+3: X3 vertical, pointing upwards, C IVERT=-3: X3 vertical, pointing downwards, C Should have no influence on the calculations. If it C is non-zero, it may be considered for plotting purposes. C BOUNDM..Boundaries X1MIN,X1MAX,X2MIN,X2MAX,X3MIN,X3MAX of the C model. C NSRFCS..Number of smooth surfaces in the model. The surfaces C are indexed sequentially by positive integers, from 1 to C NSRFCS. NSRFCS is the storage location for NSRFC. C NSB... Number of material simple blocks in the model. The blocks C are indexed sequentially by positive integers ISB from 1 C to NSB. Free-space blocks are not indexed. C KSB... Contains the indices of the surfaces bounding individual C simple blocks. KSB(ISB), for ISB = 1 to NSB, specify the C partition of array KSB(NSB+1:NSB+NS) among the simple C blocks. Here NS is the total number of all occurences of C the indices of the surfaces bounding all individual simple C blocks in the input data. The indices of the surfaces C bounding individual simple blocks are stored from C KSB(NSB+1) to KSB(NSB+NS). The locations KSB(NSB+NS+1:MSB) C are undefined. It must be NSB+NS.LT.MSB. The indices of C the surfaces bounding the simple block ISB are stored in C KSB(I1) to KSB(I2), with C I1 = KSB(ISB-1)+1 , C I2 = KSB(ISB) , C where KSB(ISB-1)=NSB for ISB=1. For each simple block C with index ISB, the indices of the surfaces forming the C set F(+) are stored with positive signs, the indices of C surfaces from F(-) with negative signs. For an example C refer to the sample input data for the model. C NCB... Number of material complex blocks in the model. The blocks C are indexed sequentially by positive integers ICB from 1 C to NCB. The free-space blocks are not indexed. C KCB... Contains the indices of the simple blocks forming C individual complex blocks. KCB(ICB), for ICB = 1 to NCB, C specify the partition of array KSB(NCB+1:NCB+NB) among the C complex blocks. Here NB is the total number of all C occurences of the indices of the simple blocks forming C individual complex blocks in the input data. The indices C of the simple blocks forming individual complex blocks are C stored from KSB(NCB+1) to KSB(NCB+NB). The locations C KSB(NCB+NB+1:MCB) are undefined. It must be NCB+NB.LT.MCB. C The indices of the simple blocks forming complex block ICB C are stored in KCB(I1) to KCB(I2), where C I1 = KCB(ICB-1)+1 , C I2 = KCB(ICB) . C Here KCB(ICB-1)=NCB for ICB=1. For an example refer to C the sample input data for the model. C C All the input data are stored sequentially in the same order as C they were read. The only exception are locations KSB(1) to C KSB(NSB) and KCB(1) to KCB(NCB) which are inserted when the input C data are being read . The index of the last allocated numeric C storage unit of array KSB is named MSB. The index of the last C allocated numeric storage unit of array KCB is named MCB. The C values of MSB and MCB are given by the sixth and seventh statement C of the block data subroutine MODELB. If the value of MSB or MCB C is changed, it must be adjusted in all subroutines which include C the common block /MODELC/. C C Common block /MODELT/ is included in external procedure MODEL1. C of file 'model.for', and in subroutine SECT1 of file 'sec.for'. C C Common block /MODELC/ is included in external procedures MODEL1, C BLOCK, ISIDE, INTERF of file 'model.for', in subroutines FUNC and C DISC of file 'sec.for', in program 'intf.for', in subroutine C RAY1 of file 'ray.for' of package CRT, in 'bndlin.for', C and may be included in any other subroutine. C C Date: 1996, July 8 C Coded by Ludek Klimes C C======================================================================= Cmodeldoc.htm 100666 1750 1750 25404 6601101160 12451 0 ustar klimes klimes
modelerr.htm 100666 1750 1750 10151 6613260432 12500 0 ustar klimes klimesSeismic model specification subroutine package MODEL (general description)
Version 5.20 Date: 1998, September 20 Authors: Vaclav Bucha Department of Geophysics, Charles University Prague Ke Karlovu 3 121 16 Praha 2, Czech Republic E-mail: bucha@seis.karlov.mff.cuni.cz Petr Bulant Department of Geophysics, Charles University Prague Ke Karlovu 3 121 16 Praha 2, Czech Republic E-mail: bulant@seis.karlov.mff.cuni.cz Vlastislav Cerveny Department of Geophysics, Charles University Prague Ke Karlovu 3 121 16 Praha 2, Czech Republic E-mail: vcerveny@seis.karlov.mff.cuni.cz Ludek Klimes Department of Geophysics, Charles University Prague Ke Karlovu 3 121 16 Praha 2, Czech Republic E-mail: klimes@seis.karlov.mff.cuni.cz Ivan Psencik Geophysical Institute, Acad. Sci. Czech Rep. Bocni II, 1401 141 31 Praha 4, Czech Republic E-mail: ip@ig.cas.cz This is just a general overview, the detailed description of input data, procedures, and other important topics is included within the individual FORTRAN77 source code files. References: Cerveny V., Klimes L. and Psencik I. (1988): Complete seismic-ray tracing in three-dimensional structures. In: Seismological Algorithms, ed. Doornbos D.J., Academic Press, New York. The above paper contains detailed description of the model construction and is frequently referred throughout the FORTRAN77 code of model specification routines. The references like (C.R.T.5.4) or (5.4) are related to the paper. The detailed description of the input data, subroutine and function parameters, and other specifications not contained in the paper, is included within the individual source code files. Cline, A.K. (1974): Scalar- and planar-valued curve fitting using splines under tension. Commun. ACM, 17, 218-220. Cline, A.K. (1974): Algorithm 476 -- Six subprograms for curve fitting using splines under tension. Commun. ACM, 17, 220-223. Cline, A.K. (1981): FITPACK -- software package for curve and surface fitting employing splines under tension. Dept. of Comp. Sci., Univ. of Texas, Austin. These references are related to the interpolation subroutines located in file 'fit.for'. Model specification: The way of building the model is concisely described in the above paper on C.R.T. The model building technique is independent of the coordinate system, independent of the method used to specify and interpolate the surfaces covering structural interfaces, and independent of the functions describing the distribution of material properties within the individual complex geological blocks. The basic subroutines to deal with general blocky geological structures are located within the source code file 'model.for'. Among them, the most important subroutine is BLOCK determining the relation of a given point with respect to geological blocks. The data describing the model topology are described within the source code file 'model.for'. To specify a particular model, the following routines should be available: METR1 (file 'metric.for')... Memorizes the type of the model coordinate system. KOOR (file 'metric.for')... Recalls the type of the model coordinate system (zero for Cartesian coordinates). METRIC (file 'metric.for')... Evaluates the metric tensor and Christoffel symbols at a given point. CARTES (file 'metric.for')... Transforms the model coordinates to Cartesian coordinates. Not employed within the complete ray tracing, used rather for model imaging. SRFC1 (file 'srfc.for')... Reads the input data for smooth surfaces. SRFC2 (file 'srfc.for')... Evaluates functions describing the smooth surfaces. PARM1 (file 'parm.for')... Reads the input data for the material parameters of the model. PARM2 (file 'parm.for')... Evaluates the material parameters of a given complex geological block at a given point. To deal with the first order model variations for the purposes of inverse problems, the routines VAR1 to VAR5 should be called properly during the evaluation of functions describing surfaces or material properties in order to memorize the variations. The invocations of VAR1 to VAR5 are irrelevant for forward modelling. These invocations are denoted by '*V' in the first two columns of source code (files 'model.for', 'parm.for', 'val.for', and 'fit.for'). The source code lines with '*V' should be modified or removed by means of the program 'clean.for' or a text editor. When submitting different subroutines SRFC2 and PARM2 while dealing with inverse problems, the user is responsible for proper invocation of routines VAR1 to VAR5. ...................................................................... Compilation and linking: All Fortran 77 source code and include files are assumed to be located in a single directory when being compiled and linked. The files with main programs contain, at their ends, Fortran 90 INCLUDE command for all subroutine files required. In this way, each program may simply be compiled and linked as a single file. All filenames are assumed to be expressed in lowercase (since version 5.00) which should be more convenient than uppercase on Unix systems. Fortran 77 source code files have extension '.for'. The corresponding files with specifications of the COMMON blocks have extension '.inc' and are included in the Fortran 77 source code by means of Fortran 90 INCLUDE command. Notes on linking: Model specification routines (B) and (C) for forward modelling are likely to be required by all applications. Example: 'grid.for' program linked with all files of (B) and (C). In addition, some of service routines (E) are required by some applications. Example 1: 'sec.for' program linked with the files 'modsec.for', 'means.for', 'rkgs.for', and all files of (B) and (C). Example 2: complete ray tracing program and routines linked with 'means.for', 'hpcg.for', and all files of (B) and (C). Inverse modelling programs are likely to require model specification routines (B) and (C) for forward modelling together with the model specification routines (D) for inverse modelling. Do not forget to use the versions with '*V' in the first two columns of source code replaced by a pair of spaces. ...................................................................... Running the executable programs: Within the FORTRAN77 source code submitted with this package, all programs read main input data from the * interactive unit. MS-DOS example: Executable program named, e.g., PROG.EXE may be run with single-line main input data 'DATA' 1 2 3 'END' / in at least three different ways: (a) Running the program by entering PROG from the MS-DOS command line, then entering data 'DATA' 1 2 3 'END' / (b) Redirection: storing 'DATA' 1 2 3 'END' / into a file named, e.g., prog.tmp (e.g., by entering ECHO 'DATA' 1 2 3 'END' / >prog.tmp ), then entering PROG < prog.tmp from the MS-DOS command line. (c) Piping: entering ECHO 'DATA' 1 2 3 'END' / |PROG from the MS-DOS command line. If the corresponding executables '*.EXE' have been prepared, they may be run from the MS-DOS command line, e.g., by entering: ECHO 'grid.dat' / |GRID ECHO 'sec.dat' / |SEC ECHO 'sec-pts.dat' / |SEC ECHO 'model.dat' ' ' 'inv3.dat' 'inv3.out' /|INV3 ECHO 'inv3.dat' 'inv3.out' / |INV4 ECHO 'model.dat' 'answer.out' 'inv3.dat' 'inv3.out' /|INV3 The last command assumes that file 'answer.out' has been prepared by user's own software. Analogously under the UNIX operating systems. ...................................................................... Data sets: The model specification programs may read or write the following data sets: (1) MODEL...Input data for the model. The data are read by the subroutine MODEL1 and are described in the FORTRAN77 source code file 'model.for'. (2) GRID... main input data for the 'grid.for' program. The data are described in the FORTRAN77 source code file 'grid.for'. (3) NET... Additional input file for the 'grid.for' program. The data are described in the FORTRAN77 source code file 'grid.for'. (4) IND, vel.out, icb.out, velder.out... Optional input or output files of the grid program. The data are described in the FORTRAN77 source code file 'grid.for'. (5) SEC... Input data for the 'modsec.for' routines ('SEC' program). The data are read by the subroutine SECT1 and are described in the FORTRAN77 source code file 'modsec.for'. (6) sec.out... Output of the 'modsec.for' routines ('SEC' program), containing interfaces and velocity isolines in the given model sections, stored in the form of several polylines per each isoline. The data are described in the FORTRAN77 source code file 'modsec.for'. and others, not mentioned here now. ...................................................................... Acknowledgements: The development of this package and the related algorithms has been partially supported by: Faculty of Mathematics and Physics, Charles University, Prague. Energy, Mines and Resources Canada, Ottawa, Ontario. Institute of Geotechnics, Czechoslovak Academy of Sciences, Prague. Geophysical Institute, Academy of Sciences of the Czech Republic. Grant agency of the Academy of Sciences of the Czech Republic under Contracts 31223 and 346110. Grant Agency of the Charles University under Contracts 8/94 and 38/94. Grant Agency of the Czech Republic under Contract 205/95/1465. European Commission within the framework of the JOULE II Project 'Integrated Structural Imaging of Seismic Data'. Members of consortium 'Seismic Waves in Complex 3-D Structures'. ======================================================================
C Subroutine file 'model.for' to specify a seismic model. C C Date: 1998, October 26 C Coded by Ludek Klimes C C....................................................................... C C This file consists of the following external procedures: C MODEL1..Subroutine designed to read the input data for the C description of the model and to store them in the memory. C Subroutine MODEL1 reads the input data (1)-(8) listed C below itself, then calls subroutine SRFC1 (included in the C subroutine file 'srfc.for') to read the input data (9) for C smooth surfaces, and finally calls subroutine PARM1 C (included in the subroutine file 'parm.for') to read the C input data (10) for the parameters of the medium. C MODEL1 C NSRFC...Integer function returning the number of surfaces covering C structural interfaces. C NSRFC C BLOCK...Subroutine designed to determine the mutual position of a C point and a simple and a complex block. C BLOCK C ISIDE...Auxiliary function to subroutine BLOCK. C ISIDE C INTERF..Auxiliary subroutine to subroutine BLOCK. C INTERF C VELOC...Subroutine transforming the values of a medium parameters C into velocities and loss factors. C VELOC C FPOWER..Subroutine evaluating the value and, possibly, the three C first and six second partial derivatives of a function, if C the value and the three first and six second partial C derivatives of the POWER-th power of the function are C are known. Particularly, this is an auxiliary subroutine C to the subroutine VELOC. C FPOWER C C Note: C The lines denoted by '*V' in the first two columns of file C 'model.for' in subroutines VELOC and FPOWER are designed to C calculate the model variations with respect to the model C parameters. C File 'modelv.for', intended for the model inversion, is created C from 'model.for' by replacing each '*V' in the first two columns C by spaces using program 'clean.for'. Subroutines VAR4 and VAR5 C of file 'var.for' may then be called to handle the variations. C C....................................................................... C C C Input data MODEL for the specification of the model: C The data are read in by the list directed input (free format). In C the list of input data below, each numbered paragraph indicates C the beginning of a new input operation (new READ statement). If C the first letter of the symbolic name of the input variable is C I-N, the corresponding value in input data must be of the type C INTEGER. Otherwise (except TEXTM), the input parameter is of the C type REAL. C (1) TEXTM C The string containing the name of the model. Only the first 80 C characters of the string are significant. C (2) KOORS,NEXPV,NEXPQ,IVERT,/ C KOORS...Specifies the type of the coordinate system: C KOORS.LE.0: Cartesian coordinates (default). C KOORS.EQ.1: polar spherical coordinates in radians, C (X1,X2,X3)=(colatitude,longitude,radius). C KOORS.GE.2: geographic spherical coordinates in radians, C (X1,X2,X3)=(longitude,latitude,radius). C If the coordinate system is right-handed (recommended), C all vectorial products are evaluated using the right-hand C rule, otherwise using the left-hand rule. C KOORS is passed to the subroutines of file 'metric.for' C by means of invocation of subroutine METR1 and presently C represents the only input data for the coordinate system. C Note that possible future additional data for the C coordinate system should be read by subroutine METR1 and C should be located between input data (2) and (3). C metric.for C NEXPV,NEXPQ... The default values are highly recommended! C Velocities powered to NEXPV and loss factors powered to C NEXPQ are reported by the subroutines evaluating isotropic C material parameters. C For example, unit values of NEXPV and NEXPQ indicate that C velocities and loss factors are the output parameters C of the subroutines evaluating isotropic material C parameters, indices equal -1 indicate reciprocal values of C these quantities, i.e. slownesses and quality factors. C When using the basic submitted version of the subroutine C file 'parm.for', the default values of NEXPV=1, NEXPQ=1 C are highly recommended. Other values make sense only if a C user is submitting his own subroutines to evaluate C isotropic material parameters which, e.g., output the C slowness instead of the velocity. In such a case, C switching NEXPV from 1 to -1 may avoid the modification C of the user's subroutines. C IVERT...Orientation of the vertical axis: C IVERT=0: unknown (default), C IVERT=+1: X1 vertical, pointing upwards, C IVERT=-1: X1 vertical, pointing downwards, C IVERT=+2: X2 vertical, pointing upwards, C IVERT=-2: X2 vertical, pointing downwards, C IVERT=+3: X3 vertical, pointing upwards, C IVERT=-3: X3 vertical, pointing downwards, C Has no influence on the calculations, and need not be C specified. If it is non-zero, it may be considered for C plotting purposes. C /... Obligatory slash at the end of line for future extensions. C Default: KOORS=0, NEXPV=1, NEXPQ=1, IVERT=0. C (3) X1MIN,X1MAX,X2MIN,X2MAX,X3MIN,X3MAX C Boundaries of the model. C (4) NSRFC C Number of smooth surfaces in the model. The surfaces are indexed C sequentially in any order by positive integers ISRFC from 1 to C NSRFC. C It is recommended to define only surfaces covering structural C interfaces (model surfaces) in this data set. Auxiliary surfaces C related to particular source-receiver configurations, numerical C procedures, etc., should preferably be defined in other data sets. C (5) NSB C Number of simple blocks in the model, defined in this data set. C The defined blocks are indexed sequentially by positive integers C ISB from 1 to NSB in the same order as they are specified in data C (6). Intersecting simple blocks are allowed but not recommended. C All material simple blocks in the model must be defined. C Free-space blocks need not be (and usually are not) defined in C this data set. Free-space blocks may be defined at user's C discretion in order to enhance the possibility to check for the C model consistency. Free-space blocks may be defined either here C or in the additional data file designed just for the consistency C check by program MODCHK. C Program MODCHK C (6) NSB input operations (READ statements): C For each simple block with index ISB, the indices of the surfaces C forming the set F(+) and the indices of the surfaces forming the C set F(-). The indices of surfaces from F(+) must be positive, the C indices of surfaces from F(-) must be indicated by negative signs. C The indices may be specified in an arbitrary order and must be C terminated by a slash. C (7) NCB C Number of material complex blocks in the model. The blocks are C indexed sequentially by positive integers ICB from 1 to NCB. The C free-space blocks are not indexed. C (8) NCB input operations (READ statements): C For each material complex block, the indices of material simple C blocks forming the complex block. The indices may be specified C in an arbitrary order and must be terminated by a slash. C Each material simple block must appear exactly once within these C data lines. Simple blocks defined by data (6) but not listed here C are deemed to be free-space simple blocks. C (9) The data specifying NSRFC functions F(X1,X2,X3) describing the C smooth surfaces in the model. The data are read by subroutine C SRFC1. For their description refer to subroutine SRFC1 (included C in the subroutine file 'srfc.for'). C srfc.for: Input data C (10) The data specifying the distribution of parameters of the model C in all NCB material complex blocks. The data are read by C subroutine PARM1. For their description refer to subroutine C PARM1 (included in the subroutine file 'parm.for'). C parm.for: Input data C For an example refer to the sample input data for the model. C Example of data set MODEL C C....................................................................... C C Storage in the memory: C The input data (1) to (8) describing the structure of the model C are stored in common blocks /MODELT/ and /MODELC/ defined in the C include file 'model.inc'. C model.inc C C======================================================================= C C C SUBROUTINE MODEL1(LUN) INTEGER LUN C C Subroutine MODEL1 reads the input data (1)-(8) for the description C of the model and stores them in common blocks /MODELT/ and /MODELC/. C Then it calls subroutine SRFC1 (included in the subroutine file C 'srfc.for') to read the input data (9) for smooth surfaces and to C store them in the memory. Finally, it calls subroutine PARM1 C (included in the subroutine file 'parm.for') to read the input data C (10) for the parameters of the medium and to store them in the memory. C C Input: C LUN... Logical unit number of the external input device C containing the input data. C The input parameter is not altered. C C No output. C C Common blocks /MODELT/ and /MODELC/: INCLUDE 'model.inc' C model.inc C All the storage locations of the common blocks are defined in this C subroutine. C C Subroutines and external functions required: EXTERNAL METR1,SRFC1,PARM1 C METR1...File 'metric.for'. C SRFC1 and subsequent routines... File 'srfc.for' and subsequent C files (like 'val.for' and 'fit.for'). C PARM1 and subsequent routines... File 'parm.for' and subsequent C files (like 'val.for' and 'fit.for'). C C Date: 1996, September 30 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER I,J,L C READ(LUN,*) TEXTM I=0 NEXPV=1 NEXPQ=1 IVERT=0 READ(LUN,*) I,NEXPV,NEXPQ,IVERT CALL METR1(I) READ(LUN,*) BOUNDM READ(LUN,*) NSRFCS C C Simple blocks: C Number of simple blocks READ(LUN,*) NSB C Initializing memory for indices of surfaces bounding simple blocks L=NSB+1 DO 11 I=L,MSB KSB(I)=0 11 CONTINUE C Reading indices of surfaces bounding simple blocks: DO 14 J=1,NSB READ(LUN,*) (KSB(I),I=L,MSB) DO 12 I=L,MSB IF(IABS(KSB(I)).GT.NSRFCS) THEN C 311 CALL ERROR('311 in MODEL: Block bounded by wrong interface') C Index of the surface bounding the simple block is greater C than the specified number of surfaces. ELSE IF(KSB(I).EQ.0) THEN KSB(J)=I-1 L=I GO TO 13 END IF 12 CONTINUE GO TO 99 13 CONTINUE 14 CONTINUE C C Complex blocks: C Number of complex blocks READ(LUN,*) NCB C Initializing memory for indices of simple blocks forming c. blocks L=NCB+1 DO 21 I=L,MCB KCB(I)=0 21 CONTINUE C Reading indices of simple blocks forming complex blocks DO 24 J=1,NCB READ(LUN,*) (KCB(I),I=L,MCB) DO 22 I=L,MCB IF(KCB(I).LT.0.OR.KCB(I).GT.NSB) THEN C 312 CALL ERROR * ('312 in MODEL: C. block composed of wrong s. block.') C Complex block composed of wrong simple block: C Index of a simple block composing the complex block is C greater than the specified number of simple blocks. ELSE IF(KCB(I).EQ.0) THEN KCB(J)=I-1 L=I GO TO 23 END IF 22 CONTINUE GO TO 99 23 CONTINUE 24 CONTINUE C C Smooth surfaces: CALL SRFC1(LUN,NSRFCS) C C Material parameters: CALL PARM1(LUN,NCB) RETURN C 99 CONTINUE C 310 CALL ERROR('310 in MODEL1: Insufficient memory in /MODELC/') C Insufficient memory for the input data in common block /MODELC/. C The dimensions MSB or MCB of arrays KSB or KCB, respectively, C must be enlarged. C Refer to include file model.inc END C C======================================================================= C C C INTEGER FUNCTION NSRFC() C C Integer function NSRFC is designed to return the number of surfaces C covering structural interfaces. C C No input. C C Output: C NSRFC...Number of surfaces covering structural interfaces. C C Common block /MODELC/: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C No subroutines and external functions required. C C Date: 1989, December 19 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C No auxiliary storage locations. C NSRFC=NSRFCS RETURN END C C======================================================================= C C C SUBROUTINE BLOCK(INSIDE,COOR,ISRF1,ISB1,ISRF2,ISB2,ICB2,F) LOGICAL INSIDE REAL COOR(3) INTEGER ISRF1,ISB1,ISB2,ICB2,ISRF2 REAL F(10) C C This subroutine searches for the simple block and the complex block in C which a given point is situated. This routine may be also used to C determine the index of a block touching a specified block at a given C point situated on the boundary of the specified block (the situation C which may occur when a ray impinges on a boundary of a block). C Another function of the routine is to determine the index of any of C the surfaces bounding a block and separating the block from the given C point. C C Input: C INSIDE..INSIDE=.TRUE.: the given point is checked for its C location inside simple block ISB1. C INSIDE=.FALSE.: the given point is expected to be C situated outside simple block ISB1, and simple block C ISB2 (different from ISB1) in which the point is C situated is being searched for. If ISRF1.NE.0, the C position with respect to surface ISRF1 is not checked, C and the simple blocks situated at the other side of C ISRF1 than simple block ISB1 are preferred when C searching for ISB2. C COOR... Array containing coordinates X1, X2, X3 of a given point. C ISRF1...ISRF1.NE.0: index of the surface at which the given point C is situated. The sign is ignored. C ISRF1.EQ.0: the given point is not situated at any surface C ISB1... For ISRF1.NE.0: index of a simple block bounded by the C surface IABS(ISRF1) - search for the index of a C neighbouring simple block touching ISB1 at the given C point. C For ISRF1.EQ.0: index of an arbitrary simple block or C ISB1=0. C None of the input parameters are altered. C C Output: C ISRF2...for the given point not situated inside the block ISB1 or C at its boundary, ISRF2 has the meaning of the index of one C of the surfaces bounding the simple block ISB1 and C separating the given point from the simple block ISB1, C supplemented by a sign '+' or '-' for the simple block C ISB1 situated at the positive or negative side of the C surface, respectively. C Otherwise zero. C If ISRF1.NE.0, the position with respect to surface ISRF1 C is not checked, and if INSIDE=.FALSE., ISRF2=0 without any C checking. C ISB2... For ISRF1.NE.0, ISRF2.EQ.0: index of a simple block C neighbouring to the simple block isb1 and separated from C the simple block ISB1 by surface IABS(ISRF1) at the C given point. C For ISRF1.NE.0, ISRF2.NE.0: index of a simple block in C which the given point is situated. In this case, the C given point may be situated either inside the simple C block ISB2 or in the vicinity of its boundary formed by C the surface IABS(ISRF1). From the two possible simple C blocks touching the surface IABS(ISRF1) at the given C point, that being situated at the same side of the C surface ISRF1 as the simple block ISB1, is selected. C For ISRF1.EQ.0: index of the simple block in which the C given point is situated. C If there is no simple material block of the above C properties, ISB2=0. C ICB2... Index of the complex block in which the simple block ISB2 C is situated. ICB2=0 if the simple block ISB2 is not C situated in any complex block. For ISB2=0: ICB2=0. C F... For ISRF2.NE.0: array containing the value and partial C derivatives F, F1, F3, F11, F12, F22, F13, F23, F33 of C the function describing the surface IABS(ISRF2). C For ISRF2.EQ.0: undefined. C C Common block /MODELC/: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: EXTERNAL ISIDE,INTERF,SRFC2 INTEGER ISIDE C ISIDE,INTERF... This file. C SRFC2 and subsequent routines... File 'srfc.for' and subsequent C files (like 'val.for' and 'fit.for'). C C Date: 1995, October 29 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER I,J,I1,I2,ISIDE1,ISIDE2,ISRF REAL FAUX(10) C C Checking input values: IF(ISRF1.LT.-NSRFCS.OR.ISRF1.GT.NSRFCS) THEN C 313 CALL ERROR('313 in BLOCK: Wrong index of surface') C Absolute value of the input parameter ISRFC1 (index of the C surface) is greater than the number NSRFC of the surfaces C covering structural interfaces. END IF IF(ISB1.LT.0.OR.ISB1.GT.NSB) THEN C 314 CALL ERROR('314 in BLOCK: Wrong index of simple block') C Parameter ISB1 (index of the simple block) is either C negative or greater than the number nsb of simple blocks. END IF C C Initialization: ISRF2=0 IF(ISRF1.EQ.0.OR.ISB1.EQ.0) THEN ISIDE1=2 ELSE ISIDE1=-ISIDE(ISRF1,ISB1) END IF C C Position of the given point with respect to the given simple block C ISB1: IF(INSIDE) THEN IF(ISB1.NE.0) THEN CALL INTERF(COOR,ISRF1,ISB1,ISRF2,F) IF(ISRF1.EQ.0) THEN IF(ISRF2.EQ.0) THEN C The point is inside simple block ISB1: ISB2=ISB1 GO TO 10 END IF ELSE IF(ISRF2.NE.0) THEN C The point being situated at surface ISRF1 bounding simple C block ISB1 is not situated at the boundary of simple block C ISB1: ISIDE1=-ISIDE1 END IF END IF END IF END IF C C Search for the simple block in which the given point is C situated: I2=MAX0(ISB1-1,NSB-ISB1) DO 2 J=1,I2 DO 1 I=1,-1,-2 ISB2=ISB1+I*J IF(ISB2.GT.0.AND.ISB2.LE.NSB) THEN IF(ISRF1.NE.0) THEN ISIDE2=ISIDE(ISRF1,ISB2) END IF IF(ISRF1.EQ.0.OR.ISIDE1.EQ.ISIDE2) THEN CALL INTERF(COOR,ISRF1,ISB2,ISRF,FAUX) IF(ISRF.EQ.0) GO TO 10 END IF END IF 1 CONTINUE 2 CONTINUE IF(.NOT.INSIDE) THEN DO 4 J=1,I2 DO 3 I=1,-1,-2 ISB2=ISB1+I*J IF(ISB2.GT.0.AND.ISB2.LE.NSB) THEN CALL INTERF(COOR,ISRF1,ISB2,ISRF,FAUX) IF(ISRF.EQ.0) GO TO 10 END IF 3 CONTINUE 4 CONTINUE END IF C No simple block has been found: ISB2=0 ICB2=0 RETURN C C Determination of the complex block: 10 CONTINUE DO 12 J=1,NCB I1=KCB(J-1)+1 I2=KCB(J) DO 11 I=I1,I2 IF(KCB(I).EQ.ISB2) THEN ICB2=J RETURN END IF 11 CONTINUE 12 CONTINUE C No complex block: ICB2=0 C RETURN END C C======================================================================= C C C INTEGER FUNCTION ISIDE(ISRF,ISB) INTEGER ISRF,ISB C C This is an auxiliary function to the subroutine BLOCK. C This function determines the mutual position of a surface and a simple C block. C C Input: C ISRF... Index of the surface. The sign is ignored. C ISB... Index of the simple block. C None of the input parameters are altered. C C Output: C ISIDE...ISIDE=-1: The simple block is bounded by the surface and C is situated on its negative side. C ISIDE= 1: The simple block is bounded by the surface and C is situated on its positive side. C ISIDE= 2: The simple block is not bounded by the surface. C C Common block /MODELC/: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C No subroutines and external functions required. C C Date: 1989, December 19 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER IS,LS,MS C LS=KSB(ISB-1)+1 MS=KSB(ISB) C C Loop for surfaces bounding simple block ISB: DO 1 IS=LS,MS IF(IABS(KSB(IS)).EQ.IABS(ISRF)) THEN ISIDE=ISIGN(1,KSB(IS)) RETURN END IF 1 CONTINUE C ISIDE=2 RETURN END C C======================================================================= C C C SUBROUTINE INTERF(COOR,ISRF1,ISB,ISRF2,F) REAL COOR(3),F(10) INTEGER ISRF1,ISB,ISRF2 C C This is an auxiliary subroutine to the subroutine BLOCK. C This subroutine determines the position of a given point with respect C to a given simple block. C C Input: C COOR... Array containing coordinates X1, X2, X3 of a given point. C ISRF1...ISRF1.NE.0: Index of the surface at which the given point C is situated. The sign is ignored. C ISRF1.EQ.0: The given point is not situated at any C surface. C ISB... Index of the given simple block. C None of the input parameters are altered. C C Output: C ISRF2...Index of a surface separating the given point and the C simple block ISB, supplemented by a sign '+' or '-' for C the simple block ISB1 situated at the positive or C negative side of the surface, respectively. C ISRF2=0 if the given point is situated inside the simple C block ISB. C F... For ISRF2.NE.0: Array containing the value and partial C derivatives F, F1, F3, F11, F12, F22, F13, F23, F33 of C the function describing the surface IABS(ISRF2) at the C given point. C For ISRF2.EQ.0: Undefined. C C Common block /MODELC/: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: EXTERNAL SRFC2 C SRFC2 and subsequent routines... File 'srfc.for' and subsequent C files (like 'val.for' and 'fit.for'). C C Date: 1989, December 19 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER IS,JS,KS,LS,MS C LS=KSB(ISB-1)+1 MS=KSB(ISB) C C Loop for surfaces bounding simple block ISB: DO 1 IS=LS,MS KS=KSB(IS) JS=IABS(KS) IF(JS.NE.IABS(ISRF1)) THEN CALL SRFC2(JS,COOR,F) IF(F(1)*FLOAT(KS).LT.0.) THEN ISRF2=KS RETURN END IF END IF 1 CONTINUE C ISRF2=0 RETURN END C C======================================================================= C C C SUBROUTINE VELOC(IWAVE,UP,US,QP,QS,VP,VS,VD,QL) INTEGER IWAVE REAL UP(10),US(10),QP,QS,VP,VS,VD(10),QL C C This subroutine transforms the values of parameters of the medium into C velocities and loss factors. C C Input: C IWAVE...Type of wave. C IWAVE.GE.0: P wave, C IWAVE.LT.0: S wave. C UP,US...Powers of P and S wave velocities and their first and C second partial derivatives (the exponent of the powers is C NEXPV, see 'Input data for the model'), in order U, U1, C U2, U3, U11, U12, U22, U13, U23, U33. C QP,QS...Powers of the loss factors of P and S waves (the exponent C of the powers is NEXPQ, see 'Input data for the model'). C None of the input parameters are altered. C C Output: C VP,VS...P and S wave velocities. C VD... Velocity and its first and second partial derivatives C ordered as UP, US, corresponding to the wave specified by C IWAVE, in order V, V1, V2, V3, V11, V12, V22, V13, V23, C V33. C QL... Loss factor corresponding to the wave specified by IWAVE. C C Common block /MODELC/: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: EXTERNAL FPOWER C FPOWER...This file. C C Date: 1992, December 31 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage location: REAL POWER,AUX1(1),AUX2(1) C POWER=FLOAT(NEXPV) IF(IWAVE.GE.0) THEN CALL FPOWER(10,UP,POWER,VD) CALL VAR5(1,1) VP=VD(1) CALL FPOWER(1,US,POWER,AUX2) VS=AUX2(1) AUX1(1)=QP ELSE CALL FPOWER(1,UP,POWER,AUX2) VP=AUX2(1) CALL FPOWER(10,US,POWER,VD) CALL VAR5(2,2) VS=VD(1) AUX1(1)=QS END IF CALL FPOWER(1,AUX1,FLOAT(NEXPQ),AUX2) QL=AUX2(1) RETURN END C C======================================================================= C C C SUBROUTINE FPOWER(N,FINP,POWER,FOUT) INTEGER N REAL FINP(N),POWER,FOUT(N) C C This subroutine evaluates the value and, possibly, the three first and C six second partial derivatives of a function if the value and the C three first and six second partial derivatives of the POWER-th power C of the function are known. C C Input: C N... For N=1: only the function value is evaluated. The C derivatives are ignored. C For N=4: the value and the three first partial derivatives C are evaluated. C For N=10: the value and the three first and six second C partial derivatives are evaluated. C FINP... Array containing the value, the first and second partial C derivatives of the POWER-th power of the function to be C evaluated, in the order F, F1, F2, F3, F11, F12, F22, F13, C F23, F33. For N=1, only the function value is required. C POWER...The specified function is equal to the POWER-th power of C the corresponding physical quantity. C POWER=0: Zero output array FOUT is generated. C None of the input parameters are altered (except FINP if this C parameter and FOUT are identical in the calling sequence). C C Output: C FOUT... Array containing the value, the first and second partial C derivatives of the evaluated function, in the order F, F1, C F2, F3, F11, F12, F22, F13, F23, F33. This parameter may C coincide with FINP, in which case FINP is destroyed on C output. Note that this coincidence is an exception to C ANSI standard of FORTRAN 77. C C No subroutines and external functions required. C C Date: 1996, September 30 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER I REAL F,AUX1,AUX2 C IF(POWER.EQ.0.) THEN DO 1 I=1,N FOUT(I)=0. 1 CONTINUE ELSE IF(0.999.LT.POWER.AND.POWER.LT.1.001) THEN DO 2 I=1,N FOUT(I)=FINP(I) 2 CONTINUE CALL VAR4(0,1.) ELSE IF(-1.001.LT.POWER.AND.POWER.LT.-0.999) THEN F=1./FINP(1) ELSE F=FINP(1)**(1./POWER) END IF FOUT(1)=F IF(N.GT.1) THEN AUX1= F/(FINP(1)*POWER) AUX2= (POWER-1.)/F FOUT(2)=AUX1*FINP(2) FOUT(3)=AUX1*FINP(3) FOUT(4)=AUX1*FINP(4) IF(N.GT.4) THEN FOUT(5)=AUX1*FINP(5)-AUX2*FOUT(2)*FOUT(2) FOUT(6)=AUX1*FINP(6)-AUX2*FOUT(2)*FOUT(3) FOUT(7)=AUX1*FINP(7)-AUX2*FOUT(3)*FOUT(3) FOUT(8)=AUX1*FINP(8)-AUX2*FOUT(2)*FOUT(4) FOUT(9)=AUX1*FINP(9)-AUX2*FOUT(3)*FOUT(4) FOUT(10)=AUX1*FINP(10)-AUX2*FOUT(4)*FOUT(4) END IF CALL VAR4(0,AUX1) CALL VAR4(2,-AUX2*FOUT(2)) CALL VAR4(3,-AUX2*FOUT(3)) CALL VAR4(4,-AUX2*FOUT(4)) END IF END IF RETURN END C C======================================================================= Cmodelver.htm 100666 1750 1750 27141 6614252606 12520 0 ustar klimes klimes
parm.for 100666 1750 1750 112355 6607560250 11661 0 ustar klimes klimes CReleased versions of package MODEL
1.00 (1988, June): Preliminary version, contains only subroutines for model specification. There are no complete ray tracing subroutines yet. 2.00 (1990, February): Common release with complete ray tracing routines. First consistent version of the ray tracing program. Complete ray tracing poorly debugged. 3.00 (1991, January): Common release with complete ray tracing routines. Principal errors removed from complete ray tracing. 'parm.for': Evaluation of S-wave quality factor corrected. 4.00 (1992, December): MODEL and CRT packages have been split: 'raycb.for' split into 'means.for' (MODEL) and 'raycb.for' (CRT). Subroutine FPOWER moved from 'val.for' to 'model.for'. 'val.for': Incorrect storage of function coefficients in common block /VALC/ fixed. New check for incorrect indices of the class or group during invocation of VAL2. Bugs in the evaluation of embedded functions fixed. 'val.for': Incorrectly coded linear extrapolation of functions outside the given spline grid replaced by analytic continuation. Linear version partially fixed and denoted with 'CV3' in the first three columns. 'val.for': Hermite representation of 1-D cubic splines replaced by a B-spline representation (CURVB1 and CURVB2 of 'fit.for' called instead of CURVN1 and CURV2D). 'model.for', 'srfc.for', 'parm.for', 'val.for', and 'fit.for': Minor corrections to conform with the FORTRAN77 standard. 'means.for': *** Considerable changes and corrections.*** *** new ***: 'model.for', 'parm.for', 'val.for', and 'fit.for': Invocations of VAR* routines enabling inversion have been added and denoted by 'V' in the first column. 'var.for', 'varnul.for', and 'spsp.for': New additional model specification subroutine files for inverse modelling. 'grid.for', 'modsec.for', 'sec.for', 'secdxf.for', and 'secacd.for': New sample application programs and routines working with the model, mostly for the purposes of model displaying. For the same reasons, subroutine CARTES has been added to 'metric.for'. 'clean.for': New simple program to enable a conditional compilation. 4.10 (1994, January): 'model.for', 'parm.for', 'val.for', 'var.for', 'varnul.for', 'means.for', 'grid.for', 'modsec.for', 'lindxf.for', 'clean.for': Error messages, previously generated by statements like STOP 'Error...', are now generated by PAUSE 'Error...' followed by the STOP statement, in order to suspend the batch files in the case of error (the date of subroutines not updated). 'model.for', 'metric.for', 'val.for', 'modsec.for': Each block data subprogram has been declared external in the subroutine designed to read or initialize the data shared. The subroutine is the first subroutine in the corresponding file, after the block data subprogram, and was always assumed to be called before the data in the corresponding common blocks can be used. 'spsp.for': External procedures declared external. 'modsec.for': Two severe bugs fixed (index of a simple block, section boundaries). 'model.for', 'means.for', 'grid.for', 'modsec.for', 'clean.for': Other minor fix-ups and improvements. *** new ***: 'forms.doc': General description of files containing Lines (lines at interfaces, velocity isolines, rays, etc.) or Points (gridded interfaces, sources, receivers, ray endpoints, etc.). The files are introduced especially to simplify data transfer and plotting. 'grid.for': Model specified in curvilinear coordinates is now gridded in Cartesian coordinates. 'array.for': New subroutines to write real arrays into disk files and to read them. Common with package 'NET'. 'modsec.for': New option of generating regularly spaced points along structural interfaces or velocity isolines. New format of output files is described in 'forms.doc'. Common specification of parallel profiles - a change in the input data for the profiles (obligatory slash). 'lindxf.for', 'linacd.for': Replaced 'secdxf.for' and 'secacd.for' to transform lines into the CAD or ACROSPIN format. 5.00 (1996, September): 'model.for', 'parm.for', 'val.for', and 'fit.for': Invocations of VAR* routines enabling inversion are denoted by '*V' instead of 'V ' in the first two columns. No need to patch the code before compilation henceforth. 'model.for': *** Change in input data for model *** (IVERT key added). Subroutine BLOCK slightly extended. 'metric.for': Subroutine CARTES corrected. 'val.for': *** Input grid values for interpolation may now correspond to any power of the interpolated quantity. Model data read by 'srfc.for' and 'parm.for' changed.*** Default keys defining the function form introduced. Number of model parameters increased to NPAR=100000. 'var.for': Number of registers and variations increased to MFUNCT=48 and MB=3072. 'means.for': *** Considerable changes and corrections.*** Unfortunately, not finished. 'grid.for': *** Change in input data, in generation of the partial derivatives, etc. *** 'array.for': Renamed to 'forms.for', updated, supplemented with subroutines FORM1 and FORM2. 'sec.for'+'modsec.for': Joined to single file 'sec.for'. Considerably updated. 'clean.for': Updated. 'mod.bat': *** Considerably changed.*** 'lindxf.for', 'linacd.for': Removed (moved to package D3). 'calcomp.for': Moved from package CRT. *** new ***: All files converted from UPPERCASE to both UpperCase and LowerCase (for better reading and Unix systems), INCLUDE statement introduced for COMMON blocks. '*.inc': Include files with COMMON blocks. SAVE statement is now used consistently for COMMON blocks All files with main programs supplemented with the INCLUDE statements to include all files with called subroutines to simplify the compilation and linking considerably. 'parm.for': Extended to anisotropic models with attenuation, maintaining all compatibility with the isotropic models. 'modelv.for','parmv.for','valv.for','fitv.for': Versions of 'model.for', 'parm.for', 'val.for', and 'fit.for' for inverse problems. 'length.for': Simple subroutine to determine the length of a string. 'gse.for': Subroutines to write and read seismograms in the GSE data exchange format. 'calcops.for': CalComp to PostScript graphics interface. 'modchk.for': Program to check the model consistency. 'intf.for': Program to check the positions of given points with respect to interfaces in the model. 'srp.for': Program to generate source and receiver points corresponding to given configuration parameters. 'pallet.for': Program to interpolate the RGB colour pallet linearly in the HSB colour space. 'sd','slit','wb','l7','mar': Subdirectories with examples of input data for seismic models. 5.10 (1997, October): *** probably not all changes are listed here *** 'forms.doc','length.for','forms.for','gse.for','srp.for', 'calcomp.for','calcomp.inc','calcops.for','calcops.inc', 'pallet.for','f': Moved to new package FORMS ('forms.doc' renamed to 'formsdoc.htm'). 'indexx.for': Moved to new package NR. 'soft.for','inv1soft.for','inv3.for','inv4.for','inv3.dat': Moved from package CRT. 'soft.for': *** Severe bug fixed. *** 'model.doc' renamed to 'modeldoc.htm'. 'lmod.bat' renamed to 'fmod.bat' and revised. 'gridnet.dat' renamed to 'grid.h' and changed into SEP. 'model.for','modelv.for','metric.for','sec.for': BLOCK DATA subprograms canceled. 'modchk.for','grid.for','inv1soft.for','inv3.for': Memory managed by means of 'ram.inc'. Descriptions corrected and updated in most files. All error descriptions moved towards the corresponding reporting statements. Errors renumbered in some files. *** new *** All Fortran files supplemented with HTML references. 'grid.for': Grid dimensions specified by SEP parameter file. 'len-grd.bat'... MS-DOS batch file to display 2-D velocity sections across the demo model 'model.dat'. 5.20 (1998, October): All error messages in the Fortran files, previously generated by statements like PAUSE 'Error ...', are now generated by CALL ERROR('...') in order to enable to fit the error handling for a particular computer by editting file 'error.for' (the date of subroutines not updated). Most warning messages in the Fortran files, previously generated by statements like PAUSE 'Warning ...', are now generated by CALL WARN('...'). 'modeldoc.htm' split into 'modeldoc.htm' and 'modelver.htm', list of files moved to 'model.htm'. 'parm.for': Bugs disabling anisotropic models fixed. New entry PARM4 determining whether a model is isotropic. 'modchk.for': Undefined free-space simple blocks now may or may not be reported. 'grid.for': *** Input data changed. *** 'grid.h': Updated. *** new *** All MS-DOS batch files '*.bat' and Unix scripts '*' replaced by corresponding Perl scripts '*.pl' or by history files '*.h' containing the lines specifying how to run the programs.
C Subroutine file 'parm.for' for specification and interpolation of the C material parameters of the model in rectangular grids. C C Date: 1998, October 10 C Coded by Ludek Klimes C C....................................................................... C C This file consists of the following subroutines: C PARM1...Subroutine reading the input data for the material C parameters of the model. C PARM1 C PARM2...Subroutine evaluating the isotropic material parameters C including their first and second derivatives. C The functions may be embedded: the independent variable C of the function may be another material parameter of the C same complex block foregoing in the input data. C PARM2 C ADD10...Auxiliary subroutine to PARM2 summing 3 arrays of C dimension 10. C ADD10 C LIN10...Auxiliary subroutine to PARM2 evaluating the linear C combination of 3 arrays of dimension 10. C LIN10 C PARM3...Subroutine evaluating the anisotropic material parameters C including their first and second derivatives. C PARM3 C PARM4...Entry of subroutine PARM3 answering whether the model is C isotropic or anisotropic. C PARM4 C Subroutines PARM1, PARM2, and PARM3, supporting isotropic complete ray C tracing algorithm, anisotropic ray tracing and other seismic modelling C algorithms, only mediate the work of subroutines VAL1, VAL2 and FPOWER C which must be appended. In addition, subroutines CURVN1 (or its C alternative CURVB1), CURV2D (or its alternative CURVBD), SURFB1, C SURFBD, VAL3B1, VAL3BD, VGEN, TERMS, SNHCSH, TRIDEC, TRISOL, DSPLNZ, C INTRVL from the subroutine package 'FITPACK' by Alan Kaylor Cline, C Department of Computer Sciences, University of Texas at Austin, are C used. In the complete ray tracing, this software file 'parm.for' may C be replaced by any user-defined package containing subroutines PARM1 C and PARM2 with the same number, type and meaning of their parameters C as in this file. C C Note: C The lines denoted by '*V' in the first two columns of file C 'parm.for' are designed to calculate the model variations with C respect to the model parameters. C File 'parmv.for', intended for the model inversion, is created C from 'parm.for' by replacing each '*V' in the first two columns C by spaces using program 'clean.for'. Subroutines VAR4 and VAR5 C of file 'var.for' may then be called to handle the variations. C C If model variations are taken into account: C Model variations are assumed to be stored while evaluating the C functions during the invocation of subroutine VAL of file C 'val.for' and subsequent routines of file 'fit.for'. C The variations of P-wave velocity are assumed to be stored in C register 1 of the system VAR*, the variations of S-wave velocity C are assumed to be stored in register 2 of the system VAR*. C Variations of the density and loss (or quality) factors are not C considered, although they may be stored in other registers. C Subroutines VAR4 and VAR5 are called within the subroutine PARM2 C in order to deal with the variations of P and S wave velocities. C C....................................................................... C C C Input data (read in by subroutine PARM1): C These input data define the complex blocks. They are read in by C subroutine PARM1. The number NCB of the complex blocks to be C defined is an input argument of subroutine PARM1. The data are C read in by the list directed input (free format). C (1) NCB-times (i.e. once for each complex block) input data (1A)+(1B): C (1A) TEXTG,ICB C Identification of the complex block. C TEXTG...Any string. Its first 3 characters must differ from C 'VP ', 'VS ', 'DEN', 'QP ', 'QS ', C 'A11', 'A12', 'A22', 'A13', 'A23', 'A33', 'A14', 'A24', C 'A34', 'A44', 'A15', 'A25', 'A35', 'A45', 'A55', 'A16', C 'A26', 'A36', 'A46', 'A56', 'A66', C 'B11', 'B12', 'B22', 'B13', 'B23', 'B33', 'B14', 'B24', C 'B34', 'B44', 'B15', 'B25', 'B35', 'B45', 'B55', 'B16', C 'B26', 'B36', 'B46', 'B56', 'B66', C 'Q11', 'Q12', 'Q22', 'Q13', 'Q23', 'Q33', 'Q14', 'Q24', C 'Q34', 'Q44', 'Q15', 'Q25', 'Q35', 'Q45', 'Q55', 'Q16', C 'Q26', 'Q36', 'Q46', 'Q56', 'Q66', 'END'. C ICB... Index of the complex block. C (1B) Several times 'Input data for one material parameter', see below. C Isotropic complex block: C At least one of velocities 'VP ' and 'VS ' must be specified. C Unspecified isotropic elastic parameters ('VP ', 'VS ', 'QP ', C 'QS ') take their default values. Anisotropic elastic C parameters correspond to the isotropic medium. C Anisotropic complex block with given isotropic reference medium: C Isotropic complex block with one to all anisotropic elastic C parameters specified. Unspecified anisotropic elastic C parameters default to the isotropic medium. C Anisotropic complex block: C At least 9 reduced anisotropic elastic parameters 'A11', 'A12', C 'A22', 'A13', 'A23', 'A33', 'A44', 'A55', and 'A66' must be C specified in the anisotropic complex block. Unspecified C anisotropic elastic parameters default to zeros. C (2) TEXTE,AUX C End of data. C TEXTE...String, the first 3 characters of which must be upper-case C 'END'. C AUX... Any number or a slash. C For an example refer to the sample input data for the model. C C Input data for one material parameter: C The data are read in by the list directed input (free format). In C the list of input data below, each numbered paragraph indicates C the beginning of a new input operation (new read statement). If C the first letter of the symbolic name of the input variable is C I-N, the corresponding value in input data must be of the type C INTEGER. Otherwise (except TEXTF), the input parameter is of the C type REAL. C (1) TEXTF,POWER C Physical meaning of the function. C TEXTF...String identifying which material parameter the function C describes. Only the first 3 characters are significant. C The first 3 characters of the string must be: C 'VP ' for P wave velocity, C 'VS ' for S wave velocity, C 'DEN' for density, C 'QP ' for P wave loss factor, C 'QS ' for S wave loss factor. C 'A11', 'A12', 'A22', 'A13', 'A23', 'A33', 'A14', 'A24', C 'A34', 'A44', 'A15', 'A25', 'A35', 'A45', 'A55', 'A16', C 'A26', 'A36', 'A46', 'A56', or 'A66' for reduced (i.e. C divided by the density) anisotropic elastic parameters C (components of the real part of the symmetric 6*6 C stiffness matrix divided by the density). C 'Q11', 'Q12', 'Q22', 'Q13', 'Q23', 'Q33', 'Q14', 'Q24', C 'Q34', 'Q44', 'Q15', 'Q25', 'Q35', 'Q45', 'Q55', 'Q16', C 'Q26', 'Q36', 'Q46', 'Q56', or 'Q66' for reduced (i.e. C divided by the density) imaginary anisotropic elastic C parameters (components of the imaginary part of the C symmetric 6*6 stiffness matrix divided by the density). C All strings must be entered in uppercase. C POWER...The specified function is equal to the POWER-th power of C the material parameter. C Examples: C For P wave velocity TEXTF='VP ' and POWER=1.0, C for P wave slowness TEXTF='VP ' and POWER=-1.0, C for S wave quadratic slowness TEXTF='VS ' and C POWER=-2.0, C for P wave loss factor TEXTF='QP ' and POWER=1.0, C for S wave quality factor TEXTF='QS ' and POWER=-1.0. C Default values of isotropic elastic parameters not specified in C the input data (subroutine PARM2): C Isotropic complex block or anisotropic complex block with C given isotropic reference medium (at least one of VP and C VS given): C P wave velocity: VP=1.73205*VS, C S wave velocity: VS=0.57735*VP, C Anisotropic complex block (neither VP nor VS given): C Default isotropic parameters are expressed in terms of C anisotropic parameters to allow for application of the C isotropic code to anisotropic models. C Average isotropic medium minimizing the squared norm of C the difference between the Christoffel matrices, C averaged over propagation directions: C AP=A11+A22+A33, C AL=A12+A13+A23, C AS=A44+A55+A66, C VP=SQRT( (3.*AP+2.*AL+4.*AS)/15 ), C VS=SQRT( ( AP - AL+3.*AS)/15 ), C This reference isotropic medium is designed especially C to serve as a basis for anisotropic perturbations. From C this point of view, the variations of the these default C isotropic material parameters with respect to the model C parameters, evaluated by means of subroutines VAR*, are C unnecessary. No variations of the above defaults are C thus set in PARM2. C In any case: C Density: RHO=1, C P wave loss factor (if S wave loss factor is specified): C QP=1.333333*QS*(US(1)/UP(1))**2, C S wave loss factor (if P wave loss factor is specified): C QS=0.750000*QP*(UP(1)/US(1))**2, C P and S wave loss factors (if none of them is given): C QP=0.0, QS=0.0. C Default values of anisotropic elastic parameters not specified in C the input data (subroutine PARM3): C Isotropic complex block or anisotropic complex block with C given isotropic reference medium (at least one of VP and C VS given): C Default anisotropic parameters are expressed in terms of C isotropic parameters for the sake of continuity with C isotropic models: C A11=A22=A33= VP*VP, C A12=A13=A23= VP*VP-2*VS*VS, C A44=A55=A66= VS*VS, C A14=A24=A34=A15=A25=A35=A45=A16=A26=A36=A46=A56= 0. C Anisotropic complex block (neither VP nor VS given): C Aij=0. C In any case: C RHO=1, C Qij=0 in this version. C (2) IVAR1,IVAR2,IVAR3,SIGMA,POWERW,/ C The form of the function. C IVAR1,IVAR2,IVAR3... Denote the form of the function. The function C must be of the form C F(X1,X2,X3) = W(A1,A2,A3)-B1-B2-B3 . C X1, X2, X3 are the general coordinates. Each of A1, A2, C A3, B1, B2, B3 must be either: (a) one of general C coordinates X1, X2, X3, (b) another previously defined C function F(X1,X2,X3) of the same complex block, or (c) C must be left out. At most 3 of parameters A1-B3 may be of C kind (a) or (b). Note that IVAR1 controls the type of A1 C and B1, IVAR2 controls the type of A2 and B2, IVAR3 C controls the type of A3 and B3. C For IVAR1.EQ.0: A1, B1 are empty (left out). C For IVAR1.EQ.1: A1=X1, B1 is empty. C For IVAR1.EQ.2: A1=X2, B1 is empty. C For IVAR1.EQ.3: A1=X3, B1 is empty. C For IVAR1.GE.4: A1=F(X1,X2,X3), where F(X1,X2,X3) is C another function of the same complex block defined in C the input data as the (IVAR1-3)-th function of the C complex block. B1 is empty. C Example: C If density=1.7+0.2*VP then the interpolated function C is W(A1,A2,A3)=1.7+0.2*A1 with the independent C variable A1=VP(X1,X2,X3). This is specified by C IVAR1=4, IVAR2=0, IVAR3=0 if VP is the first read in C parameter, by IVAR1=5, IVAR2=0, IVAR3=0 if VP is the C second read in parameter, etc. C The possible alternatives are W(A1,A2,A3)=1.7+0.2*A2 C with A2=VP(X1,X2,X3) specified by IVAR1=0, C IVAR2=(4 or 5 or the like), IVAR3=0, and C W(A1,A2,A3)=1.7+0.2*A3 with A3=VP(X1,X2,X3) specified C by IVAR1=0, IVAR3=2, IVAR3=(4 or 5 or the like). C For IVAR1.EQ.-1: B1=X1, A1 is empty. C For IVAR1.EQ.-2: B1=X2, A1 is empty. C For IVAR1.EQ.-3: B1=X3, A1 is empty. C For IVAR1.GE.-4: B1=F(X1,X2,X3), where F(X1,X2,X3) is C another function of the same complex block defined in C the input data as the (-IVAR1-3)-th function of the C complex block. A1 is empty. C The meaning of the parameters IVAR2, IVAR3 is similar. C Examples: C IVAR1: IVAR2: IVAR3: the form of the function: C 1 2 3 F(X1,X2,X3)=W(X1,X2,X3) C 3 1 2 F(X1,X2,X3)=W(X3,X1,X2) C 1 2 0 F(X1,X2,X3)=W(X1,X2) C 5 0 0 F(X1,X2,X3)=W(F2(X1,X2,X3)), where C F2(X1,X2,X3) is the second material parameter of the C complex block defined in the input data. Function W is C interpolated by means of splines under tension. C SIGMA...Is the tension factor (its sign is ignored). This value C indicates the curviness desired. If ABS(SIGMA) is nearly C zero (e.g. 0.001), the resulting surface is approximately C the tensor product of cubic splines. If ABS(SIGMA) is C large (e.g. 50.), the resulting surface is approximately C tri-linear. If SIGMA equals zero, tensor products of C cubic splines result. A recommended value for SIGMA is C approximately 1. In absolute value. C POWERW..Given grid values (7) correspond to the POWERW-th power of C interpolated function W. The given grid values (7) are C thus raised to the (1/POWERW)-th power immediately after C reading and then interpolated. C /... Obligatory slash at the end of line for future extensions. C Default: IVAR1=0, IVAR2=0, IVAR3=0, SIGMA=0, POWERW=1. C (3) NX(1),...,NX(NVAR) C The numbers of grid coordinates for the interpolation. C This input is performed if at least one of IVAR1, IVAR2, IVAR3 is C positive. C Each of NX(1),...,NX(NVAR) corresponds to one positive value of C IVAR1, IVAR2, IVAR3 and specifies the number of grid coordinates C corresponding to that independent variable of function W, see (2). C The sign of NX(1),...,NX(NVAR) is ignored. NVAR (.LE.3) is the C number of positive values of the above quantities IVAR1, IVAR2, C IVAR3, i.e. the number of independent variables of function W, C see (1). C (4) X1(1),...,X1(NX(1)) C The grid coordinates corresponding to the first independent C variable of function W, see (2). C This input is performed if NX(1) is specified, see (3), and is not C zero. The grid coordinates may be specified in any order. C (5) X2(1),...,X2(NX(2)) C The grid coordinates corresponding to the second independent C variable of function W, see (2). C This input is performed if NX(2) is specified, see (3), and is not C zero. The grid coordinates may be specified in any order. C (6) X3(1),...,X3(NX(3)) C The grid coordinates corresponding to the third independent C variable of function W, see (2). C This input is performed if NX(3) is specified, see (3), and is not C zero. The grid coordinates may be specified in any order. C (7) (((W(I,J,K),I=1,MAX(NX(1),1)),J=1,MAX(NX(2),1)),K=1,MAX(NX(3),1)) C the values of function W at grid points. Function value W(i,j,k) C corresponds to point (X1(I),X2(J),X3(K)). C C======================================================================= C C C SUBROUTINE PARM1(LUN,NCB) INTEGER LUN,NCB C C This subroutine reads the input data for the distributions of the C material parameters: C In the isotropic complex blocks: C P and S wave velocities, density, P and S wave loss factors C in the anisotropic complex blocks: C 21 real parts of the reduced (divided by the density) elastic C parameters, 21 corresponding imaginary parts, density. C Reference isotropic P and S velocities and loss factors may also be C specified together with anisotropic material parameters. C When reading the data, subroutine PARM1 also determines the parameters C necessary to compute an interpolatory function on a three dimensional C rectangular grid, and stores them in the memory. The function C determined can be represented as a tensor product of splines under C tension. The functions may be embedded. For actual interpolation of C material parameters it is necessary to call subroutine PARM2 for C isotropic model (or mean isotropic model corresponding to the C anisotropic model), or subroutine PARM3 for anisotropic material C parameters of the isotropic or anisotropic model. Subroutines PARM2 C and PARM3 also return the first and second partial derivatives of C propagation velocities or reduced elastic parameters. Subroutine C PARM1 may be called several times. The complex blocks are indexed C successively, following the complex blocks defined during the previous C invocations. C C Input: C LUN... Logical unit number of the external input device C containing the input data. C NCB... Number of the material complex blocks for which the input C data are specified during the current invocation of PARM1. C None of the input parameters are altered. C C No output. C C Subroutines and external functions required: EXTERNAL VAL1 C VAL1, SORTV, READV... File 'val.for'. C CURVN1 or CURVB1 (alternatives), SURFB1, VAL3B1, SNHCSH, VGEN, C TERMS, TRIDEC, TRISOL... Subroutine package 'FITPACK' C (file 'fit.for'). C C Date: 1995, December 17 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: CHARACTER*3 TFUNCT(47) DATA TFUNCT/'VP ','VS ','DEN','QP ','QS ', *'A11','A12','A22','A13','A23','A33','A14','A24','A34','A44', *'A15','A25','A35','A45','A55','A16','A26','A36','A46','A56','A66', *'Q11','Q12','Q22','Q13','Q23','Q33','Q14','Q24','Q34','Q44', *'Q15','Q25','Q35','Q45','Q55','Q16','Q26','Q36','Q46','Q56','Q66'/ C CALL VAL1(LUN,2,NCB,47,TFUNCT) RETURN END C C======================================================================= C C C SUBROUTINE PARM2(ICB,COOR,UP,US,RHO,QP,QS) INTEGER ICB REAL COOR(3),UP(10),US(10),RHO,QP,QS C C This subroutine evaluates P and S wave velocities, density, and P and C S wave loss factors at a given point. The three first and six second C partial derivatives of the velocities are also evaluated. The C specified functions are represented as a tensor product of splines C under tension. The parameters may be dependent either on the general C coordinates or on the distribution of another parameter, e.g. C VS=0.577*VP or RHO=1.7+0.2*VP, where VP, VS and RHO are P and S C velocities and density. The coefficients of these functions are C prepared in subroutine PARM1, in which the input data concerning the C distribution of individual parameters within each complex block are C read in. The default values of parameters not specified in the input C data are: C P wave velocity: VP=1.73205*VS, C S wave velocity: VS=0.57735*VP, C Density: RHO=1.0, C P wave loss factor (if the S wave loss factor is specified): C QP=1.333333*QS*(US(1)/UP(1))**2, C S wave loss factor (if the P wave loss factor is specified): C QS=0.750000*QP*(UP(1)/US(1))**2, C P and S wave loss factors (if none of them is specified): C QP=0.0, QS=0.0. C Attention: The above default values are reasonable only if arguments C UP and US of this subroutine are velocities, and QP and QS loss C factors. In other words, these default settings are useful only C if NEXPV=1 and NEXPQ=1 in the input data set model, line (2). C Note that at least one of the velocities must be specified in the C input data. P wave velocity must be positive, other material C parameters must be non-negative. C C Input: C ICB... Index of a complex block. C COOR... Array containing coordinates X1, X2, X3 of the given C point. C None of the input parameters are altered. C C Output: C UP,US...Powers of the P and S wave velocities (the exponent of the C power is NEXPV, see the input data for the model) and C their first and second partial derivatives in order U, U1, C U2, U3, U11, U12, U22, U13, U23, U33, at the given point. C RHO... Density at the given point. C QP,QS...Powers of the P and S wave loss factors (the exponent of C the power is NEXPQ, see the input data for the model) at C the given point. C C Subroutines and external functions required: INTEGER LUWARN EXTERNAL LUWARN,FPOWER,VAL2 C FPOWER...File 'model.for'. C VAL2... File 'val.for'. C CURV2D or CURVBD (alternatives), SURFBD, VAL3BD, SNHCSH, DSPLNZ, C INTRVL... Subroutine package 'FITPACK' (file 'fit.for'). C C Date: 1998, September 20 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER I REAL FAUX(10,47),POWER(47),POWER1,POWER2,POWER3,POWER4,POWER5 EQUIVALENCE (POWER(1),POWER1),(POWER(2),POWER2),(POWER(3),POWER3) EQUIVALENCE (POWER(4),POWER4),(POWER(5),POWER5) REAL AUX(50) C C Constants: REAL C1,C2,C3,C4 PARAMETER (C1=1./15.,C2=2./15.,C3=3./15.,C4=4./15.) C C....................................................................... C CALL VAL2(2,IABS(ICB),47,COOR,FAUX,POWER) C C Velocities: IF(POWER1.NE.0.) THEN IF(FAUX(1,1).LE.0.) GO TO 9 CALL FPOWER(10,FAUX(1,1),POWER1,UP) *V CALL VAR5(1,1) IF(POWER2.NE.0.) THEN IF(FAUX(1,2).LT.0.) GO TO 9 CALL FPOWER(10,FAUX(1,2),POWER2,US) *V CALL VAR5(2,2) ELSE DO 1 I=1,10 US(I)=0.57735*UP(I) 1 CONTINUE *V CALL VAR4(0,0.57735) *V CALL VAR5(2,1) END IF ELSE IF(POWER2.NE.0.) THEN IF(FAUX(1,2).LE.0.) GO TO 9 CALL FPOWER(10,FAUX(1,2),POWER2,US) *V CALL VAR5(2,2) DO 2 I=1,10 UP(I)=1.73205*US(I) 2 CONTINUE *V CALL VAR4(0,1.73205) *V CALL VAR5(1,2) ELSE IF(POWER(06).NE.0..AND.POWER(07).NE.0..AND. * POWER(08).NE.0..AND.POWER(09).NE.0..AND. * POWER(10).NE.0..AND.POWER(11).NE.0..AND. * POWER(15).NE.0..AND.POWER(20).NE.0..AND. * POWER(26).NE.0.) THEN C Isotropic reference medium to the anisotropic material: CALL FPOWER(10,FAUX(1,06),.5*POWER(06),AUX(01)) CALL FPOWER(10,FAUX(1,08),.5*POWER(08),AUX(31)) CALL FPOWER(10,FAUX(1,11),.5*POWER(11),AUX(41)) CALL ADD10(AUX(01),AUX(31),AUX(41)) CALL FPOWER(10,FAUX(1,07),.5*POWER(07),AUX(11)) CALL FPOWER(10,FAUX(1,09),.5*POWER(09),AUX(31)) CALL FPOWER(10,FAUX(1,10),.5*POWER(10),AUX(41)) CALL ADD10(AUX(11),AUX(31),AUX(41)) CALL FPOWER(10,FAUX(1,15),.5*POWER(15),AUX(21)) CALL FPOWER(10,FAUX(1,20),.5*POWER(20),AUX(31)) CALL FPOWER(10,FAUX(1,26),.5*POWER(26),AUX(41)) CALL ADD10(AUX(21),AUX(31),AUX(41)) CALL LIN10(C3,AUX(01), C2,AUX(11),C4,AUX(21),AUX(31)) CALL LIN10(C1,AUX(01),-C1,AUX(11),C3,AUX(21),AUX(41)) CALL FPOWER(10,AUX(31),2.,UP) CALL FPOWER(10,AUX(41),2.,US) ELSE C 321 CALL ERROR('321 in PARM2: No velocity is defined') C Neither P nor S wave velocity in the current complex block C is defined in the input data. END IF END IF END IF C C Density: IF(POWER3.NE.0.) THEN IF(FAUX(1,3).LT.0.) GO TO 9 CALL FPOWER(1,FAUX(1,3),POWER3,AUX) RHO=AUX(1) ELSE RHO=1. END IF C C Loss factors: IF(POWER4.NE.0.) THEN IF(FAUX(1,4).LT.0.) GO TO 9 CALL FPOWER(1,FAUX(1,4),POWER4,AUX) QP=AUX(1) IF(POWER5.NE.0.) THEN IF(FAUX(1,5).LT.0.) GO TO 9 CALL FPOWER(1,FAUX(1,5),POWER5,AUX) QS=AUX(1) ELSE IF(US(1).GT.0.) THEN QS=0.750000*QP*(UP(1)/US(1))**2 ELSE QS=0. END IF END IF ELSE IF(POWER5.NE.0.) THEN IF(FAUX(1,5).LT.0.) GO TO 9 CALL FPOWER(1,FAUX(1,5),POWER5,AUX) QS=AUX(1) QP=1.333333*QS*(US(1)/UP(1))**2 ELSE QP=0. QS=0. END IF END IF RETURN C 9 CONTINUE WRITE(*,'('' X='',F9.3,'' Y='', * F9.3,'' Z='',F9.3/'' VP='',F7.3,'' VS='',F7.3,'' RO='', * F7.3,'' QP='',F7.3,'' QS='',F7.3)') COOR,(FAUX(1,I),I=1,5) IF(LUWARN(0).NE.0) THEN WRITE(LUWARN(0),'('' X='',F9.3,'' Y='', * F9.3,'' Z='',F9.3/'' VP='',F7.3,'' VS='',F7.3,'' RO='', * F7.3,'' QP='',F7.3,'' QS='',F7.3)') COOR,(FAUX(1,I),I=1,5) END IF C 322 CALL ERROR('322 in PARM2: Prohibited material parameter') C P wave velocity must be positive, other material parameters must C be non-negative. END C C----------------------------------------------------------------------- C C C SUBROUTINE ADD10(A,B,C) REAL A(10),B(10),C(10) C C Auxiliary subroutine to PARM2 summing 3 arrays of dimension 10. C C....................................................................... C INTEGER I C DO 10 I=1,10 A(I)=A(I)+B(I)+C(I) 10 CONTINUE RETURN END C C----------------------------------------------------------------------- C C C SUBROUTINE LIN10(C1,A1,C2,A2,C3,A3,A) REAL C1,A1(10),C2,A2(10),C3,A3(10),A(10) C C Auxiliary subroutine to PARM2 evaluating linear combination of C 3 arrays of dimension 10. C C....................................................................... C INTEGER I C DO 10 I=1,10 A(I)=C1*A1(I)+C2*A2(I)+C3*A3(I) 10 CONTINUE RETURN END C C======================================================================= C C C SUBROUTINE PARM3(ICB,COOR,A,RHO,Q) INTEGER ICB REAL COOR(3),A(10,21),RHO,Q(21) C C This subroutine is redundant for isotropic seismic models and codes. C C This subroutine evaluates 21 real parts of the reduced (divided by the C density) elastic parameters, 21 corresponding imaginary parts, and the C density at a given point. The three first and six second partial C derivatives of the 21 real parts of the reduced elastic parameters are C also evaluated. The specified functions are represented as a tensor C product of splines under tension. The parameters may be dependent C either on the general coordinates or on the distribution of another C parameter. The coefficients of these functions are prepared in C subroutine PARM1, in which the input data concerning the distribution C of individual parameters within each complex block are read in. C Variations of real parts of the reduced elastic parameters Aij with C respect to model parameters (evaluated by subroutines VAR*) are C stored in registers 6 to 26. C C Input: C ICB... Index of a complex block. C COOR... Array containing coordinates X1, X2, X3 of the given C point. C None of the input parameters are altered. C C Output: C A... Values, first and second partial derivatives of real C parts of 21 reduced (divided by the density) elastic C parameters. The order of the value, first and second C partial derivatives of each parameter Aij is: C Aij,Aij1,Aij2,Aij3,Aij11,Aij12,Aij22,Aij13,Aij23,Aij33. C The order of parameters (second array index) is: C A11,A12,A22,A13,A23,A33,A14,A24,A34,A44,A15,A25,A35,A45, C A55,A16,A26,A36,A46,A56,A66. C RHO... Density at the given point. C Q... Imaginary parts of 21 reduced elastic parameters at the C given point, ordered as C Q11,Q12,Q22,Q13,Q23,Q33,Q14,Q24,Q34,Q44,Q15,Q25,Q35,Q45, C Q55,Q16,Q26,Q36,Q46,Q56,Q66. C C----------------------------------------------------------------------- C C C C ENTRY PARM4(ISOFLG) INTEGER ISOFLG C C Entry of subroutine PARM3 answering whether the model is isotropic. C C No input. C C Output: C ISOFLG..ISOFLG=0: Anisotropic model. C ISOFLG=1: Isotropic model. C C Common block /MODELC/ for entry PARM4: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: EXTERNAL FPOWER,VAL2 C FPOWER...File 'model.for'. C VAL2... File 'val.for'. C CURV2D or CURVBD (alternatives), SURFBD, VAL3BD, SNHCSH, DSPLNZ, C INTRVL... Subroutine package 'FITPACK' (file 'fit.for'). C C Date: 1998, October 10 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER KA(21),IA,I,I1,I2,IERR REAL FAUX(10,47),POWER(47),POWER3,AUX(10) EQUIVALENCE (POWER(3),POWER3) C Order of processing the reduced elastic parameters: DATA KA/1,3,6,21,15,10,2,4,5,20,19,14,16,17,18,11,12,13,7,8,9/ C C....................................................................... C CALL VAL2(2,IABS(ICB),47,COOR,FAUX,POWER) C C Density: IF(POWER3.NE.0.) THEN IF(FAUX(1,3).LT.0.) THEN IERR=3 GO TO 49 END IF CALL FPOWER(1,FAUX(1,3),POWER3,AUX) RHO=AUX(1) ELSE RHO=1. END IF C C Real-valued elastic parameters: DO 19 I2=1,21 IA=KA(I2) I=IA+5 IF(POWER(I).NE.0.) THEN C Element of the stiffness matrix is specified in the data: IERR=3 IF(I2.LE.6) THEN IF(I2.LE.3) THEN IF(FAUX(1,I).LE.0.) THEN IERR=I GO TO 49 END IF ELSE IF(FAUX(1,I).LT.0.) THEN IERR=I GO TO 49 END IF END IF END IF CALL FPOWER(10,FAUX(1,I),POWER(I),A(1,IA)) *V CALL VAR5(I,I) ELSE IF(I2.LE.3) THEN C Default diagonal stiffnesses A11,A22,A33: IF(POWER(1).NE.0.) THEN C Aij=VP*VP: IF(FAUX(1,1).LE.0.) THEN IERR=1 GO TO 49 END IF CALL FPOWER(10,FAUX(1,1),0.5*POWER(1),A(1,IA)) *V CALL VAR5(I,1) ELSE IF(POWER(2).NE.0.) THEN C Aij=3.*VS*VS: IF(FAUX(1,2).LT.0.) THEN IERR=2 GO TO 49 END IF CALL FPOWER(10,FAUX(1,2),0.5*POWER(2),A(1,IA)) *V CALL VAR5(I,2) DO 11 I1=1,10 A(I1,IA)=3.*A(I1,IA) 11 CONTINUE *V CALL VAR4(0,3.) *V CALL VAR5(I,I) ELSE C 323 CALL ERROR('323 in PARM3: Undefined elastic parameter') C If neither isotropic velocity VP nor VS is specified in the C input data, A11, A22 and A33 must be specified in order to C use this subroutine. END IF ELSE IF(I2.LE.6) THEN C Default diagonal stiffnesses A66,A55,A44: IF(POWER(2).NE.0.) THEN C Aij=VS*VS: IF(FAUX(1,2).LT.0.) THEN IERR=2 GO TO 49 END IF CALL FPOWER(10,FAUX(1,2),0.5*POWER(2),A(1,IA)) *V CALL VAR5(I,2) ELSE IF(POWER(1).NE.0.) THEN C Aij=.333333*VP*VP: IF(FAUX(1,1).LE.0.) THEN IERR=1 GO TO 49 END IF CALL FPOWER(10,FAUX(1,1),0.5*POWER(1),A(1,IA)) *V CALL VAR5(I,1) DO 12 I1=1,10 A(I1,IA)=.333333*A(I1,IA) 12 CONTINUE *V CALL VAR4(0,.333333) *V CALL VAR5(I,I) ELSE C 324 CALL ERROR('324 in PARM3: Undefined elastic parameter') C If neither isotropic velocity VP nor VS is specified in the C input data, A44, A55 and A66 must be specified in order to C use this subroutine. END IF ELSE IF(I2.LE.9) THEN C Default non-diagonal stiffnesses A12,A13,A23: IF(POWER(1).NE.0.) THEN IF(FAUX(1,1).LE.0.) THEN IERR=1 GO TO 49 END IF IF(POWER(2).NE.0.) THEN C Aij=VP*VP-2*VS*VS: IF(FAUX(1,2).LT.0.) THEN IERR=2 GO TO 49 END IF CALL FPOWER(10,FAUX(1,2),0.5*POWER(1),AUX) *V CALL VAR5(I,2) *V CALL VAR4(0,-2.) *V CALL VAR5(I,I) CALL FPOWER(10,FAUX(1,1),0.5*POWER(1),A(1,IA)) *V CALL VAR5(I,1) DO 13 I1=1,10 A(I1,IA)=A(I1,IA)-2.*AUX(I1) 13 CONTINUE ELSE C Aij=.333333*VP*VP: CALL FPOWER(10,FAUX(1,1),0.5*POWER(1),A(1,IA)) *V CALL VAR5(I,1) DO 14 I1=1,10 A(I1,IA)=.333333*A(I1,IA) 14 CONTINUE *V CALL VAR4(0,.333333) *V CALL VAR5(I,I) END IF ELSE IF(POWER(2).NE.0.) THEN C Aij=VS*VS: IF(FAUX(1,2).LT.0.) THEN IERR=2 GO TO 49 END IF CALL FPOWER(10,FAUX(1,2),0.5*POWER(2),A(1,IA)) *V CALL VAR5(I,2) ELSE C 325 CALL ERROR('325 in PARM3: Undefined elastic parameter') C If neither isotropic velocity VP nor VS is specified in C the input data, A45, A46 and A56 must be specified in C order to use this subroutine. END IF END IF ELSE C Default non-diagonal stiffnesses C A56,A46,A45,A16,A26,A36,A15,A25,A35,A14,A24,A34: DO 18 I1=1,10 A(I1,IA)=0. 18 CONTINUE END IF 19 CONTINUE C C Imaginary parts of the elastic parameters: DO 29 I2=1,21 I=I2+26 IF(POWER(I).NE.0.) THEN IF(I2.LE.6) THEN IF(FAUX(1,I).LT.0.) THEN IERR=I GO TO 49 END IF END IF CALL FPOWER(1,FAUX(1,I),POWER(I),Q(I2)) ELSE C Default: Q(I2)=0. END IF 29 CONTINUE C C Check for positive semidefinitness: C *** not coded *** C Error 327: Prohibited elastic parameter: C Both real and imaginary parts of the 6*6 matrix of elastic C parameters (stiffness matrix) must be positively C semi-definite, and the 3*3 upper-left minor of its real C part must be positively definite. The density must be C positive. RETURN C 49 CONTINUE WRITE(*,'('' X='',F9.3,'' Y='',F9.3,'' Z='',F9.3, * '' FAUX(1,'',I2,'')='',F7.3)') COOR,IERR,FAUX(1,IERR) C 326 CALL ERROR('326 in PARM3: Prohibited elastic parameter') C Following parameters must be positive: C FAUX(1, 1)=VP **POWER( 1) C FAUX(1, 6)=A11**POWER( 6) C FAUX(1, 8)=A22**POWER( 8) C FAUX(1,11)=A33**POWER(11) C Following parameters must be non-negative: C FAUX(1, 2)=VS **POWER( 2) C FAUX(1, 3)=RHO**POWER( 3) C FAUX(1,15)=A44**POWER(15) C FAUX(1,20)=A55**POWER(20) C FAUX(1,26)=A66**POWER(26) C FAUX(1,27)=Q11**POWER(27) C FAUX(1,29)=Q22**POWER(29) C FAUX(1,32)=Q33**POWER(32) C FAUX(1,36)=Q44**POWER(36) C FAUX(1,41)=Q55**POWER(41) C FAUX(1,47)=Q66**POWER(47) RETURN C C----------------------------------------------------------------------- C ENTRY PARM4(ISOFLG) C ISOFLG=1 AUX(1)=(BOUNDM(1)+BOUNDM(2))/2. AUX(2)=(BOUNDM(3)+BOUNDM(4))/2. AUX(3)=(BOUNDM(5)+BOUNDM(6))/2. DO 62 I2=1,NCB CALL VAL2(2,I2,47,AUX,FAUX,POWER) DO 61 I1=5,47 IF(POWER(I1).NE.0.) THEN ISOFLG=0 END IF 61 CONTINUE 62 CONTINUE RETURN END C C======================================================================= Cparmv.for 100666 1750 1750 112355 6622461020 12037 0 ustar klimes klimes C
C Subroutine file 'parm.for' for specification and interpolation of the C material parameters of the model in rectangular grids. C C Date: 1998, October 10 C Coded by Ludek Klimes C C....................................................................... C C This file consists of the following subroutines: C PARM1...Subroutine reading the input data for the material C parameters of the model. C PARM1 C PARM2...Subroutine evaluating the isotropic material parameters C including their first and second derivatives. C The functions may be embedded: the independent variable C of the function may be another material parameter of the C same complex block foregoing in the input data. C PARM2 C ADD10...Auxiliary subroutine to PARM2 summing 3 arrays of C dimension 10. C ADD10 C LIN10...Auxiliary subroutine to PARM2 evaluating the linear C combination of 3 arrays of dimension 10. C LIN10 C PARM3...Subroutine evaluating the anisotropic material parameters C including their first and second derivatives. C PARM3 C PARM4...Entry of subroutine PARM3 answering whether the model is C isotropic or anisotropic. C PARM4 C Subroutines PARM1, PARM2, and PARM3, supporting isotropic complete ray C tracing algorithm, anisotropic ray tracing and other seismic modelling C algorithms, only mediate the work of subroutines VAL1, VAL2 and FPOWER C which must be appended. In addition, subroutines CURVN1 (or its C alternative CURVB1), CURV2D (or its alternative CURVBD), SURFB1, C SURFBD, VAL3B1, VAL3BD, VGEN, TERMS, SNHCSH, TRIDEC, TRISOL, DSPLNZ, C INTRVL from the subroutine package 'FITPACK' by Alan Kaylor Cline, C Department of Computer Sciences, University of Texas at Austin, are C used. In the complete ray tracing, this software file 'parm.for' may C be replaced by any user-defined package containing subroutines PARM1 C and PARM2 with the same number, type and meaning of their parameters C as in this file. C C Note: C The lines denoted by '*V' in the first two columns of file C 'parm.for' are designed to calculate the model variations with C respect to the model parameters. C File 'parmv.for', intended for the model inversion, is created C from 'parm.for' by replacing each '*V' in the first two columns C by spaces using program 'clean.for'. Subroutines VAR4 and VAR5 C of file 'var.for' may then be called to handle the variations. C C If model variations are taken into account: C Model variations are assumed to be stored while evaluating the C functions during the invocation of subroutine VAL of file C 'val.for' and subsequent routines of file 'fit.for'. C The variations of P-wave velocity are assumed to be stored in C register 1 of the system VAR*, the variations of S-wave velocity C are assumed to be stored in register 2 of the system VAR*. C Variations of the density and loss (or quality) factors are not C considered, although they may be stored in other registers. C Subroutines VAR4 and VAR5 are called within the subroutine PARM2 C in order to deal with the variations of P and S wave velocities. C C....................................................................... C C C Input data (read in by subroutine PARM1): C These input data define the complex blocks. They are read in by C subroutine PARM1. The number NCB of the complex blocks to be C defined is an input argument of subroutine PARM1. The data are C read in by the list directed input (free format). C (1) NCB-times (i.e. once for each complex block) input data (1A)+(1B): C (1A) TEXTG,ICB C Identification of the complex block. C TEXTG...Any string. Its first 3 characters must differ from C 'VP ', 'VS ', 'DEN', 'QP ', 'QS ', C 'A11', 'A12', 'A22', 'A13', 'A23', 'A33', 'A14', 'A24', C 'A34', 'A44', 'A15', 'A25', 'A35', 'A45', 'A55', 'A16', C 'A26', 'A36', 'A46', 'A56', 'A66', C 'B11', 'B12', 'B22', 'B13', 'B23', 'B33', 'B14', 'B24', C 'B34', 'B44', 'B15', 'B25', 'B35', 'B45', 'B55', 'B16', C 'B26', 'B36', 'B46', 'B56', 'B66', C 'Q11', 'Q12', 'Q22', 'Q13', 'Q23', 'Q33', 'Q14', 'Q24', C 'Q34', 'Q44', 'Q15', 'Q25', 'Q35', 'Q45', 'Q55', 'Q16', C 'Q26', 'Q36', 'Q46', 'Q56', 'Q66', 'END'. C ICB... Index of the complex block. C (1B) Several times 'Input data for one material parameter', see below. C Isotropic complex block: C At least one of velocities 'VP ' and 'VS ' must be specified. C Unspecified isotropic elastic parameters ('VP ', 'VS ', 'QP ', C 'QS ') take their default values. Anisotropic elastic C parameters correspond to the isotropic medium. C Anisotropic complex block with given isotropic reference medium: C Isotropic complex block with one to all anisotropic elastic C parameters specified. Unspecified anisotropic elastic C parameters default to the isotropic medium. C Anisotropic complex block: C At least 9 reduced anisotropic elastic parameters 'A11', 'A12', C 'A22', 'A13', 'A23', 'A33', 'A44', 'A55', and 'A66' must be C specified in the anisotropic complex block. Unspecified C anisotropic elastic parameters default to zeros. C (2) TEXTE,AUX C End of data. C TEXTE...String, the first 3 characters of which must be upper-case C 'END'. C AUX... Any number or a slash. C For an example refer to the sample input data for the model. C C Input data for one material parameter: C The data are read in by the list directed input (free format). In C the list of input data below, each numbered paragraph indicates C the beginning of a new input operation (new read statement). If C the first letter of the symbolic name of the input variable is C I-N, the corresponding value in input data must be of the type C INTEGER. Otherwise (except TEXTF), the input parameter is of the C type REAL. C (1) TEXTF,POWER C Physical meaning of the function. C TEXTF...String identifying which material parameter the function C describes. Only the first 3 characters are significant. C The first 3 characters of the string must be: C 'VP ' for P wave velocity, C 'VS ' for S wave velocity, C 'DEN' for density, C 'QP ' for P wave loss factor, C 'QS ' for S wave loss factor. C 'A11', 'A12', 'A22', 'A13', 'A23', 'A33', 'A14', 'A24', C 'A34', 'A44', 'A15', 'A25', 'A35', 'A45', 'A55', 'A16', C 'A26', 'A36', 'A46', 'A56', or 'A66' for reduced (i.e. C divided by the density) anisotropic elastic parameters C (components of the real part of the symmetric 6*6 C stiffness matrix divided by the density). C 'Q11', 'Q12', 'Q22', 'Q13', 'Q23', 'Q33', 'Q14', 'Q24', C 'Q34', 'Q44', 'Q15', 'Q25', 'Q35', 'Q45', 'Q55', 'Q16', C 'Q26', 'Q36', 'Q46', 'Q56', or 'Q66' for reduced (i.e. C divided by the density) imaginary anisotropic elastic C parameters (components of the imaginary part of the C symmetric 6*6 stiffness matrix divided by the density). C All strings must be entered in uppercase. C POWER...The specified function is equal to the POWER-th power of C the material parameter. C Examples: C For P wave velocity TEXTF='VP ' and POWER=1.0, C for P wave slowness TEXTF='VP ' and POWER=-1.0, C for S wave quadratic slowness TEXTF='VS ' and C POWER=-2.0, C for P wave loss factor TEXTF='QP ' and POWER=1.0, C for S wave quality factor TEXTF='QS ' and POWER=-1.0. C Default values of isotropic elastic parameters not specified in C the input data (subroutine PARM2): C Isotropic complex block or anisotropic complex block with C given isotropic reference medium (at least one of VP and C VS given): C P wave velocity: VP=1.73205*VS, C S wave velocity: VS=0.57735*VP, C Anisotropic complex block (neither VP nor VS given): C Default isotropic parameters are expressed in terms of C anisotropic parameters to allow for application of the C isotropic code to anisotropic models. C Average isotropic medium minimizing the squared norm of C the difference between the Christoffel matrices, C averaged over propagation directions: C AP=A11+A22+A33, C AL=A12+A13+A23, C AS=A44+A55+A66, C VP=SQRT( (3.*AP+2.*AL+4.*AS)/15 ), C VS=SQRT( ( AP - AL+3.*AS)/15 ), C This reference isotropic medium is designed especially C to serve as a basis for anisotropic perturbations. From C this point of view, the variations of the these default C isotropic material parameters with respect to the model C parameters, evaluated by means of subroutines VAR*, are C unnecessary. No variations of the above defaults are C thus set in PARM2. C In any case: C Density: RHO=1, C P wave loss factor (if S wave loss factor is specified): C QP=1.333333*QS*(US(1)/UP(1))**2, C S wave loss factor (if P wave loss factor is specified): C QS=0.750000*QP*(UP(1)/US(1))**2, C P and S wave loss factors (if none of them is given): C QP=0.0, QS=0.0. C Default values of anisotropic elastic parameters not specified in C the input data (subroutine PARM3): C Isotropic complex block or anisotropic complex block with C given isotropic reference medium (at least one of VP and C VS given): C Default anisotropic parameters are expressed in terms of C isotropic parameters for the sake of continuity with C isotropic models: C A11=A22=A33= VP*VP, C A12=A13=A23= VP*VP-2*VS*VS, C A44=A55=A66= VS*VS, C A14=A24=A34=A15=A25=A35=A45=A16=A26=A36=A46=A56= 0. C Anisotropic complex block (neither VP nor VS given): C Aij=0. C In any case: C RHO=1, C Qij=0 in this version. C (2) IVAR1,IVAR2,IVAR3,SIGMA,POWERW,/ C The form of the function. C IVAR1,IVAR2,IVAR3... Denote the form of the function. The function C must be of the form C F(X1,X2,X3) = W(A1,A2,A3)-B1-B2-B3 . C X1, X2, X3 are the general coordinates. Each of A1, A2, C A3, B1, B2, B3 must be either: (a) one of general C coordinates X1, X2, X3, (b) another previously defined C function F(X1,X2,X3) of the same complex block, or (c) C must be left out. At most 3 of parameters A1-B3 may be of C kind (a) or (b). Note that IVAR1 controls the type of A1 C and B1, IVAR2 controls the type of A2 and B2, IVAR3 C controls the type of A3 and B3. C For IVAR1.EQ.0: A1, B1 are empty (left out). C For IVAR1.EQ.1: A1=X1, B1 is empty. C For IVAR1.EQ.2: A1=X2, B1 is empty. C For IVAR1.EQ.3: A1=X3, B1 is empty. C For IVAR1.GE.4: A1=F(X1,X2,X3), where F(X1,X2,X3) is C another function of the same complex block defined in C the input data as the (IVAR1-3)-th function of the C complex block. B1 is empty. C Example: C If density=1.7+0.2*VP then the interpolated function C is W(A1,A2,A3)=1.7+0.2*A1 with the independent C variable A1=VP(X1,X2,X3). This is specified by C IVAR1=4, IVAR2=0, IVAR3=0 if VP is the first read in C parameter, by IVAR1=5, IVAR2=0, IVAR3=0 if VP is the C second read in parameter, etc. C The possible alternatives are W(A1,A2,A3)=1.7+0.2*A2 C with A2=VP(X1,X2,X3) specified by IVAR1=0, C IVAR2=(4 or 5 or the like), IVAR3=0, and C W(A1,A2,A3)=1.7+0.2*A3 with A3=VP(X1,X2,X3) specified C by IVAR1=0, IVAR3=2, IVAR3=(4 or 5 or the like). C For IVAR1.EQ.-1: B1=X1, A1 is empty. C For IVAR1.EQ.-2: B1=X2, A1 is empty. C For IVAR1.EQ.-3: B1=X3, A1 is empty. C For IVAR1.GE.-4: B1=F(X1,X2,X3), where F(X1,X2,X3) is C another function of the same complex block defined in C the input data as the (-IVAR1-3)-th function of the C complex block. A1 is empty. C The meaning of the parameters IVAR2, IVAR3 is similar. C Examples: C IVAR1: IVAR2: IVAR3: the form of the function: C 1 2 3 F(X1,X2,X3)=W(X1,X2,X3) C 3 1 2 F(X1,X2,X3)=W(X3,X1,X2) C 1 2 0 F(X1,X2,X3)=W(X1,X2) C 5 0 0 F(X1,X2,X3)=W(F2(X1,X2,X3)), where C F2(X1,X2,X3) is the second material parameter of the C complex block defined in the input data. Function W is C interpolated by means of splines under tension. C SIGMA...Is the tension factor (its sign is ignored). This value C indicates the curviness desired. If ABS(SIGMA) is nearly C zero (e.g. 0.001), the resulting surface is approximately C the tensor product of cubic splines. If ABS(SIGMA) is C large (e.g. 50.), the resulting surface is approximately C tri-linear. If SIGMA equals zero, tensor products of C cubic splines result. A recommended value for SIGMA is C approximately 1. In absolute value. C POWERW..Given grid values (7) correspond to the POWERW-th power of C interpolated function W. The given grid values (7) are C thus raised to the (1/POWERW)-th power immediately after C reading and then interpolated. C /... Obligatory slash at the end of line for future extensions. C Default: IVAR1=0, IVAR2=0, IVAR3=0, SIGMA=0, POWERW=1. C (3) NX(1),...,NX(NVAR) C The numbers of grid coordinates for the interpolation. C This input is performed if at least one of IVAR1, IVAR2, IVAR3 is C positive. C Each of NX(1),...,NX(NVAR) corresponds to one positive value of C IVAR1, IVAR2, IVAR3 and specifies the number of grid coordinates C corresponding to that independent variable of function W, see (2). C The sign of NX(1),...,NX(NVAR) is ignored. NVAR (.LE.3) is the C number of positive values of the above quantities IVAR1, IVAR2, C IVAR3, i.e. the number of independent variables of function W, C see (1). C (4) X1(1),...,X1(NX(1)) C The grid coordinates corresponding to the first independent C variable of function W, see (2). C This input is performed if NX(1) is specified, see (3), and is not C zero. The grid coordinates may be specified in any order. C (5) X2(1),...,X2(NX(2)) C The grid coordinates corresponding to the second independent C variable of function W, see (2). C This input is performed if NX(2) is specified, see (3), and is not C zero. The grid coordinates may be specified in any order. C (6) X3(1),...,X3(NX(3)) C The grid coordinates corresponding to the third independent C variable of function W, see (2). C This input is performed if NX(3) is specified, see (3), and is not C zero. The grid coordinates may be specified in any order. C (7) (((W(I,J,K),I=1,MAX(NX(1),1)),J=1,MAX(NX(2),1)),K=1,MAX(NX(3),1)) C the values of function W at grid points. Function value W(i,j,k) C corresponds to point (X1(I),X2(J),X3(K)). C C======================================================================= C C C SUBROUTINE PARM1(LUN,NCB) INTEGER LUN,NCB C C This subroutine reads the input data for the distributions of the C material parameters: C In the isotropic complex blocks: C P and S wave velocities, density, P and S wave loss factors C in the anisotropic complex blocks: C 21 real parts of the reduced (divided by the density) elastic C parameters, 21 corresponding imaginary parts, density. C Reference isotropic P and S velocities and loss factors may also be C specified together with anisotropic material parameters. C When reading the data, subroutine PARM1 also determines the parameters C necessary to compute an interpolatory function on a three dimensional C rectangular grid, and stores them in the memory. The function C determined can be represented as a tensor product of splines under C tension. The functions may be embedded. For actual interpolation of C material parameters it is necessary to call subroutine PARM2 for C isotropic model (or mean isotropic model corresponding to the C anisotropic model), or subroutine PARM3 for anisotropic material C parameters of the isotropic or anisotropic model. Subroutines PARM2 C and PARM3 also return the first and second partial derivatives of C propagation velocities or reduced elastic parameters. Subroutine C PARM1 may be called several times. The complex blocks are indexed C successively, following the complex blocks defined during the previous C invocations. C C Input: C LUN... Logical unit number of the external input device C containing the input data. C NCB... Number of the material complex blocks for which the input C data are specified during the current invocation of PARM1. C None of the input parameters are altered. C C No output. C C Subroutines and external functions required: EXTERNAL VAL1 C VAL1, SORTV, READV... File 'val.for'. C CURVN1 or CURVB1 (alternatives), SURFB1, VAL3B1, SNHCSH, VGEN, C TERMS, TRIDEC, TRISOL... Subroutine package 'FITPACK' C (file 'fit.for'). C C Date: 1995, December 17 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: CHARACTER*3 TFUNCT(47) DATA TFUNCT/'VP ','VS ','DEN','QP ','QS ', *'A11','A12','A22','A13','A23','A33','A14','A24','A34','A44', *'A15','A25','A35','A45','A55','A16','A26','A36','A46','A56','A66', *'Q11','Q12','Q22','Q13','Q23','Q33','Q14','Q24','Q34','Q44', *'Q15','Q25','Q35','Q45','Q55','Q16','Q26','Q36','Q46','Q56','Q66'/ C CALL VAL1(LUN,2,NCB,47,TFUNCT) RETURN END C C======================================================================= C C C SUBROUTINE PARM2(ICB,COOR,UP,US,RHO,QP,QS) INTEGER ICB REAL COOR(3),UP(10),US(10),RHO,QP,QS C C This subroutine evaluates P and S wave velocities, density, and P and C S wave loss factors at a given point. The three first and six second C partial derivatives of the velocities are also evaluated. The C specified functions are represented as a tensor product of splines C under tension. The parameters may be dependent either on the general C coordinates or on the distribution of another parameter, e.g. C VS=0.577*VP or RHO=1.7+0.2*VP, where VP, VS and RHO are P and S C velocities and density. The coefficients of these functions are C prepared in subroutine PARM1, in which the input data concerning the C distribution of individual parameters within each complex block are C read in. The default values of parameters not specified in the input C data are: C P wave velocity: VP=1.73205*VS, C S wave velocity: VS=0.57735*VP, C Density: RHO=1.0, C P wave loss factor (if the S wave loss factor is specified): C QP=1.333333*QS*(US(1)/UP(1))**2, C S wave loss factor (if the P wave loss factor is specified): C QS=0.750000*QP*(UP(1)/US(1))**2, C P and S wave loss factors (if none of them is specified): C QP=0.0, QS=0.0. C Attention: The above default values are reasonable only if arguments C UP and US of this subroutine are velocities, and QP and QS loss C factors. In other words, these default settings are useful only C if NEXPV=1 and NEXPQ=1 in the input data set model, line (2). C Note that at least one of the velocities must be specified in the C input data. P wave velocity must be positive, other material C parameters must be non-negative. C C Input: C ICB... Index of a complex block. C COOR... Array containing coordinates X1, X2, X3 of the given C point. C None of the input parameters are altered. C C Output: C UP,US...Powers of the P and S wave velocities (the exponent of the C power is NEXPV, see the input data for the model) and C their first and second partial derivatives in order U, U1, C U2, U3, U11, U12, U22, U13, U23, U33, at the given point. C RHO... Density at the given point. C QP,QS...Powers of the P and S wave loss factors (the exponent of C the power is NEXPQ, see the input data for the model) at C the given point. C C Subroutines and external functions required: INTEGER LUWARN EXTERNAL LUWARN,FPOWER,VAL2 C FPOWER...File 'model.for'. C VAL2... File 'val.for'. C CURV2D or CURVBD (alternatives), SURFBD, VAL3BD, SNHCSH, DSPLNZ, C INTRVL... Subroutine package 'FITPACK' (file 'fit.for'). C C Date: 1998, September 20 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER I REAL FAUX(10,47),POWER(47),POWER1,POWER2,POWER3,POWER4,POWER5 EQUIVALENCE (POWER(1),POWER1),(POWER(2),POWER2),(POWER(3),POWER3) EQUIVALENCE (POWER(4),POWER4),(POWER(5),POWER5) REAL AUX(50) C C Constants: REAL C1,C2,C3,C4 PARAMETER (C1=1./15.,C2=2./15.,C3=3./15.,C4=4./15.) C C....................................................................... C CALL VAL2(2,IABS(ICB),47,COOR,FAUX,POWER) C C Velocities: IF(POWER1.NE.0.) THEN IF(FAUX(1,1).LE.0.) GO TO 9 CALL FPOWER(10,FAUX(1,1),POWER1,UP) CALL VAR5(1,1) IF(POWER2.NE.0.) THEN IF(FAUX(1,2).LT.0.) GO TO 9 CALL FPOWER(10,FAUX(1,2),POWER2,US) CALL VAR5(2,2) ELSE DO 1 I=1,10 US(I)=0.57735*UP(I) 1 CONTINUE CALL VAR4(0,0.57735) CALL VAR5(2,1) END IF ELSE IF(POWER2.NE.0.) THEN IF(FAUX(1,2).LE.0.) GO TO 9 CALL FPOWER(10,FAUX(1,2),POWER2,US) CALL VAR5(2,2) DO 2 I=1,10 UP(I)=1.73205*US(I) 2 CONTINUE CALL VAR4(0,1.73205) CALL VAR5(1,2) ELSE IF(POWER(06).NE.0..AND.POWER(07).NE.0..AND. * POWER(08).NE.0..AND.POWER(09).NE.0..AND. * POWER(10).NE.0..AND.POWER(11).NE.0..AND. * POWER(15).NE.0..AND.POWER(20).NE.0..AND. * POWER(26).NE.0.) THEN C Isotropic reference medium to the anisotropic material: CALL FPOWER(10,FAUX(1,06),.5*POWER(06),AUX(01)) CALL FPOWER(10,FAUX(1,08),.5*POWER(08),AUX(31)) CALL FPOWER(10,FAUX(1,11),.5*POWER(11),AUX(41)) CALL ADD10(AUX(01),AUX(31),AUX(41)) CALL FPOWER(10,FAUX(1,07),.5*POWER(07),AUX(11)) CALL FPOWER(10,FAUX(1,09),.5*POWER(09),AUX(31)) CALL FPOWER(10,FAUX(1,10),.5*POWER(10),AUX(41)) CALL ADD10(AUX(11),AUX(31),AUX(41)) CALL FPOWER(10,FAUX(1,15),.5*POWER(15),AUX(21)) CALL FPOWER(10,FAUX(1,20),.5*POWER(20),AUX(31)) CALL FPOWER(10,FAUX(1,26),.5*POWER(26),AUX(41)) CALL ADD10(AUX(21),AUX(31),AUX(41)) CALL LIN10(C3,AUX(01), C2,AUX(11),C4,AUX(21),AUX(31)) CALL LIN10(C1,AUX(01),-C1,AUX(11),C3,AUX(21),AUX(41)) CALL FPOWER(10,AUX(31),2.,UP) CALL FPOWER(10,AUX(41),2.,US) ELSE C 321 CALL ERROR('321 in PARM2: No velocity is defined') C Neither P nor S wave velocity in the current complex block C is defined in the input data. END IF END IF END IF C C Density: IF(POWER3.NE.0.) THEN IF(FAUX(1,3).LT.0.) GO TO 9 CALL FPOWER(1,FAUX(1,3),POWER3,AUX) RHO=AUX(1) ELSE RHO=1. END IF C C Loss factors: IF(POWER4.NE.0.) THEN IF(FAUX(1,4).LT.0.) GO TO 9 CALL FPOWER(1,FAUX(1,4),POWER4,AUX) QP=AUX(1) IF(POWER5.NE.0.) THEN IF(FAUX(1,5).LT.0.) GO TO 9 CALL FPOWER(1,FAUX(1,5),POWER5,AUX) QS=AUX(1) ELSE IF(US(1).GT.0.) THEN QS=0.750000*QP*(UP(1)/US(1))**2 ELSE QS=0. END IF END IF ELSE IF(POWER5.NE.0.) THEN IF(FAUX(1,5).LT.0.) GO TO 9 CALL FPOWER(1,FAUX(1,5),POWER5,AUX) QS=AUX(1) QP=1.333333*QS*(US(1)/UP(1))**2 ELSE QP=0. QS=0. END IF END IF RETURN C 9 CONTINUE WRITE(*,'('' X='',F9.3,'' Y='', * F9.3,'' Z='',F9.3/'' VP='',F7.3,'' VS='',F7.3,'' RO='', * F7.3,'' QP='',F7.3,'' QS='',F7.3)') COOR,(FAUX(1,I),I=1,5) IF(LUWARN(0).NE.0) THEN WRITE(LUWARN(0),'('' X='',F9.3,'' Y='', * F9.3,'' Z='',F9.3/'' VP='',F7.3,'' VS='',F7.3,'' RO='', * F7.3,'' QP='',F7.3,'' QS='',F7.3)') COOR,(FAUX(1,I),I=1,5) END IF C 322 CALL ERROR('322 in PARM2: Prohibited material parameter') C P wave velocity must be positive, other material parameters must C be non-negative. END C C----------------------------------------------------------------------- C C C SUBROUTINE ADD10(A,B,C) REAL A(10),B(10),C(10) C C Auxiliary subroutine to PARM2 summing 3 arrays of dimension 10. C C....................................................................... C INTEGER I C DO 10 I=1,10 A(I)=A(I)+B(I)+C(I) 10 CONTINUE RETURN END C C----------------------------------------------------------------------- C C C SUBROUTINE LIN10(C1,A1,C2,A2,C3,A3,A) REAL C1,A1(10),C2,A2(10),C3,A3(10),A(10) C C Auxiliary subroutine to PARM2 evaluating linear combination of C 3 arrays of dimension 10. C C....................................................................... C INTEGER I C DO 10 I=1,10 A(I)=C1*A1(I)+C2*A2(I)+C3*A3(I) 10 CONTINUE RETURN END C C======================================================================= C C C SUBROUTINE PARM3(ICB,COOR,A,RHO,Q) INTEGER ICB REAL COOR(3),A(10,21),RHO,Q(21) C C This subroutine is redundant for isotropic seismic models and codes. C C This subroutine evaluates 21 real parts of the reduced (divided by the C density) elastic parameters, 21 corresponding imaginary parts, and the C density at a given point. The three first and six second partial C derivatives of the 21 real parts of the reduced elastic parameters are C also evaluated. The specified functions are represented as a tensor C product of splines under tension. The parameters may be dependent C either on the general coordinates or on the distribution of another C parameter. The coefficients of these functions are prepared in C subroutine PARM1, in which the input data concerning the distribution C of individual parameters within each complex block are read in. C Variations of real parts of the reduced elastic parameters Aij with C respect to model parameters (evaluated by subroutines VAR*) are C stored in registers 6 to 26. C C Input: C ICB... Index of a complex block. C COOR... Array containing coordinates X1, X2, X3 of the given C point. C None of the input parameters are altered. C C Output: C A... Values, first and second partial derivatives of real C parts of 21 reduced (divided by the density) elastic C parameters. The order of the value, first and second C partial derivatives of each parameter Aij is: C Aij,Aij1,Aij2,Aij3,Aij11,Aij12,Aij22,Aij13,Aij23,Aij33. C The order of parameters (second array index) is: C A11,A12,A22,A13,A23,A33,A14,A24,A34,A44,A15,A25,A35,A45, C A55,A16,A26,A36,A46,A56,A66. C RHO... Density at the given point. C Q... Imaginary parts of 21 reduced elastic parameters at the C given point, ordered as C Q11,Q12,Q22,Q13,Q23,Q33,Q14,Q24,Q34,Q44,Q15,Q25,Q35,Q45, C Q55,Q16,Q26,Q36,Q46,Q56,Q66. C C----------------------------------------------------------------------- C C C C ENTRY PARM4(ISOFLG) INTEGER ISOFLG C C Entry of subroutine PARM3 answering whether the model is isotropic. C C No input. C C Output: C ISOFLG..ISOFLG=0: Anisotropic model. C ISOFLG=1: Isotropic model. C C Common block /MODELC/ for entry PARM4: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: EXTERNAL FPOWER,VAL2 C FPOWER...File 'model.for'. C VAL2... File 'val.for'. C CURV2D or CURVBD (alternatives), SURFBD, VAL3BD, SNHCSH, DSPLNZ, C INTRVL... Subroutine package 'FITPACK' (file 'fit.for'). C C Date: 1998, October 10 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER KA(21),IA,I,I1,I2,IERR REAL FAUX(10,47),POWER(47),POWER3,AUX(10) EQUIVALENCE (POWER(3),POWER3) C Order of processing the reduced elastic parameters: DATA KA/1,3,6,21,15,10,2,4,5,20,19,14,16,17,18,11,12,13,7,8,9/ C C....................................................................... C CALL VAL2(2,IABS(ICB),47,COOR,FAUX,POWER) C C Density: IF(POWER3.NE.0.) THEN IF(FAUX(1,3).LT.0.) THEN IERR=3 GO TO 49 END IF CALL FPOWER(1,FAUX(1,3),POWER3,AUX) RHO=AUX(1) ELSE RHO=1. END IF C C Real-valued elastic parameters: DO 19 I2=1,21 IA=KA(I2) I=IA+5 IF(POWER(I).NE.0.) THEN C Element of the stiffness matrix is specified in the data: IERR=3 IF(I2.LE.6) THEN IF(I2.LE.3) THEN IF(FAUX(1,I).LE.0.) THEN IERR=I GO TO 49 END IF ELSE IF(FAUX(1,I).LT.0.) THEN IERR=I GO TO 49 END IF END IF END IF CALL FPOWER(10,FAUX(1,I),POWER(I),A(1,IA)) CALL VAR5(I,I) ELSE IF(I2.LE.3) THEN C Default diagonal stiffnesses A11,A22,A33: IF(POWER(1).NE.0.) THEN C Aij=VP*VP: IF(FAUX(1,1).LE.0.) THEN IERR=1 GO TO 49 END IF CALL FPOWER(10,FAUX(1,1),0.5*POWER(1),A(1,IA)) CALL VAR5(I,1) ELSE IF(POWER(2).NE.0.) THEN C Aij=3.*VS*VS: IF(FAUX(1,2).LT.0.) THEN IERR=2 GO TO 49 END IF CALL FPOWER(10,FAUX(1,2),0.5*POWER(2),A(1,IA)) CALL VAR5(I,2) DO 11 I1=1,10 A(I1,IA)=3.*A(I1,IA) 11 CONTINUE CALL VAR4(0,3.) CALL VAR5(I,I) ELSE C 323 CALL ERROR('323 in PARM3: Undefined elastic parameter') C If neither isotropic velocity VP nor VS is specified in the C input data, A11, A22 and A33 must be specified in order to C use this subroutine. END IF ELSE IF(I2.LE.6) THEN C Default diagonal stiffnesses A66,A55,A44: IF(POWER(2).NE.0.) THEN C Aij=VS*VS: IF(FAUX(1,2).LT.0.) THEN IERR=2 GO TO 49 END IF CALL FPOWER(10,FAUX(1,2),0.5*POWER(2),A(1,IA)) CALL VAR5(I,2) ELSE IF(POWER(1).NE.0.) THEN C Aij=.333333*VP*VP: IF(FAUX(1,1).LE.0.) THEN IERR=1 GO TO 49 END IF CALL FPOWER(10,FAUX(1,1),0.5*POWER(1),A(1,IA)) CALL VAR5(I,1) DO 12 I1=1,10 A(I1,IA)=.333333*A(I1,IA) 12 CONTINUE CALL VAR4(0,.333333) CALL VAR5(I,I) ELSE C 324 CALL ERROR('324 in PARM3: Undefined elastic parameter') C If neither isotropic velocity VP nor VS is specified in the C input data, A44, A55 and A66 must be specified in order to C use this subroutine. END IF ELSE IF(I2.LE.9) THEN C Default non-diagonal stiffnesses A12,A13,A23: IF(POWER(1).NE.0.) THEN IF(FAUX(1,1).LE.0.) THEN IERR=1 GO TO 49 END IF IF(POWER(2).NE.0.) THEN C Aij=VP*VP-2*VS*VS: IF(FAUX(1,2).LT.0.) THEN IERR=2 GO TO 49 END IF CALL FPOWER(10,FAUX(1,2),0.5*POWER(1),AUX) CALL VAR5(I,2) CALL VAR4(0,-2.) CALL VAR5(I,I) CALL FPOWER(10,FAUX(1,1),0.5*POWER(1),A(1,IA)) CALL VAR5(I,1) DO 13 I1=1,10 A(I1,IA)=A(I1,IA)-2.*AUX(I1) 13 CONTINUE ELSE C Aij=.333333*VP*VP: CALL FPOWER(10,FAUX(1,1),0.5*POWER(1),A(1,IA)) CALL VAR5(I,1) DO 14 I1=1,10 A(I1,IA)=.333333*A(I1,IA) 14 CONTINUE CALL VAR4(0,.333333) CALL VAR5(I,I) END IF ELSE IF(POWER(2).NE.0.) THEN C Aij=VS*VS: IF(FAUX(1,2).LT.0.) THEN IERR=2 GO TO 49 END IF CALL FPOWER(10,FAUX(1,2),0.5*POWER(2),A(1,IA)) CALL VAR5(I,2) ELSE C 325 CALL ERROR('325 in PARM3: Undefined elastic parameter') C If neither isotropic velocity VP nor VS is specified in C the input data, A45, A46 and A56 must be specified in C order to use this subroutine. END IF END IF ELSE C Default non-diagonal stiffnesses C A56,A46,A45,A16,A26,A36,A15,A25,A35,A14,A24,A34: DO 18 I1=1,10 A(I1,IA)=0. 18 CONTINUE END IF 19 CONTINUE C C Imaginary parts of the elastic parameters: DO 29 I2=1,21 I=I2+26 IF(POWER(I).NE.0.) THEN IF(I2.LE.6) THEN IF(FAUX(1,I).LT.0.) THEN IERR=I GO TO 49 END IF END IF CALL FPOWER(1,FAUX(1,I),POWER(I),Q(I2)) ELSE C Default: Q(I2)=0. END IF 29 CONTINUE C C Check for positive semidefinitness: C *** not coded *** C Error 327: Prohibited elastic parameter: C Both real and imaginary parts of the 6*6 matrix of elastic C parameters (stiffness matrix) must be positively C semi-definite, and the 3*3 upper-left minor of its real C part must be positively definite. The density must be C positive. RETURN C 49 CONTINUE WRITE(*,'('' X='',F9.3,'' Y='',F9.3,'' Z='',F9.3, * '' FAUX(1,'',I2,'')='',F7.3)') COOR,IERR,FAUX(1,IERR) C 326 CALL ERROR('326 in PARM3: Prohibited elastic parameter') C Following parameters must be positive: C FAUX(1, 1)=VP **POWER( 1) C FAUX(1, 6)=A11**POWER( 6) C FAUX(1, 8)=A22**POWER( 8) C FAUX(1,11)=A33**POWER(11) C Following parameters must be non-negative: C FAUX(1, 2)=VS **POWER( 2) C FAUX(1, 3)=RHO**POWER( 3) C FAUX(1,15)=A44**POWER(15) C FAUX(1,20)=A55**POWER(20) C FAUX(1,26)=A66**POWER(26) C FAUX(1,27)=Q11**POWER(27) C FAUX(1,29)=Q22**POWER(29) C FAUX(1,32)=Q33**POWER(32) C FAUX(1,36)=Q44**POWER(36) C FAUX(1,41)=Q55**POWER(41) C FAUX(1,47)=Q66**POWER(47) RETURN C C----------------------------------------------------------------------- C ENTRY PARM4(ISOFLG) C ISOFLG=1 AUX(1)=(BOUNDM(1)+BOUNDM(2))/2. AUX(2)=(BOUNDM(3)+BOUNDM(4))/2. AUX(3)=(BOUNDM(5)+BOUNDM(6))/2. DO 62 I2=1,NCB CALL VAL2(2,I2,47,AUX,FAUX,POWER) DO 61 I1=5,47 IF(POWER(I1).NE.0.) THEN ISOFLG=0 END IF 61 CONTINUE 62 CONTINUE RETURN END C C======================================================================= Cprem/ 40777 1750 1750 0 6613213026 11002 5 ustar klimes klimes prem/prem-mod.dat 100666 1750 1750 34114 6223642700 13336 0 ustar klimes klimes 'Data file prem-mod.dat: PREM (Preliminary Reference Earth Model)' 2 / (GEOGRAPHIC SPHERICAL COORDINATES IN RADIANS) 0.00 6.28 -1.57 1.57 0 6400 / (BOUNDARIES OF THE MODEL) 13 SURFACES 13 SIMPLE BLOCKS 1 -2 / 2 -3 / 3 -4 / 4 -5 / 5 -6 / 6 -7 / 7 -8 / 8 -9 / 9 -10 / 10 -11 / 11 -12 / 12 -13 / 13 / 13 COMPLEX BLOCKS 1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 / 11 / 12 / 13 / 'EARTH SURFACE' 1 -3 0 0 0 / 6371.0 'OCEAN BOTTOM' 2 -3 0 0 0 / 6368.0 'CONRAD DISCONTINUITY' 3 -3 0 0 0 / 6356.0 'MOHO DISCONTINUITY' 4 -3 0 0 0 / 6346.6 'LVZ-LID INTERFACE' 5 -3 0 0 0 / 6291.0 'TOP OF TRANSITION ZONE' 6 -3 0 0 0 / 6151.0 '20-DEGREE DISCONTINUITY' 7 -3 0 0 0 / 5971.0 '2-ND ORDER INTERFACE' 8 -3 0 0 0 / 5771.0 'BOTTOM OF TRANSITION ZONE' 9 -3 0 0 0 / 5701.0 '2-ND ORDER INTERFACE' 10 -3 0 0 0 / 5600.0 '2-ND ORDER INTERFACE' 11 -3 0 0 0 / 3630.0 'CORE-MANTLE BOUNDARY' 12 -3 0 0 0 / 3480.0 'INNER-OUTER CORE INTERFACE' 13 -3 0 0 0 / 1221.5 'END OF SURFACES' / 'OCEAN' 1 'VP ' 1 0 0 0 0 / (I.E. VP=CONSTANT) 1.45000 'VS ' 1 0 0 0 0 / (I.E. VS=CONSTANT) 0. 'DEN' 1 0 0 0 0 / (I.E. DENSITY=CONSTANT) 1.02000 'QP ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 57822. 'CRUST' 2 'VP ' 1 0 0 0 0 / (I.E. VP=CONSTANT) 5.80000 'VS ' 1 0 0 0 0 / (I.E. VS=CONSTANT) 3.20000 'DEN' 1 0 0 0 0 / (I.E. DENSITY=CONSTANT) 2.60000 'QP ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 1456. 'QS ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 600. 'CRUST' 3 'VP ' 1 0 0 0 0 / (I.E. VP=CONSTANT) 6.80000 'VS ' 1 0 0 0 0 / (I.E. VS=CONSTANT) 3.90000 'DEN' 1 0 0 0 0 / (I.E. DENSITY=CONSTANT) 2.90000 'QP ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 1350. 'QS ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 600. 'LID' 4 'VP ' 1 3 0 0 0 / (I.E. VP=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 6346.6 6291.0 8.11061 8.07689 'VS ' 1 3 0 0 0 / (I.E. VS=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 6346.6 6291.0 4.49094 4.46954 'DEN' 1 3 0 0 0 / (I.E. DENSITY=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 6346.6 6291.0 3.38076 3.37471 'QP ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 1447. 'QS ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 600. 'LVZ' 5 'VP ' 1 3 0 0 0 / (I.E. VP=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 6291.0 6151.0 8.07689 7.98970 'VS ' 1 3 0 0 0 / (I.E. VS=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 6291.0 6151.0 4.46954 4.41885 'DEN' 1 3 0 0 0 / (I.E. DENSITY=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 6291.0 6151.0 3.37471 3.35950 'QP ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 195. 'QS ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 80. 'TRANSITION ZONE' 6 'VP ' 1 3 0 0 0 / (I.E. VP=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 6151.0 5971.0 8.55896 8.90522 'VS ' 1 3 0 0 0 / (I.E. VS=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 6151.0 5971.0 4.64391 4.76989 'DEN' 1 3 0 0 0 / (I.E. DENSITY=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 6151.0 5971.0 3.43578 3.54325 'QP ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 367. 'QS ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 143. 'TRANSITION ZONE' 7 'VP ' 1 3 0 0 0 / (I.E. VP=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 5971.0 5771.0 9.13397 10.15782 'VS ' 1 3 0 0 0 / (I.E. VS=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 5971.0 5771.0 4.93259 5.51601 'DEN' 1 3 0 0 0 / (I.E. DENSITY=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 5971.0 5771.0 3.72378 3.97584 'QP ' -1 3 0 0 0 / (I.E. QUALITY=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 5971.0 5771.0 366. 362. 'QS ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 143. 'TRANSITION ZONE' 8 'VP ' 1 3 0 0 0 / (I.E. VP=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 5771.0 5701.0 10.15782 10.26622 'VS ' 1 3 0 0 0 / (I.E. VS=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 5771.0 5701.0 5.51601 5.57020 'DEN' 1 3 0 0 0 / (I.E. DENSITY=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 5771.0 5701.0 3.97584 3.99214 'QP ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 362. 'QS ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 143. 'LOWER MANTLE' 9 'VP ' 1 3 0 0 0 / (I.E. VP=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 5701.0 5600.0 10.75131 11.06557 'VS ' 1 3 0 0 0 / (I.E. VS=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 5701.0 5600.0 5.94508 6.24046 'DEN' 1 3 0 0 0 / (I.E. DENSITY=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 5701.0 5600.0 4.38071 4.44317 'QP ' -1 3 0 0 0 / (I.E. QUALITY=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 5701.0 5600.0 759. 730. 'QS ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 312. 'LOWER MANTLE' 10 'VP ' 1 3 0 0 0 / (I.E. VP=W(X3), TENSION=0) 21 (NUMBER OF GRID POINTS) 5600.0 5500.0 5400.0 5300.0 5200.0 5100.0 5000.0 4900.0 4800.0 4700.0 4600.0 4500.0 4400.0 4300.0 4200.0 4100.0 4000.0 3900.0 3800.0 3700.0 3630.0 11.06557 11.24490 11.41560 11.57828 11.73357 11.88209 12.02445 12.16126 12.29316 12.42075 12.54466 12.66550 12.78389 12.90045 13.01579 13.13055 13.24532 13.36074 13.47742 13.59597 13.68041 'VS ' 1 3 0 0 0 / (I.E. VS=W(X3), TENSION=0) 21 (NUMBER OF GRID POINTS) 5600.0 5500.0 5400.0 5300.0 5200.0 5100.0 5000.0 4900.0 4800.0 4700.0 4600.0 4500.0 4400.0 4300.0 4200.0 4100.0 4000.0 3900.0 3800.0 3700.0 3630.0 6.24046 6.31091 6.37813 6.44232 6.50370 6.56250 6.61891 6.67317 6.72548 6.77606 6.82512 6.87289 6.91957 6.96538 7.01053 7.05525 7.09974 7.14423 7.18892 7.23403 7.26597 'DEN' 1 3 0 0 0 / (I.E. DENSITY=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 5600.0 3630.0 4.44317 5.49145 'QP ' -1 3 0 0 0 / (I.E. QUALITY=W(X3), TENSION=0) 3 (NUMBER OF GRID POINTS) 5600.0 4600.0 3630.0 730. 785. 822. 'QS ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 312. 'LOWER MANTLE' 11 'VP ' 1 3 0 0 0 / (I.E. VP=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 3630.0 3480.0 13.68041 13.71660 'VS ' 1 3 0 0 0 / (I.E. VS=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 3630.0 3480.0 7.26597 7.26466 'DEN' 1 3 0 0 0 / (I.E. DENSITY=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 3630.0 3480.0 5.49145 5.56645 'QP ' -1 3 0 0 0 / (I.E. QUALITY=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 3630.0 3480.0 822. 836. 'QS ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 312. 'OUTER CORE' 12 'VP ' 1 3 0 0 0 / (I.E. VP=W(X3), TENSION=0) 24 (NUMBER OF GRID POINTS) 3480.0 3400.0 3300.0 3200.0 3100.0 3000.0 2900.0 2800.0 2700.0 2600.0 2500.0 2400.0 2300.0 2200.0 2100.0 2000.0 1900.0 1800.0 1700.0 1600.0 1500.0 1400.0 1300.0 1221.5 8.06482 8.19939 8.36019 8.51298 8.65805 8.79573 8.92632 9.05015 9.16752 9.27876 9.38418 9.48409 9.57881 9.66865 9.75393 9.83496 9.91206 9.98554 10.05572 10.12291 10.18743 10.24959 10.30971 10.35568 'VS ' 1 0 0 0 0 / (I.E. VS=CONSTANT) 0. 'DEN' 1 3 0 0 0 / (I.E. DENSITY=W(X3), TENSION=0) 2 (NUMBER OF GRID POINTS) 3480.0 1221.5 9.90349 12.16634 'QP ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 57822. 'INNER CORE' 13 'VP ' 1 3 0 0 0 / (I.E. VP=W(X3), TENSION=0) 14 (NUMBER OF GRID POINTS) 1221.5 1200.0 1100.0 1000.0 900.0 800.0 700.0 600.0 500.0 400.0 300.0 200.0 100.0 0.0 11.02827 11.03643 11.07249 11.10542 11.13521 11.16186 11.18538 11.20576 11.22301 11.23712 11.24809 11.25593 11.26064 11.26220 'VS ' 1 3 0 0 0 / (I.E. VS=W(X3), TENSION=0) 14 (NUMBER OF GRID POINTS) 1221.5 1200.0 1100.0 1000.0 900.0 800.0 700.0 600.0 500.0 400.0 300.0 200.0 100.0 0.0 3.50432 3.51002 3.53522 3.55823 3.57905 3.59767 3.61411 3.62835 3.64041 3.65027 3.65794 3.66342 3.66670 3.66780 'DEN' 1 0 0 0 0 / (I.E. DENSITY=CONSTANT) 12.76360 'QP ' -1 3 0 0 0 / (I.E. QUALITY=W(X3), TENSION=0) 3 (NUMBER OF GRID POINTS) 1221.5 600.0 0.0 445. 435. 431. 'QS ' -1 0 0 0 0 / (I.E. QUALITY=CONSTANT) 85. 'END OF COMPLEX BLOCKS, END OF THE INPUT DATA FOR THE PREM' / ------------------------------------------------------------------------ PREM: The isotropic model parameters in the table below are taken from: Dziewonski A.M., Anderson D.L.(1981): Preliminary reference Earth model. Phys. Earth planet. Inter., 25, 297. Some values, specified in the table II of the paper, which can likely be accurately fitted by cubic splines are left out. Between the given points within each complex block, the parameters are interpolated by means of natural cubic splines. If only one value of a material parameter is specified per a layer, the parameter is assumed constant within the layer. In the input data for complete ray tracing, the values of density are specified only at the interfaces because elsewhere they have no influence upon the high-frequency asymptotics. Complex block Radius Density VP VS QP QS ---------------- ------ -------- -------- ------- ------ ---- 1: OCEAN 6371.0 1.02000 1.45000 0. 57822. 0. 2: CRUST 6368.0 2.60000 5.80000 3.20000 1456. 600. 3: CRUST 6356.0 2.90000 6.80000 3.90000 1350. 600. 4: LID 6346.6 3.38076 8.11061 4.49094 1447. 600. 6291.0 3.37471 8.07689 4.46954 5: LVZ 6291.0 3.37471 8.07689 4.46954 195. 80. 6151.0 3.35950 7.98970 4.41885 6: TRANS. ZONE 6151.0 3.43578 8.55896 4.64391 367. 143. 5971.0 3.54325 8.90522 4.76989 7: TRANS. ZONE 5971.0 3.72378 9.13397 4.93259 366. 143. 5771.0 3.97584 10.15782 5.51601 362. 8: TRANS. ZONE 5771.0 3.97584 10.15782 5.51601 362. 143. 5701.0 3.99214 10.26622 5.57020 9: LOWER MANTLE 5701.0 4.38071 10.75131 5.94508 759. 312. 5600.0 4.44317 11.06557 6.24046 730. 10: LOWER MANTLE 5600.0 4.44317 11.06557 6.24046 730. 312. 5500.0 4.50372 11.24490 6.31091 5400.0 4.56307 11.41560 6.37813 5300.0 4.62129 11.57828 6.44232 5200.0 4.67844 11.73357 6.50370 5100.0 4.73460 11.88209 6.56250 5000.0 4.78983 12.02445 6.61891 4900.0 4.84422 12.16126 6.67317 4800.0 4.89783 12.29316 6.72548 4700.0 4.95073 12.42075 6.77606 4600.0 5.00299 12.54466 6.82512 785. 4500.0 5.05469 12.66550 6.87289 4400.0 5.10590 12.78389 6.91957 4300.0 5.15669 12.90045 6.96538 4200.0 5.20713 13.01579 7.01053 4100.0 5.25729 13.13055 7.05525 4000.0 5.30724 13.24532 7.09974 3900.0 5.35706 13.36074 7.14423 3800.0 5.40681 13.47742 7.18892 3700.0 5.45657 13.59597 7.23403 3630.0 5.49145 13.68041 7.26597 822. 11: LOWER MANTLE 3630.0 5.49145 13.68041 7.26597 822. 312. 3480.0 5.56645 13.71660 7.26466 826. 12: OUTER CORE 3480.0 9.90349 8.06482 0. 57822. 0. 3400.0 10.02940 8.19939 3300.0 10.18134 8.36019 3200.0 10.32726 8.51298 3100.0 10.46727 8.65805 3000.0 10.60152 8.79573 2900.0 10.73012 8.92632 2800.0 10.85321 9.05015 2700.0 10.97091 9.16752 2600.0 11.08335 9.27876 2500.0 11.19067 9.38418 2400.0 11.29298 9.48409 2300.0 11.39042 9.57881 2200.0 11.48311 9.66865 2100.0 11.57119 9.75393 2000.0 11.65478 9.83496 1900.0 11.73401 9.91206 1800.0 11.80900 9.98554 1700.0 11.87990 10.05572 1600.0 11.94682 10.12291 1500.0 12.00989 10.18743 1400.0 12.06924 10.24959 1300.0 12.12500 10.30971 1221.5 12.16634 10.35568 13: INNER CORE 1221.5 12.76360 11.02827 3.50432 445. 85. 1200.0 12.77493 11.03643 3.51002 1100.0 12.82501 11.07249 3.53522 1000.0 12.87073 11.10542 3.55823 900.0 12.91211 11.13521 3.57905 800.0 12.94912 11.16186 3.59767 700.0 12.98178 11.18538 3.61411 600.0 13.01009 11.20576 3.62835 435. 500.0 13.03404 11.22301 3.64041 400.0 13.05364 11.23712 3.65027 300.0 13.06888 11.24809 3.65794 200.0 13.07977 11.25593 3.66342 100.0 13.08630 11.26064 3.66670 0.0 13.08848 11.26220 3.66780 431. ======================================================================== prem/prem-grd.h 100666 1750 1750 2231 6612015416 12765 0 ustar klimes klimes # History file 'prem-grd.h' to generate PostScript files with # the sections across the model PREM displaying the velocities # and indices of complex blocks, respectively # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Input files required: #chk.pl: "model/prem/" "prem-mod.dat" #chk.pl: "model/prem/" "prem-grd.dat" # Data for gridding and plotting: MODEL='prem-mod.dat' N1=640 N2=640 D1=10. D2=10. O1=0. O2=0. VMIN=0. # Zero velocity is rendered as undefined. VSIGN=-1 # Minimum velocity (water) is blue and inreases through # green to yellow and red (the default is opposite). # Programs to run: grid: 'prem-grd.h' 'prem-grd.dat' / # Gridding velocities grdps: 'prem-grd.h' 'prem-vel.out' 'prem-vel.ps' / # Plotting velocities grdps: 'prem-grd.h' 'prem-icb.out' 'prem-icb.ps' / # Plotting block indices # ====================================================================== # List of output PostScript figures: # prem-vel.ps: Section across the model PREM, displaying the velocities # prem-icb.ps: Section across the model PREM, displaying the indices # of complex blocks prem/prem-grd.dat 100666 1750 1750 46 6602073430 13247 0 ustar klimes klimes ' ' 'prem-vel.out' 'prem-icb.out' / / rkgs.for 100666 1750 1750 21461 5320461110 11627 0 ustar klimes klimes C SUBROUTINE 'RKGS' FROM THE IBM SCIENTIFIC SUBROUTINE PACKAGE. C C NOTE: TO CONFORM WITH THE FORTRAN77 STANDARD, DUMMY ARRAY DIMENSIONS C (1) HAVE BEEN CHANGED TO (*). C C .................................................................. C C SUBROUTINE RKGS C C PURPOSE C TO SOLVE A SYSTEM OF FIRST ORDER ORDINARY DIFFERENTIAL C EQUATIONS WITH GIVEN INITIAL VALUES. C C USAGE C CALL RKGS (PRMT,Y,DERY,NDIM,IHLF,FCT,OUTP,AUX) C PARAMETERS FCT AND OUTP REQUIRE AN EXTERNAL STATEMENT. C C DESCRIPTION OF PARAMETERS C PRMT - AN INPUT AND OUTPUT VECTOR WITH DIMENSION GREATER C OR EQUAL TO 5, WHICH SPECIFIES THE PARAMETERS OF C THE INTERVAL AND OF ACCURACY AND WHICH SERVES FOR C COMMUNICATION BETWEEN OUTPUT SUBROUTINE (FURNISHED C BY THE USER) AND SUBROUTINE RKGS. EXCEPT PRMT(5) C THE COMPONENTS ARE NOT DESTROYED BY SUBROUTINE C RKGS AND THEY ARE C PRMT(1)- LOWER BOUND OF THE INTERVAL (INPUT), C PRMT(2)- UPPER BOUND OF THE INTERVAL (INPUT), C PRMT(3)- INITIAL INCREMENT OF THE INDEPENDENT VARIABLE C (INPUT), C PRMT(4)- UPPER ERROR BOUND (INPUT). IF ABSOLUTE ERROR IS C GREATER THAN PRMT(4), INCREMENT GETS HALVED. C IF INCREMENT IS LESS THAN PRMT(3) AND ABSOLUTE C ERROR LESS THAN PRMT(4)/50, INCREMENT GETS DOUBLED. C THE USER MAY CHANGE PRMT(4) BY MEANS OF HIS C OUTPUT SUBROUTINE. C PRMT(5)- NO INPUT PARAMETER. SUBROUTINE RKGS INITIALIZES C PRMT(5)=0. IF THE USER WANTS TO TERMINATE C SUBROUTINE RKGS AT ANY OUTPUT POINT, HE HAS TO C CHANGE PRMT(5) TO NON-ZERO BY MEANS OF SUBROUTINE C OUTP. FURTHER COMPONENTS OF VECTOR PRMT ARE C FEASIBLE IF ITS DIMENSION IS DEFINED GREATER C THAN 5. HOWEVER SUBROUTINE RKGS DOES NOT REQUIRE C AND CHANGE THEM. NEVERTHELESS THEY MAY BE USEFUL C FOR HANDING RESULT VALUES TO THE MAIN PROGRAM C (CALLING RKGS) WHICH ARE OBTAINED BY SPECIAL C MANIPULATIONS WITH OUTPUT DATA IN SUBROUTINE OUTP. C Y - INPUT VECTOR OF INITIAL VALUES. (DESTROYED) C LATERON Y IS THE RESULTING VECTOR OF DEPENDENT C VARIABLES COMPUTED AT INTERMEDIATE POINTS X. C DERY - INPUT VECTOR OF ERROR WEIGHTS. (DESTROYED) C THE SUM OF ITS COMPONENTS MUST BE EQUAL TO 1. C LATERON DERY IS THE VECTOR OF DERIVATIVES, WHICH C BELONG TO FUNCTION VALUES Y AT A POINT X. C NDIM - AN INPUT VALUE, WHICH SPECIFIES THE NUMBER OF C EQUATIONS IN THE SYSTEM. C IHLF - AN OUTPUT VALUE, WHICH SPECIFIES THE NUMBER OF C BISECTIONS OF THE INITIAL INCREMENT. IF IHLF GETS C GREATER THAN 10, SUBROUTINE RKGS RETURNS WITH C ERROR MESSAGE IHLF=11 INTO MAIN PROGRAM. ERROR C MESSAGE IHLF=12 OR IHLF=13 APPEARS IN CASE C PRMT(3)=0 OR IN CASE SIGN(PRMT(3)).NE.SIGN(PRMT(2)- C PRMT(1)) RESPECTIVELY. C FCT - THE NAME OF AN EXTERNAL SUBROUTINE USED. THIS C SUBROUTINE COMPUTES THE RIGHT HAND SIDES DERY OF C THE SYSTEM TO GIVEN VALUES X AND Y. ITS PARAMETER C LIST MUST BE X,Y,DERY. SUBROUTINE FCT SHOULD C NOT DESTROY X AND Y. C OUTP - THE NAME OF AN EXTERNAL OUTPUT SUBROUTINE USED. C ITS PARAMETER LIST MUST BE X,Y,DERY,IHLF,NDIM,PRMT. C NONE OF THESE PARAMETERS (EXCEPT, IF NECESSARY, C PRMT(4),PRMT(5),...) SHOULD BE CHANGED BY C SUBROUTINE OUTP. IF PRMT(5) IS CHANGED TO NON-ZERO, C SUBROUTINE RKGS IS TERMINATED. C AUX - AN AUXILIARY STORAGE ARRAY WITH 8 ROWS AND NDIM C COLUMNS. C C REMARKS C THE PROCEDURE TERMINATES AND RETURNS TO CALLING PROGRAM, IF C (1) MORE THAN 10 BISECTIONS OF THE INITIAL INCREMENT ARE C NECESSARY TO GET SATISFACTORY ACCURACY (ERROR MESSAGE C IHLF=11), C (2) INITIAL INCREMENT IS EQUAL TO 0 OR HAS WRONG SIGN C (ERROR MESSAGES IHLF=12 OR IHLF=13), C (3) THE WHOLE INTEGRATION INTERVAL IS WORKED THROUGH, C (4) SUBROUTINE OUTP HAS CHANGED PRMT(5) TO NON-ZERO. C C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED C THE EXTERNAL SUBROUTINES FCT(X,Y,DERY) AND C OUTP(X,Y,DERY,IHLF,NDIM,PRMT) MUST BE FURNISHED BY THE USER. C C METHOD C EVALUATION IS DONE BY MEANS OF FOURTH ORDER RUNGE-KUTTA C FORMULAE IN THE MODIFICATION DUE TO GILL. ACCURACY IS C TESTED COMPARING THE RESULTS OF THE PROCEDURE WITH SINGLE C AND DOUBLE INCREMENT. C SUBROUTINE RKGS AUTOMATICALLY ADJUSTS THE INCREMENT DURING C THE WHOLE COMPUTATION BY HALVING OR DOUBLING. IF MORE THAN C 10 BISECTIONS OF THE INCREMENT ARE NECESSARY TO GET C SATISFACTORY ACCURACY, THE SUBROUTINE RETURNS WITH C ERROR MESSAGE IHLF=11 INTO MAIN PROGRAM. C TO GET FULL FLEXIBILITY IN OUTPUT, AN OUTPUT SUBROUTINE C MUST BE FURNISHED BY THE USER. C FOR REFERENCE, SEE C RALSTON/WILF, MATHEMATICAL METHODS FOR DIGITAL COMPUTERS, C WILEY, NEW YORK/LONDON, 1960, PP.110-120. C C .................................................................. C SUBROUTINE RKGS(PRMT,Y,DERY,NDIM,IHLF,FCT,OUTP,AUX) C C DIMENSION Y(*),DERY(*),AUX(8,*),A(4),B(4),C(4),PRMT(*) DO 1 I=1,NDIM 1 AUX(8,I)=.06666667*DERY(I) X=PRMT(1) XEND=PRMT(2) H=PRMT(3) PRMT(5)=0. CALL FCT(X,Y,DERY) C C ERROR TEST IF(H*(XEND-X))38,37,2 C C PREPARATIONS FOR RUNGE-KUTTA METHOD 2 A(1)=.5 A(2)=.2928932 A(3)=1.707107 A(4)=.1666667 B(1)=2. B(2)=1. B(3)=1. B(4)=2. C(1)=.5 C(2)=.2928932 C(3)=1.707107 C(4)=.5 C C PREPARATIONS OF FIRST RUNGE-KUTTA STEP DO 3 I=1,NDIM AUX(1,I)=Y(I) AUX(2,I)=DERY(I) AUX(3,I)=0. 3 AUX(6,I)=0. IREC=0 H=H+H IHLF=-1 ISTEP=0 IEND=0 C C C START OF A RUNGE-KUTTA STEP 4 IF((X+H-XEND)*H)7,6,5 5 H=XEND-X 6 IEND=1 C C RECORDING OF INITIAL VALUES OF THIS STEP 7 CALL OUTP(X,Y,DERY,IREC,NDIM,PRMT) IF(PRMT(5))40,8,40 8 ITEST=0 9 ISTEP=ISTEP+1 C C C START OF INNERMOST RUNGE-KUTTA LOOP J=1 10 AJ=A(J) BJ=B(J) CJ=C(J) DO 11 I=1,NDIM R1=H*DERY(I) R2=AJ*(R1-BJ*AUX(6,I)) Y(I)=Y(I)+R2 R2=R2+R2+R2 11 AUX(6,I)=AUX(6,I)+R2-CJ*R1 IF(J-4)12,15,15 12 J=J+1 IF(J-3)13,14,13 13 X=X+.5*H 14 CALL FCT(X,Y,DERY) GOTO 10 C END OF INNERMOST RUNGE-KUTTA LOOP C C C TEST OF ACCURACY 15 IF(ITEST)16,16,20 C C IN CASE ITEST=0 THERE IS NO POSSIBILITY FOR TESTING OF ACCURACY 16 DO 17 I=1,NDIM 17 AUX(4,I)=Y(I) ITEST=1 ISTEP=ISTEP+ISTEP-2 18 IHLF=IHLF+1 X=X-H H=.5*H DO 19 I=1,NDIM Y(I)=AUX(1,I) DERY(I)=AUX(2,I) 19 AUX(6,I)=AUX(3,I) GOTO 9 C C IN CASE ITEST=1 TESTING OF ACCURACY IS POSSIBLE 20 IMOD=ISTEP/2 IF(ISTEP-IMOD-IMOD)21,23,21 21 CALL FCT(X,Y,DERY) DO 22 I=1,NDIM AUX(5,I)=Y(I) 22 AUX(7,I)=DERY(I) GOTO 9 C C COMPUTATION OF TEST VALUE DELT 23 DELT=0. DO 24 I=1,NDIM 24 DELT=DELT+AUX(8,I)*ABS(AUX(4,I)-Y(I)) IF(DELT-PRMT(4))28,28,25 C C ERROR IS TOO GREAT 25 IF(IHLF-10)26,36,36 26 DO 27 I=1,NDIM 27 AUX(4,I)=AUX(5,I) ISTEP=ISTEP+ISTEP-4 X=X-H IEND=0 GOTO 18 C C RESULT VALUES ARE GOOD 28 CALL FCT(X,Y,DERY) DO 29 I=1,NDIM AUX(1,I)=Y(I) AUX(2,I)=DERY(I) AUX(3,I)=AUX(6,I) Y(I)=AUX(5,I) 29 DERY(I)=AUX(7,I) CALL OUTP(X-H,Y,DERY,IHLF,NDIM,PRMT) IF(PRMT(5))40,30,40 30 DO 31 I=1,NDIM Y(I)=AUX(1,I) 31 DERY(I)=AUX(2,I) IREC=IHLF IF(IEND)32,32,39 C C INCREMENT GETS DOUBLED 32 IHLF=IHLF-1 ISTEP=ISTEP/2 H=H+H IF(IHLF)4,33,33 33 IMOD=ISTEP/2 IF(ISTEP-IMOD-IMOD)4,34,4 34 IF(DELT-.02*PRMT(4))35,35,4 35 IHLF=IHLF-1 ISTEP=ISTEP/2 H=H+H GOTO 4 C C C RETURNS TO CALLING PROGRAM 36 IHLF=11 CALL FCT(X,Y,DERY) GOTO 39 37 IHLF=12 GOTO 39 38 IHLF=13 39 CALL OUTP(X,Y,DERY,IHLF,NDIM,PRMT) 40 RETURN END C C======================================================================= C sd/ 40777 1750 1750 0 6613213032 10442 5 ustar klimes klimes sd/sd1-mod.dat 100666 1750 1750 1765 6223642736 12524 0 ustar klimes klimes 'MODEL SALT DOME' / -10 10 -10 10 -10 0 (BOUNDARIES OF THE MODEL) 1 SURFACE 2 SIMPLE BLOCKS: -1 / 1 / 2 COMPLEX BLOCKS: 1 / 2 / 'SURFACE OF THE SALT DOME' 1 1 2 3 0 / (I.E. W(X1,X2,X3)=0, TENSION=0) 3 3 4 (NUMBERS OF GRID POINTS) -10 0 10 (X1 GRID COORDINATES) -10 0 10 (X2 GRID COORDINATES) -1 -4 -7 -10 (X3 GRID COORDINATES) -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 .25 -1 -1 -1 -1 -2 -2 -2 -2 .05 -2 -2 -2 -2 1 1 1 1 1 1 1 1 1 (VALUES OF W AT GRID POINTS) 'END OF SURFACES' / 'COMPLEX BLOCK' 1 'VP ' 1 (P WAVE VELOCITY) 0 0 0 0 / (I.E. VP=CONSTANT) 4 (VELOCITY VALUE) 'COMPLEX BLOCK' 2 'VP ' 1 (P WAVE VELOCITY) 0 0 0 0 / (I.E. VP=CONSTANT) 5 (VELOCITY VALUE) 'END OF COMPLEX BLOCKS, END OF THE INPUT DATA FOR THE MODEL' / sd/sd2-mod.dat 100666 1750 1750 3317 6223642750 12514 0 ustar klimes klimes 'DISLOCATED SALT DOME' / -10 10 -10 10 -10 0 (BOUNDARIES OF THE MODEL) 3 SURFACES 4 SIMPLE BLOCKS: -1 3 / -2 -3 / 1 3 / 2 -3 / 2 COMPLEX BLOCKS: 1 2 / 3 4 / 'SURFACE OF THE SALT DOME' 1 1 2 3 0 / (I.E. W(X1,X2,X3)=0, TENSION=0) 3 3 4 (NUMBERS OF GRID POINTS) -10 0 10 (X1 GRID COORDINATES) -10 0 10 (X2 GRID COORDINATES) -1 -4 -7 -10 (X3 GRID COORDINATES) -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 .25 -1 -1 -1 -1 -2 -2 -2 -2 .05 -2 -2 -2 -2 1 1 1 1 1 1 1 1 1 (VALUES OF W AT GRID POINTS) 'SHIFTED SURFACE OF THE SALT DOME' 2 1 2 3 0 / (I.E. W(X1,X2,X3)=0, TENSION=0) 3 3 4 (NUMBERS OF GRID POINTS) -9 1 11 (X1 GRID COORDINATES) -10.5 -0.5 9.5 (X2 GRID COORDINATES) 0.5 -2.5 -5.5 -8.5 (X3 GRID COORDINATES) -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 .25 -1 -1 -1 -1 -2 -2 -2 -2 .05 -2 -2 -2 -2 1 1 1 1 1 1 1 1 1 (VALUES OF W AT GRID POINTS) 'FAULT ACROSS THE SALT DOME' 3 1 0 -3 0 / (I.E. W(X1)-X3=0, TENSION=0) 2 (NUMBERS OF GRID POINTS) -3 3 (X1 GRID COORDINATES) -10 -1 (X3 COORDINATES) 'END OF SURFACES' / 'COMPLEX BLOCK' 1 'VP ' 1 (P WAVE VELOCITY) 0 0 0 0 / (I.E. VP=CONSTANT) 4 (VELOCITY VALUE) 'COMPLEX BLOCK' 2 'VP ' 1 (P WAVE VELOCITY) 0 0 0 0 / (I.E. VP=CONSTANT) 5 (VELOCITY VALUE) 'END OF COMPLEX BLOCKS, END OF THE INPUT DATA FOR THE MODEL' / sec-pts.dat 100666 1750 1750 476 6223642756 12210 0 ustar klimes klimes 'model.dat' 'pts.out' (model, output file with sections) 1 61 4 -1 0.001 (IPS, NC1, NC2, STEP, ERR) / (no values of isolines) -.4999999 -15 -25 60.9999998 0 0 0 0 35 0 1 0 30 / / ======================================================================== sec.dat 100666 1750 1750 1327 6167362324 11415 0 ustar klimes klimes 'model.dat' 'sec.out' (model, output file with sections) 1 4 8 0.050 0.001 (IPS, NC1, NC2, STEP, ERR) 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 / (values of isolines) 0 -15 -25 60 0 0 0 0 35 0 3 0 10 / (11 parallel sections) 0 -15 -25 0 30 0 0 0 35 3 0 0 20 / (21 parallel sections) / ------------------------------------------------------------------------ 'model.dat' 'sec.out' (model, output file with sections) 1 75 5 0.000 0.001 (IPS, NC1, NC2, STEP, ERR) 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 / (values of isolines) 0 0 -25 60 0 0 0 0 35 / (points of plot coor. (0,0) (1,0) (0,1)) / ======================================================================== sec.for 100666 1750 1750 204034 6621466622 11474 0 ustar klimes klimes C
C Program 'sec.for' to determine the interfaces and velocity isolines in C 2-D sections of a 3-D seismic model. C C Date: 1998, November 9 C Coded by Ludek Klimes and Ivan Psencik C C....................................................................... C C This file consists of the following external procedures: C SEC... Main program. It just invokes subroutine MODSEC. C SEC C FUNC... Subroutine designed to evaluate the value, first and C second derivatives of the given function with respect to C the plot coordinates. C FUNC C DISC... Subroutine designed to determine the point of intersection C of the given line segment with the boundary of the complex C block. It may also be used to determine the index of the C block in which the given point is situated. C DISC C ISOL... Subroutine designed to find the point of intersection C of the given line segment with an isoline. C ISOL C ISOLA...Auxiliary subroutine to the subroutine ISOL. C ISOLA C SECT1...Subroutine designed to read the input data for the C plotted section of the model and to store them in the C memory. C SECT1 C SECT2...Auxiliary subroutine to the subroutines DISC and ISOL. C The subroutine transforms the plot coordinates to the C model coordinates. C SECT2 C SECT3...Auxiliary subroutine to the subroutines DISC and ISOL. C The subroutine transforms the model coordinates to the C plot coordinates. C SECT3 C MODSEC..Subroutine demonstrating the function of the subroutines C DISC and ISOL (and, partially, also FUNC). It employs C the subroutines when sketching a section of the model by C means of extended ASCII characters onto the screen. The C subroutine is intended to be just an example how to use C the subroutines FUNC, DISC and ISOL of this file. C MODSEC C CONT1...Subroutine designed to initialize arrays containing the C points of intersection of isolines with vertical lines C limiting the regions of numerically tracing the isolines. C It is called once before tracing isolines in a new column C of the section. C CONT1 C CONT2...Subroutine designed to trace an isoline by means of C numerical integration within the given column. C CONT2 C FCTI... Subroutine evaluating the right-hand sides of the isoline C tracing equations. C FCTI C OUTI... Subroutine designed to check for the intersections of the C isoline with structural interfaces or boundaries of the C column in which the isoline is traced. C OUTI C C The output interfaces and isolines may be written either in the form C of short lines (intersections of interfaces and isosurfaces with given C sections, stored by parts), or in the form of points (intersections C of interfaces and isosurfaces with given lines). C C....................................................................... C C C Description of the data files: C C Filename of the input data for the specification of the plotted C sections of the model, read from the * interactive input device: C (1) 'SEC' C 'SEC'.. Name of the file containing input data for the C specification of the plotted sections. C Default: 'sec.dat' C C Input file SEC to specify the plotted section of the model: C The data are read in by the list directed input (free format). In C the list of input data below, each numbered paragraph indicates C the beginning of a new input operation (new READ statement). C The variable names enclosed in apostrophes correspond to CHARACTER C strings. If the first letter of the symbolic name of the input C variable is I-N, the corresponding value in input data must be of C the type INTEGER. Otherwise, the input parameter is of the type C REAL. C (1) 'MODEL','SECTS' C 'MODEL'...String containing the name of the file with the input C data for the model. The data will be read in by the C subroutine MODEL1. Only the first 80 characters of the C string are significant. C 'SECTS'...The string containing the name of the output file with C the generated model sections. Only the first 80 C characters of the string are significant. C Default: 'MODEL'='model.dat', 'SECTS'='sec.out'. C (2) IPS,NC1,NC2,STEP,ERR C IPS... Positive to plot P-wave velocity isolines, C negative to plot S-wave velocity isolines. C NC1... Number of columns in each section. In Cartesian C coordinates each section has the shape of rhomboid. C In the normalized section coordinates, each section is a C square (0,1)*(0,1). Each section is divided into NC1 C columns of the same width, parallel with the second C normalized section coordinate axis. C NC2... Number of steps in the direction of the second normalized C section coordinate axis (i.e. along the columns), when C searching for the interfaces or isolines. C STEP... STEP.GT.0: the output interfaces and isolines are written C in the form of short lines (intersections of interfaces C and isosurfaces with given sections, stored by parts). C The file with lines has the name given by input C parameter 'SECTS' on the input line (1). C STEP... The relative step of the numerical integration C along interfaces and isolines. Measured in normalized C plot coordinates in which a section is represented by a C unit square (0,1)*(0,1). The initial points of the C isolines are determined along the axes of individual C columns (see NC1 above). Then the isolines are traced C by means of numerical integration. C STEP.EQ.0: no output file with the sections is generated. C Instead, the sections are roughly displayed on the C screen in a text mode. This option is not assumed to be C used. C STEP.LT.0: the output interfaces and isolines are written C in the form of points. The points are determined as the C points of intersection of interfaces and isosurfaces C with the given lines. The lines are defined as the axes C of individual columns (see NC1 above). C The file with points has the name given by input C parameter 'SECTS' on the input line (1). C STEP=-1 (strictly STEP.GT.-1.5): C File with points will contain only the coordinates of C points. C STEP=-2 (strictly STEP.LE.-1.5): C File with points will contain the coordinates of C points and the gradients of functions describing the C interface (the gradients are normal to the interface). C ERR... Maximum relative error in the direction of columns when C determining the positions of the interfaces or isolines C and, simultaneously, the upper error bound of the C numerical integration when tracing the isolines. Measured C in normalized plot coordinates in which a section is C represented by a unit square (0,1)*(0,1). C Default values: IPS=1, NC1=4, NC2=4, STEP=0.3/NC1, ERR=0.001. C (3) Values of isolines to be plotted terminated by a slash. C (4) Any times the following data (4.1): C (4.1) C10,C20,C30,C11,C21,C31,C12,C22,C32,C13,C23,C33,NREPET,/ C C10,C20,C30... Cartesian coordinates corresponding to the point of C plot coordinates (0,0) (i.e. to the origin of the plot C coordinates). If the model coordinates are curvilinear, C the mapping to the Cartesian coordinates is given by means C of the subroutine CARTES. C C11,C21,C31... Cartesian coordinates corresponding to the point of C plot coordinates (1,0) minus C10,C20,C30, respectively. C C12,C22,C32... Cartesian coordinates corresponding to the point of C plot coordinates (0,1) minus C10,C20,C30, respectively. C C13,C23,C33... Need not be specified for NREPET=0 (default). C For NREPET positive, C13,C23,C33 is the vectorial distance C between the origins of the two consecutive parallel C sections. C NREPET..If positive, NREPET additional sections, parallel with the C given section, will be generated. Origin (C10,C20,C30) of C each parallel section is origin (C10,C20,C30) of the C previous section plus (C13,C23,C33). C /... Obligatory slash at the end of line to facilitate future C extensions. C Default: NREPET=0. C (5) / (a slash) C for an example refer to the sample input data 'sec.dat'. C Example of data set SEC C to generate P-wave velocity isolines in 21+11 vertical sections. C Example of data set SEC C to discretize interfaces at the grid of 61*31 vertical lines. C C Input file MODEL is described within the source file 'model.for'. C Description of input file MODEL C C Output file 'SECTS' with lines (for step.GT.0): C (1) None to several strings terminated by / (a slash): C 'LINES SITUATED AT INTERFACES OR VELOCITY ISOSURFACES:' C 'character*78 string describing the model' C / C (2) V1,V2,...,VN,/ C List of isoline values terminated by a slash. C (3) For each model section (3.1), (3.2), and (3.3): C (3.1) C10,C20,C30,C11,C21,C31,C12,C22,C32 C Transformation matrix from normalized section coordinates C1,C2 to C the Cartesian coordinates X1,X2,X3: C X1=C10+C11*C1+C12*C2, C X2=C20+C21*C1+C22*C2, C X3=C30+C31*C1+C32*C2. C (3.2) For each isoline element (3.2.1), (3.2.2), and (3.2.3): C (3.2.1) LINE,IV C LINE... Positive: Index of the complex block. The isoline is a C velocity isoline. C Negative: Minus the index of a surface. The isoline is C a part of the structural interface. C IV... Index of the velocity value corresponding to the isoline C for NLINE positive, C 0 for NLINE negative. C (3.2.2) For each point of the element (3.2.2.1): C (3.2.2.1) C1,C2 C Normalized section coordinates of a point of the isoline. C (3.2.3) / (a slash). C (3.3) / (a slash). C (4) / (a slash) or end of file. C C Output file 'SECTS' with points (for STEP.LT.0): C (1) None to several strings terminated by / (a slash). C In fact, 2 strings and a slash are generated: C 'POINTS SITUATED AT INTERFACES OR VELOCITY ISOSURFACES:' C 'character*78 string describing the model' C / C (2) Written only for STEP.LE.-1.5: C D11,D21,D31,D12,D22,D32,D13,D23,D33 C Vectorial discretization steps: C D11=C11/NC1, D21=C21/NC1, D31=C31/NC1, C D12=C12/NC2, D22=C22/NC2, D32=C32/NC2, C D13=C13 , D23=C23 , D33=C33 . C (3) For each point of intersection of the vertical line (representing C the axis of the vertical column) the following line: C (3.1) 'SECTnnnnSURFisrf',X1,X2,X3,/ (for STEP.GT.-1.5) C 'SECTnnnnSURFisrf',X1,X2,X3,F1,F2,F3,/ (for STEP.LE.-1.5) C 'SECTnnnnSURFisrf'... Character*16 string composed of C substring 'SECT', index nnnn of the section, substring C 'SURF', and of index isrf of the surface covering the C structural interface at the point of intersection. C The indices are expressed in the format (I4). C String 'SECTnnnnSURFisrf' is enclosed in apostrophes. C X1,X2,X3... Cartesian coordinates of the point of intersection. C F1,F2,F3... Gradient of the function describing the surface at the C point of intersection. C (4) / (a slash) or end of file. In fact, a slash is generated. C C....................................................................... C C Storage in the memory: C The input data (2) to (4) are stored in common blocks /SECTC/ and C /VALUES/ defined in the include file 'sec.inc'. C sec.inc C C======================================================================= C C C PROGRAM SEC C CALL MODSEC STOP END C C To convert this program into subroutine package, enter the asterisks C to the first column of the four preceding FORTRAN statements. C C======================================================================= C C C SUBROUTINE FUNC(IFUNC,C,F) INTEGER IFUNC REAL C(2),F(3) C C This subroutine evaluates the value, first and second derivatives of C the given function with respect to the plot coordinates. C C Input: C IFUNC...Either: C Minus the index of the function describing a surface C covering a structural interface, or C -101, -102, -103, -104, -105 or -106 for the boundaries C of the model, or C The index of the complex block in which an isoline is C plotted. C C... Array of two plot coordinates of the given point. C C Output: C F... Array containing function value and the first partial C derivatives of the evaluated function in the order F, F1, C F2. C C Common block /MODELC/: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C Common blocks /SECTC/ and /VALUES/: INCLUDE 'sec.inc' C sec.inc C None of the storage locations of the common blocks are altered. C C Subroutines and external functions required: EXTERNAL VELOC,CARTES,SRFC2,PARM2 C VELOC...File 'model.for'. C CARTES,KOOR... File 'metric.for'. C SRFC2 and subsequent routines... File 'srfc.for' and subsequent C files (like 'val.for' and 'fit.for'). C PARM2 and subsequent routines... File 'parm.for' and subsequent C files (like 'val.for' and 'fit.for'). C C Date: 1992, November 2 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER I REAL AUX1,AUX2,AUX3 REAL COOR(3),CART(3),PDER(9) REAL UP(10),US(10),QP,QS,VD(10) C C....................................................................... C C Cartesian coordinates CART(1)=C10+C11*C(1)+C12*C(2) CART(2)=C20+C21*C(1)+C22*C(2) CART(3)=C30+C31*C(1)+C32*C(2) C C Model coordinates CALL CARTES(COOR,.FALSE.,CART,PDER) C C Evaluating the function in the model coordinates IF(IFUNC.GT.0) THEN CALL PARM2(IFUNC,COOR,UP,US,AUX3,QP,QS) CALL VELOC(IPS,UP,US,QP,QS,AUX1,AUX2,VD,AUX3) ELSE IF(IFUNC.GE.-100) THEN CALL SRFC2(-IFUNC,COOR,VD) ELSE I=(-IFUNC-99)/2 VD(1)=COOR(I)-BOUNDM(-IFUNC-100) VD(2)=0. VD(3)=0. VD(4)=0. VD(I+1)=1. END IF C C Gradient in Cartesian coordinates AUX1=PDER(1)*VD(2)+PDER(2)*VD(3)+PDER(3)*VD(4) AUX2=PDER(4)*VD(2)+PDER(5)*VD(3)+PDER(6)*VD(4) AUX3=PDER(7)*VD(2)+PDER(8)*VD(3)+PDER(9)*VD(4) C C Gradient in plot coordinates F(1)=VD(1) F(2)=C11*AUX1+C21*AUX2+C31*AUX3 F(3)=C12*AUX1+C22*AUX2+C32*AUX3 RETURN END C C======================================================================= C C C SUBROUTINE DISC(X1,C1,DC1,X2,C2,DC2,ERR,C1MIN,C1MAX,C2MIN,C2MAX, * LINE,ISB1,ICB1,ISRF,ISB2,ICB2) REAL X1,C1(2),DC1(2),X2,C2(2),DC2(2),ERR,C1MIN,C1MAX,C2MIN,C2MAX INTEGER LINE,ISB1,ICB1,ISRF,ISB2,ICB2 C C This subroutine determines the point of intersection of the given line C segment with the boundary of the complex block. It may also be used C to determine the index of the block in which the given point is C situated. C C Input: C X1... Independent variable corresponding to the first given C point. C C1... Array of plot coordinates corresponding to the first given C point. C DC1... Array containing the derivatives of plot coordinates with C respect to the independent variable at the first given C point. C X2... Independent variable corresponding to the second given C point. C C2... Array of plot coordinates corresponding to the second C given point. C DC2... Array containing the derivatives of plot coordinates with C respect to the independent variable at the second given C point. C ERR... Maximum error in independent variable for the C determination of the point of intersection. C C1MIN,C1MAX,C2MIN,C2MAX... Boundaries of the region in which the C line should be situated. C LINE... If the line is a surface, index of the surface. C In this case, input value of ISB1 and ICB1 may C correspond to a material block on its either side. C If the line is situated inside a block, LINE=0. C ISB1,ICB1... Index of the simple block and index of the complex C block in which the point C1 is situated, ICB1=0 if the C indices are yet unknown. C C Output: C X2,C2,DC2... Independent variable, array of plot coordinates and C array containing their derivatives, corresponding to the C endpoint of the line element. If both two given points of C the line are situated in the same complex block, the C endpoint of the line element coincides with the second C given point. Otherwise, the endpoint is the point of C intersection of the line with the boundary of the complex C block. C ISB1,ICB1... Index of the simple block and index of the complex C block in which the end of line (at C2) is situated. C ISB1=0 and ICB1=0 if the point C1 is situated in a free C space. ISB1=0 and ICB1=0 for the point C1 being situated C outside the computational volume, too. C Note: if the point C1 is situated in a free space or C outside the computational volume (output ICB1=0), C indices ISRF, ISB2 and ICB2 are not defined. C ISRF... Index of the surface at which the endpoint of the line C element is situated, supplemented by a sign '+' or '-' for C the endpoint situated at the positive or negative side of C the surface, respectively. C Zero inside the complex block. C ISRF=201 or 202 if crossing the given boundaries C1MIN or C C1MAX, respectively. C ISB2,ICB2... Indices of the simple block and index of the complex C block at point C2 from the other side than the line. C If the point C2 is situated at the boundary of the complex C block ICB1 (i.e. for ISRF.NE.0), ISB2,ICB2 are the C indices of the simple block and index of the complex C block, touching the complex block ICB1 from the other side C of the surface ISRF at the endpoint of the line element. C ISB2=0 and ICB2=0 for a free space on the other side of C isrf. ISB2=0 and ICB2=0 for the surface ISRF being the C boundary of the computational volume. C C Common block /MODELC/: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: INTEGER NSRFC EXTERNAL BLOCK,SRFC2,CDE,NSRFC,SECT2,SECT3 C NSRFC,BLOCK... File 'model.for'. C CARTES... File 'metric.for'. C SRFC2 and subsequent routines... File 'srfc.for' and subsequent C files (like 'val.for' and 'fit.for'). C CDE,CROSS,HIVD2... File 'means.for'. C SECT2,SECT3... This file. C C Date: 1995, October 29 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER I,IY(8) REAL FAUX(10),CBOUND(1) REAL Y1(3),D1(3),Y2(3),D2(3),XA,YA(3),DA(3),XB,YB(3),DB(3) C C....................................................................... C C Determination of the complex block in which the first point lies CALL SECT2(C1,DC1,Y1,D1) IF(ICB1.EQ.0) THEN C Check for crossing the end surfaces * DO 11 I=1,NEND * CALL SRFC2(IABS(KEND(I)),Y1,FAUX) * IF(FAUX(1)*FLOAT(KEND(I)).LE.0.) THEN * GO TO 90 * END IF * 11 CONTINUE C Check for crossing the coordinate boundaries of the C computational volume: DO 12 I=1,3 IF(Y1(I).LT.BOUNDM(I+I-1)) THEN GO TO 90 END IF IF(Y1(I).GT.BOUNDM(I+I)) THEN GO TO 90 END IF 12 CONTINUE C Searching for the complex block in which the first point lies: CALL BLOCK(.TRUE.,Y1,0,0,ISRF,ISB1,ICB1,FAUX) IF(ICB1.EQ.0) THEN GO TO 90 END IF END IF C C Intersection of the given line segment with the boundaries C1MIN, C C1MAX of the region in which the line should be situated ISRF=0 20 CONTINUE IF(ISRF.NE.201.AND.C1MIN.GT.C2(1)) THEN I=1 ISRF=201 FAUX(1)=C1MIN ELSE IF(ISRF.NE.202.AND.C2(1).GT.C1MAX) THEN I=1 ISRF=202 FAUX(1)=C1MAX ELSE IF(ISRF.NE.203.AND.C2MIN.GT.C2(2)) THEN I=2 ISRF=203 FAUX(1)=C2MIN ELSE IF(ISRF.NE.204.AND.C2(2).GT.C2MAX) THEN I=2 ISRF=204 FAUX(1)=C2MAX ELSE GO TO 30 END IF XA=X2 YA(1)=C2(1) YA(2)=C2(2) DA(1)=DC2(1) DA(2)=DC2(2) CALL CROSS(SECT2,101,I,I,2,ERR,X1,C1,DC1,X2,C2,DC2,XA,YA,DA, * XB,YB,DB,FAUX) C Here SECT2 just fills the place reserved for external procedure. X2=XA C2(1)=YA(1) C2(2)=YA(2) DC2(1)=DA(1) DC2(2)=DA(2) GO TO 20 C C Intersection of the given line segment with the boundary of the C complex block 30 CONTINUE CALL SECT2(C2,DC2,Y2,D2) XA=X2 DO 31 I=1,3 YA(I)=Y2(I) DA(I)=D2(I) 31 CONTINUE IY(4)=ISB1 IY(5)=ICB1 IY(6)=ISRF CALL CDE(IABS(LINE),0,I,0,I,CBOUND, * 1,3,3,IY,ERR,X1,X1,Y1,D1,X2,Y2,D2,XA,YA,DA,XB,YB,DB) IF(IY(6).EQ.ISRF) THEN ISB2=IY(4) ICB2=IY(5) ELSE IF(IABS(IY(6)).LE.NSRFC()) THEN ISB2=IY(7) ICB2=IY(8) ELSE ISB2=0 ICB2=0 END IF ISB1=IY(4) ISRF=IY(6) X2=XB CALL SECT3(YB,DB,C2,DC2) RETURN C 90 CONTINUE ISB1=0 ISRF=0 ISB2=0 ICB2=0 RETURN END C C======================================================================= C C C SUBROUTINE ISOL(X1,C1,DC1,X2,C2,DC2,ERR,ICB1) REAL X1,C1(2),DC1(2),X2,C2(2),DC2(2),ERR INTEGER ICB1 C C This subroutine finds the point of intersection of the given line C segment with an isoline. C C Input: C X1... Independent variable corresponding to the first given C point. C C1... Array of plot coordinates corresponding to the first given C point. C DC1... Array containing the derivatives of plot coordinates with C respect to the independent variable at the first given C point. C X2... Independent variable corresponding to the second given C point. C C2... Array of plot coordinates corresponding to the second C given point. C DC2... Array containing the derivatives of plot coordinates with C respect to the independent variable at the second given C point. C ERR... Maximum error in independent variable for the C determination of the point of intersection. C ICB1... Index of the complex block in which the points C1 and C2 C are situated. C C Output: C X1,C1,DC1... Independent variable, array of plot coordinates and C array containing their derivatives, corresponding to the C point of intersection of the line with the isoline closest C to the first given point. C C Common block /VALUES/: INCLUDE 'sec.inc' C sec.inc C Input: C IPS,VALUE,NV... Given values, see the description in the include C file 'sec.inc'. C IV... If the input values of X1,C1,DC1 are the output ones from C the last invocation of this subroutine, IV should be C unchanged since that invocation. C If the interval X1,C1,DC1 to X2,C2,DC2 has been changed C since the last invocation of this subroutine, IV has to C be set to zero. C Output: C IV... Index in the array value of the isoline closest to the C first given point. C Zero, if there is no isoline in the given interval. C None of the storage locations of the common block, except IV, are C altered. C C Subroutines and external functions required: EXTERNAL CROSS,FUNC,ISOLA,SECT2,SECT3 C VELOC... File 'model.for'. C CARTES,KOOR... File 'metric.for'. C SRFC2 and subsequent routines... File 'srfc.for' and subsequent C files (like 'val.for' and 'fit.for'). C PARM2 and subsequent routines... File 'parm.for' and subsequent C files (like 'val.for' and 'fit.for'). C CROSS,HIVD2... File 'means.for'. C FUNC,ISOLA,SECT2,SECT3... This file. C C Date: 1992, November 2 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: INTEGER I REAL F1(3),F2(10) REAL Y1(3),D1(3),Y2(3),D2(3),XA,YA(3),DA(3),XB,YB(3),DB(3) C C....................................................................... C CALL FUNC(ICB1,C1,F1) CALL FUNC(ICB1,C2,F2) IF(F1(1).LT.F2(1)) THEN IF(IV.EQ.0) THEN DO 11 IV=1,NV IF(VALUE(IV).GT.F1(1)) THEN GO TO 12 END IF 11 CONTINUE IV=NV+1 12 CONTINUE ELSE IV=IV+1 END IF IF(IV.GT.NV) THEN IV=0 ELSE IF(VALUE(IV).GT.F2(1)) THEN IV=0 END IF ELSE IF(IV.EQ.0) THEN DO 13 IV=NV,1,-1 IF(VALUE(IV).LT.F1(1)) THEN GO TO 14 END IF 13 CONTINUE IV=0 14 CONTINUE ELSE IV=IV-1 END IF IF(IV.GT.0) THEN IF(VALUE(IV).LT.F2(1)) THEN IV=0 END IF END IF END IF C IF(IV.GT.0) THEN C there is an isoline no. Iv in the given interval CALL SECT2(C1,DC1,Y1,D1) CALL SECT2(C2,DC2,Y2,D2) XA=X2 DO 21 I=1,3 YA(I)=Y2(I) DA(I)=D2(I) 21 CONTINUE CALL ISOLA(ICB1,YA,F2) CALL CROSS(ISOLA,ICB1,1,3,3,ERR,X1,Y1,D1,X2,Y2,D2,XA,YA,DA, * XB,YB,DB,F2) X1=XB CALL SECT3(YA,DA,C1,DC1) END IF C RETURN END C C======================================================================= C C C SUBROUTINE ISOLA(ICB1,COOR,F) INTEGER ICB1 REAL COOR(3),F(10) C C Auxiliary subroutine to the subroutine ISOL. C This subroutine evaluates the value, first and second derivatives of C the given function with respect to the model coordinates. It is C intended to be called by the subroutine cross of the file 'means.for' C in order to find the point of intersection of the given line segment C with an isoline. Note that the isoline is the zero isoline of the C function evaluated by this subroutine. C C Input: C ICB1... Index of the complex block in which the points C1 and C2 C are situated. C COOR... Array of three model coordinates of the given point. C C Output: C F... Array containing function value, the first and second C partial derivatives of the evaluated function in the C order F, F1, F2, F3, F11, F12, F22, F13, F23, F33. C C Common block /VALUES/: INCLUDE 'sec.inc' C sec.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: C EXTERNAL VELOC,PARM2 C VELOC... File 'model.for'. C PARM2 and subsequent routines... File 'parm.for' and subsequent C files (like 'val.for' and 'fit.for'). C C Date: 1991, June 25 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: REAL AUX1,AUX2,AUX3 REAL UP(10),US(10),QP,QS C C....................................................................... C C Evaluating the function in the model coordinates CALL PARM2(ICB1,COOR,UP,US,AUX3,QP,QS) CALL VELOC(IPS,UP,US,QP,QS,AUX1,AUX2,F,AUX3) F(1)=F(1)-VALUE(IV) RETURN END C C======================================================================= C C C SUBROUTINE SECT1(LU1,LU2,ISECT,NC1,NC2,STEP,ERR) INTEGER LU1,LU2,ISECT,NC1,NC2 REAL STEP,ERR C C This subroutine reads the data for the plotted section of the model. C C Input: C LU1... Logical number of the external unit connected to the file C with the main input data. C If zero, main input data are read from the * external C interactive device. C LU2... Logical unit number of the external output device to store C the lines or points situated at structural interfaces or C velocity isosurfaces. C This logical unit is used for reading the input data, C then connected to the output file opened in this routine. C Note that the output file is not opened if STEP=0 in the C input data file. C ISECT...for the first invocation ISECT=0, C otherwise the unchanged output from the previous C invocation. C C Output: C ISECT...ISECT=0 if there remains no model section to compute. C Then the output parameters NC1,NC2,STEP,ERR are C unchanged input. C Otherwise the input value increased by one. C Then the output parameters NC1,NC2,STEP,ERR are read C from the input data file. C NC1... Number of vertical columns in the print of the model C section. C NC2... Number of steps in the vertical direction when looking for C the interfaces or isolines. C STEP... Relative step of the numerical integration along C interfaces and isolines. C ERR... Relative error in the vertical direction when determining C the positions of the interfaces or isolines and, C simultaneously, the upper error bound of the numerical C integration. C C Common block /MODELT/: INCLUDE 'model.inc' C model.inc C None of the storage locations of the common block are altered. C C Common blocks /SECTC/ and /VALUES/: INCLUDE 'sec.inc' C sec.inc C The storage locations of the common blocks are defined in this C subroutine. C C Subroutines and external functions required: EXTERNAL MODEL1 C MODEL1 and subsequent routines... File 'model.for' and subsequent C files (like 'metric.for', 'srfc.for', 'parm.for', C 'val.for', and 'fit.for'). C C Date: 1996, September 30 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Automatic generation of parallel sections: INTEGER NREPET REAL C13,C23,C33 SAVE C13,C23,C33,NREPET C NREPET..Number of sections parallel with the given section. C C13,C23,C33... Offset of the origins of the consecutive parallel C sections. C C Auxiliary storage locations: CHARACTER*80 MODEL,SECTS REAL D11,D21,D31,D12,D22,D32 REAL AUX1,AUX2,AUX3,AUX4,AUX5,AUX6,AUX7,AUX8,AUX9 C C....................................................................... C IF(ISECT.EQ.0) THEN C C (1) Opening data files and reading the input data: MODEL='model.dat' SECTS='sec.out' IF(LU1.EQ.0) THEN READ(*,*) MODEL,SECTS ELSE READ(LU1,*) MODEL,SECTS END IF OPEN(LU2,FILE=MODEL,STATUS='OLD') CALL MODEL1(LU2) CLOSE(LU2) C C (2) IPS=1 NC1=4 NC2=4 STEP=0.3/FLOAT(NC1) ERR=0.001 IF(LU1.EQ.0) THEN READ(*,*) IPS,NC1,NC2,STEP,ERR ELSE READ(LU1,*) IPS,NC1,NC2,STEP,ERR END IF C C (3) DO 11 NV=1,MV VALUE(NV)=0. 11 CONTINUE IF(LU1.EQ.0) THEN READ(*,*) VALUE ELSE READ(LU1,*) VALUE END IF DO 12 NV=1,MV IF(VALUE(NV).EQ.0.) THEN GO TO 13 END IF 12 CONTINUE NV=MV+1 13 CONTINUE NV=NV-1 IV=0 C C Output file: IF(STEP.NE.0.) THEN OPEN(LU2,FILE=SECTS) IF(STEP.GT.0.) THEN WRITE(LU2,'(3A)') * '''LINES SITUATED AT INTERFACES OR VELOCITY ISOSURFACES:''' ELSE WRITE(LU2,'(3A)') * '''POINTS SITUATED AT INTERFACES OR VELOCITY ISOSURFACES:''' END IF WRITE(LU2,'(3A)') '''',TEXTM(1:78),'''' WRITE(LU2,'(A)') '/' IF(STEP.GT.0.) THEN C Terminal line of file, overwritten using backspace in the C case of output WRITE(LU2,'(A)') '/' END IF END IF C C Initialization: NREPET=0 C END IF C ISECT=ISECT+1 IF(NREPET.LE.0) THEN C C (4) AUX1=C10 AUX2=C20 AUX3=C30 AUX4=C11 AUX5=C21 AUX6=C31 AUX7=C12 AUX8=C22 AUX9=C32 IF(LU1.EQ.0) THEN READ(*,*) C10,C20,C30,C11,C21,C31,C12,C22,C32,C13,C23,C33, * NREPET ELSE READ(LU1,*) C10,C20,C30,C11,C21,C31,C12,C22,C32,C13,C23,C33, * NREPET END IF IF(AUX1.EQ.C10.AND.AUX4.EQ.C11.AND.AUX7.EQ.C12.AND. * AUX2.EQ.C20.AND.AUX5.EQ.C21.AND.AUX8.EQ.C22.AND. * AUX3.EQ.C30.AND.AUX6.EQ.C31.AND.AUX9.EQ.C32) THEN C End of computation ISECT=0 ELSE IF(STEP.LE.-1.5) THEN IF(NREPET.LT.0) THEN C SEC-01 CALL ERROR('SEC-01: NREPET negative') END IF D11=C11/FLOAT(NC1) D21=C21/FLOAT(NC1) D31=C31/FLOAT(NC1) D12=C12/FLOAT(NC2) D22=C22/FLOAT(NC2) D32=C32/FLOAT(NC2) WRITE(LU2,'( 9(F10.6,1X) )') * D11,D21,D31,D12,D22,D32,C13,C23,C33 END IF END IF C ELSE C C Parallel section with the previous one: C10=C10+C13 C20=C20+C23 C30=C30+C33 NREPET=NREPET-1 C END IF RETURN END C C======================================================================= C C C SUBROUTINE SECT2(C,DC,COOR,DCOOR) REAL C(2),DC(2),COOR(3),DCOOR(3) C C Auxiliary subroutine to the subroutines DISC and ISOL. C This subroutine transforms the plot coordinates to the model C coordinates. C C Input: C C... Array of two plot coordinates of the given point. C C Output: C COOR... Array containing the model coordinates X1, X2, X3 of the C given point. C C Common block /SECTC/: INCLUDE 'sec.inc' C sec.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: EXTERNAL CARTES C CARTES,KOOR... File 'metric.for'. C C Date: 1991, October 7 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: REAL CART(3),PDER(9),AUX1,AUX2,AUX3 C C....................................................................... C C Cartesian coordinates: CART(1)=C10+C11*C(1)+C12*C(2) CART(2)=C20+C21*C(1)+C22*C(2) CART(3)=C30+C31*C(1)+C32*C(2) AUX1=C11*DC(1)+C12*DC(2) AUX2=C21*DC(1)+C22*DC(2) AUX3=C31*DC(1)+C32*DC(2) C C Model coordinates: CALL CARTES(COOR,.FALSE.,CART,PDER) DCOOR(1)=PDER(1)*AUX1+PDER(4)*AUX2+PDER(7)*AUX3 DCOOR(2)=PDER(2)*AUX1+PDER(5)*AUX2+PDER(8)*AUX3 DCOOR(3)=PDER(3)*AUX1+PDER(6)*AUX2+PDER(9)*AUX3 C RETURN END C C======================================================================= C C C SUBROUTINE SECT3(COOR,DCOOR,C,DC) REAL COOR(3),DCOOR(3),C(2),DC(2) C C Auxiliary subroutine to the subroutines DISC and ISOL. C This subroutine transforms the model coordinates to the plot C coordinates. C C Input: C COOR... Array containing the model coordinates X1, X2, X3 of the C given point. C C Output: C C... Array of two plot coordinates of the given point. C C Common block /SECTC/: INCLUDE 'sec.inc' C sec.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: EXTERNAL CARTES C CARTES,KOOR... File 'metric.for'. C C Date: 1991, October 7 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: REAL CART(3),AUX1,AUX2 REAL B11,B12,B22,BDET,DAUX1,DAUX2,DAUX3,PDER(9) C C....................................................................... C C Cartesian coordinates: CALL CARTES(COOR,.TRUE.,CART,PDER) DAUX1=PDER(1)*DCOOR(1)+PDER(4)*DCOOR(2)+PDER(7)*DCOOR(3) DAUX2=PDER(2)*DCOOR(1)+PDER(5)*DCOOR(2)+PDER(8)*DCOOR(3) DAUX3=PDER(3)*DCOOR(1)+PDER(6)*DCOOR(2)+PDER(9)*DCOOR(3) C C Plot coordinates: B11=C11*C11+C21*C21+C31*C31 B12=C11*C12+C21*C22+C31*C32 B22=C12*C12+C22*C22+C32*C32 BDET=B11*B22-B12*B12 AUX1=(CART(1)-C10)*C11+(CART(2)-C20)*C21+(CART(3)-C30)*C31 AUX2=(CART(1)-C10)*C12+(CART(2)-C20)*C22+(CART(3)-C30)*C32 C(1)=( B22*AUX1-B12*AUX2)/BDET C(2)=(-B12*AUX1+B11*AUX2)/BDET AUX1=DAUX1*C11+DAUX2*C21+DAUX3*C31 AUX2=DAUX1*C12+DAUX2*C22+DAUX3*C32 DC(1)=( B22*AUX1-B12*AUX2)/BDET DC(2)=(-B12*AUX1+B11*AUX2)/BDET C RETURN END C C======================================================================= C C C SUBROUTINE MODSEC C C Subroutine demonstrating the function of the subroutines DISC and ISOL C (and, partially, also FUNC). It employs the subroutines when C sketching a section of the model by means of extended ASCII C characters onto the screen. This subroutine is intended to be just an C example how to use the subroutines FUNC, DISC and ISOL of this file. C C No argument input nor output. C C Common block /VALUES/: INCLUDE 'sec.inc' C sec.inc C None of the storage locations of the common block, except IV, are C altered. C C Subroutines and external functions required: INTEGER NSRFC EXTERNAL NSRFC,DISC,ISOL,SECT1,CONT1,CONT2 C C Date: 1995, March 31 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C CHARACTER*80 FILE INTEGER LU1,LU2,ISECT,NC1,NC2 REAL STEP,ERR C C FILE... Name of the main input data file. C LU1... Logical unit number of the input data file. C LU2... Logical unit number of the output file with generated C model sections. C ISECT...Sequential number of the currently evaluated model C section. C NC1... Number of vertical columns in the model section. C NC2... 1/NC2 is the relative step in the vertical direction when C looking for the interfaces or isolines. C STEP... Step of the numerical integration when computing the C interfaces or isolines. C ERR... Relative error in the vertical direction when determining C the positions of the interfaces or isolines. C INTEGER MSRFC PARAMETER (MSRFC=100) INTEGER KVALUE(MV),KSRFC(MSRFC) INTEGER ISB1,ICB1,ISRF,ISB2,ICB2,ISB0,ICB0,I REAL X1,C1(2),DC1(2),X2,C2(2),DC2(2),C0,DIRECT REAL COOR(3),DCOOR(3),VD(10) C C KVALUE(I)... The last column intersected by the I-th isoline. C KSRFC(I)... The last column intersected by the I-th surface. C ISB1,ICB1... Index of the simple block and index of the complex C block in which the point C1 is situated. C ISRF... Index of the surface at which the endpoint of the line C element is situated, supplemented by a sign '+' or '-' for C the endpoint situated at the positive or negative side of C the surface, respectively. C Zero inside the complex block. C ISB2,ICB2... Index of the simple block and index of the complex C block, touching the complex block icb1 from the other side C of the surface ISRF at the endpoint of the line element. C ISB2=0 and ICB2=0 for a free space on the other side of C ISRF. C Undefined inside the complex block, defined only at the C point of intersection of the line with the boundary of the C complex block. C ISB0,ICB0... Last values of ISB1,ICB1 corresponding to DIRECT=+1, C when DIRECT=-1. C I... Auxiliary loop variable. C X1,X2...Independent variables along the lines, in this case C coinciding with C1(2) and C2(2), respectively. C C1,C2...Vectors of the relative position within the model section. C DC1,DC2... Derivatives of the arrays C1,C2 with respect to the C independent variable. C C0... C DIRECT..Direction in which we are searching for the interfaces or C isolines, takes the values +1 or -1. C VD... Temporary storage to evaluate normal to the interface. C INTEGER IFUNC,IBACK INTEGER MC1,MC2,IC1,IC2 PARAMETER(MC1=75,MC2=20) CHARACTER*(MC1) PICT(MC2) C C IFUNC...Either: C Minus the index of the function describing a surface C covering a structural interface, or C -101, -102, -103, -104, -105 or -106 for the boundaries C of the model, or C the index of the complex block in which an isoline is C plotted. C IBACK...Loop variable. C MC1... Maximum number of vertical columns in the print of the C model section. C MC2... Number of horizontal rows in the print of the model C section. C IC1,IC2...Indices. C PICT...Character array containing the print of the model. C C....................................................................... C LU1=11 LU2=12 C C Opening main input data file: IF(LU1.NE.0) THEN WRITE(*,'(A)') ' Enter the name of the main input data file:' FILE='sec.dat' READ(*,*) FILE OPEN(LU1,FILE=FILE,STATUS='OLD') WRITE(*,'(A)') '+ ' END IF C C Loop for sections of the model ISECT=0 10 CONTINUE C C Reading the input data CALL SECT1(LU1,LU2,ISECT,NC1,NC2,STEP,ERR) IF(ISECT.EQ.0) THEN C .............................................................. C End of calculation IF(STEP.NE.0.) THEN IF(STEP.NE.0.) THEN IF(STEP.GT.0.) THEN BACKSPACE(LU2) END IF WRITE(LU2,'(A)') '/' END IF CLOSE(LU2) END IF C .............................................................. RETURN END IF C DC1(1)=0. DC2(1)=0. C ................................................................ C Starting with a new section: IF(STEP.EQ.0.) THEN IF(NC1.GT.MC1) THEN C SEC-02 CALL ERROR('SEC-02: Character array PICT too small') END IF DO 11 IC2=1,MC2 PICT(IC2)=' ' 11 CONTINUE IF(ISECT.GT.1) THEN WRITE(*,'(A)') ' ' END IF ELSE DO 16 I=1,MIN0(NSRFC(),MSRFC) KSRFC(I)=-1 16 CONTINUE DO 17 I=1,NV KVALUE(I)=-1 17 CONTINUE END IF C ................................................................ WRITE(*,'(9(A,I4,5X))') '+Section',ISECT C C Loop for the vertical lines (columns in the print of the model) DO 80 IC1=1,NC1 DIRECT=1. C1(1)=(FLOAT(IC1)-.5)/FLOAT(NC1) C2(1)=C1(1) C1(2)=0. ISB1=0 ICB1=0 C .............................................................. C New column: IF(STEP.GT.0.) THEN CALL CONT1(IC1,NC1) END IF C .............................................................. C Loop for the intervals of the size 1/NC2 along a vertical line C when looking for the interfaces or isolines 20 CONTINUE C2(2)=AMIN1(C1(2)+DIRECT/FLOAT(NC2),1.) DC1(2)=DIRECT DC2(2)=DIRECT X1=DIRECT*C1(2) X2=DIRECT*C2(2) *** IC2=INT(FLOAT(NC2)*(C1(2)+C2(2))/2.+1.) *** WRITE(*,'(9(A,I4,5X))') *** * '+Section',ISECT,'Column',IC1,'Elevation',IC2 *-* WRITE(*,'(9(A,I4,5X))') *-* * '+SECTION',ISECT,'COLUMN',IC1 CALL DISC(X1,C1,DC1,X2,C2,DC2,ERR,0.,1.,0.,1., * 0,ISB1,ICB1,ISRF,ISB2,ICB2) IF(ICB1.EQ.0) THEN C Point C1 is situated within a free space ICB0=0 C1(2)=C1(2)+1./FLOAT(NC2) DIRECT=-1. ELSE C Point C1 is situated within a material complex block IF(ICB0.EQ.0) THEN ISB0=ISB1 ICB0=ICB1 C0=C1(2) END IF IV=0 30 CONTINUE CALL ISOL(X1,C1,DC1,X2,C2,DC2,ERR,ICB1) IF(IV.NE.0) THEN C Point of intersection of the vertical line with an C isoline C ........................................................ IF(STEP.EQ.0.) THEN IC2= * MAX0(0,MIN0(MC2,INT((1.-C1(2)+ERR/2.)*FLOAT(MC2)+1.))) IF(PICT(IC2)(IC1:IC1).EQ.' ') THEN C plotting isoline IF(C1(2).GT.1.-(FLOAT(IC2)-.67)/FLOAT(MC2)) THEN PICT(IC2)(IC1:IC1)='~' ELSE IF(C1(2).GT.1.-(FLOAT(IC2)-.33)/FLOAT(MC2))THEN PICT(IC2)(IC1:IC1)='-' ELSE PICT(IC2)(IC1:IC1)='_' END IF END IF ELSE CALL SECT2(C1,DC1,COOR,DCOOR) IF(STEP.LT.0.) THEN IBACK=1 ELSE IBACK=2 END IF DO 31 IBACK=1,IBACK IF(STEP.GT.0.) THEN BACKSPACE(LU2) END IF IF(KVALUE(IV).LT.IC1-1.OR.STEP.LT.0.) THEN C Writing the reference coordinates: IF(IPS.GT.0) THEN WRITE(LU2,'(3(A,I4),A,F6.3,A,3F12.6,A)') * '''SECT',ISECT,', BLOC',ICB1,', ISOL',IV, * ', VP =', * VALUE(IV),'''',COOR(1),COOR(2),COOR(3),' /' ELSE WRITE(LU2,'(3(A,I4),A,F6.3,A,3F12.6,A)') * '''SECT',ISECT,', BLOC',ICB1,', ISOL',IV, * ', VS =', * VALUE(IV),'''',COOR(1),COOR(2),COOR(3),' /' END IF ELSE C Writing / in place of reference coordinates: IF(IPS.GT.0) THEN WRITE(LU2,'(3(A,I4),A,F6.3,A)') * '''SECT',ISECT,', BLOC',ICB1,', ISOL',IV, * ', VP =',VALUE(IV),''' /' ELSE WRITE(LU2,'(3(A,I4),A,F6.3,A)') * '''SECT',ISECT,', BLOC',ICB1,', ISOL',IV, * ', VS =',VALUE(IV),''' /' END IF END IF KVALUE(IV)=IC1 IF (STEP.GT.0.) THEN IFUNC=ICB1 CALL CONT2(LU2,IFUNC,IBACK,ISB1,ICB1,0,0,STEP,ERR, * C1) END IF 31 CONTINUE END IF C ........................................................ GO TO 30 END IF IF(ISRF.NE.0.AND.IABS(ISRF).LE.100) THEN C Crossing an interface C ........................................................ IF(STEP.EQ.0.) THEN IC2=MAX0(0,MIN0(MC2,INT((1.-C2(2))*FLOAT(MC2)+1.))) IF(C2(2).GT.1.-(FLOAT(IC2)-.5)/FLOAT(MC2)) THEN PICT(IC2)(IC1:IC1)=CHAR(223) ELSE PICT(IC2)(IC1:IC1)=CHAR(220) END IF ELSE CALL SECT2(C2,DC2,COOR,DCOOR) IF(STEP.LT.0.) THEN IBACK=1 ELSE IBACK=2 END IF DO 36 IBACK=1,IBACK IF(STEP.GT.0.) THEN BACKSPACE(LU2) END IF IFUNC=IABS(ISRF) IF(KSRFC(MIN0(IFUNC,MSRFC)).LT.IC1-1.OR.STEP.LT.0.) * THEN C writing the reference coordinates: IF(STEP.GT.-1.5) THEN WRITE(LU2,'(2(A,I4),A,3F12.6,A)') * '''SECT',ISECT,', SURF',IFUNC,'''', * COOR(1),COOR(2),COOR(3),' /' ELSE CALL SRFC2(IFUNC,COOR,VD) *** WRITE(LU2,'(2(A,I4),A,6F12.6,A)') *** * '''SECT',ISECT,', SURF',IFUNC,'''', WRITE(LU2,'( A,6F12.6,A)') * ''' ''', * COOR(1),COOR(2),COOR(3),VD(2),VD(3),VD(4),' /' END IF ELSE C Writing / in place of reference coordinates: WRITE(LU2,'(2(A,I4),A)') * '''SECT',ISECT,', SURF',IFUNC,''' /' END IF IF(IFUNC.LT.MSRFC) THEN KSRFC(IFUNC)=IC1 END IF IF(STEP.GT.0.) THEN IFUNC=-IFUNC C IFUNC=101,...,106 for the computational volume C boundary. CALL CONT2(LU2,IFUNC,IBACK,ISB1,ICB1,ISB2,ICB2, * STEP,ERR,C2) END IF 36 CONTINUE END IF C ........................................................ IF(ICB2.EQ.0) THEN C Crossing free surface IF(DIRECT.LT.0.) THEN ISB2=ISB0 ICB2=ICB0 C2(2)=C0 ELSE C2(2)=C1(2)+1./FLOAT(NC2) END IF DIRECT=-DIRECT END IF END IF ISB1=ISB2 ICB1=ICB2 C1(2)=C2(2) END IF IF(C1(2).LT.0.) THEN C SEC-03 CALL ERROR * ('SEC-03: Negative plot coordinate - contact the author') END IF IF(C1(2).LT.1.-ERR) GO TO 20 80 CONTINUE C C ................................................................ C Section finished: IF(STEP.EQ.0.) THEN WRITE(*,'(1X,999A1)') CHAR(218),(CHAR(196),I=1,NC1),CHAR(191) DO 90 IC2=1,MC2 WRITE(*,'(1X,A1,A,A1)') CHAR(179),PICT(IC2)(1:NC1),CHAR(179) 90 CONTINUE WRITE(*,'(1X,999A1)') CHAR(192),(CHAR(196),I=1,NC1),CHAR(217) END IF C ................................................................ C GO TO 10 C End of loop for sections of the model C END C C======================================================================= C C C SUBROUTINE CONT1(IC1,NC1) INTEGER IC1,NC1 C C Subroutine designed to initialize arrays containing the points of C intersection of isolines with vertical lines limiting the regions of C numerically tracing the isolines. It is called once before tracing C isolines in a new column of the section. C C Input: C IC1... Index of the given column in the model section. C NC1... Number of columns in the model section. C C No output. C C Common block /COLUMN/: INCLUDE 'sec.inc' C sec.inc C C Date: 1994, January 26 C Coded by Ivan Psencik, and Ludek Klimes C C----------------------------------------------------------------------- C INTEGER I C C....................................................................... C COLL=AMAX1((FLOAT(IC1)-1.5)/FLOAT(NC1),0.) COLM= (FLOAT(IC1)-0.5)/FLOAT(NC1) COLR=AMIN1((FLOAT(IC1)+0.5)/FLOAT(NC1),1.) IF(IC1.EQ.1) THEN INTL=0 ELSE INTL=INTR DO 1 I=1,INTL ZL(I)=ZR(I) 1 CONTINUE END IF INTM=0 INTR=0 RETURN END C C======================================================================= C C C SUBROUTINE CONT2(LU2,IFUNC,IBACK,ISB1,ICB1,ISB2,ICB2,STEP,ERR,YP) INTEGER LU2,IFUNC,IBACK,ISB1,ICB1,ISB2,ICB2 REAL STEP,ERR,YP(2) C C Subroutine designed to trace an isoline by means of numerical C integration, within the given column. C C Input: C LU2... Logical unit number of the output file with generated C isolines. C STEP... Step of the numerical integration when computing the C interfaces or isolines. C ERR... Upper error bound of points of the isoline determined by C means of numerical integration. C IFUNC...Either: C Minus the index of the function describing a surface C covering a structural interface, or C -101, -102, -103, -104, -105 or -106 for the boundaries C of the model, or C the index of the complex block in which an isoline is C plotted. C IBACK...1 or 2, index of the direction in which the isoline is to C be followed. C ISB1,ICB1... Index of the simple block and index of the complex C block in which the initial point YP of the isoline is C situated. C ISB2,ICB2... Index of the simple block and index of the complex C block, touching the complex block icb1 from the other side C of the surface ISRF=-IFUNC at the initial point YP. C Need not be defined for a velocity isoline (IFUNC C positive). C STEP... Step of the numerical integration when computing the C interfaces or isolines. C ERR... Upper error bound of points of the isoline determined by C means of numerical integration. C YP... Array containing two normalized section coordinates of the C initial point of the isoline to be calculated. C C No output. C C Common blocks /VALUES/ and /CONTC/: INCLUDE 'sec.inc' C sec.inc C None of the storage locations of common block /VALUES/ are altered. C C Subroutines and external functions required: EXTERNAL RKGS * EXTERNAL HPCG EXTERNAL FCTI,OUTI C C Date: 1994, January 26 C Coded by Ivan Psencik, and Ludek Klimes C C----------------------------------------------------------------------- C INTEGER IHLF,I REAL YPOC(2),DERY(2),AUX(16,2),PRMT(6) C C....................................................................... C IFUN=IFUNC PRMT(1)=0. PRMT(2)=999999. PRMT(3)=STEP PRMT(4)=ERR PRMT(6)=FLOAT(LU2)+.5 C NBACK=IBACK ISB1O=ISB1 ICB1O=ICB1 ISB2O=ISB2 ICB2O=ICB2 NBOD=0 YPOC(1)=YP(1) YPOC(2)=YP(2) C For RKGS: DERY(1)=.5 DERY(2)=.5 CALL RKGS(PRMT,YPOC,DERY,2,IHLF,FCTI,OUTI,AUX) C For HPCG (PRMT(4)=13.444*ERR): * DERY(1)=.03719 * DERY(2)=.03719 * CALL HPCG(PRMT,YPOC,DERY,2,IHLF,FCTI,OUTI,AUX) C C Writing data describing isolines into the file LU2 IF(NBOD.GT.1)THEN IF(PRMT(5).GT.-100..AND.PRMT(5).LT.100.) THEN C Isoline terminates at an interface C I=INT(SIGN(ABS(PRMT(5))+.5,PRMT(5))) I=INT( ABS(PRMT(5)) ) WRITE(LU2,'(A,I3,A)') '/ (TERMINATING AT SURFACE',I,')' ELSE WRITE(LU2,'(A)') '/' END IF C Terminal line of file, overwritten using backspace in the case C of output WRITE(LU2,'(A)') '/' END IF C RETURN END C C======================================================================= C C C SUBROUTINE FCTI(X,Y,DERY) REAL X,Y(*),DERY(*) C C Subroutine evaluating the right-hand sides of the isoline tracing C equations. C C Input: C X... Value of the independent variable along the isoline. C Y... Array containing two normalized section coordinates of a C point of the isoline, determined by means of numerical C integration. C C Output: C Y... Array containing two normalized section coordinates of the C of the isoline, corrected by means of the linearization in C the direction of the gradient (perpendicular to the C isoline). C DERY... Array containing derivatives of the normalized coordinates C Y with respect to X. C C Common blocks /VALUES/ and /CONTC/: INCLUDE 'sec.inc' C sec.inc C None of the storage locations of common /VALUES/ block are altered. C C Date: 1994, January 26 C Coded by Ivan Psencik, and Ludek Klimes C C----------------------------------------------------------------------- C REAL S(3),S1,S2,AUX C C....................................................................... C CALL FUNC(IFUN,Y,S) S1=S(2) S2=S(3) AUX=SQRT(S1*S1+S2*S2) DERY(1)=S2/AUX DERY(2)=-S1/AUX IF (NBACK.EQ.2) THEN DERY(1)=-DERY(1) DERY(2)=-DERY(2) END IF C C Correction of the isoline IF(IFUN.GT.0) THEN AUX=(S(1)-VALUE(IV))/AUX/AUX ELSE AUX=S(1)/AUX/AUX END IF Y(1)=Y(1)-S1*AUX Y(2)=Y(2)-S2*AUX C RETURN END C C======================================================================= C C C SUBROUTINE OUTI(X,Y,DERY,IHLF,NDIM,PRMT) INTEGER IHLF,NDIM REAL X,Y(NDIM),DERY(NDIM),PRMT(*) C C Subroutine designed to check for the intersections of the isoline with C structural interfaces or boundaries of the column in which the isoline C is traced. C C Input: C X... Value of the independent variable along the isoline. C Y... Array containing two normalized section coordinates of a C point of the isoline. C DERY... Array containing derivatives of the normalized coordinates C Y with respect to X. C IHLF... Number of bisections of the initial increment of the C independent variable. C NDIM... Number of ordinary differential equations. C PRMT... Array containing parameters of the integration. C PRMT(6) contains the logical unit number of the output C file with generated isolines, increased by 0.5. C C Output: C X,Y,DERY... Values corresponding to the point of intersection of C the isoline with the boundary of the complex block or the C computational region (column of the section), if the C isoline intersects the boundary. Unaltered if the isoline C does not intersect the boundary (i.e. if PRMT(5) remains C unchanged). C PRMT(5)=301,302... The isoline has already been determined and C will not be traced again. C 201,202,203,204... The isoline has intersected the C boundary of the computational region (column of the C section). C ISRF... Index of the intersected surface limiting the C complex block if a structural interface has been C crossed. C Otherwise unaltered. C C Common blocks /COLUMN/ and /CONTC/: INCLUDE 'sec.inc' C sec.inc C C Date: 1994, January 26 C Coded by Ivan Psencik, and Ludek Klimes C C----------------------------------------------------------------------- C LOGICAL LEFT INTEGER LINE,ISB1,ICB1,ISRF,ISRFO,I,LU2 REAL ERR,ERROR,BNDL,BNDR REAL XOLD,YOLD(2),DOLD(2) REAL COOR(3),DCOOR(3) SAVE LEFT,BNDL,BNDR,XOLD,YOLD,DOLD C C....................................................................... C ERR=PRMT(4) ERROR=PRMT(4) * ERROR=10.*PRMT(4) C IF(NBOD.EQ.0) THEN IF(DERY(1).LT.0.) THEN C The next point of an isoline or a discontinuity will be C situated to the left from the first point. The first point is C tested whether an isoline or a discontinuity has been C constructed through it LEFT=.TRUE. BNDL=COLL BNDR=COLM DO 6 I=1,INTL IF(ABS(ZL(I)-Y(2)).LT.ERROR) THEN PRMT(5)=301. RETURN END IF 6 CONTINUE ELSE C The next point of an isoline or a discontinuity will be C situated to the right from the first point. The first point is C tested whether an isoline or a discontinuity has been C constructed through it LEFT=.FALSE. BNDL=COLM BNDR=COLR DO 7 I=1,INTM IF(ABS(ZM(I)-Y(2)).LT.ERROR) THEN PRMT(5)=302. RETURN END IF 7 CONTINUE END IF ELSE C C Check for crossing the boundary of the complex block ISB1=ISB1O ICB1=ICB1O IF(IFUN.GE.0) THEN LINE=0 ELSE LINE=-IFUN END IF CALL DISC(XOLD,YOLD,DOLD,X,Y,DERY,ERR,BNDL,BNDR,0.,1., * LINE,ISB1,ICB1,ISRF,ISB1O,ICB1O) IF(LINE.NE.0)THEN ISRFO=ISRF ISB1=ISB2O ICB1=ICB2O CALL DISC(XOLD,YOLD,DOLD,X,Y,DERY,ERR,BNDL,BNDR,0.,1., * LINE,ISB1,ICB1,ISRF,ISB2O,ICB2O) IF(ISRF.EQ.0) THEN ISRF=ISRFO END IF END IF C C Test whether the isoline or discontinuity intersects middle C vertical grid line COLM: IF(LEFT)THEN IF(ISRF.EQ.202)THEN C storing the point of intersection of the isoline or C interface with the middle vertical grid line INTL=INTL+1 ZL(INTL)=Y(2) END IF ELSE IF(ISRF.EQ.201)THEN C Storing the point of intersection of the isoline or C interface with the middle vertical grid line INTM=INTM+1 ZM(INTM)=Y(2) END IF C C Test whether the isoline or discontinuity intersects right C vertical grid line COLR: IF(ISRF.EQ.202)THEN C Storing the point of intersection of the isoline or C interface with the right vertical grid line INTR=INTR+1 ZR(INTR)=Y(2) END IF END IF C C End of checks for crossing boundaries PRMT(5)=FLOAT(ISRF) END IF C XOLD=X YOLD(1)=Y(1) YOLD(2)=Y(2) DOLD(1)=DERY(1) DOLD(2)=DERY(2) C NBOD=NBOD+1 CALL SECT2(Y,DERY,COOR,DCOOR) LU2=INT(PRMT(6)) WRITE(LU2,'(3F12.6,A)') COOR(1),COOR(2),COOR(3),' /' IF(NBOD.GT.1000)THEN C SEC-51 CALL WARN('SEC-51: More then 1000 points of the isoline') END IF RETURN END C C======================================================================= C INCLUDE 'error.for' C error.for INCLUDE 'model.for' C model.for INCLUDE 'metric.for' C metric.for INCLUDE 'srfc.for' C srfc.for INCLUDE 'parm.for' C parm.for INCLUDE 'val.for' C val.for INCLUDE 'fit.for' C fit.for INCLUDE 'means.for' C means.for INCLUDE 'rkgs.for' C rkgs.for C C======================================================================= Csec.inc 100666 1750 1750 10276 6355630644 11443 0 ustar klimes klimes C
C INCLUDE 'sec.inc' C ------------------------------------------------------------------ REAL C10,C20,C30,C11,C21,C31,C12,C22,C32 COMMON/SECTC/ C10,C20,C30,C11,C21,C31,C12,C22,C32 SAVE /SECTC/ C .................................................................. INTEGER IPS,MV,NV,IV PARAMETER (MV=128) REAL VALUE(MV) COMMON/VALUES/ IPS,VALUE,NV,IV SAVE /VALUES/ C .................................................................. REAL ZL(100),ZM(100),ZR(100),COLL,COLM,COLR INTEGER INTL,INTM,INTR COMMON/COLUMN/ZL,ZM,ZR,COLL,COLM,COLR,INTL,INTM,INTR SAVE /COLUMN/ C .................................................................. INTEGER IFUN,NBACK,ISB1O,ICB1O,ISB2O,ICB2O,NBOD COMMON/CONTC/ IFUN,NBACK,ISB1O,ICB1O,ISB2O,ICB2O,NBOD C ------------------------------------------------------------------ C C10,C20,C30,C11,C21,C31,C12,C22,C32... Input data (2). C C IPS... Input data (3). C VALUE...Input data (4). C NV... Number of non-zero isoline values in the input data (4). C IV... Index in the array value of the isoline currently being C plotted. C Zero, if there is no isoline in the given interval. C Output of the subroutine ISOL. If the interval where an C isoline is looked for has been changed since the last C invocation of the subroutine ISOL, IV has to be set to C zero. C C ZL,ZM,ZR... The second normalized section coordinates of the C points of intersection of the isolines with lines COLL, C COLM, and COLR, respectively. C COLL... The first normalized section coordinate of the left-hand C boundary line of the left-hand region for isoline tracing. C COLM... The first normalized section coordinate of the middle C boundary line between the two regions for isoline tracing. C The initial point of the isoline is assumed to be situated C at this line. C COLR... The first normalized section coordinate of the right-hand C boundary line of the right-hand region for isoline C tracing. C INTL,INTM,INTR... Numbers of the points of intersection of the C isolines with lines COLL, COLM, and COLR, respectively. C C IFUN... Either: C Minus the index of the function describing a surface C covering a structural interface, or C -101, -102, -103, -104, -105 or -106 for the boundaries C of the model, or C The index of the complex block in which an isoline is C plotted. C NBACK...1 or 2, index of the direction in which the isoline is to C be followed. C ISB1O,ICB1O... Index of the simple block and index of the complex C block in which the initial point of the isoline is C situated. C ISB2O,ICB2O... Index of the simple block and index of the complex C block, touching the complex block ICB1O from the other C side of the surface ISRF=-IFUN at the initial point. C Need not be defined for a velocity isoline (IFUN C positive). C NBOD... Number of points along the calculated part of the isoline C (the part situated within the given column of the C section). C C Common block /SECTC/ is included in external procedures FUNC, C SECT1, SECT2 and SECT3. C Common block /VALUES/ is included in external procedures FUNC, C ISOL, ISOLA, SECT1 and MODSEC. C The index of the last allocated numeric storage unit of array C VALUE is named MV and is given by the sixth and seventh statement C of the block data subroutine SECTB. If the value of MV is C changed, it must be adjusted in all subroutines which include the C common block /VALUES/. C C The common blocks are included in FORTRAN 77 source code file C 'sec.for'. C C Date: 1996, July 8 C Coded by Ludek Klimes C C======================================================================= Cslit/ 40777 1750 1750 0 6613213034 11011 5 ustar klimes klimes slit/slit-mod.dat 100666 1750 1750 5116 6223642700 13336 0 ustar klimes klimes 'SLIT MODEL' / -8 8 -8 8 -8 0 (BOUNDARIES OF THE MODEL) 3 SURFACES 4 SIMPLE BLOCKS: -1 -3 / -2 3 / 1 -3 / 2 3 / 2 COMPLEX BLOCKS: 1 2 / 3 4 / 'RAISED PART OF THE SLITTED INTERFACE' 1 1 2 -3 0 / (I.E. W(X1,X2)-X3=0, TENSION=0) 9 9 (NUMBERS OF GRID POINTS) -8 -6 -4 -2 0 2 4 6 8 (X1 GRID COORDINATES) -8 -6 -4 -2 0 2 4 6 8 (X2 GRID COORDINATES) -3.2 -3.6 -3.2 -3.7 -3.8 -4.7 -4.4 -4.8 -4.4 -3.6 -3.2 -3.6 -3.3 -4.2 -4.3 -4.8 -4.4 -4.8 -3.2 -3.6 -3.2 -3.7 -3.8 -4.7 -4.4 -4.8 -4.4 -3.6 -3.2 -3.6 -3.2 -3.8 -4.2 -4.8 -4.4 -4.8 -3.2 -3.6 -3.2 -3.3 -2.2 -4.3 -4.4 -4.8 -4.4 -3.6 -3.2 -3.6 -3.2 -3.8 -4.2 -4.8 -4.4 -4.8 -3.2 -3.6 -3.2 -3.7 -3.8 -4.7 -4.4 -4.8 -4.4 -3.6 -3.2 -3.6 -3.3 -4.2 -4.3 -4.8 -4.4 -4.8 -3.2 -3.6 -3.2 -3.7 -3.8 -4.7 -4.4 -4.8 -4.4 (GRIDPOINT VALUES OF W) 'DEPRESSED PART OF THE SLITTED INTERFACE' 2 1 2 -3 0 / (I.E. W(X1,X2)-X3=0, TENSION=0) 9 9 (NUMBERS OF GRID POINTS) -8 -6 -4 -2 0 2 4 6 8 (X1 GRID COORDINATES) -8 -6 -4 -2 0 2 4 6 8 (X2 GRID COORDINATES) -3.2 -3.6 -3.2 -3.7 -3.8 -4.7 -4.4 -4.8 -4.4 -3.6 -3.2 -3.6 -3.3 -4.2 -4.3 -4.8 -4.4 -4.8 -3.2 -3.6 -3.2 -3.7 -3.8 -4.7 -4.4 -4.8 -4.4 -3.6 -3.2 -3.6 -3.4 -4.6 -4.4 -4.8 -4.4 -4.8 -3.2 -3.6 -3.2 -4.1 -5.4 -5.1 -4.4 -4.8 -4.4 -3.6 -3.2 -3.6 -3.4 -4.6 -4.4 -4.8 -4.4 -4.8 -3.2 -3.6 -3.2 -3.7 -3.8 -4.7 -4.4 -4.8 -4.4 -3.6 -3.2 -3.6 -3.3 -4.2 -4.3 -4.8 -4.4 -4.8 -3.2 -3.6 -3.2 -3.7 -3.8 -4.7 -4.4 -4.8 -4.4 (GRIDPOINT VALUES OF W) 'SLITTING FAULT' 3 1 -2 0 0 / (I.E. W(X1)-X2=0, TENSION=0) 3 (NUMBERS OF GRID POINTS) -8 0 8 (X1 GRID COORDINATES) 0.6 -0.4 8.0 (GRIDPOINT VALUES OF W) 'END OF SURFACES' / 'COMPLEX BLOCK' 1 'VP ' 1 (P WAVE VELOCITY) 0 0 0 0 / (I.E. VP=CONSTANT) 4 (VELOCITY VALUE) 'COMPLEX BLOCK' 2 'VP ' 1 (P WAVE VELOCITY) 0 0 0 0 / (I.E. VP=CONSTANT) 5 (VELOCITY VALUE) 'END OF COMPLEX BLOCKS, END OF THE INPUT DATA FOR THE MODEL' / soft.dat 100666 1750 1750 243 6364560454 11575 0 ustar klimes klimes 1 0 0 0 1 0 0 0 1 / Soft subjective information (L2-norm of gradient) 1. 0. 1. 0. 0. 1. (End of weighting matrix) soft.for 100666 1750 1750 22547 6600357600 11654 0 ustar klimes klimes C
SUBROUTINE SOFT * (NCLASS,NA1,NA2,NA3,NB1,NB2,NB3,WEIGHT,NM,INDM,CS,MB,B) C INTEGER NCLASS,NA1,NA2,NA3,NB1,NB2,NB3,NM,INDM(*),MB REAL WEIGHT,CS(*),B(MB) C C This subroutine accumulates the prior subjective information C covariance matrix describing the smoothness of the functions C interpolated by means of subroutines of the file 'val.for'. C C Input: C NCLASS..Number of classes required. C NA1,NA2,NA3... Orders of X1,X2,X3-partial derivatives of the first C basis function in the product being integrated. C NB1,NB2,NB3... Orders of X1,X2,X3-partial derivatives of the C second basis function in the product being integrated. C WEIGHT..Weighting factor corresponding to the derivatives. C CS... Symmetric matrix to be regularized: C Contribution corresponding to the derivatives will be C added to the matrix CS if WEIGHT.NE.0. C Not used if WEIGHT=0. C MB... Dimension of working array B. C B... Working array. Auxiliary storage locations for partial C covariance matrices. For the comments on its minimum C dimension refer to the destription of error C 372. Not used if WEIGHT=0. C C Output: C NM... Number of the unknown model parameters. C INDM... Indices of the unknown model parameters. Integer array of C dimension NM. C CS... Resulting symmetric subjective prior information C covariance matrix (input matrix increased by WEIGHT times C the product of the derivatives averaged over the B-spline C grid). Real array of dimension NM*(NM+1)/2. C Unchanged input if WEIGHT=0. C C Common block: INCLUDE 'val.inc' C val.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: EXTERNAL SPSP C C Date: 1997, September 30 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C INTEGER ICLASS,JGROUP,LFUNCT,MFUNCT,JFUNCT,LADR,MADR,IADR,NVAR INTEGER NX(3),NX1,NX2,NX3 EQUIVALENCE (NX(1),NX1),(NX(2),NX2),(NX(3),NX3) INTEGER JADR(7),JADR1,JADR2,JADR3,JADR4,JADR5,JADR6,JADR7 EQUIVALENCE (JADR(1),JADR1),(JADR(2),JADR2),(JADR(3),JADR3) EQUIVALENCE (JADR(4),JADR4),(JADR(5),JADR5),(JADR(6),JADR6) EQUIVALENCE (JADR(7),JADR7) INTEGER I1,I2,I3,II,I,J,N REAL WDENS,SIGMA C C B... Auxiliary storage locations for partial covariance C matrices. C ICLASS..Index of the class. C JGROUP..Address of a current group. C LFUNCT,MFUNCT,JFUNCT... Addresses of the first, last and arbitrary C functions of the group. C LADR,MADR,IADR... Addresses of the first, last and arbitrary C parameters of the current function. C NVAR... Number of the independent variables A1, A2, A3 of the C interpolated function W. C NX=(NX1,NX2,NX3)... Numbers of grid lines. C JADR=(JADR1,JADR2,JADR3,JADR4,JADR5,JADR6,JADR7)... Addresses of C parameters describing the interpolated function (grid C coordinates, B-spline coefficients, B-spline basis C functions). C I1,I2,I3,I,J,N... Local auxiliary variables. C WDENS...Weighting factor divided by volume (area,length). C SIGMA...Tension factor. C C....................................................................... C NM=0 IF(NCLASS.LT.1.OR.IPAR(0).LT.NCLASS) THEN C 371 CALL ERROR('371 in SOFT: Incorrect number of classes') C The number of classes required is zero, negative or greater than C the number of classes defined. END IF C Loop for classes: DO 92 ICLASS=1,NCLASS C Loop for groups of the current class: DO 91 JGROUP=IPAR(ICLASS-1)+1,IPAR(ICLASS) LFUNCT=IPAR(JGROUP-1)+1 MFUNCT=IPAR(JGROUP) MADR =IPAR(LFUNCT-1) C C Loop for functions of the current group: DO 90 JFUNCT=LFUNCT,MFUNCT C Starting and end addresses of the parameters describing the C function LADR=MADR+1 MADR=IPAR(JFUNCT) IF(LADR.LE.MADR) THEN WDENS=WEIGHT C Tension factor SIGMA=RPAR(LADR+5) C C The number, types and values of the independent variables C of the interpolated function: C Initial address IADR=LADR+6 C Initial number of the independent variables NVAR=0 NX1=1 NX2=1 NX3=1 JADR1=0 JADR2=0 JADR3=0 JADR4=0 C Loop for the possible independent variables: DO 20 I=LADR+2,LADR+4 C Type of the possible independent variable: J=IPAR(I) IF(J.GT.0) THEN N=IABS(IPAR(IADR)) IF(N.GE.2) THEN NVAR=NVAR+1 NX(NVAR)=N ELSE IF(N.EQ.1) THEN JADR(NVAR+1)=JADR(NVAR+1)+1 END IF IADR=IADR+1 END IF 20 CONTINUE JADR5=0 JADR6=0 JADR7=0 C C Interpolated function W: JADR1=IADR+JADR1 IF(NVAR.LE.0) THEN C No independent variable. JADR4=JADR1 ELSE JADR2=JADR1+NX1+JADR2 WDENS=WDENS/(RPAR(JADR1+NX1-1)-RPAR(JADR1)) IF(NVAR.EQ.1) THEN C One independent variable: JADR4=JADR2 JADR5=JADR2+NX1 ELSE JADR3=JADR2+NX2+JADR3 WDENS=WDENS/(RPAR(JADR2+NX2-1)-RPAR(JADR2)) IF(NVAR.EQ.2) THEN C Two independent variables: JADR4=JADR3 JADR5=JADR3+NX1*NX2 JADR6=JADR4+5*NX1 ELSE C Three independent variables: JADR4=JADR3+NX3+JADR4 JADR5=JADR4+NX1*NX2*NX3 JADR6=JADR5+5*NX1 JADR7=JADR6+5*NX2 WDENS=WDENS/(RPAR(JADR3+NX3-1)-RPAR(JADR3)) END IF END IF END IF C WDENS is weighting factor divided by volume (area,length). C JADR4=JADR4-1 N=NX1*NX2*NX3 IF(WEIGHT.EQ.0.) THEN DO 72 I2=1,N INDM(NM+I2)=JADR4+I2 72 CONTINUE NM=NM+N ELSE IF(NA1.EQ.NB1.AND.NA2.EQ.NB2.AND.NA3.EQ.NB3) THEN I=N*(N+1)/2 J=0 ELSE I=N*N J=1 END IF IF(NA1.EQ.NB1) THEN I1=NX1*(NX1+1)/2 ELSE I1=NX1*NX1 END IF IF(NA2.EQ.NB2) THEN I2=NX2*(NX2+1)/2 ELSE I2=NX2*NX2 END IF IF(NA3.EQ.NB3) THEN I3=NX3*(NX3+1)/2 ELSE I3=NX3*NX3 END IF I1=I1+I I2=I2+I1 I3=I3+I2 IF(I3.GT.MB) THEN C 372 CALL ERROR('372 in SOFT: Insufficient working memory') C The dimension MB of the buffer B is not sufficient, C see the above command lines, where NX1,NX2,NX3 are C the dimensions of the grid for spline interpolation. C MB and B(MB) are the dummy arguments of this C subroutine. If the actual argument is allocated in C array RAM(MRAM) declared in include file C ram.inc, C you may wish to increase MRAM. END IF DO 80 II=1,I B(II)=0. 80 CONTINUE CALL SPSP(NA1,NA2,NA3,NB1,NB2,NB3,NX1,NX2,NX3, * RPAR(JADR1),RPAR(JADR2),RPAR(JADR3), * RPAR(JADR5),RPAR(JADR6),RPAR(JADR7), * SIGMA,WDENS,B(1),B(I+1),B(I1+1),B(I2+1)) I=NM*(NM+1)/2 DO 82 I2=1,N INDM(NM+I2)=JADR4+I2 I=I+NM DO 81 I1=1,I2 I=I+1 IF(J.EQ.0) THEN CS(I)=CS(I)+B(I2*(I2-1)/2+I1) ELSE CS(I)=CS(I)+B(N*(I2-1)+I1)+B(N*(I1-1)+I2) END IF 81 CONTINUE 82 CONTINUE NM=NM+N C Contribution corresponding to the derivatives C is added to the matrix CS. END IF C END IF 90 CONTINUE 91 CONTINUE 92 CONTINUE C End of loops for functions. C RETURN END C C======================================================================= Cspsp.for 100666 1750 1750 61274 6367266504 11702 0 ustar klimes klimes C
SUBROUTINE SPSP(NAX,NAY,NAZ,NBX,NBY,NBZ,NX,NY,NZ, * X,Y,Z,VX,VY,VZ,SIGMA,WEIGHT,B,BX,BY,BZ) C INTEGER NAX,NAY,NAZ,NBX,NBY,NBZ,NX,NY,NZ REAL X(NX),Y(NY),Z(NZ),VX(5,NX),VY(5,NY),VZ(5,NZ) REAL SIGMA,WEIGHT,B(*),BX(*),BY(*),BZ(*) C C Complement to FITPACK C by Alan Kaylor Cline C coded -- January 23, 1994 C by Ludek Klimes C Department of Geophysics C Charles University, Prague C C This subroutine evaluates the Sobolev scalar products C of spline under tension basis functions in three variables C (the Sobolev scalar product consists of integrals of the C products of partial derivatives of the two argument functions) C C On input-- C C NXA, NYA, NZA are the orders of partial derivatives of C the first argument function in the scalar product C C NXB, NYB, NZB are the orders of partial derivatives of C the second argument function in the scalar product C C NX, NY, NZ are the numbers of grid points in the C X-, Y-, Z-directions, respectively. (NX, NY, NZ C should be at least 1) C C X, Y, and Z are arrays of the NX, NY, and NZ coordinates C of the grid lines in the X-, Y-, and Z-directions, C respectively. These should be strictly increasing. C C VX, VY,VZ are arrays of lengths 5*NX, 5*NY, 5*NZ, C respectively, containing the B-spline basis data for the C X-, Y- and Z-grids. They contain certain coefficients C to be used for the determination of the B-spline under C tension basis. Considered as a 5 by N array, for I = 1, C ... , N, B-spline basis function I is specified by-- C V(1,I) = second derivative at X(I-1), for I .NE. 1, C V(2,I) = second derivative at X(I), for all I, C V(3,I) = second derivative at X(I+1), for I .NE. N, C V(4,I) = function value at X(I-1), for I .NE. 1, C V(5,I) = function value at X(I+1), for I .NE. N, C and the properties that it has-- C 1. Function value 1 at X(I), C 2. Function value and second derivative = 0 at C X(1), ... , X(I-2), and X(I+2), ... , X(N). C In V(5,N) and V(3,N) are contained function value and C second derivative of basis function zero at X(1), C respectively. In V(4,1) and V(1,1) are contained C function value and second derivative of basis function C N+1 at X(N), respectively. Function value and second C derivative of these two basis functions are zero at all C other knots. Only basis function zero has non-zero C second derivative value at X(1) and only basis C function N+1 has non-zero second derivative at X(N). C C SIGMA contains the tension factor. This value indicates C the curviness desired. If ABS(SIGMA) is nearly zero C (e. g. .001) the basis functions are approximately cubic C splines. If ABS(SIGMA) is large (e. g. 50.) the basis C functions are nearly piecewise linear. If SIGMA equals C zero a cubic spline basis results. A standard value for C SIGMA is approximately 1. In absolute value. C C WEIGHT is the weight of the product of NXA,NYA,NZA-partial C derivative of the first argument and NXB,NYB,NZB-partial C derivative of the second argument, in the Sobolev scalar C product. The integral of the product of the partial C derivatives multiplied by WEIGHT is added to matrix B. C C B is the array containing NN*NN matrix B (NN=NX*NY*NZ), C stored as a symmetric matrix ( NN*(NN+1)/2 storage C locations ) if NAX.EQ.NBX and NAY.EQ.NBY and NAZ.EQ.NBZ, C else stored as a general matrix ( NN*NN storage C locations ). The II,JJ-element of the matrix B C will be increased by the integral of the product of C NXA-,NYA-,NZA-partial derivative of the II-th basis C function and NXB-,NYB-,NZB-partial derivative of the C JJ-th basis function, multiplied by WEIGHT. C Here the basis function IX,IY,IZ (1.LE.IX.LE.NX, C 1.LE.IY.LE.NY, 1.LE.IZ.LE.NZ) is indexed by C II=IX+NX*(IY+NY*IZ). C C BX is an auxiliary array of at least NX*(NX+1)/2 C locations for NXA.EQ.NXB, or of at least NX*NX locations C for NXA.NE.NXB. It is used for scratch storage. C C BY is an auxiliary array of at least NY*(NY+1)/2 C locations for NYA.EQ.NYB, or of at least NY*NY locations C for NYA.NE.NYB. It is used for scratch storage. C C BZ is an auxiliary array of at least NZ*(NZ+1)/2 C locations for NZA.EQ.NZB, or of at least NZ*NZ locations C for NZA.NE.NZB. It is used for scratch storage. C C And C C None of the input parameters, except B, BX, BY, BZ, are C altered C C The parameters NX, NY, NZ, X, Y, Z, VX, VY, VZ and SIGMA C should be input unaltered from the output of VAL3B1 C (SURFB1, CURVB1). C C On output-- C C B is the input array increased by the integrals of the C products of NXA-,NYA-,NZA-partial derivatives and C NXB-,NYB-,NZB-partial derivatives of the spline under C tension basis functions, multiplied by WEIGHT. C C This subroutine references package modules QSPL, QINT, C and SNHCSH. C EXTERNAL QSPL C C-------------------------------------------------------------- C C Other variables used inside the subroutine QSPL C INTEGER IX,JX,KX,MX,IY,JY,KY,MY,IZ,JZ,KZ,MZ,II,JJ,KK,MM C C The matrix element B(II,JJ) is located in the array element C B(KK), where C for symmetric matrix B, II.LE.JJ : C KK= (JJ-1)*JJ/2+II C for symmetric matrix B, II.GT.JJ : C KK= (II-1)*II/2+JJ C for nonsymmetric matrix B : C KK= (JJ-1)*NN+II C with NN=NX*NY*NZ being the dimension of the matrix B. C C The matrix element BX(IX,JX) is located in the array element C BX(KX). The meaning of IX,JX,KX is similar as the meaning C of II,JJ,KK in the case of matrix B. C C The matrix element BY(IY,JY) is located in the array element C BZ(KY). The meaning of IY,JY,KY is similar as the meaning C of II,JJ,KK in the case of matrix B. C C The matrix element BZ(IZ,JZ) is located in the array element C BZ(KZ). The meaning of IZ,JZ,KZ is similar as the meaning C of II,JJ,KK in the case of matrix B. C C MM, MX, MY, MZ are auxiliary variables considering the C symmetry of the matrices B, BX, BY, BZ. C C--------------------------------------------------------------- C C Scalar products of B-splines in X-direction KX= 0 MX= NX DO 12 JX=1,NX C Is BX symmetric matrix ? IF(NAX.EQ.NBX) MX=JX DO 11 IX=1,MX KX= KX+1 CALL QSPL(NAX,NBX,IX,JX,NX,X,VX,SIGMA,BX(KX)) C QSPL 11 CONTINUE 12 CONTINUE C C Scalar products of B-splines in Y-direction KY= 0 MY= NY DO 14 JY=1,NY C Is BY symmetric matrix ? IF(NAY.EQ.NBY) MY=JY DO 13 IY=1,MY KY= KY+1 CALL QSPL(NAY,NBY,IY,JY,NY,Y,VY,SIGMA,BY(KY)) C QSPL 13 CONTINUE 14 CONTINUE C C Scalar products of B-splines in Z-direction KZ= 0 MZ= NZ DO 16 JZ=1,NZ C Is BZ symmetric matrix ? IF(NAZ.EQ.NBZ) MZ=JZ DO 15 IZ=1,MZ KZ= KZ+1 CALL QSPL(NAZ,NBZ,IZ,JZ,NZ,Z,VZ,SIGMA,BZ(KZ)) C QSPL 15 CONTINUE 16 CONTINUE C C Scalar products of 3-D B-splines C Is B symmetric matrix ? IF(NAX.EQ.NBX.AND.NAY.EQ.NBY.AND.NAZ.EQ.NBZ) THEN MM= 1 ELSE MM= 0 END IF KK= 0 JJ= 0 DO 27 JZ=1,NZ DO 26 JY=1,NY DO 25 JX=1,NX JJ= JJ+1 II= 0 C Is BZ symmetric matrix ? IF(NAZ.EQ.NBZ) THEN KZ= (JZ-1)*JZ/2 ELSE KZ= (JZ-1)*NZ END IF DO 23 IZ=1,NZ KZ= KZ+1 C Subdiagonal element of matrix BZ IF(NAZ.EQ.NBZ.AND.IZ.GT.JZ) KZ=KZ+IZ-2 C Is BY symmetric matrix ? IF(NAY.EQ.NBY) THEN KY= (JY-1)*JY/2 ELSE KY= (JY-1)*NY END IF DO 22 IY=1,NY KY= KY+1 C Subdiagonal element of matrix BY IF(NAY.EQ.NBY.AND.IY.GT.JY) KY=KY+IY-2 C Is BX symmetric matrix ? IF(NAX.EQ.NBX) THEN KX= (JX-1)*JX/2 ELSE KX= (JX-1)*NX END IF DO 21 IX=1,NX KX= KX+1 C Subdiagonal element of matrix BX IF(NAX.EQ.NBX.AND.IX.GT.JX) KX=KX+IX-2 KK= KK+1 B(KK)= B(KK)+WEIGHT*BX(KX)*BY(KY)*BZ(KZ) II= II+1 IF(MM*II.GE.JJ) GO TO 24 21 CONTINUE 22 CONTINUE 23 CONTINUE 24 CONTINUE 25 CONTINUE 26 CONTINUE 27 CONTINUE C RETURN END C C======================================================================= C C C SUBROUTINE QSPL(NA,NB,IA,IB,N,X,V,SIGMA,Q) C INTEGER NA,NB,IA,IB,N REAL X(N),V(5,N),SIGMA,Q C C Complement to FITPACK C by Alan Kaylor Cline C coded -- January 23, 1994 C by Ludek Klimes C Department of Geophysics C Charles University, Prague C C This subroutine evaluates the Sobolev scalar product C of spline under tension basis functions in one variable C (the Sobolev scalar product consists of integrals of the C products of partial derivatives of the two argument functions) C C On input-- C C NA is the order of the partial derivative of C the first argument function in the scalar product. C C NB is the order of the partial derivative of C the second argument function in the scalar product. C C IA is the index of the first argument function C (1.LE.IA.LE.N). C C IB is the index of the second argument function C (1.LE.IB.LE.N). C C N is the number of grid points. C (N should be at least 1) C C X is the array of the N coordinates of grid points. C These should be strictly increasing. C C V is the array of lengths 5*N, C containing certain coefficients to be used C for the determination of the B-spline under C tension basis. Considered as a 5 by N array, for I = 1, C ... , N, B-spline basis function I is specified by-- C V(1,I) = second derivative at X(I-1), for I .NE. 1, C V(2,I) = second derivative at X(I), for all I, C V(3,I) = second derivative at X(I+1), for I .NE. N, C V(4,I) = function value at X(I-1), for I .NE. 1, C V(5,I) = function value at X(I+1), for I .NE. N, C and the properties that it has-- C 1. Function value 1 at X(i), C 2. Function value and second derivative = 0 at C X(1), ... , X(I-2), and X(I+2), ... , X(N). C In V(5,N) and V(3,N) are contained function value and C second derivative of basis function zero at X(1), C respectively. In V(4,1) and V(1,1) are contained C function value and second derivative of basis function C N+1 at X(N), respectively. Function value and second C derivative of these two basis functions are zero at all C other knots. Only basis function zero has non-zero C second derivative value at X(1) and only basis C function N+1 has non-zero second derivative at X(N). C C SIGMA contains the tension factor. This value indicates C the curviness desired. If ABS(SIGMA) is nearly zero C (e. g. .001) the basis functions are approximately cubic C splines. If ABS(SIGMA) is large (e. g. 50.) the basis C functions are nearly piecewise linear. If SIGMA equals C zero a cubic spline basis results. A standard value for C SIGMA is approximately 1. In absolute value. C C And C C None of the input parameters are altered. C C The parameters N, X, V, and SIGMA C should be input unaltered from the output of VAL3B1 C (SURFB1, CURVB1). C C On output-- C C Q is the integral of the product of NA-th partial C derivative of the IA-th basis function and C NB-th partial derivative of the IB-th spline under C tension basis function. C C This subroutine references package modules QINT, SNHCSH. C EXTERNAL QINT C C--------------------------------------------------------------- C C Other variables used inside the subroutine QSPL: C INTEGER I,J REAL SIGMAP,V1A,V2A,V3A,V4A,V5A,V1B,V2B,V3B,V4B,V5B C C I...Index of the interval. C J...Position of the second B-spline with respect to the C interval I. C SIGMAP...Denormalized tension factor. C V1A,V2A,V3A,V4A,V5A,V1B,V2B,V3B,V4B,V5B...Auxiliary C storage locations for V(1,IA),...,V(5,IB). C C--------------------------------------------------------------- C IF(N.GT.1) GO TO 10 Q = 1. IF(NA.NE.0.OR.NB.NE.0) Q=0. GO TO 90 C 10 SIGMAP= ABS(SIGMA)*FLOAT(N-1)/(X(N)-X(1)) V1A= V(1,IA) V2A= V(2,IA) V3A= V(3,IA) V4A= V(4,IA) V5A= V(5,IA) V1B= V(1,IB) V2B= V(2,IB) V3B= V(3,IB) V4B= V(4,IB) V5B= V(5,IB) Q = 0. C I = IA-2 IF(I.LT.1) GO TO 20 J = I-IB+3 IF(J.LT.1) GO TO 20 IF(J.GT.4) GO TO 90 GO TO (11,12,13,14),J 11 CALL QINT(X(I),X(I+1),0. ,0. ,V4A,V1A,NA, * 0. ,0. ,V4B,V1B,NB,SIGMAP,Q) GO TO 20 12 CALL QINT(X(I),X(I+1),0. ,0. ,V4A,V1A,NA, * V4B,V1B,1. ,V2B,NB,SIGMAP,Q) GO TO 20 13 CALL QINT(X(I),X(I+1),0. ,0. ,V4A,V1A,NA, * 1. ,V2B,V5B,V3B,NB,SIGMAP,Q) GO TO 20 14 CALL QINT(X(I),X(I+1),0. ,0. ,V4A,V1A,NA, * V5B,V3B,0. ,0. ,NB,SIGMAP,Q) C QINT C 20 I = IA-1 IF(I.LT.1) GO TO 30 J = I-IB+3 IF(J.LT.1) GO TO 30 IF(J.GT.4) GO TO 90 GO TO (21,22,23,24),J 21 CALL QINT(X(I),X(I+1),V4A,V1A,1. ,V2A,NA, * 0. ,0. ,V4B,V1B,NB,SIGMAP,Q) GO TO 30 22 CALL QINT(X(I),X(I+1),V4A,V1A,1. ,V2A,NA, * V4B,V1B,1. ,V2B,NB,SIGMAP,Q) GO TO 30 23 CALL QINT(X(I),X(I+1),V4A,V1A,1. ,V2A,NA, * 1. ,V2B,V5B,V3B,NB,SIGMAP,Q) GO TO 30 24 CALL QINT(X(I),X(I+1),V4A,V1A,1. ,V2A,NA, * V5B,V3B,0. ,0. ,NB,SIGMAP,Q) C QINT C 30 I = IA IF(I.GE.N) GO TO 90 J = I-IB+3 IF(J.LT.1) GO TO 40 IF(J.GT.4) GO TO 90 GO TO (31,32,33,34),J 31 CALL QINT(X(I),X(I+1),1. ,V2A,V5A,V3A,NA, * 0. ,0. ,V4B,V1B,NB,SIGMAP,Q) GO TO 40 32 CALL QINT(X(I),X(I+1),1. ,V2A,V5A,V3A,NA, * V4B,V1B,1. ,V2B,NB,SIGMAP,Q) GO TO 40 33 CALL QINT(X(I),X(I+1),1. ,V2A,V5A,V3A,NA, * 1. ,V2B,V5B,V3B,NB,SIGMAP,Q) GO TO 40 34 CALL QINT(X(I),X(I+1),1. ,V2A,V5A,V3A,NA, * V5B,V3B,0. ,0. ,NB,SIGMAP,Q) C QINT C 40 I = IA+1 IF(I.GE.N) GO TO 90 J = I-IB+3 IF(J.LT.1) GO TO 90 IF(J.GT.4) GO TO 90 GO TO (41,42,43,44),J 41 CALL QINT(X(I),X(I+1),V5A,V3A,0. ,0. ,NA, * 0. ,0. ,V4B,V1B,NB,SIGMAP,Q) GO TO 90 42 CALL QINT(X(I),X(I+1),V5A,V3A,0. ,0. ,NA, * V4B,V1B,1. ,V2B,NB,SIGMAP,Q) GO TO 90 43 CALL QINT(X(I),X(I+1),V5A,V3A,0. ,0. ,NA, * 1. ,V2B,V5B,V3B,NB,SIGMAP,Q) GO TO 90 44 CALL QINT(X(I),X(I+1),V5A,V3A,0. ,0. ,NA, * V5B,V3B,0. ,0. ,NB,SIGMAP,Q) C QINT C 90 CONTINUE RETURN END C C======================================================================= C C C SUBROUTINE QINT(X1,X2,FA1,DA1,FA2,DA2,NA, * FB1,DB1,FB2,DB2,NB,SIGMAP,Q) C INTEGER NA,NB REAL X1,X2,FA1,DA1,FA2,DA2,FB1,DB1,FB2,DB2,SIGMAP,Q C C Complement to FITPACK C by Alan Kaylor Cline C coded -- January 23, 1994 C by Ludek Klimes C Department of Geophysics C Charles University, Prague C C This subroutine evaluates the integral of the product C of the given derivatives of the two given cubic functions C or spline under tension basis functions in one variable, C over a single specified interval. C C On input-- C C X1, X2 endpoints of the given interval. C C FA1, DA1 function value and second derivative of the C first given function at X1. C C FA2, DA2 function value and second derivative of the C first given function at X2. C C NA is the order of the partial derivative of C the first argument function in the scalar product. C C FB1, DB1, FB2, DB2 the same as FA1, DA1, FA2, DA2, but C for the second given function. C C NB is the order of the partial derivative of C the second argument function in the scalar product. C C SIGMAP is the denormalized tension factor. C C And C C None of the input parameters are altered. C C On output-- C C Q is the integral of the product of NA-th partial C derivative of the first function and C NB-th partial derivative of the second function, C over the interval X1,X2. C C This subroutine references package module SNHCSH. C EXTERNAL SNHCSH C C--------------------------------------------------------------- C C Other variables used inside the subroutine QINT: C INTEGER MA,MB,M REAL QQ,H,SH,CH,SH1,CH1,SIGMA2 REAL A1,A2,A3,A4,B1,B2,B3,B4,AB11,AB21,AB12,AB22 C C--------------------------------------------------------------- C MA= MOD(NA,2) MB= MOD(NB,2) M = MA+MA+MB+1 QQ= 0. C IF(SIGMAP.NE.0.) GO TO 40 C C No tension: H = X2-X1 IF(NA.LE.3.AND.NB.LE.3) GO TO 1 GO TO 91 1 IF(NA.LE.1) GO TO 3 C Coefficients of linear function A3= DA2/H A4=-DA1/H IF(NB.LE.1) GO TO 2 C Coefficients of linear function B3= DB2/H B4=-DB1/H GO TO 80 2 CONTINUE C Coefficients of cubic and linear functions B1= DB2/H B2=-DB1/H B3= FB2/H-DB2*H/6. B4=-FB1/H+DB1*H/6. GO TO 30 3 CONTINUE C Coefficients of cubic and linear functions A1= DA2/H A2=-DA1/H A3= FA2/H-DA2*H/6. A4=-FA1/H+DA1*H/6. IF(NB.LE.1) GO TO 4 C Coefficients of linear function B3= DB2/H B4=-DB1/H GO TO 20 4 CONTINUE C Coefficients of cubic and linear functions B1= DB2/H B2=-DB1/H B3= FB2/H-DB2*H/6. B4=-FB1/H+DB1*H/6. C C Integrals of (cubic function)*(cubic function): GO TO (11,12,13,14),M C (even derivative)*(even derivative) 11 AB11= (H**7)/252. AB21=-(H**7)/5040. AB12= AB21 AB22= AB11 GO TO 15 C (even derivative)*(odd derivative) 12 AB11= (H**6)/72. AB21=-(H**6)/720. AB12=-AB21 AB22=-AB11 GO TO 15 C (odd derivative)*(even derivative) 13 AB11= (H**6)/72. AB21= (H**6)/720. AB12=-AB21 AB22=-AB11 GO TO 15 C (odd derivative)*(odd derivative) 14 AB11= (H**5)/20. AB21= (H**5)/120. AB12= AB21 AB22= AB11 C Accumulation of the computed integral: 15 QQ=QQ+A1*(AB11*B1+AB12*B2)+A2*(AB21*B1+AB22*B2) C C Integrals of (cubic function)*(linear function): 20 GO TO (21,22,23,24),M C (even derivative)*(even derivative) 21 AB11= (H**5)/30. AB21=-(H**5)/120. AB12= AB21 AB22= AB11 GO TO 25 C (even derivative)*(odd derivative) 22 AB11= (H**4)/24. AB21=-(H**4)/24. AB12=-AB21 AB22=-AB11 GO TO 25 C (odd derivative)*(even derivative) 23 AB11= (H**4)/8. AB21= (H**4)/24. AB12=-AB21 AB22=-AB11 GO TO 25 C (odd derivative)*(odd derivative) 24 AB11= (H**3)/6. AB21= (H**3)/6. AB12= AB21 AB22= AB11 C Accumulation of the computed integral: 25 QQ=QQ+A1*(AB11*B3+AB12*B4)+A2*(AB21*B3+AB22*B4) C IF(NB.GT.1) GO TO 80 C C Integrals of (linear function)*(cubic function): 30 GO TO (31,32,33,34),M C (even derivative)*(even derivative) 31 AB11= (H**5)/30. AB21=-(H**5)/120. AB12= AB21 AB22= AB11 GO TO 35 C (even derivative)*(odd derivative) 32 AB11= (H**4)/8. AB21=-(H**4)/24. AB12=-AB21 AB22=-AB11 GO TO 35 C (odd derivative)*(even derivative) 33 AB11= (H**4)/24. AB21= (H**4)/24. AB12=-AB21 AB22=-AB11 GO TO 35 C (odd derivative)*(odd derivative) 34 AB11= (H**3)/6. AB21= (H**3)/6. AB12= AB21 AB22= AB11 C Accumulation of the computed integral: 35 QQ=QQ+A3*(AB11*B1+AB12*B2)+A4*(AB21*B1+AB22*B2) GO TO 80 C C C Nonzero tension: 40 H = SIGMAP*(X2-X1) CALL SNHCSH(SH1,CH1,H,0) C SNHCSH SH= SH1+H CH= CH1+1. SIGMA2= SIGMAP*SIGMAP C C Coefficients of hyperbolic functions (multiplied by SH) A1= DA2/SIGMA2 A2=-DA1/SIGMA2 B1= DB2/SIGMA2 B2=-DB1/SIGMA2 C C Doubled C integrals of (hyperbolic function)*(hyperbolic function): GO TO (51,52,53,54),M C (even derivative)*(even derivative) 51 AB11= CH*SH1+H*CH1 AB21= SH1-H*CH1 AB12= AB21 AB22= AB11 GO TO 55 C (even derivative)*(odd derivative) 52 AB11= SH*SH AB21= -H*SH AB12=-AB21 AB22=-AB11 GO TO 55 C (odd derivative)*(even derivative) 53 AB11= SH*SH AB21= H*SH AB12=-AB21 AB22=-AB11 GO TO 55 C (odd derivative)*(odd derivative) 54 AB11= SH*CH+H AB21= SH+H*CH AB12= AB21 AB22= AB11 C Accumulation of the computed integral: 55 QQ=QQ+(A1*(AB11*B1+AB12*B2)+A2*(AB21*B1+AB22*B2))/(2.*SH*SH) C IF(NB.GT.1) GO TO 70 C C Coefficients of linear function B3= ( FB2-B1)/H B4= (-FB1-B2)/H C C Integrals of (hyperbolic function)*(linear function): GO TO (61,62,63,64),M C (even derivative)*(even derivative) 61 AB11= H*CH1-SH1 AB21= -SH1 AB12= AB21 AB22= AB11 GO TO 65 C (even derivative)*(odd derivative) 62 AB11= CH1 AB21=-CH1 AB12=-AB21 AB22=-AB11 GO TO 65 C (odd derivative)*(even derivative) 63 AB11= H*SH-CH1 AB21= CH1 AB12=-AB21 AB22=-AB11 GO TO 65 C (odd derivative)*(odd derivative) 64 AB11= SH AB21= SH AB12= AB21 AB22= AB11 C Accumulation of the computed integral: 65 QQ=QQ+(A1*(AB11*B3+AB12*B4)+A2*(AB21*B3+AB22*B4))/SH C 70 IF(NA.GT.1) GO TO 90 C C Coefficients of linear function A3= ( FA2-A1)/H A4= (-FA1-A2)/H C C Integrals of (linear function)*(hyperbolic function): GO TO (71,72,73,74),M C (even derivative)*(even derivative) 71 AB11= H*CH1-SH1 AB21= -SH1 AB12= AB21 AB22= AB11 GO TO 75 C (even derivative)*(odd derivative) 72 AB11= H*SH-CH1 AB21= -CH1 AB12=-AB21 AB22=-AB11 GO TO 75 C (odd derivative)*(even derivative) 73 AB11= CH1 AB21= CH1 AB12=-AB21 AB22=-AB11 GO TO 75 C (odd derivative)*(odd derivative) 74 AB11= SH AB21= SH AB12= AB21 AB22= AB11 C Accumulation of the computed integral: 75 QQ=QQ+(A3*(AB11*B1+AB12*B2)+A4*(AB21*B1+AB22*B2))/SH C IF(NB.GT.1) GO TO 90 C C Integrals of (linear function)*(linear function): 80 GO TO (81,82,83,84),M C (even derivative)*(even derivative) 81 AB11= (H**3)/3. AB21=-(H**3)/6. AB12= AB21 AB22= AB11 GO TO 85 C (even derivative)*(odd derivative) 82 AB11= (H**2)/2. AB21=-AB11 AB12=-AB21 AB22=-AB11 GO TO 85 C (odd derivative)*(even derivative) 83 AB11= (H**2)/2. AB21= AB11 AB12=-AB21 AB22=-AB11 GO TO 85 C (odd derivative)*(odd derivative) 84 AB11= H AB21= H AB12= AB21 AB22= AB11 C Accumulation of the computed integral: 85 QQ=QQ+A3*(AB11*B3+AB12*B4)+A4*(AB21*B3+AB22*B4) C C Transformation from independent variable SIGMAP*X to X 90 IF(SIGMAP.NE.0.) QQ=QQ*SIGMAP**(NA+NB-1) 91 Q= Q+QQ RETURN END C C======================================================================= Csrfc.for 100666 1750 1750 24623 6367266434 11651 0 ustar klimes klimes C
C Subroutine file 'srfc.for' for specification and interpolation of C smooth surfaces in the model in rectangular grids. C C Date: 1996, September 30 C Coded by Ludek Klimes C C....................................................................... C C This file consists of the following subroutines: C SRFC1...Subroutine reading the input data for smooth surfaces. C SRFC1 C SRFC2...Subroutine evaluating the function values and their first C and second derivatives. Outside the specified rectangular C grid, the functions are continued smoothly. C SRFC2 C Subroutines SRFC1 and SRFC2 supporting the complete ray tracing C algorithm only mediate the work of subroutines VAL1 and VAL2 which C must be appended. In addition, subroutines CURVN1 (or its alternative C CURVB1), CURV2D (or its alternative CURVBD), SURFB1, SURFBD, VAL3B1, C VAL3BD, VGEN, TERMS, SNHCSH, TRIDEC, TRISOL, DSPLNZ, INTRVL from the C subroutine package 'FITPACK' by Alan Kaylor Cline, Department of C Computer Sciences, University of Texas at Austin, are used. In the C complete ray tracing, this software file 'srfc.for' may be replaced C by any user-defined package containing subroutines SRFC1 and SRFC2 C with the same number, type and meaning of their parameters as in this C file. C C If model variations are taken into account: C Model variations are assumed to be stored while evaluating the C function describing a given surface during the invocation of C subroutine VAL of file 'val.for' and subsequent routines of file C 'fit.for'. The variations are assumed to be stored in register 1 C of the system VAR*. C C....................................................................... C C C Input data (read in by subroutine SRFC1): C These input data define the surfaces. They are read in by C subroutine SRFC1. The number nsrfc of the surfaces to be defined C is an input argument of subroutine SRFC1. The data are read in by C the list directed input (free format). C (1) NSRFC-times (i.e. once for each surface) input data (1A)+(1B): C (1A) TEXTG,ISRFC C Identification of the surface. C TEXTG...Any string. Its first 3 characters must differ from 'END'. C ISRFC...Index of the surface. C (1B) 'Input data for one surface', see below. C (2) TEXTE,AUX C End of data. C TEXTE...String, the first 3 characters of which must be upper-case C 'END'. C AUX... Any number or a slash. C For an example refer to the sample input data for the model. C C Input data for one surface: C The data are read in by the list directed input (free format). In C the list of input data below, each numbered paragraph indicates C the beginning of a new input operation (new read statement). If C the first letter of the symbolic name of the input variable is C I-N, the corresponding value in input data must be of the type C INTEGER. Otherwise, the input parameter is of the type REAL. C (1) IVAR1,IVAR2,IVAR3,SIGMA,POWERW,/ C The form of the function. C IVAR1,IVAR2,IVAR3... Denote the form of the function. The function C must be of the form C F(X1,X2,X3) = W(A1,A2,A3)-B1-B2-B3 . C X1, X2, X3 are the general coordinates. Each of A1, A2, C A3, B1, B2, B3 must be either: (a) one of general C coordinates X1, X2, X3, or (b) must be left out. At most C 3 of parameters A1-B3 may be of kind (a). Note that IVAR1 C controls the type of A1 and B1, IVAR2 controls the type of C A2 and B2, IVAR3 controls the type of A3 and B3. C For IVAR1.EQ.0: A1, B1 are empty (left out), C for IVAR1.EQ.1: A1=X1, B1 is empty, C for IVAR1.EQ.2: A1=X2, B1 is empty, C for IVAR1.EQ.3: A1=X3, B1 is empty, C for IVAR1.EQ.-1: B1=X1, A1 is empty, C for IVAR1.EQ.-2: B1=X2, A1 is empty, C for IVAR1.EQ.-3: B1=X3, A1 is empty, C the meaning of the parameters IVAR2, IVAR3 is similar. C Examples: C IVAR1: IVAR2: IVAR3: the form of the function: C 1 2 3 F(X1,X2,X3)=W(X1,X2,X3) C 3 1 2 F(X1,X2,X3)=W(X3,X1,X2) C 1 2 0 F(X1,X2,X3)=W(X1,X2) C 1 2 -3 F(X1,X2,X3)=W(X1,X2)-X3 C 1 -3 2 F(X1,X2,X3)=W(X1,X2)-X3 C Function W is interpolated by means of splines under C tension. C SIGMA...Is the tension factor (its sign is ignored). This value C indicates the curviness desired. If ABS(SIGMA) is nearly C zero (e.g. 0.001), the resulting surface is approximately C the tensor product of cubic splines. If ABS(SIGMA) is C large (e.g. 50.), the resulting surface is approximately C tri-linear. If SIGMA equals zero, tensor products of C cubic splines result. A recommended value for SIGMA is C approximately 1. In absolute value. C POWERW..Given grid values (6) correspond to the POWERW-th power of C interpolated function W. The given grid values (6) are C thus raised to the (1/POWERW)-th power immediately after C reading and then interpolated. POWERW=1 is recommended. C /... Obligatory slash at the end of line for future extensions. C Default: IVAR1=0, IVAR2=0, IVAR3=0, SIGMA=0, POWERW=1. C (2) NX(1),...,NX(NVAR) C The numbers of grid coordinates for the interpolation. C This input is performed if at least one of IVAR1, IVAR2, IVAR3 is C positive. C Each of NX(1),...,NX(NVAR) corresponds to one positive value of C IVAR1, IVAR2, IVAR3 and specifies the number of grid coordinates C corresponding to that independent variable of function W, see (1). C The sign of NX(1),...,NX(NVAR) is ignored. NVAR (.LE.3) is the C number of positive values of the above quantities IVAR1, IVAR2, C IVAR3, i.e. The number of independent variables of function W, C see (1). C (3) X1(1),...,X1(NX(1)) C The grid coordinates corresponding to the first independent C variable of function W, see (1). C This input is performed if NX(1) is specified, see (2), and is not C zero. The grid coordinates may be specified in any order. C (4) X2(1),...,X2(NX(2)) C The grid coordinates corresponding to the second independent C variable of function W, see (1). C This input is performed if NX(2) is specified, see (2), and is not C zero. The grid coordinates may be specified in any order. C (5) X3(1),...,X3(NX(3)) C The grid coordinates corresponding to the third independent C variable of function W, see (1). C This input is performed if NX(3) is specified, see (2), and is not C zero. The grid coordinates may be specified in any order. C (6) (((W(I,J,K),I=1,MAX(NX(1),1)),J=1,MAX(NX(2),1)),K=1,MAX(NX(3),1)) C The values of function W at grid points. Function value W(I,J,K) C corresponds to point (X1(I),X2(J),X3(K)). C C======================================================================= C C C SUBROUTINE SRFC1(LUN,NSRFC) INTEGER LUN,NSRFC C C This subroutine reads the input data for the smooth surfaces, C determines the parameters necessary to compute an interpolatory C function on a three dimensional rectangular grid, and stores them in C the memory. The function determined can be represented as a tensor C product of splines under tension. For actual mapping of points it is C necessary to call the subroutine SRFC2, which also returns the first C and second partial derivatives. Subroutine SRFC1 may be called C several times. The surfaces are indexed successively, following the C surfaces defined during the previous invocations. C C Input: C LUN... Logical unit number of the external input device C containing the input data. C NSRFC...Number of the surfaces for which the input data are C specified during the current invocation of SRFC1. C None of the input parameters are altered. C C No output. C C Subroutines and external functions required: EXTERNAL VAL1 C VAL1, SORTV, READV... File 'val.for'. C CURVN1 or CURVB1 (alternatives), SURFB1, VAL3B1, SNHCSH, VGEN, C TERMS, TRIDEC, TRISOL... Subroutine package 'FITPACK' C (file 'fit.for'). C C Date: 1992, December 31 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage locations: CHARACTER*3 TFUNCT(1) DATA TFUNCT/' '/ C CALL VAL1(LUN,1,NSRFC,1,TFUNCT) RETURN END C C======================================================================= C C C SUBROUTINE SRFC2(ISRFC,COOR,F) INTEGER ISRFC REAL COOR(3),F(10) C C This subroutine evaluates the functions describing various smooth C surfaces in the model at a given point. The three first and six second C partial derivatives are also evaluated. The specified functions are C represented as a tensor product of splines under tension. The C coefficients of these functions are prepared in subroutine SRFC1, in C which the input data concerning the function of each surface are read C in. C C Input: C ISRFC...Index of a surface. C COOR... Array containing coordinates X1, X2, X3 of the given C point. C None of the input parameters are altered. C C Output: C F... The value and the first and second partial derivatives F, C F1, F2, F3, F11, F12, F22, F13, F23, F33 of the function C F(X1,X2,X3) determining the surface ISRFC at the given C point. C C Subroutines and external functions required: EXTERNAL VAL2 C VAL2... File 'val.for'. C CURV2D or CURVBD (alternatives), SURFBD, VAL3BD, SNHCSH, DSPLNZ, C INTRVL... Subroutine package 'FITPACK' (file 'fit.for'). C C Date: 1996, September 30 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C Auxiliary storage location: REAL POWER(1) C CALL VAL2(1,IABS(ISRFC),1,COOR,F,POWER) RETURN END C C======================================================================= Cu2d/ 40777 1750 1750 0 6613213046 10533 5 ustar klimes klimes u2d/u2d-mod.dat 100666 1750 1750 4570 6221656322 12602 0 ustar klimes klimes 'Model UNCONFORMITY (Cormier and Mellen 1984).' 0 1 1 / (Cartesian coordinates, velocities, loss factors) 0 1.2 -.6 .6 -1.2 0 (boundaries of the model) 2 SURFACES 3 SIMPLE BLOCKS: -1 / 1 -2 / 1 2 / 3 COMPLEX BLOCKS: 1 / 2 / 3 / 'SURFACE' 1 -3 0 0 0 / (i.e. W-X3=0, tension=0) -0.610 (value of W, i.e. X3 coordinate of the interface) 'SURFACE' 2 1 -3 0 0 / (i.e. W(X1)-X3=0, tension=0) 2 (number of grid points) 0.000 1.150 (X1 grid coordinates) -0.790 -0.610 (X3 coordinates at grid points) 'END OF SURFACES' / 'COMPLEX BLOCK' 1 'VP ' 1 (P wave velocity) 0 0 0 0 / (i.e. VP=constant, tension=0) 2.130 (the value of velocity) 'QP ' -1 (P wave quality factor) 0 0 0 0 / (i.e. QP=constant, tension=0) 200. (the value of quality factor) 'DEN' 1 (density) 4 0 0 0 / (i.e. density=W(VP), tension=0) 2 (numbers of grid points) 0 10 (VP grid coordinates) 1.7 3.7 (densities at grid points, density=1.7+0.2*VP) 'COMPLEX BLOCK' 2 'VP ' 1 (P wave velocity) 0 0 0 0 / (i.e. VP=constant, tension=0) 2.740 (the value of velocity) 'QP ' -1 (P wave quality factor) 0 0 0 0 / (i.e. QP=constant, tension=0) 200. (the value of quality factor) 'DEN' 1 (density) 4 0 0 0 / (i.e. density=W(VP), tension=0) 2 (numbers of grid points) 0 10 (VP grid coordinates) 1.7 3.7 (densities at grid points, density=1.7+0.2*VP) 'COMPLEX BLOCK' 3 'VP ' 1 (P wave velocity) 0 0 0 0 / (i.e. VP=constant, tension=0) 3.960 (the value of velocity) 'QP ' -1 (P wave quality factor) 0 0 0 0 / (i.e. QP=constant, tension=0) 200. (the value of quality factor) 'DEN' 1 (density) 4 0 0 0 / (i.e. density=W(VP), tension=0) 2 (numbers of grid points) 0 10 (VP grid coordinates) 1.7 3.7 (densities at grid points, density=1.7+0.2*VP) 'END OF COMPLEX BLOCKS, END OF THE INPUT DATA FOR THE MODEL' / ======================================================================== u2d/u2d-soft.h 100666 1750 1750 773 6612015404 12430 0 ustar klimes klimes # History file 'u2d-soft.h' to run 'inv1soft.for' with demo data # in 2-D model UNCONFORMITY. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Input files required: #chk.pl: "model/u2d/" "u2d-mod.dat" #chk.pl: "model/" "soft.dat" # Generating Sobolev scalar products of basis functions: inv1soft: 'u2d-mod.dat' 'soft.dat' 'soft.out' / # ====================================================================== # Output file: # soft.out: Sobolev scalar products of basis functions val.for 100666 1750 1750 126345 6621466646 11522 0 ustar klimes klimes C
C Subroutine file 'val.for' for function specification and interpolation C - designed to perform the interpolation of a set of functions in a C rectangular grid. C C Date: 1998, October 9 C Coded by Ludek Klimes C C....................................................................... C C This file consists of the following subroutines: C VALB... Block data subroutine initiating common block /VALC/ to C store the data describing the interpolated functions. C VALB C VAL1... Subroutine designed to read the input data for the C functions, to compute the coefficients of the expansion C and to store them in the memory. C VAL1 C SORTV...Auxiliary subroutine to subroutine VAL1. C SORTV C READV...Auxiliary subroutine to subroutine VAL1. C READV C VAL2... Subroutine evaluating the functions including their first C and second derivatives. The functions may be used to C specify various surfaces in the model, the space C distributions of various parameters, e.t.c. The functions C are represented as a tensor product of splines under C tension of at most 3 independent variables (i.e. a linear C combination of products of B-splines under tension of at C most 3 independent variables). Outside the specified C rectangular grid, the functions are extrapolated by their C analytic continuation. See lines of subroutine VAL2 with C 'CV3' in first 3 columns for comparison with the kind of C extrapolation used in old versions (outside the specified C rectangular grid, the functions were linear along straight C lines perpendicular to the boundary of the grid). The C functions may be embedded: the independent variable of C the function may be another function of the same group C (see below) foregoing in the input data. C VAL2 C Subroutines of this file employ routines CURVN1 (or its alternative C CURVB1), CURV2D (or its alternative CURVBD), SURFB1, SURFBD, VAL3B1, C VAL3BD, VGEN, TERMS, SNHCSH, TRIDEC, TRISOL, DSPLNZ, INTRVL from the C subroutine package 'FITPACK' by Alan Kaylor Cline, Department of C Computer Sciences, University of Texas at Austin. C C Note: C The lines denoted by '*V' in the first two columns of file C 'val.for' in subroutine VAL2 are designed to calculate the model C variations with respect to the model parameters. C File 'valv.for', intended for the model inversion, is created C from 'val.for' by replacing each '*V' in the first two columns C by spaces using program 'clean.for'. Subroutines VAR4 and VAR5 C of file 'var.for' may then be called to handle the variations. C C....................................................................... C C Classes of functions: C The interpolated functions are divided into some classes, e.g., C functions describing interfaces, functions describing the medium C parameters, functions describing the properties of the source, C etc. The number MCLASS of the defined classes is stored in the C memory and is initially zero. The new class may be defined by C means of the invocation of subroutine VAL1, see its input argument C ICLASS. During one invocation of VAL1, only the groups of C functions relevant to one class may be defined. Subroutine VAL1 C may be called several times even for one class to define its C groups successively, stage by stage. In this case, the input data C for the groups of functions relevant to one class may be read in C from various files. C C Groups of functions: C The interpolated functions of each class are divided into some C groups. For instance, the class of functions describing the medium C parameters is divided into groups corresponding to individual C complex blocks. The individual groups need not contain the same C number of functions. The group corresponding to a complex block C may contain e.g. the functions describing P-wave velocity, S-wave C velocity, density, etc. The functions not specified by the input C data but required by the program are defined and are zero. C C Input data (read in by subroutine VAL1): C These input data define the groups of functions from the specified C class. The index ICLASS of the class is an input argument of C subroutine VAL1. If the class is not defined by a previous C invocation of VAL1, it is created. The number NGROUP of the C groups to be defined is an input argument of subroutine VAL1. The C data are read in by the list directed input (free format). C (1) NGROUP-times (i.e. once for each group of functions) input data C (1A)+(1B): C (1A) TEXTG,IGROUP C Identification of the group. C TEXTG...Any string. Its first 3 characters must differ from 'END' C and from any string identifying a physical quantity, C defined by input array TFUNCT of subroutine VAL1 (see C below). C IGROUP..Sequential number of the group in the class. C (1B) Several times 'Input data for one function', see below. C If input array TFUNCT of subroutine VAL1 is fully filled by C spaces, 'Input data for one function' must be included C just NFUNCT-times (NFUNCT is an input argument of C subroutine VAL1). In this case, the input functions are C not identified by a string (see (1) of 'Input data for one C function'), their number and order must be a priori known. C This is, for instance, the case of smooth surfaces: each C group corresponds to one surface and contains just one C function. The index of the surface coincides with the C index of the group, and no identification and sorting of C functions inside a group is needed. C If input array TFUNCT of subroutine VAL1 is not fully filled by C spaces, 'Input data for one function' may be included C N-times, where 0.LE.N.LE.NFUNCT. In this case, the input C functions of individual groups are identified by a string C (see (1) of 'Input data for one function') in the input C data, their number and order may be arbitrary (note that C their number must be less than or equal to NFUNCT). This C is, for instance, the case of complex blocks: each group C corresponds to one complex block and contains some number C of functions describing material parameters. Individual C functions (material parameters) are identified by a string C in the input data. C (2) TEXTE,AUX C End of data. C TEXTE...String, the first 3 characters of which must be upper-case C 'END'. C AUX... Any number or a slash. C C Input data for one function: C The data are read in by the list directed input (free format). In C the list of input data below, each numbered paragraph indicates C the beginning of a new input operation (new READ statement). If C the first letter of the symbolic name of the input variable is C I-N, the corresponding value in input data must be of the type C INTEGER. Otherwise (except TEXTF), the input parameter is of the C type REAL. C (1) TEXTF,POWER C Physical meaning of the function. This input is not performed if C input character array TFUNCT of subroutine VAL1 (see below) is C fully filled by spaces. C TEXTF...String identifying which physical quantity the function C describes. Only the first 3 characters are significant. C The first 3 characters of the string must not be equal to C 'END'. The set of meaningful strings is defined by input C array TFUNCT of subroutine VAL1 (see below). C POWER...The specified function is equal to the POWER-th power of C the physical quantity. C (2) IVAR1,IVAR2,IVAR3,SIGMA,POWERW,/ C The form of the function. C IVAR1,IVAR2,IVAR3... Denote the form of the function. The function C must be of the form C F(X1,X2,X3) =W(A1,A2,A3)-B1-B2-B3 . C X1, X2, X3 are the general coordinates. Each of A1, A2, C A3, B1, B2, B3 must be either: (a) one of general C coordinates X1, X2, X3, (b) another previously defined C function F(X1,X2,X3) of the same group, or (c) must be C left out. At most 3 of parameters A1-B3 may be of kind C (a) or (b). Note that IVAR1 controls the type of A1 and C B1, IVAR2 controls the type of A2 and B2, IVAR3 controls C the type of A3 and B3. C For IVAR1.EQ.0: A1, B1 are empty (left out), C for IVAR1.EQ.1: A1=X1, B1 is empty, C for IVAR1.EQ.2: A1=X2, B1 is empty, C for IVAR1.EQ.3: A1=X3, B1 is empty, C for IVAR1.GE.4: A1=F(X1,X2,X3), where F(X1,X2,X3) is C another function of the same group defined in the input C data as the (IVAR1-3)-th function of the group. B1 is C empty, C for IVAR1.EQ.-1: B1=X1, A1 is empty, C for IVAR1.EQ.-2: B1=X2, A1 is empty, C for IVAR1.EQ.-3: B1=X3, A1 is empty, C for IVAR1.LE.-4: B1=F(X1,X2,X3), where F(X1,X2,X3) is C another function of the same group defined in the input C data as the (-IVAR1-3)-th function of the group. A1 is C empty. C The meaning of the parameters IVAR2, IVAR3 is similar. C Examples: C IVAR1: IVAR2: IVAR3: the form of the function: C 1 2 3 F(X1,X2,X3)=W(X1,X2,X3) C 3 1 2 F(X1,X2,X3)=W(X3,X1,X2) C 1 2 0 F(X1,X2,X3)=W(X1,X2) C 1 2 -3 F(X1,X2,X3)=W(X1,X2)-X3 C 1 -3 2 F(X1,X2,X3)=W(X1,X2)-X3 C 5 0 0 F(X1,X2,X3)=W(F2(X1,X2,X3)), where C F2(X1,X2,X3) is the second function of the group defined C in the input data. Function W is interpolated by means of C splines under tension. C SIGMA...Is the tension factor (its sign is ignored). This value C indicates the curviness desired. If ABS(SIGMA) is nearly C zero (e.g. 0.001), the resulting surface is approximately C the tensor product of cubic splines. If ABS(SIGMA) is C large (e.g. 50.), the resulting surface is approximately C tri-linear. If SIGMA equals zero, tensor products of C cubic splines result. A recommended value for SIGMA is C approximately 1. In absolute value. C POWERW..Given grid values (7) correspond to the POWERW-th power of C interpolated function W. The given grid values (7) are C thus raised to the (1/POWERW)-th power immediately after C reading and then interpolated. C /... Obligatory slash at the end of line for future extensions. C Default: IVAR1=0, IVAR2=0, IVAR3=0, SIGMA=0, POWERW=1. C (3) NX(1),...,NX(NVAR) C The numbers of grid coordinates for the interpolation. C This input is performed if at least one of IVAR1, IVAR2, IVAR3 is C positive. C Each of NX(1),...,NX(NVAR) corresponds to one positive value of C IVAR1, IVAR2, IVAR3 and specifies the number of grid coordinates C corresponding to that independent variable of function W, see (2). C The sign of NX(1),...,NX(NVAR) is ignored. NVAR (.LE.3) is the C number of positive values of the above quantities IVAR1, IVAR2, C IVAR3, i.e. the number of independent variables of function W, C see (2). C (4) X1(1),...,X1(NX(1)) C The grid coordinates corresponding to the first independent C variable of function W, see (2). C This input is performed if NX(1) is specified, see (3), and is not C zero. The grid coordinates may be specified in any order. C (5) X2(1),...,X2(NX(2)) C The grid coordinates corresponding to the second independent C variable of function W, see (2). C This input is performed if NX(2) is specified, see (3), and is not C zero. The grid coordinates may be specified in any order. C (6) X3(1),...,X3(NX(3)) C The grid coordinates corresponding to the third independent C variable of function W, see (2). C This input is performed if NX(3) is specified, see (3), and is not C zero. The grid coordinates may be specified in any order. C (7) (((W(I,J,K),I=1,MAX(NX(1),1)),J=1,MAX(NX(2),1)),K=1,MAX(NX(3),1)) C The values of the POWERW-th power of function W at grid points. C Function value W(I,J,K) corresponds to point (X1(I),X2(J),X3(K)). C C======================================================================= C C C C Storage in the memory: C The parameters describing the interpolated functions are stored C in common block /VALC/ initialized in the following subroutine: C ------------------------------------------------------------------ BLOCK DATA VALB INCLUDE 'val.inc' C val.inc DATA IPAR(0)/0/ END C ------------------------------------------------------------------ C C======================================================================= C C C SUBROUTINE VAL1(LUN,ICLASS,NGROUP,NFUNCT,TFUNCT) INTEGER LUN,ICLASS,NGROUP,NFUNCT CHARACTER*(*) TFUNCT(NFUNCT) C C This subroutine reads the input data for a set of functions, C determines the parameters necessary to compute an interpolatory C function on a three-dimensional rectangular grid, and stores them in C the memory. The function determined can be represented as a tensor C product of splines under tension of at most 3 independent variables C (i.e. a linear combination of products of B-splines under tension of C at most 3 independent variables). The functions may be embedded: the C independent variable of the function may be another function of the C same group foregoing in the input data. For actual mapping of points C it is necessary to call the subroutine VAL2, which also returns the C first and second partial derivatives. Subroutine VAL1 may be called C several times. The groups in the class are indexed successively, C following the groups of the class defined during the previous C invocations. C C Input: C LUN... Logical unit number of the external input device C containing the input data. C ICLASS..Index of the class of the functions to be specified. The C classes are indexed by integers starting from 1. C NGROUP..Number of groups of functions to be specified during the C current invocation of VAL1. The groups of each class are C indexed by integers starting from 1. If some groups of C functions of the ICLASS-th class were specified in the C previous invocation of VAL1, the groups of functions now C read in are appended to them and are indexed following C them. C NFUNCT..Maximum number of functions to be specified for each C group. The actual number of specified functions may be C different for different groups. However, it must be less C than or equal to NFUNCT. C TFUNCT..Strings identifying the functions specified in the input C data. The function identified in the input data by string C TFUNCT(I) is associated with integer I. This integer C identifies what the function describes. C None of the input parameters are altered. C C No output. C C Common block: INCLUDE 'val.inc' C val.inc C All the storage locations of the common block are defined in this C subroutine. C C Subroutines and external functions required: * EXTERNAL CURVN1 EXTERNAL CURVB1 EXTERNAL VALB,SURFB1,VAL3B1,SORTV,READV C VALB... Block data subroutine of this file. C CURVN1 or CURVB1 (alternatives), SURFB1, VAL3B1, SNHCSH, VGEN, C TERMS, TRIDEC, TRISOL... Subroutine package 'FITPACK' C (file 'fit.for'). C SORTV, READV... This file. C C Date: 1996, July 22 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C LOGICAL WHAT INTEGER MCLASS,MGROUP,MFUNCT,LADR,MADR,MAXADR INTEGER KCLASS,KGROUP,KFUNCT,KADR,NVAR CHARACTER*3 TEXT REAL GROUP,SIGMA,POWERW INTEGER LX(3),LX1,LX2,LX3 EQUIVALENCE (LX(1),LX1),(LX(2),LX2),(LX(3),LX3) INTEGER NX(3),NX1,NX2,NX3 EQUIVALENCE (NX(1),NX1),(NX(2),NX2),(NX(3),NX3) INTEGER JADR(7),JADR1,JADR2,JADR3,JADR4,JADR5,JADR6,JADR7 EQUIVALENCE (JADR(1),JADR1),(JADR(2),JADR2),(JADR(3),JADR3) EQUIVALENCE (JADR(4),JADR4),(JADR(5),JADR5),(JADR(6),JADR6) EQUIVALENCE (JADR(7),JADR7) INTEGER IGROUP,IFUNCT,IERR,I,J,L,N C C WHAT... Flag if the physical meaning of the functions is included C in the input data. C MCLASS,MGROUP,MFUNCT,LADR,MADR,MAXADR... Positions in the memory. C KCLASS,KGROUP,KFUNCT,KADR... Shifts in the memory. C NVAR... Number of the independent variables A1, A2, A3 of the C interpolated function W. C TEXT... String identifying the current group or the current C function. C GROUP...Index of the current group or power of the physical C quantity. C SIGMA...Tension factor. C POWERW..Given grid values (7) are raised to the (1/POWERW)-th C power immediately after reading and then interpolated. C LX=(LX1,LX2,LX3)... Addresses of auxiliary storage locations for C reordering the grid coordinates. C NX=(NX1,NX2,NX3)... Numbers of grid lines. C JADR=(JADR1,JADR2,JADR3,JADR4,JADR5,JADR6,JADR7)... Addresses of C parameters describing the interpolated function (grid C coordinates, B-spline coefficients, B-spline basis C functions). C IGROUP,IFUNCT... Do loop variables. C IERR... Local variable to check the proper function of called C subroutines. C I,J,L,N... Local auxiliary variables. C C....................................................................... C C Flag if the physical meaning of the functions is included in the C input data: WHAT=.FALSE. DO 10 I=1,NFUNCT IF(TFUNCT(I).NE.' ') WHAT=.TRUE. 10 CONTINUE C C Positions in the memory: IF(ICLASS.GT.IPAR(0)) THEN C New class: MCLASS=IPAR(0) KCLASS=ICLASS-MCLASS ELSE C Old class: MCLASS=ICLASS KCLASS=0 END IF MGROUP=IPAR(MCLASS) KGROUP=KCLASS+NGROUP MFUNCT=IPAR(MGROUP) KFUNCT=KGROUP+NGROUP*NFUNCT MADR=IPAR(MFUNCT) KADR=NPAR-IPAR(IPAR(IPAR(IPAR(0)))) IF(KADR.LT.KFUNCT) GO TO 99 C Upper bound of the available memory MAXADR=MADR+KADR C C Movement in the memory: DO 11 I=IPAR(IPAR(IPAR(IPAR(0)))),MADR+1,-1 IPAR(I+KADR)=IPAR(I) 11 CONTINUE DO 12 I=MADR,IPAR(IPAR(IPAR(0)))+1,-1 IPAR(I+KFUNCT)=IPAR(I) 12 CONTINUE DO 13 I=IPAR(IPAR(IPAR(0))),MFUNCT+1,-1 IPAR(I+KFUNCT)=IPAR(I)+KADR 13 CONTINUE MADR=MADR+KFUNCT DO 14 I=MFUNCT,MGROUP+1,-1 IPAR(I+KGROUP)=IPAR(I)+KFUNCT 14 CONTINUE MFUNCT=MFUNCT+KGROUP DO 15 I=MGROUP,MCLASS+1,-1 IPAR(I+KCLASS)=IPAR(I)+KGROUP 15 CONTINUE MGROUP=MGROUP+KCLASS DO 16 I=0,MCLASS IPAR(I)=IPAR(I)+KCLASS 16 CONTINUE C New classes: DO 17 I=MCLASS+1,ICLASS IPAR(I)=IPAR(MCLASS) 17 CONTINUE C Number of previously stored groups of functions of the class IGROUP=IPAR(ICLASS)-IPAR(ICLASS-1) IPAR(ICLASS)=IPAR(ICLASS)+NGROUP C New groups: DO 18 I=MGROUP+1,MGROUP+NGROUP IPAR(I)=IPAR(I-1)+NFUNCT 18 CONTINUE C C Loop for groups of functions: READ(LUN,*) TEXT,GROUP DO 90 IGROUP=IGROUP+1,IGROUP+NGROUP IF(TEXT.EQ.'END') THEN C 351 CALL ERROR('351 in VAL1: End of input functions encountered') C End of input functions encountered before all NGROUP C groups of functions are defined in the input data. ELSE IF(INT(GROUP+0.5).NE.IGROUP) THEN C 352 CALL ERROR('352 in VAL1: Improper index of the group') C Improper index of the group of input functions in the C input data. END IF C Loop for functions of the current group: DO 80 IFUNCT=1,NFUNCT C Physical meaning of the function: IF(WHAT) THEN READ(LUN,*) TEXT,GROUP DO 21 I=1,NFUNCT IF(TFUNCT(I).EQ.TEXT) THEN MADR=MADR+2 IF(MADR.GT.MAXADR) GO TO 99 IPAR(MADR-1)=I RPAR(MADR)=GROUP GO TO 22 END IF 21 CONTINUE GO TO 81 22 CONTINUE ELSE MADR=MADR+2 IF(MADR.GT.MAXADR) GO TO 99 IPAR(MADR-1)=IFUNCT RPAR(MADR)=1. END IF C C Form of the function: LADR=MADR+1 MADR=MADR+4 IF(MADR.GT.MAXADR) GO TO 99 IPAR(LADR) =0 IPAR(LADR+1)=0 IPAR(LADR+2)=0 RPAR(MADR) =0. POWERW =1. READ(LUN,*) * IPAR(LADR),IPAR(LADR+1),IPAR(LADR+2),RPAR(MADR),POWERW SIGMA=RPAR(MADR) C number of independent variables: NVAR=0 DO 23 I=LADR,LADR+2 IF(IPAR(I).GT.0) NVAR=NVAR+1 23 CONTINUE C C Numbers of grid coordinates: LADR=MADR+1 MADR=MADR+NVAR IF(MADR.GT.MAXADR) GO TO 99 IF(LADR.LE.MADR) THEN READ(LUN,*) (IPAR(I),I=LADR,MADR) END IF C C Reading grid coordinates: L=MAXADR+1 NVAR=0 DO 24 J=LADR,MADR N=IABS(IPAR(J)) IF(N.GT.0) THEN LADR=MADR+1 MADR=MADR+N IF(N.EQ.1) THEN IF(MADR.GE.L-1) GO TO 99 READ(LUN,*) RPAR(LADR) ELSE L=L-N IF(MADR+N.GE.L-1) GO TO 99 NVAR=NVAR+1 NX(NVAR)=N LX(NVAR)=L JADR(NVAR)=LADR READ(LUN,*) (RPAR(I),I=MADR+1,MADR+N) CALL SORTV(N,RPAR(MADR+1),RPAR(LADR),IPAR(L)) END IF END IF 24 CONTINUE DO 25 I=NVAR+1,3 NX(I)=1 LX(I)=L-1 IPAR(L-1)=1 25 CONTINUE C C Reading grid values: JADR4=MADR+1 MADR=MADR+NX1*NX2*NX3 IF(MADR.GE.L) GO TO 99 CALL READV(LUN,NX1,NX2,NX3,IPAR(LX1),IPAR(LX2),IPAR(LX3), * RPAR(JADR4),POWERW) C C Computing B-spline under tension expansion coefficients: IF(NVAR.LE.0) THEN C No independent variable: CONTINUE ELSE C Size of the temporary storage location N=3*MAX0(NX1,NX2,NX3) JADR5=MADR+1 MADR=MADR+5*NX1 IF(MADR+N.GT.MAXADR) GO TO 99 C IERR enables to check for the proper function of subroutines C called IERR=1 IF(NVAR.EQ.1) THEN C One independent variable: C Two alternatives: Hermite or B-spline representations C may be used for the 1-D interpolation. Just one of the C following two statements must be supplied by '*' in the C first column: C First statement - Hermite representation: * CALL CURVN1(NX1,RPAR(JADR1),RPAR(JADR4), * * RPAR(JADR5),RPAR(MADR+1),SIGMA,IERR) C Second statement - B-spline representation: CALL CURVB1(NX1,RPAR(JADR1),RPAR(JADR4),RPAR(JADR4), * RPAR(JADR5),RPAR(MADR+1),SIGMA,IERR) C Do not forget to supply '*' into the first column of the C corresponding statement in subroutine VAL2. ELSE JADR6=MADR+1 MADR=MADR+5*NX2 IF(MADR+N.GT.MAXADR) GO TO 99 IF(NVAR.EQ.2) THEN C Two independent variables: CALL SURFB1(NX1,NX2,RPAR(JADR1),RPAR(JADR2), * RPAR(JADR4),NX1,RPAR(JADR4), * RPAR(JADR5),RPAR(JADR6),RPAR(MADR+1),SIGMA,IERR) ELSE C Three independent variables: JADR7=MADR+1 MADR=MADR+5*NX3 IF(MADR+N.GT.MAXADR) GO TO 99 CALL VAL3B1(NX1,NX2,NX3,RPAR(JADR1),RPAR(JADR2), * RPAR(JADR3),RPAR(JADR4),NX1,NX2,RPAR(JADR4), * RPAR(JADR5),RPAR(JADR6),RPAR(JADR7), * RPAR(MADR+1),SIGMA,IERR) END IF END IF IF(IERR.NE.0) THEN C 353 CALL ERROR('353 in VAL1: Strange error') C This error in the input functions should not appear. C Contact the authors. END IF END IF C Coefficients are evaluated C MFUNCT=MFUNCT+1 IPAR(MFUNCT)=MADR 80 CONTINUE READ(LUN,*) TEXT,GROUP C End of loop for functions C C The remaining functions of the current group are not defined by C the input data: 81 CONTINUE DO 82 I=IFUNCT,NFUNCT MFUNCT=MFUNCT+1 IPAR(MFUNCT)=MADR 82 CONTINUE 90 CONTINUE C End of loop for groups of functions C IF(TEXT.NE.'END') THEN C 354 CALL ERROR('354 in VAL1: Input functions not properly ended') C Read in input data describing functions are not properly ended. END IF C C Movement in the memory: KADR=MAXADR-MADR DO 91 I=MAXADR+1,NPAR IPAR(I-KADR)=IPAR(I) 91 CONTINUE DO 92 I=MFUNCT+1,IPAR(IPAR(IPAR(0))) IPAR(I)=IPAR(I)-KADR 92 CONTINUE RETURN C 99 CONTINUE C 355 CALL ERROR('355 in VAL1: Insufficient memory in /VALC/') C Insufficient memory for the input data in common block /VALC/. C The dimension NPAR of array IPAR (or RPAR) must be enlarged. C See the block data subroutine VALB. END C C----------------------------------------------------------------------- C C C SUBROUTINE SORTV(NX,X1,X2,IX) INTEGER NX,IX(NX) REAL X1(NX),X2(NX) C C This subroutine is an auxiliary routine to VAL1. It reorders the C input grid coordinates to be ascending. C C Auxiliary storage locations INTEGER I,J C DO 3 J=1,NX IX(J)=1 DO 1 I=1,J-1 IF(X1(J).EQ.X1(I)) GO TO 9 IF(X1(J).GT.X1(I)) IX(J)=IX(J)+1 1 CONTINUE DO 2 I=J+1,NX IF(X1(J).EQ.X1(I)) GO TO 9 IF(X1(J).GT.X1(I)) IX(J)=IX(J)+1 2 CONTINUE 3 CONTINUE DO 4 J=1,NX X2(IX(J))=X1(J) 4 CONTINUE RETURN C 9 CONTINUE C 356 CALL ERROR('356 in SORTV in VAL1: Identical grid coordinates') C Two identical grid coordinates encountered in the input data. END C C----------------------------------------------------------------------- C C C SUBROUTINE READV(LUN,NX1,NX2,NX3,IX1,IX2,IX3,VAL,POWERW) INTEGER LUN,NX1,NX2,NX3,IX1(NX1),IX2(NX2),IX3(NX3) REAL VAL(NX1,NX2,NX3),POWERW C C This subroutine is an auxiliary routine to VAL1. It reads from the C input data the values given at grid points. C C Auxiliary storage locations INTEGER I1,I2,I3 REAL AUX1 C READ(LUN,*) (((VAL(IX1(I1),IX2(I2),IX3(I3)),I1=1,NX1), * I2=1,NX2),I3=1,NX3) IF(POWERW.NE.1.) THEN AUX1=1./POWERW DO 3 I3=1,NX3 DO 2 I2=1,NX2 DO 1 I1=1,NX1 VAL(IX1(I1),IX2(I2),IX3(I3))= * VAL(IX1(I1),IX2(I2),IX3(I3))**AUX1 1 CONTINUE 2 CONTINUE 3 CONTINUE END IF C RETURN END C C======================================================================= C C C SUBROUTINE VAL2(ICLASS,IGROUP,NFUNCT,COOR,F,POWER) INTEGER ICLASS,IGROUP,NFUNCT REAL COOR(3),F(10,NFUNCT),POWER(NFUNCT) C C This subroutine evaluates the function value, the three first partial C derivatives and the six second partial derivatives of a given function C at a given point. C C Input: C ICLASS..Index of the class of the required functions. The classes C are indexed by integers starting from 1. C IGROUP..Index of the group of the required functions. The groups C of each class are indexed by integers starting from 1. C NFUNCT..Number of the required functions. All functions belonging C to the IGROUP-th group of the ICLASS-th class and defined C by the input data must be required. The functions defined C by the input data (see subroutine VAL1) are one-to-one C corresponding to the integers which identify what the C function describes. The position of each evaluated C function in the output array F (see below) is determined C by this integer. That is why NFUNCT must be greater than C or equal to the greatest of these integers. The required C functions not defined by the input data are defined on the C output of this subroutine and are zero. C COOR... Array containing coordinates X1, X2, X3 of the given point C None of the input parameters are altered. C C Output: C F... Array containing, in each its column, function value, the C first and second partial derivatives of the corresponding C evaluated function in the order F, F1, F2, F3, F11, F12, C F22, F13, F23, F33. C POWER...The specified function is equal to the POWER-th power of C the corresponding physical quantity. The zero value of C the POWER indicates that the corresponding function is not C defined by the input data. C C Common block: INCLUDE 'val.inc' C val.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: * EXTERNAL CURV2D EXTERNAL CURVBD EXTERNAL SURFBD,VAL3BD C CURV2D or CURVBD (alternatives), SURFBD, VAL3BD, SNHCSH, DSPLNZ, C INTRVL... Subroutine package 'FITPACK' (file 'fit.for'). C C Date: 1995, March 28 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C The evaluated function has the form of C F(X1,X2,X3) = W(A1,A2,A3) - B1 - B2 - B3 , C C Its first derivatives are C dF dW dAk dB1 dB2 dB3 C --- = --- * --- - --- - --- - --- , C dXi dAk dXi dXi dXi dXi C C Its second derivatives are C d2 F d W d2 Ak d2 W dAk dAj d2 B1 d2 B3 C ------- = ---*------- + -------*---*--- - ------- - ... - -------. C dXi dXm dAk dXi dXm dAk dAj dXi dXm dXi dXm dXi dXm C C....................................................................... C INTEGER JGROUP,LFUNCT,MFUNCT,JFUNCT,LADR,MADR,IADR,IVAL INTEGER NVAR,IVAR(3),JVAR,KVAR INTEGER NX(3),NX1,NX2,NX3 EQUIVALENCE (NX(1),NX1),(NX(2),NX2),(NX(3),NX3) REAL XX(3),XX1,XX2,XX3 EQUIVALENCE (XX(1),XX1),(XX(2),XX2),(XX(3),XX3) CV3 REAL R1,R2,R3 INTEGER JADR(7),JADR1,JADR2,JADR3,JADR4,JADR5,JADR6,JADR7 EQUIVALENCE (JADR(1),JADR1),(JADR(2),JADR2),(JADR(3),JADR3) EQUIVALENCE (JADR(4),JADR4),(JADR(5),JADR5),(JADR(6),JADR6) EQUIVALENCE (JADR(7),JADR7) REAL SIGMA,W(10),AUX1,AUX2 INTEGER I,J,K,M,N,ISYM(3,3) DATA ISYM/5,6,8,6,7,9,8,9,10/ C C JGROUP..Address of the IGROUP-th group of the ICLASS-th class. C LFUNCT,MFUNCT,JFUNCT... Addresses of the first, last and arbitrary C functions of the group. C LADR,MADR,IADR... Addresses of the first, last and arbitrary C parameters of the current function. C IVAL... Index of the function F being currently evaluated. C NVAR,IVAR(3),JVAR,KVAR... Number and types of the independent C variables A1, A2, A3 of the interpolated function W. C NX=(NX1,NX2,NX3)... Numbers of grid lines. C XX=(XX1,XX2,XX3),R1,R2,R3... Values of independent variables A1, C A2, A3 of function W. C JADR=(JADR1,JADR2,JADR3,JADR4,JADR5,JADR6,JADR7)... Addresses of C parameters describing the interpolated function (grid C coordinates, B-spline coefficients, B-spline basis C functions). C SIGMA...Tension factor. C W... Array for the value, the first and second partial C derivatives of function W. C AUX1,AUX2,I,J,K,M,N... Local auxiliary variables. C ISYM... Storage of the symmetric 3*3 matrix. C C....................................................................... C C The default value of the function is the zero function. C Loop for the functions to be evaluated: DO 12 J=1,NFUNCT DO 11 I=1,10 F(I,J)=0. 11 CONTINUE POWER(J)=0. 12 CONTINUE *V CALL VAR1() C IF(ICLASS.LT.1.OR.IPAR(0).LT.ICLASS) THEN C 357 WRITE(*,'(2(A,I10))') ' CLASS=',ICLASS,', GROUP =',IGROUP CALL ERROR('357 in VAL2: Incorrect index of the class') C The index of the class of the functions to be evaluated is zero, C negative or greater than the number of classes defined. END IF JGROUP=IPAR(ICLASS-1)+IGROUP IF(IGROUP.LT.1.OR.IPAR(ICLASS).LT.JGROUP) THEN C 358 WRITE(*,'(2(A,I10))') ' CLASS=',ICLASS,', GROUP =',IGROUP CALL ERROR('358 in VAL2: Incorrect index of the group') C The index of the group of the functions to be evaluated is zero, C negative or greater than the number of groups defined within the C given class. END IF LFUNCT=IPAR(JGROUP-1)+1 MFUNCT=IPAR(JGROUP) MADR =IPAR(LFUNCT-1) C C Loop for functions F being evaluated: DO 90 JFUNCT=LFUNCT,MFUNCT C Starting and end addresses of the parameters describing the C function LADR=MADR+1 MADR=IPAR(JFUNCT) IF(LADR.LE.MADR) THEN C Index of function F being currently evaluated IVAL=IPAR(LADR) C Power of the corresponding physical quantity POWER(IVAL)=RPAR(LADR+1) C Tension factor SIGMA=RPAR(LADR+5) C C The number, types and values of the independent variables Ai C of function W being interpolated, and the functions Bi being C subtracted from the evaluated function: C Initial address IADR=LADR+6 C Initial number of the independent variables NVAR=0 JADR1=0 JADR2=0 JADR3=0 JADR4=0 C Loop for the possible independent variables: DO 20 M=LADR+2,LADR+4 C Type of the possible independent variable: J=IPAR(M) IF(J.NE.0) THEN IF(J.GT.0) THEN N=IABS(IPAR(IADR)) IF(N.GE.2) THEN NVAR=NVAR+1 NX(NVAR)=N IF(J.LE.3) THEN IVAR(NVAR)=J XX(NVAR)=COOR(J) ELSE K=IPAR(IPAR(LFUNCT+J-5)+1) IVAR(NVAR)=K+3 XX(NVAR)=F(1,K) END IF ELSE IF(N.EQ.1) THEN JADR(NVAR+1)=JADR(NVAR+1)+1 END IF IADR=IADR+1 ELSE C Subtracting certain functions from function F being C evaluated: IF(J.GE.-3) THEN C Subtracting a coordinate: F(1,IVAL)=F(1,IVAL)-COOR(-J) F(1-J,IVAL)=F(1-J,IVAL)-1. ELSE C Subtracting another function F: K=IPAR(IPAR(LFUNCT-J-5)) DO 19 I=1,10 F(I,IVAL)=F(I,IVAL)-F(I,K) 19 CONTINUE *V CALL VAR4(0,-1.) *V CALL VAR5(IVAL,K) END IF END IF END IF 20 CONTINUE C CV3 Lines denoted by 'CV3' in the first 3 columns are related to CV3 the kind of extrapolation outside the grid used in version 3 CV3 (January 1991) and older. In those versions, the first and CV3 second derivatives were incorrect outside the grid. CV3 If removing 'CV3' and 'CV3-V' from the executable statements, CV3 the kind of extrapolation from ver.3 is restored. Then, the CV3 first derivatives are correctly evaluated (unlike in ver.3), CV3 but the second derivatives are incorrect (as in ver.3). CV3 Similarly, variations of functional values are correct, and CV3 first variations of first derivatives are incorrect. CV3 C Interpolation of function W: JADR1=IADR+JADR1 CV3-V CALL VAR4(0,1.) IF(NVAR.LE.0) THEN C No independent variable: W(1)=RPAR(JADR1) *V CALL VAR2(1,1.,0.,0.,0.) *V CALL VAR3(JADR1-1) ELSE JADR2=JADR1+NX1+JADR2 CV3 R1=XX1 CV3 IF(XX1.LT.RPAR(JADR1)) THEN CV3 XX1=RPAR(JADR1) CV3 ELSE IF(XX1.GT.RPAR(JADR2-1)) THEN CV3 XX1=RPAR(JADR2-1) CV3 END IF CV3 R1=R1-XX1 IF(NVAR.EQ.1) THEN C One independent variable: JADR3=JADR2+NX1 C Two alternatives: Hermite or B-spline representations C may be used for the 1-D interpolation. Just one of the C following two statements must be supplied by '*' in the C first column: C First statement - Hermite representation: * CALL CURV2D(XX1,W(1),W(2),W(5),NX1, * * RPAR(JADR1),RPAR(JADR2),RPAR(JADR3),SIGMA) C Second statement - B-spline representation: CALL CURVBD(XX1,W(1),W(2),W(5),NX1, * RPAR(JADR1),RPAR(JADR2),RPAR(JADR3),SIGMA) C Do not forget to supply '*' into the first column of the C corresponding statement in subroutine VAL1. *V CALL VAR3(JADR2-1) ELSE JADR3=JADR2+NX2+JADR3 CV3 R2=XX2 CV3 IF(XX2.LT.RPAR(JADR2)) THEN CV3 XX2=RPAR(JADR2) CV3 ELSE IF(XX2.GT.RPAR(JADR3-1)) THEN CV3 XX2=RPAR(JADR3-1) CV3 END IF CV3 R2=R2-XX2 IF(NVAR.EQ.2) THEN C Two independent variables: JADR4=JADR3+NX1*NX2 JADR5=JADR4+5*NX1 CALL SURFBD(XX1,XX2,W(1),W(2),W(3),W(5),W(6),W(7), * NX1,NX2,RPAR(JADR1),RPAR(JADR2),RPAR(JADR3), * RPAR(JADR4),RPAR(JADR5),SIGMA) *V CALL VAR3(JADR3-1) ELSE C Three independent variables: JADR4=JADR3+NX3+JADR4 JADR5=JADR4+NX1*NX2*NX3 JADR6=JADR5+5*NX1 JADR7=JADR6+5*NX2 CV3 R3=XX3 CV3 IF(XX3.LT.RPAR(JADR3)) THEN CV3 XX3=RPAR(JADR3) CV3 ELSE IF(XX3.GT.RPAR(JADR4-1)) THEN CV3 XX3=RPAR(JADR4-1) CV3 END IF CV3 R3=R3-XX3 CALL VAL3BD(XX1,XX2,XX3,W(1),W(2),W(3),W(4),W(5),W(6), * W(7),W(9),W(10),W(8),NX1,NX2,NX3, * RPAR(JADR1),RPAR(JADR2),RPAR(JADR3),RPAR(JADR4), * RPAR(JADR5),RPAR(JADR6),RPAR(JADR7),SIGMA) *V CALL VAR3(JADR4-1) CV3 W(1)=W(1)+W(4)*R3 CV3 IF(R1.EQ.0.) W(2)=W(2)+W(8)*R3 CV3 IF(R2.EQ.0.) W(3)=W(3)+W(9)*R3 CV3 IF(R3.EQ.0.) W(4)=W(4)+W(8)*R1+W(9)*R2 CV3-V CALL VAR4(13,R3) END IF CV3 W(1)=W(1)+W(3)*R2 CV3 IF(R1.EQ.0.) W(2)=W(2)+W(6)*R2 CV3 IF(R2.EQ.0.) W(3)=W(3)+W(6)*R1 CV3-V CALL VAR4(9,R2) END IF CV3 W(1)=W(1)+W(2)*R1 CV3-V CALL VAR4(5,R1) END IF CV3-V CALL VAR5(0,0) C Function W is evaluated C C Evaluation of function f: C Functional value (zero derivative) F(1,IVAL)=F(1,IVAL)+W(1) *V CALL VAR4(0,0.) *V CALL VAR4(1,1.) C Loop for the summation index K: DO 39 K=1,NVAR KVAR=IVAR(K) IF(KVAR.LE.3) THEN C First derivatives - first term on R.H.S. F(1+KVAR,IVAL)=F(1+KVAR,IVAL)+W(1+K) C Second derivatives - second term on R.H.S. (the first term C vanishes in this case) - loop for the summation index J: DO 32 J=1,NVAR JVAR=IVAR(J) IF(JVAR.LE.3) THEN IF(JVAR.LE.KVAR) THEN N=ISYM(JVAR,KVAR) F(N,IVAL)=F(N,IVAL)+W(ISYM(J,K)) END IF ELSE JVAR=JVAR-3 AUX1=W(ISYM(J,K)) DO 31 I=1,JVAR N=ISYM(I,JVAR) F(N,IVAL)=F(N,IVAL)+AUX1*F(1+I,JVAR) 31 CONTINUE END IF 32 CONTINUE *V CALL VAR4(4*K+1+KVAR,1.) ELSE KVAR=KVAR-3 DO 33 I=2,4 *V CALL VAR4(4*K+I,F(I,KVAR)) 33 CONTINUE END IF 39 CONTINUE *V CALL VAR5(IVAL,0) C Loop for the summation index K: DO 49 K=1,NVAR KVAR=IVAR(K) IF(KVAR.GT.3) THEN KVAR=KVAR-3 *V CALL VAR4(0,W(1+K)) C First and second derivatives - first terms on R.H.S. DO 44 I=2,10 F(I,IVAL)=F(I,IVAL)+W(1+K)*F(I,KVAR) 44 CONTINUE C Second derivatives - second term on R.H.S. - C loop for the summation index J: DO 48 J=1,NVAR JVAR=IVAR(J) IF(JVAR.LE.3) THEN AUX1=W(ISYM(J,K)) DO 45 I=1,KVAR N=ISYM(I,KVAR) F(N,IVAL)=F(N,IVAL)+AUX1*F(1+I,KVAR) 45 CONTINUE ELSE JVAR=JVAR-3 AUX1=W(ISYM(J,K)) DO 47 M=1,3 AUX2=AUX1*F(1+M,JVAR) DO 46 I=1,M N=ISYM(I,M) F(N,IVAL)=F(N,IVAL)+AUX2*F(1+I,KVAR) 46 CONTINUE *V CALL VAR4(1+M,AUX2) 47 CONTINUE END IF 48 CONTINUE *V CALL VAR5(IVAL,KVAR) END IF 49 CONTINUE C END IF 90 CONTINUE C End of loop for evaluated functions F C RETURN END C C======================================================================= Cval.inc 100666 1750 1750 17612 6367266470 11461 0 ustar klimes klimes C
C INCLUDE 'val.inc' C ------------------------------------------------------------------ INTEGER NPAR PARAMETER (NPAR=500000) INTEGER IPAR(0:NPAR) REAL RPAR(0:NPAR) EQUIVALENCE (IPAR,RPAR) COMMON/VALC/IPAR SAVE /VALC/ C ------------------------------------------------------------------ C Common block /VALC/ is included in subroutines VAL1 and VAL2. C The parameters are stored sequentially in one array regardless of C the fact whether they are of type INTEGER or REAL. The individual C numeric storage units of the array are indexed starting from 0 and C are named IPAR(I) or RPAR(I) depending on the type of a parameter. C The index of the last allocated numeric storage unit is NPAR (see C (f) below). If NPAR is changed (see the third statement of the C above block data subroutine VALB), it must be adjusted in C subroutines VAL1 and VAL2, too. C C Common block /VALC/ can be divided into two parts. The first part C (see (a)-(d) below) of the common block /VALC/ contains integers. C The number of these integers in the first part equals to C 1+MCLASS+NG+NF, where MCLASS is the total number of classes, NG is C the total number of all groups of all classes, NF is the total C number of all functions of all groups of all classes. The first C part of the common block specifies the division of the common C block /VALC/ into parameters describing individual functions. C The second part (see (e) below) of the common block /VALC/ C contains the parameters describing individual functions, stored C successively for the first, second, ..., last function of the c first group of the first class, for the first, second, ..., last c function of the second group of the first class, ..., for the c first, second, ..., last function of the first group of the second c class, ..., for the first, second, ..., last function of the last C group of the last class. The second part of the common block C /VALC/ contains both integer and real parameters. C For an example refer to the sample input data for the model. C C (a) Numeric storage unit IPAR(0) contains the number MCLASS of C classes. C C (b) Classes: C Subsequent numeric storage units (IPAR(I),I=1,MCLASS) correspond C to the individual classes. One numeric storage unit corresponds C to one class. The numeric storage unit corresponding to a class C contains the index of the numeric storage unit corresponding to C the last group of the class. C C (c) Groups: C Subsequent numeric storage units (IPAR(I),I=MCLASS+1,MCLASS+NG) C correspond to the individual groups. The total number of these C storage units is NG. One numeric storage unit corresponds to one C group. The numeric storage unit corresponding to a group contains C the index of the numeric storage unit corresponding to the last C function of the group. C C (d) Functions: C Subsequent numeric storage units (IPAR(I),I=MCLASS+NG+1, C MCLASS+NG+NF) correspond to the individual functions. The total C number of these storage units is NF. One numeric storage unit C corresponds to one function. The numeric storage unit C corresponding to a function contains the index of the numeric C storage unit corresponding to the last parameter that describes C the function. The functions are stored in the order in which they C have been specified by the input data. Since the number of C functions in the input data corresponding to one group may be less C than their maximum number NFUNCT (input parameter of subroutine C VAL1), some numeric storage units relevant to functions may not C correspond to the functions specified by the input data. Each C such numeric storage unit contains the same address as the C previous numeric storage unit (i.e. the corresponding function is C specified by no parameter) and has no influence on the function C evaluation. C C (e) Parameters of functions: C Subsequent numeric storage units (IPAR(I),I=MCLASS+NG+NF+1, C MCLASS+NG+NF+NP) contain the parameters describing individual C functions. Here we have denoted by NP the total number of these C storage units. Any number of numeric storage units may correspond C to the parameters of one function. The first numeric storage unit C corresponding to a function contains the integer that identifies C the physical meaning of the function, e.g. its values may C identify P-wave velocity, S-wave velocity, density, etc. The C second numeric storage unit contains the power of the physical C quantity, see 'Input data for one function' (1). If item (1) of C 'Input data for one function' is omitted, the two first numeric C storage units corresponding to the parameters of the function C contain 1 (the first INTEGER, the second REAL). The subsequent C numeric storage units contain 'Input data for one function' (2), C (3), (4), (5) and (6), stored in the same amount as read from the C input data. Data (4), (5), (6) and (7) are reordered to render C the grid coordinates in ascending order. Instead of the grid C values (7), the coefficients describing the function in terms of a C B-spline under tension basis are stored (only if subroutine CURVN1 C (Hermite representation) is used, the grid values (7) are stored). C These parameters are followed by arrays of length 5*NX(1), ..., C 5*NX(NVAR) respectively, containing the B-spline under tension C basis data computed for the projections of the grid onto the axes C of individual independent variables (only if subroutine CURVN1 C (Hermite representation) is used, the first NX(1) numeric storage C units contain the second derivatives and the following 4*NX(1) C numeric storage units are undefined. C C (f) Undefined part of the common block: C Subsequent numeric storage units (IPAR(I),I=MCLASS+NG+NF+NP+1, C NPAR) are undefined. C C Memory model of the common block /VALC/: C ------------------------------------------------------------------ C Address: 0 JCLASS-1 JCLASS JGROUP-1 JGROUP JFUNCT-1 JFUNCT C Value: MCLASS LGROUP-1 MGROUP LFUNCT-1 MFUNCT LADR-1 MADR C .................................................................. C For the meaning of individual items in this table see below. C ------------------------------------------------------------------ C The way of access to IFUNCT-th function of IGROUP-th group of the C ICLASS-th class: C Address of last class..................... MCLASS=IPAR(0) C Address of ICLASS-th class................ JCLASS=ICLASS C (It must be: 1.LE.JCLASS.LE.MCLASS) C Address of first group of the class....... LGROUP=IPAR(JCLASS-1)+1 C Address of last group of the class........ MGROUP=IPAR(JCLASS) C Address of IGROUP-th group of the class... JGROUP=LGROUP-1+IGROUP C (it must be: LGROUP.LE.JGROUP.LE.MGROUP) C Address of first function of the group.... LFUNCT=IPAR(JGROUP-1)+1 C Address of last function of the group..... MFUNCT=IPAR(JGROUP) C address of IFUNCT-th function of the group JFUNCT=LFUNCT-1+IFUNCT C (it must be: LFUNCT.LE.JFUNCT.LE.MFUNCT) C Address of first function parameter....... LADR=IPAR(JFUNCT-1)+1 C Address of last function parameter........ MADR=IPAR(JFUNCT) C The parameters of the function are stored in IPAR(LADR) to C IPAR(MADR). C C Common block /VALC/ is included in FORTRAN 77 source code file C 'val.for', and also in source code files 'inv1.for' and 'inv1.for' C of package CRT. C C Date: 1997, April 25 C Coded by Ludek Klimes C C======================================================================= Cvalv.for 100666 1750 1750 126345 6622461032 11671 0 ustar klimes klimes C
C Subroutine file 'val.for' for function specification and interpolation C - designed to perform the interpolation of a set of functions in a C rectangular grid. C C Date: 1998, October 9 C Coded by Ludek Klimes C C....................................................................... C C This file consists of the following subroutines: C VALB... Block data subroutine initiating common block /VALC/ to C store the data describing the interpolated functions. C VALB C VAL1... Subroutine designed to read the input data for the C functions, to compute the coefficients of the expansion C and to store them in the memory. C VAL1 C SORTV...Auxiliary subroutine to subroutine VAL1. C SORTV C READV...Auxiliary subroutine to subroutine VAL1. C READV C VAL2... Subroutine evaluating the functions including their first C and second derivatives. The functions may be used to C specify various surfaces in the model, the space C distributions of various parameters, e.t.c. The functions C are represented as a tensor product of splines under C tension of at most 3 independent variables (i.e. a linear C combination of products of B-splines under tension of at C most 3 independent variables). Outside the specified C rectangular grid, the functions are extrapolated by their C analytic continuation. See lines of subroutine VAL2 with C 'CV3' in first 3 columns for comparison with the kind of C extrapolation used in old versions (outside the specified C rectangular grid, the functions were linear along straight C lines perpendicular to the boundary of the grid). The C functions may be embedded: the independent variable of C the function may be another function of the same group C (see below) foregoing in the input data. C VAL2 C Subroutines of this file employ routines CURVN1 (or its alternative C CURVB1), CURV2D (or its alternative CURVBD), SURFB1, SURFBD, VAL3B1, C VAL3BD, VGEN, TERMS, SNHCSH, TRIDEC, TRISOL, DSPLNZ, INTRVL from the C subroutine package 'FITPACK' by Alan Kaylor Cline, Department of C Computer Sciences, University of Texas at Austin. C C Note: C The lines denoted by '*V' in the first two columns of file C 'val.for' in subroutine VAL2 are designed to calculate the model C variations with respect to the model parameters. C File 'valv.for', intended for the model inversion, is created C from 'val.for' by replacing each '*V' in the first two columns C by spaces using program 'clean.for'. Subroutines VAR4 and VAR5 C of file 'var.for' may then be called to handle the variations. C C....................................................................... C C Classes of functions: C The interpolated functions are divided into some classes, e.g., C functions describing interfaces, functions describing the medium C parameters, functions describing the properties of the source, C etc. The number MCLASS of the defined classes is stored in the C memory and is initially zero. The new class may be defined by C means of the invocation of subroutine VAL1, see its input argument C ICLASS. During one invocation of VAL1, only the groups of C functions relevant to one class may be defined. Subroutine VAL1 C may be called several times even for one class to define its C groups successively, stage by stage. In this case, the input data C for the groups of functions relevant to one class may be read in C from various files. C C Groups of functions: C The interpolated functions of each class are divided into some C groups. For instance, the class of functions describing the medium C parameters is divided into groups corresponding to individual C complex blocks. The individual groups need not contain the same C number of functions. The group corresponding to a complex block C may contain e.g. the functions describing P-wave velocity, S-wave C velocity, density, etc. The functions not specified by the input C data but required by the program are defined and are zero. C C Input data (read in by subroutine VAL1): C These input data define the groups of functions from the specified C class. The index ICLASS of the class is an input argument of C subroutine VAL1. If the class is not defined by a previous C invocation of VAL1, it is created. The number NGROUP of the C groups to be defined is an input argument of subroutine VAL1. The C data are read in by the list directed input (free format). C (1) NGROUP-times (i.e. once for each group of functions) input data C (1A)+(1B): C (1A) TEXTG,IGROUP C Identification of the group. C TEXTG...Any string. Its first 3 characters must differ from 'END' C and from any string identifying a physical quantity, C defined by input array TFUNCT of subroutine VAL1 (see C below). C IGROUP..Sequential number of the group in the class. C (1B) Several times 'Input data for one function', see below. C If input array TFUNCT of subroutine VAL1 is fully filled by C spaces, 'Input data for one function' must be included C just NFUNCT-times (NFUNCT is an input argument of C subroutine VAL1). In this case, the input functions are C not identified by a string (see (1) of 'Input data for one C function'), their number and order must be a priori known. C This is, for instance, the case of smooth surfaces: each C group corresponds to one surface and contains just one C function. The index of the surface coincides with the C index of the group, and no identification and sorting of C functions inside a group is needed. C If input array TFUNCT of subroutine VAL1 is not fully filled by C spaces, 'Input data for one function' may be included C N-times, where 0.LE.N.LE.NFUNCT. In this case, the input C functions of individual groups are identified by a string C (see (1) of 'Input data for one function') in the input C data, their number and order may be arbitrary (note that C their number must be less than or equal to NFUNCT). This C is, for instance, the case of complex blocks: each group C corresponds to one complex block and contains some number C of functions describing material parameters. Individual C functions (material parameters) are identified by a string C in the input data. C (2) TEXTE,AUX C End of data. C TEXTE...String, the first 3 characters of which must be upper-case C 'END'. C AUX... Any number or a slash. C C Input data for one function: C The data are read in by the list directed input (free format). In C the list of input data below, each numbered paragraph indicates C the beginning of a new input operation (new READ statement). If C the first letter of the symbolic name of the input variable is C I-N, the corresponding value in input data must be of the type C INTEGER. Otherwise (except TEXTF), the input parameter is of the C type REAL. C (1) TEXTF,POWER C Physical meaning of the function. This input is not performed if C input character array TFUNCT of subroutine VAL1 (see below) is C fully filled by spaces. C TEXTF...String identifying which physical quantity the function C describes. Only the first 3 characters are significant. C The first 3 characters of the string must not be equal to C 'END'. The set of meaningful strings is defined by input C array TFUNCT of subroutine VAL1 (see below). C POWER...The specified function is equal to the POWER-th power of C the physical quantity. C (2) IVAR1,IVAR2,IVAR3,SIGMA,POWERW,/ C The form of the function. C IVAR1,IVAR2,IVAR3... Denote the form of the function. The function C must be of the form C F(X1,X2,X3) =W(A1,A2,A3)-B1-B2-B3 . C X1, X2, X3 are the general coordinates. Each of A1, A2, C A3, B1, B2, B3 must be either: (a) one of general C coordinates X1, X2, X3, (b) another previously defined C function F(X1,X2,X3) of the same group, or (c) must be C left out. At most 3 of parameters A1-B3 may be of kind C (a) or (b). Note that IVAR1 controls the type of A1 and C B1, IVAR2 controls the type of A2 and B2, IVAR3 controls C the type of A3 and B3. C For IVAR1.EQ.0: A1, B1 are empty (left out), C for IVAR1.EQ.1: A1=X1, B1 is empty, C for IVAR1.EQ.2: A1=X2, B1 is empty, C for IVAR1.EQ.3: A1=X3, B1 is empty, C for IVAR1.GE.4: A1=F(X1,X2,X3), where F(X1,X2,X3) is C another function of the same group defined in the input C data as the (IVAR1-3)-th function of the group. B1 is C empty, C for IVAR1.EQ.-1: B1=X1, A1 is empty, C for IVAR1.EQ.-2: B1=X2, A1 is empty, C for IVAR1.EQ.-3: B1=X3, A1 is empty, C for IVAR1.LE.-4: B1=F(X1,X2,X3), where F(X1,X2,X3) is C another function of the same group defined in the input C data as the (-IVAR1-3)-th function of the group. A1 is C empty. C The meaning of the parameters IVAR2, IVAR3 is similar. C Examples: C IVAR1: IVAR2: IVAR3: the form of the function: C 1 2 3 F(X1,X2,X3)=W(X1,X2,X3) C 3 1 2 F(X1,X2,X3)=W(X3,X1,X2) C 1 2 0 F(X1,X2,X3)=W(X1,X2) C 1 2 -3 F(X1,X2,X3)=W(X1,X2)-X3 C 1 -3 2 F(X1,X2,X3)=W(X1,X2)-X3 C 5 0 0 F(X1,X2,X3)=W(F2(X1,X2,X3)), where C F2(X1,X2,X3) is the second function of the group defined C in the input data. Function W is interpolated by means of C splines under tension. C SIGMA...Is the tension factor (its sign is ignored). This value C indicates the curviness desired. If ABS(SIGMA) is nearly C zero (e.g. 0.001), the resulting surface is approximately C the tensor product of cubic splines. If ABS(SIGMA) is C large (e.g. 50.), the resulting surface is approximately C tri-linear. If SIGMA equals zero, tensor products of C cubic splines result. A recommended value for SIGMA is C approximately 1. In absolute value. C POWERW..Given grid values (7) correspond to the POWERW-th power of C interpolated function W. The given grid values (7) are C thus raised to the (1/POWERW)-th power immediately after C reading and then interpolated. C /... Obligatory slash at the end of line for future extensions. C Default: IVAR1=0, IVAR2=0, IVAR3=0, SIGMA=0, POWERW=1. C (3) NX(1),...,NX(NVAR) C The numbers of grid coordinates for the interpolation. C This input is performed if at least one of IVAR1, IVAR2, IVAR3 is C positive. C Each of NX(1),...,NX(NVAR) corresponds to one positive value of C IVAR1, IVAR2, IVAR3 and specifies the number of grid coordinates C corresponding to that independent variable of function W, see (2). C The sign of NX(1),...,NX(NVAR) is ignored. NVAR (.LE.3) is the C number of positive values of the above quantities IVAR1, IVAR2, C IVAR3, i.e. the number of independent variables of function W, C see (2). C (4) X1(1),...,X1(NX(1)) C The grid coordinates corresponding to the first independent C variable of function W, see (2). C This input is performed if NX(1) is specified, see (3), and is not C zero. The grid coordinates may be specified in any order. C (5) X2(1),...,X2(NX(2)) C The grid coordinates corresponding to the second independent C variable of function W, see (2). C This input is performed if NX(2) is specified, see (3), and is not C zero. The grid coordinates may be specified in any order. C (6) X3(1),...,X3(NX(3)) C The grid coordinates corresponding to the third independent C variable of function W, see (2). C This input is performed if NX(3) is specified, see (3), and is not C zero. The grid coordinates may be specified in any order. C (7) (((W(I,J,K),I=1,MAX(NX(1),1)),J=1,MAX(NX(2),1)),K=1,MAX(NX(3),1)) C The values of the POWERW-th power of function W at grid points. C Function value W(I,J,K) corresponds to point (X1(I),X2(J),X3(K)). C C======================================================================= C C C C Storage in the memory: C The parameters describing the interpolated functions are stored C in common block /VALC/ initialized in the following subroutine: C ------------------------------------------------------------------ BLOCK DATA VALB INCLUDE 'val.inc' C val.inc DATA IPAR(0)/0/ END C ------------------------------------------------------------------ C C======================================================================= C C C SUBROUTINE VAL1(LUN,ICLASS,NGROUP,NFUNCT,TFUNCT) INTEGER LUN,ICLASS,NGROUP,NFUNCT CHARACTER*(*) TFUNCT(NFUNCT) C C This subroutine reads the input data for a set of functions, C determines the parameters necessary to compute an interpolatory C function on a three-dimensional rectangular grid, and stores them in C the memory. The function determined can be represented as a tensor C product of splines under tension of at most 3 independent variables C (i.e. a linear combination of products of B-splines under tension of C at most 3 independent variables). The functions may be embedded: the C independent variable of the function may be another function of the C same group foregoing in the input data. For actual mapping of points C it is necessary to call the subroutine VAL2, which also returns the C first and second partial derivatives. Subroutine VAL1 may be called C several times. The groups in the class are indexed successively, C following the groups of the class defined during the previous C invocations. C C Input: C LUN... Logical unit number of the external input device C containing the input data. C ICLASS..Index of the class of the functions to be specified. The C classes are indexed by integers starting from 1. C NGROUP..Number of groups of functions to be specified during the C current invocation of VAL1. The groups of each class are C indexed by integers starting from 1. If some groups of C functions of the ICLASS-th class were specified in the C previous invocation of VAL1, the groups of functions now C read in are appended to them and are indexed following C them. C NFUNCT..Maximum number of functions to be specified for each C group. The actual number of specified functions may be C different for different groups. However, it must be less C than or equal to NFUNCT. C TFUNCT..Strings identifying the functions specified in the input C data. The function identified in the input data by string C TFUNCT(I) is associated with integer I. This integer C identifies what the function describes. C None of the input parameters are altered. C C No output. C C Common block: INCLUDE 'val.inc' C val.inc C All the storage locations of the common block are defined in this C subroutine. C C Subroutines and external functions required: * EXTERNAL CURVN1 EXTERNAL CURVB1 EXTERNAL VALB,SURFB1,VAL3B1,SORTV,READV C VALB... Block data subroutine of this file. C CURVN1 or CURVB1 (alternatives), SURFB1, VAL3B1, SNHCSH, VGEN, C TERMS, TRIDEC, TRISOL... Subroutine package 'FITPACK' C (file 'fit.for'). C SORTV, READV... This file. C C Date: 1996, July 22 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C LOGICAL WHAT INTEGER MCLASS,MGROUP,MFUNCT,LADR,MADR,MAXADR INTEGER KCLASS,KGROUP,KFUNCT,KADR,NVAR CHARACTER*3 TEXT REAL GROUP,SIGMA,POWERW INTEGER LX(3),LX1,LX2,LX3 EQUIVALENCE (LX(1),LX1),(LX(2),LX2),(LX(3),LX3) INTEGER NX(3),NX1,NX2,NX3 EQUIVALENCE (NX(1),NX1),(NX(2),NX2),(NX(3),NX3) INTEGER JADR(7),JADR1,JADR2,JADR3,JADR4,JADR5,JADR6,JADR7 EQUIVALENCE (JADR(1),JADR1),(JADR(2),JADR2),(JADR(3),JADR3) EQUIVALENCE (JADR(4),JADR4),(JADR(5),JADR5),(JADR(6),JADR6) EQUIVALENCE (JADR(7),JADR7) INTEGER IGROUP,IFUNCT,IERR,I,J,L,N C C WHAT... Flag if the physical meaning of the functions is included C in the input data. C MCLASS,MGROUP,MFUNCT,LADR,MADR,MAXADR... Positions in the memory. C KCLASS,KGROUP,KFUNCT,KADR... Shifts in the memory. C NVAR... Number of the independent variables A1, A2, A3 of the C interpolated function W. C TEXT... String identifying the current group or the current C function. C GROUP...Index of the current group or power of the physical C quantity. C SIGMA...Tension factor. C POWERW..Given grid values (7) are raised to the (1/POWERW)-th C power immediately after reading and then interpolated. C LX=(LX1,LX2,LX3)... Addresses of auxiliary storage locations for C reordering the grid coordinates. C NX=(NX1,NX2,NX3)... Numbers of grid lines. C JADR=(JADR1,JADR2,JADR3,JADR4,JADR5,JADR6,JADR7)... Addresses of C parameters describing the interpolated function (grid C coordinates, B-spline coefficients, B-spline basis C functions). C IGROUP,IFUNCT... Do loop variables. C IERR... Local variable to check the proper function of called C subroutines. C I,J,L,N... Local auxiliary variables. C C....................................................................... C C Flag if the physical meaning of the functions is included in the C input data: WHAT=.FALSE. DO 10 I=1,NFUNCT IF(TFUNCT(I).NE.' ') WHAT=.TRUE. 10 CONTINUE C C Positions in the memory: IF(ICLASS.GT.IPAR(0)) THEN C New class: MCLASS=IPAR(0) KCLASS=ICLASS-MCLASS ELSE C Old class: MCLASS=ICLASS KCLASS=0 END IF MGROUP=IPAR(MCLASS) KGROUP=KCLASS+NGROUP MFUNCT=IPAR(MGROUP) KFUNCT=KGROUP+NGROUP*NFUNCT MADR=IPAR(MFUNCT) KADR=NPAR-IPAR(IPAR(IPAR(IPAR(0)))) IF(KADR.LT.KFUNCT) GO TO 99 C Upper bound of the available memory MAXADR=MADR+KADR C C Movement in the memory: DO 11 I=IPAR(IPAR(IPAR(IPAR(0)))),MADR+1,-1 IPAR(I+KADR)=IPAR(I) 11 CONTINUE DO 12 I=MADR,IPAR(IPAR(IPAR(0)))+1,-1 IPAR(I+KFUNCT)=IPAR(I) 12 CONTINUE DO 13 I=IPAR(IPAR(IPAR(0))),MFUNCT+1,-1 IPAR(I+KFUNCT)=IPAR(I)+KADR 13 CONTINUE MADR=MADR+KFUNCT DO 14 I=MFUNCT,MGROUP+1,-1 IPAR(I+KGROUP)=IPAR(I)+KFUNCT 14 CONTINUE MFUNCT=MFUNCT+KGROUP DO 15 I=MGROUP,MCLASS+1,-1 IPAR(I+KCLASS)=IPAR(I)+KGROUP 15 CONTINUE MGROUP=MGROUP+KCLASS DO 16 I=0,MCLASS IPAR(I)=IPAR(I)+KCLASS 16 CONTINUE C New classes: DO 17 I=MCLASS+1,ICLASS IPAR(I)=IPAR(MCLASS) 17 CONTINUE C Number of previously stored groups of functions of the class IGROUP=IPAR(ICLASS)-IPAR(ICLASS-1) IPAR(ICLASS)=IPAR(ICLASS)+NGROUP C New groups: DO 18 I=MGROUP+1,MGROUP+NGROUP IPAR(I)=IPAR(I-1)+NFUNCT 18 CONTINUE C C Loop for groups of functions: READ(LUN,*) TEXT,GROUP DO 90 IGROUP=IGROUP+1,IGROUP+NGROUP IF(TEXT.EQ.'END') THEN C 351 CALL ERROR('351 in VAL1: End of input functions encountered') C End of input functions encountered before all NGROUP C groups of functions are defined in the input data. ELSE IF(INT(GROUP+0.5).NE.IGROUP) THEN C 352 CALL ERROR('352 in VAL1: Improper index of the group') C Improper index of the group of input functions in the C input data. END IF C Loop for functions of the current group: DO 80 IFUNCT=1,NFUNCT C Physical meaning of the function: IF(WHAT) THEN READ(LUN,*) TEXT,GROUP DO 21 I=1,NFUNCT IF(TFUNCT(I).EQ.TEXT) THEN MADR=MADR+2 IF(MADR.GT.MAXADR) GO TO 99 IPAR(MADR-1)=I RPAR(MADR)=GROUP GO TO 22 END IF 21 CONTINUE GO TO 81 22 CONTINUE ELSE MADR=MADR+2 IF(MADR.GT.MAXADR) GO TO 99 IPAR(MADR-1)=IFUNCT RPAR(MADR)=1. END IF C C Form of the function: LADR=MADR+1 MADR=MADR+4 IF(MADR.GT.MAXADR) GO TO 99 IPAR(LADR) =0 IPAR(LADR+1)=0 IPAR(LADR+2)=0 RPAR(MADR) =0. POWERW =1. READ(LUN,*) * IPAR(LADR),IPAR(LADR+1),IPAR(LADR+2),RPAR(MADR),POWERW SIGMA=RPAR(MADR) C number of independent variables: NVAR=0 DO 23 I=LADR,LADR+2 IF(IPAR(I).GT.0) NVAR=NVAR+1 23 CONTINUE C C Numbers of grid coordinates: LADR=MADR+1 MADR=MADR+NVAR IF(MADR.GT.MAXADR) GO TO 99 IF(LADR.LE.MADR) THEN READ(LUN,*) (IPAR(I),I=LADR,MADR) END IF C C Reading grid coordinates: L=MAXADR+1 NVAR=0 DO 24 J=LADR,MADR N=IABS(IPAR(J)) IF(N.GT.0) THEN LADR=MADR+1 MADR=MADR+N IF(N.EQ.1) THEN IF(MADR.GE.L-1) GO TO 99 READ(LUN,*) RPAR(LADR) ELSE L=L-N IF(MADR+N.GE.L-1) GO TO 99 NVAR=NVAR+1 NX(NVAR)=N LX(NVAR)=L JADR(NVAR)=LADR READ(LUN,*) (RPAR(I),I=MADR+1,MADR+N) CALL SORTV(N,RPAR(MADR+1),RPAR(LADR),IPAR(L)) END IF END IF 24 CONTINUE DO 25 I=NVAR+1,3 NX(I)=1 LX(I)=L-1 IPAR(L-1)=1 25 CONTINUE C C Reading grid values: JADR4=MADR+1 MADR=MADR+NX1*NX2*NX3 IF(MADR.GE.L) GO TO 99 CALL READV(LUN,NX1,NX2,NX3,IPAR(LX1),IPAR(LX2),IPAR(LX3), * RPAR(JADR4),POWERW) C C Computing B-spline under tension expansion coefficients: IF(NVAR.LE.0) THEN C No independent variable: CONTINUE ELSE C Size of the temporary storage location N=3*MAX0(NX1,NX2,NX3) JADR5=MADR+1 MADR=MADR+5*NX1 IF(MADR+N.GT.MAXADR) GO TO 99 C IERR enables to check for the proper function of subroutines C called IERR=1 IF(NVAR.EQ.1) THEN C One independent variable: C Two alternatives: Hermite or B-spline representations C may be used for the 1-D interpolation. Just one of the C following two statements must be supplied by '*' in the C first column: C First statement - Hermite representation: * CALL CURVN1(NX1,RPAR(JADR1),RPAR(JADR4), * * RPAR(JADR5),RPAR(MADR+1),SIGMA,IERR) C Second statement - B-spline representation: CALL CURVB1(NX1,RPAR(JADR1),RPAR(JADR4),RPAR(JADR4), * RPAR(JADR5),RPAR(MADR+1),SIGMA,IERR) C Do not forget to supply '*' into the first column of the C corresponding statement in subroutine VAL2. ELSE JADR6=MADR+1 MADR=MADR+5*NX2 IF(MADR+N.GT.MAXADR) GO TO 99 IF(NVAR.EQ.2) THEN C Two independent variables: CALL SURFB1(NX1,NX2,RPAR(JADR1),RPAR(JADR2), * RPAR(JADR4),NX1,RPAR(JADR4), * RPAR(JADR5),RPAR(JADR6),RPAR(MADR+1),SIGMA,IERR) ELSE C Three independent variables: JADR7=MADR+1 MADR=MADR+5*NX3 IF(MADR+N.GT.MAXADR) GO TO 99 CALL VAL3B1(NX1,NX2,NX3,RPAR(JADR1),RPAR(JADR2), * RPAR(JADR3),RPAR(JADR4),NX1,NX2,RPAR(JADR4), * RPAR(JADR5),RPAR(JADR6),RPAR(JADR7), * RPAR(MADR+1),SIGMA,IERR) END IF END IF IF(IERR.NE.0) THEN C 353 CALL ERROR('353 in VAL1: Strange error') C This error in the input functions should not appear. C Contact the authors. END IF END IF C Coefficients are evaluated C MFUNCT=MFUNCT+1 IPAR(MFUNCT)=MADR 80 CONTINUE READ(LUN,*) TEXT,GROUP C End of loop for functions C C The remaining functions of the current group are not defined by C the input data: 81 CONTINUE DO 82 I=IFUNCT,NFUNCT MFUNCT=MFUNCT+1 IPAR(MFUNCT)=MADR 82 CONTINUE 90 CONTINUE C End of loop for groups of functions C IF(TEXT.NE.'END') THEN C 354 CALL ERROR('354 in VAL1: Input functions not properly ended') C Read in input data describing functions are not properly ended. END IF C C Movement in the memory: KADR=MAXADR-MADR DO 91 I=MAXADR+1,NPAR IPAR(I-KADR)=IPAR(I) 91 CONTINUE DO 92 I=MFUNCT+1,IPAR(IPAR(IPAR(0))) IPAR(I)=IPAR(I)-KADR 92 CONTINUE RETURN C 99 CONTINUE C 355 CALL ERROR('355 in VAL1: Insufficient memory in /VALC/') C Insufficient memory for the input data in common block /VALC/. C The dimension NPAR of array IPAR (or RPAR) must be enlarged. C See the block data subroutine VALB. END C C----------------------------------------------------------------------- C C C SUBROUTINE SORTV(NX,X1,X2,IX) INTEGER NX,IX(NX) REAL X1(NX),X2(NX) C C This subroutine is an auxiliary routine to VAL1. It reorders the C input grid coordinates to be ascending. C C Auxiliary storage locations INTEGER I,J C DO 3 J=1,NX IX(J)=1 DO 1 I=1,J-1 IF(X1(J).EQ.X1(I)) GO TO 9 IF(X1(J).GT.X1(I)) IX(J)=IX(J)+1 1 CONTINUE DO 2 I=J+1,NX IF(X1(J).EQ.X1(I)) GO TO 9 IF(X1(J).GT.X1(I)) IX(J)=IX(J)+1 2 CONTINUE 3 CONTINUE DO 4 J=1,NX X2(IX(J))=X1(J) 4 CONTINUE RETURN C 9 CONTINUE C 356 CALL ERROR('356 in SORTV in VAL1: Identical grid coordinates') C Two identical grid coordinates encountered in the input data. END C C----------------------------------------------------------------------- C C C SUBROUTINE READV(LUN,NX1,NX2,NX3,IX1,IX2,IX3,VAL,POWERW) INTEGER LUN,NX1,NX2,NX3,IX1(NX1),IX2(NX2),IX3(NX3) REAL VAL(NX1,NX2,NX3),POWERW C C This subroutine is an auxiliary routine to VAL1. It reads from the C input data the values given at grid points. C C Auxiliary storage locations INTEGER I1,I2,I3 REAL AUX1 C READ(LUN,*) (((VAL(IX1(I1),IX2(I2),IX3(I3)),I1=1,NX1), * I2=1,NX2),I3=1,NX3) IF(POWERW.NE.1.) THEN AUX1=1./POWERW DO 3 I3=1,NX3 DO 2 I2=1,NX2 DO 1 I1=1,NX1 VAL(IX1(I1),IX2(I2),IX3(I3))= * VAL(IX1(I1),IX2(I2),IX3(I3))**AUX1 1 CONTINUE 2 CONTINUE 3 CONTINUE END IF C RETURN END C C======================================================================= C C C SUBROUTINE VAL2(ICLASS,IGROUP,NFUNCT,COOR,F,POWER) INTEGER ICLASS,IGROUP,NFUNCT REAL COOR(3),F(10,NFUNCT),POWER(NFUNCT) C C This subroutine evaluates the function value, the three first partial C derivatives and the six second partial derivatives of a given function C at a given point. C C Input: C ICLASS..Index of the class of the required functions. The classes C are indexed by integers starting from 1. C IGROUP..Index of the group of the required functions. The groups C of each class are indexed by integers starting from 1. C NFUNCT..Number of the required functions. All functions belonging C to the IGROUP-th group of the ICLASS-th class and defined C by the input data must be required. The functions defined C by the input data (see subroutine VAL1) are one-to-one C corresponding to the integers which identify what the C function describes. The position of each evaluated C function in the output array F (see below) is determined C by this integer. That is why NFUNCT must be greater than C or equal to the greatest of these integers. The required C functions not defined by the input data are defined on the C output of this subroutine and are zero. C COOR... Array containing coordinates X1, X2, X3 of the given point C None of the input parameters are altered. C C Output: C F... Array containing, in each its column, function value, the C first and second partial derivatives of the corresponding C evaluated function in the order F, F1, F2, F3, F11, F12, C F22, F13, F23, F33. C POWER...The specified function is equal to the POWER-th power of C the corresponding physical quantity. The zero value of C the POWER indicates that the corresponding function is not C defined by the input data. C C Common block: INCLUDE 'val.inc' C val.inc C None of the storage locations of the common block are altered. C C Subroutines and external functions required: * EXTERNAL CURV2D EXTERNAL CURVBD EXTERNAL SURFBD,VAL3BD C CURV2D or CURVBD (alternatives), SURFBD, VAL3BD, SNHCSH, DSPLNZ, C INTRVL... Subroutine package 'FITPACK' (file 'fit.for'). C C Date: 1995, March 28 C Coded by Ludek Klimes C C----------------------------------------------------------------------- C C The evaluated function has the form of C F(X1,X2,X3) = W(A1,A2,A3) - B1 - B2 - B3 , C C Its first derivatives are C dF dW dAk dB1 dB2 dB3 C --- = --- * --- - --- - --- - --- , C dXi dAk dXi dXi dXi dXi C C Its second derivatives are C d2 F d W d2 Ak d2 W dAk dAj d2 B1 d2 B3 C ------- = ---*------- + -------*---*--- - ------- - ... - -------. C dXi dXm dAk dXi dXm dAk dAj dXi dXm dXi dXm dXi dXm C C....................................................................... C INTEGER JGROUP,LFUNCT,MFUNCT,JFUNCT,LADR,MADR,IADR,IVAL INTEGER NVAR,IVAR(3),JVAR,KVAR INTEGER NX(3),NX1,NX2,NX3 EQUIVALENCE (NX(1),NX1),(NX(2),NX2),(NX(3),NX3) REAL XX(3),XX1,XX2,XX3 EQUIVALENCE (XX(1),XX1),(XX(2),XX2),(XX(3),XX3) CV3 REAL R1,R2,R3 INTEGER JADR(7),JADR1,JADR2,JADR3,JADR4,JADR5,JADR6,JADR7 EQUIVALENCE (JADR(1),JADR1),(JADR(2),JADR2),(JADR(3),JADR3) EQUIVALENCE (JADR(4),JADR4),(JADR(5),JADR5),(JADR(6),JADR6) EQUIVALENCE (JADR(7),JADR7) REAL SIGMA,W(10),AUX1,AUX2 INTEGER I,J,K,M,N,ISYM(3,3) DATA ISYM/5,6,8,6,7,9,8,9,10/ C C JGROUP..Address of the IGROUP-th group of the ICLASS-th class. C LFUNCT,MFUNCT,JFUNCT... Addresses of the first, last and arbitrary C functions of the group. C LADR,MADR,IADR... Addresses of the first, last and arbitrary C parameters of the current function. C IVAL... Index of the function F being currently evaluated. C NVAR,IVAR(3),JVAR,KVAR... Number and types of the independent C variables A1, A2, A3 of the interpolated function W. C NX=(NX1,NX2,NX3)... Numbers of grid lines. C XX=(XX1,XX2,XX3),R1,R2,R3... Values of independent variables A1, C A2, A3 of function W. C JADR=(JADR1,JADR2,JADR3,JADR4,JADR5,JADR6,JADR7)... Addresses of C parameters describing the interpolated function (grid C coordinates, B-spline coefficients, B-spline basis C functions). C SIGMA...Tension factor. C W... Array for the value, the first and second partial C derivatives of function W. C AUX1,AUX2,I,J,K,M,N... Local auxiliary variables. C ISYM... Storage of the symmetric 3*3 matrix. C C....................................................................... C C The default value of the function is the zero function. C Loop for the functions to be evaluated: DO 12 J=1,NFUNCT DO 11 I=1,10 F(I,J)=0. 11 CONTINUE POWER(J)=0. 12 CONTINUE CALL VAR1() C IF(ICLASS.LT.1.OR.IPAR(0).LT.ICLASS) THEN C 357 WRITE(*,'(2(A,I10))') ' CLASS=',ICLASS,', GROUP =',IGROUP CALL ERROR('357 in VAL2: Incorrect index of the class') C The index of the class of the functions to be evaluated is zero, C negative or greater than the number of classes defined. END IF JGROUP=IPAR(ICLASS-1)+IGROUP IF(IGROUP.LT.1.OR.IPAR(ICLASS).LT.JGROUP) THEN C 358 WRITE(*,'(2(A,I10))') ' CLASS=',ICLASS,', GROUP =',IGROUP CALL ERROR('358 in VAL2: Incorrect index of the group') C The index of the group of the functions to be evaluated is zero, C negative or greater than the number of groups defined within the C given class. END IF LFUNCT=IPAR(JGROUP-1)+1 MFUNCT=IPAR(JGROUP) MADR =IPAR(LFUNCT-1) C C Loop for functions F being evaluated: DO 90 JFUNCT=LFUNCT,MFUNCT C Starting and end addresses of the parameters describing the C function LADR=MADR+1 MADR=IPAR(JFUNCT) IF(LADR.LE.MADR) THEN C Index of function F being currently evaluated IVAL=IPAR(LADR) C Power of the corresponding physical quantity POWER(IVAL)=RPAR(LADR+1) C Tension factor SIGMA=RPAR(LADR+5) C C The number, types and values of the independent variables Ai C of function W being interpolated, and the functions Bi being C subtracted from the evaluated function: C Initial address IADR=LADR+6 C Initial number of the independent variables NVAR=0 JADR1=0 JADR2=0 JADR3=0 JADR4=0 C Loop for the possible independent variables: DO 20 M=LADR+2,LADR+4 C Type of the possible independent variable: J=IPAR(M) IF(J.NE.0) THEN IF(J.GT.0) THEN N=IABS(IPAR(IADR)) IF(N.GE.2) THEN NVAR=NVAR+1 NX(NVAR)=N IF(J.LE.3) THEN IVAR(NVAR)=J XX(NVAR)=COOR(J) ELSE K=IPAR(IPAR(LFUNCT+J-5)+1) IVAR(NVAR)=K+3 XX(NVAR)=F(1,K) END IF ELSE IF(N.EQ.1) THEN JADR(NVAR+1)=JADR(NVAR+1)+1 END IF IADR=IADR+1 ELSE C Subtracting certain functions from function F being C evaluated: IF(J.GE.-3) THEN C Subtracting a coordinate: F(1,IVAL)=F(1,IVAL)-COOR(-J) F(1-J,IVAL)=F(1-J,IVAL)-1. ELSE C Subtracting another function F: K=IPAR(IPAR(LFUNCT-J-5)) DO 19 I=1,10 F(I,IVAL)=F(I,IVAL)-F(I,K) 19 CONTINUE CALL VAR4(0,-1.) CALL VAR5(IVAL,K) END IF END IF END IF 20 CONTINUE C CV3 Lines denoted by 'CV3' in the first 3 columns are related to CV3 the kind of extrapolation outside the grid used in version 3 CV3 (January 1991) and older. In those versions, the first and CV3 second derivatives were incorrect outside the grid. CV3 If removing 'CV3' and 'CV3-V' from the executable statements, CV3 the kind of extrapolation from ver.3 is restored. Then, the CV3 first derivatives are correctly evaluated (unlike in ver.3), CV3 but the second derivatives are incorrect (as in ver.3). CV3 Similarly, variations of functional values are correct, and CV3 first variations of first derivatives are incorrect. CV3 C Interpolation of function W: JADR1=IADR+JADR1 CV3-V CALL VAR4(0,1.) IF(NVAR.LE.0) THEN C No independent variable: W(1)=RPAR(JADR1) CALL VAR2(1,1.,0.,0.,0.) CALL VAR3(JADR1-1) ELSE JADR2=JADR1+NX1+JADR2 CV3 R1=XX1 CV3 IF(XX1.LT.RPAR(JADR1)) THEN CV3 XX1=RPAR(JADR1) CV3 ELSE IF(XX1.GT.RPAR(JADR2-1)) THEN CV3 XX1=RPAR(JADR2-1) CV3 END IF CV3 R1=R1-XX1 IF(NVAR.EQ.1) THEN C One independent variable: JADR3=JADR2+NX1 C Two alternatives: Hermite or B-spline representations C may be used for the 1-D interpolation. Just one of the C following two statements must be supplied by '*' in the C first column: C First statement - Hermite representation: * CALL CURV2D(XX1,W(1),W(2),W(5),NX1, * * RPAR(JADR1),RPAR(JADR2),RPAR(JADR3),SIGMA) C Second statement - B-spline representation: CALL CURVBD(XX1,W(1),W(2),W(5),NX1, * RPAR(JADR1),RPAR(JADR2),RPAR(JADR3),SIGMA) C Do not forget to supply '*' into the first column of the C corresponding statement in subroutine VAL1. CALL VAR3(JADR2-1) ELSE JADR3=JADR2+NX2+JADR3 CV3 R2=XX2 CV3 IF(XX2.LT.RPAR(JADR2)) THEN CV3 XX2=RPAR(JADR2) CV3 ELSE IF(XX2.GT.RPAR(JADR3-1)) THEN CV3 XX2=RPAR(JADR3-1) CV3 END IF CV3 R2=R2-XX2 IF(NVAR.EQ.2) THEN C Two independent variables: JADR4=JADR3+NX1*NX2 JADR5=JADR4+5*NX1 CALL SURFBD(XX1,XX2,W(1),W(2),W(3),W(5),W(6),W(7), * NX1,NX2,RPAR(JADR1),RPAR(JADR2),RPAR(JADR3), * RPAR(JADR4),RPAR(JADR5),SIGMA) CALL VAR3(JADR3-1) ELSE C Three independent variables: JADR4=JADR3+NX3+JADR4 JADR5=JADR4+NX1*NX2*NX3 JADR6=JADR5+5*NX1 JADR7=JADR6+5*NX2 CV3 R3=XX3 CV3 IF(XX3.LT.RPAR(JADR3)) THEN CV3 XX3=RPAR(JADR3) CV3 ELSE IF(XX3.GT.RPAR(JADR4-1)) THEN CV3 XX3=RPAR(JADR4-1) CV3 END IF CV3 R3=R3-XX3 CALL VAL3BD(XX1,XX2,XX3,W(1),W(2),W(3),W(4),W(5),W(6), * W(7),W(9),W(10),W(8),NX1,NX2,NX3, * RPAR(JADR1),RPAR(JADR2),RPAR(JADR3),RPAR(JADR4), * RPAR(JADR5),RPAR(JADR6),RPAR(JADR7),SIGMA) CALL VAR3(JADR4-1) CV3 W(1)=W(1)+W(4)*R3 CV3 IF(R1.EQ.0.) W(2)=W(2)+W(8)*R3 CV3 IF(R2.EQ.0.) W(3)=W(3)+W(9)*R3 CV3 IF(R3.EQ.0.) W(4)=W(4)+W(8)*R1+W(9)*R2 CV3-V CALL VAR4(13,R3) END IF CV3 W(1)=W(1)+W(3)*R2 CV3 IF(R1.EQ.0.) W(2)=W(2)+W(6)*R2 CV3 IF(R2.EQ.0.) W(3)=W(3)+W(6)*R1 CV3-V CALL VAR4(9,R2) END IF CV3 W(1)=W(1)+W(2)*R1 CV3-V CALL VAR4(5,R1) END IF CV3-V CALL VAR5(0,0) C Function W is evaluated C C Evaluation of function f: C Functional value (zero derivative) F(1,IVAL)=F(1,IVAL)+W(1) CALL VAR4(0,0.) CALL VAR4(1,1.) C Loop for the summation index K: DO 39 K=1,NVAR KVAR=IVAR(K) IF(KVAR.LE.3) THEN C First derivatives - first term on R.H.S. F(1+KVAR,IVAL)=F(1+KVAR,IVAL)+W(1+K) C Second derivatives - second term on R.H.S. (the first term C vanishes in this case) - loop for the summation index J: DO 32 J=1,NVAR JVAR=IVAR(J) IF(JVAR.LE.3) THEN IF(JVAR.LE.KVAR) THEN N=ISYM(JVAR,KVAR) F(N,IVAL)=F(N,IVAL)+W(ISYM(J,K)) END IF ELSE JVAR=JVAR-3 AUX1=W(ISYM(J,K)) DO 31 I=1,JVAR N=ISYM(I,JVAR) F(N,IVAL)=F(N,IVAL)+AUX1*F(1+I,JVAR) 31 CONTINUE END IF 32 CONTINUE CALL VAR4(4*K+1+KVAR,1.) ELSE KVAR=KVAR-3 DO 33 I=2,4 CALL VAR4(4*K+I,F(I,KVAR)) 33 CONTINUE END IF 39 CONTINUE CALL VAR5(IVAL,0) C Loop for the summation index K: DO 49 K=1,NVAR KVAR=IVAR(K) IF(KVAR.GT.3) THEN KVAR=KVAR-3 CALL VAR4(0,W(1+K)) C First and second derivatives - first terms on R.H.S. DO 44 I=2,10 F(I,IVAL)=F(I,IVAL)+W(1+K)*F(I,KVAR) 44 CONTINUE C Second derivatives - second term on R.H.S. - C loop for the summation index J: DO 48 J=1,NVAR JVAR=IVAR(J) IF(JVAR.LE.3) THEN AUX1=W(ISYM(J,K)) DO 45 I=1,KVAR N=ISYM(I,KVAR) F(N,IVAL)=F(N,IVAL)+AUX1*F(1+I,KVAR) 45 CONTINUE ELSE JVAR=JVAR-3 AUX1=W(ISYM(J,K)) DO 47 M=1,3 AUX2=AUX1*F(1+M,JVAR) DO 46 I=1,M N=ISYM(I,M) F(N,IVAL)=F(N,IVAL)+AUX2*F(1+I,KVAR) 46 CONTINUE CALL VAR4(1+M,AUX2) 47 CONTINUE END IF 48 CONTINUE CALL VAR5(IVAL,KVAR) END IF 49 CONTINUE C END IF 90 CONTINUE C End of loop for evaluated functions F C RETURN END C C======================================================================= Cvar.for 100666 1750 1750 30003 6600357564 11464 0 ustar klimes klimes C
C Subroutine file 'var.for' to store in the memory variations of the C functions describing the model, with respect to their coefficients. C C Date: 1996, September 30 C Coded by Ludek Klimes C C....................................................................... C C This file consists of the following subroutine and its entries: C VAR1... Subroutine designed to initialize (i.e. to clear) the C memory storage locations. After invocation of this C subroutine no variations are in the memory, thus the C variations at a new point in the model may be started to C be stored (see entry VAR2). C This subroutine contains entries VAR2, VAR3, VAR4, VAR5 C and VAR6 listed below. C VAR1 C VAR2... Entry of the subroutine VAR1, designed to store variations C of the functions describing the model in the memory. C One new variation is stored by one invocation, being added C into the register no. 0. Note that one variation consists C of the variation of the functional value and its three C first derivatives. C VAR2 C VAR3... Entry of the subroutine VAR1, designed to replace the C relative indices of the function coefficients by the C absolute ones in the register 0. It should be called C after the register 0 is filled by the proper number of C invocations of the subroutine VAR2. C VAR3 C VAR4... Entry of the subroutine VAR1, designed to define and/or C rebuild the 4*4 transformation matrix which may be applied C to the stored variations in order to modify them. C VAR4 C VAR5... Entry of the subroutine VAR1, designed to modify the C stored variations by means of a linear transformation, C and to eventually append them to the registers C corresponding to the individual functions describing the C model. The linear transformation is defined by C invocation(s) of the above entry VAR4. C VAR5 C VAR6... Entry of the subroutine VAR1, designed to recall the C stored variations corresponding to a given function C describing the model. C VAR6 C C....................................................................... C C Attention: C (A) When linking this subroutine file with the file 'val.for', C subroutines CURVB1 and CURVBD of the file 'fit.for', instead of C CURVN1 and CURV2D, must be called from the 'val.for' file. This C is the default in the distributed source code. See also the C comment lines with '*' in the first column in the file 'val.for'. C (B) In the basic version of C.R.T. routines, subroutines VAR* are C called from the following subroutine files: C 'model.for' 7 times (in subroutines VELOC and POWER), C 'parm.for' 7 times (in subroutine PARM2), C 'val.for' 21 times (in subroutine VAL2), C 'fit.for' 3 times (in subrs. CURVBD, SURFBD and VAL3BD). C Note that the corresponding call statements contain the substring C ' CALL VAR', and are denoted by '*V' in the first two C columns of the basic versions of the distributed source C code. C Each '*V' in the first two columns of the above mentioned files C has to be replaced by ' ' (2 blanks) if linking with 'var.for'. C C Relative CPU-time usage for the demo data: C CURVN1, CURV2D, no call VAR*: 1.00 C CURVN1, CURV2D, 'VARNUL': 1.16 C CURVB1, CURVBD, no call VAR*: 1.04 C CURVB1, CURVBD, 'VARNUL': 1.22 C CURVB1, CURVBD, 'VAR': 1.88 C C----------------------------------------------------------------------- C C C SUBROUTINE VAR1() C dummy arguments of all entries: INTEGER IBI,IBB,IVAL,IVAL0,II,NBI REAL B0I,B1I,B2I,B3I,BBI C C This subroutine is designed to initialize (i.e. to clear) the memory C storage locations. After invocation of this subroutine no variations C are in the memory, thus the variations at a new point in the model may C be started to be stored (see entry VAR2). C C No input. C C No output. C C No subroutines and external functions required. C C....................................................................... C C Storage locations (common to all entries): C INTEGER MFUNCT,MB PARAMETER (MFUNCT=48,MB=3072) INTEGER NB(0:MFUNCT),IB(MB), IAUX,I,J,JB,JB0,JVAL,JVAL0 REAL B0(MB),B1(MB),B2(MB),B3(MB),BB(16), AUX0,AUX1,AUX2,AUX3 SAVE NB,IB,B0,B1,B2,B3,BB C C....................................................................... C DO 11 I=0,MFUNCT NB(I)=0 11 CONTINUE RETURN C C----------------------------------------------------------------------- C C C ENTRY VAR2(IBI,B0I,B1I,B2I,B3I) C INTEGER IBI C REAL B0I,B1I,B2I,B3I C C This entry is designed to store variations of the functions describing C the model in the memory. One new variation is stored by one C invocation, being added into the register no. 0. Note that one C variation consists of the variation of the functional value and its C three first derivatives. C C Input: C IBI... Index of the function coefficient, relative to the C beginning of the function. C B0I,B1I,B2I,B3I... Variation of the functional value and the three C first derivatives, with respect to the IBI-th coefficient C of the function. C The input parameters are not altered. C C No output. C C....................................................................... C I=NB(MFUNCT)+1 IF(I.GT.MB) THEN C 362 CALL ERROR('362 in VAR2: Array index out of range.') C Dimension MB of arrays IB, B0, B1, B2 and B3 should be C increased. END IF NB(MFUNCT)=I IB(I)=IBI B0(I)=B0I B1(I)=B1I B2(I)=B2I B3(I)=B3I RETURN C C----------------------------------------------------------------------- C C C ENTRY VAR3(IBI) C INTEGER IBI C C This entry is designed to replace the relative indices of the function C coefficients by the absolute ones in the register 0. It should be C called after the register 0 is filled by the proper number of C invocations of the subroutine VAR2. C C Input: C IBI... Shift added to the index of the function coefficient. C It should equal the difference between the absolute (see C entry VAR6) and relative (see entry VAR2) indices of the C corresponding function. C The input parameter is not altered. C C No output. C C....................................................................... C DO 31 I=NB(MFUNCT-1)+1,NB(MFUNCT) IB(I)=IB(I)+IBI 31 CONTINUE RETURN C C----------------------------------------------------------------------- C C C ENTRY VAR4(IBB,BBI) C INTEGER IBB C REAL BBI C C This entry is designed to define and/or rebuild the 4*4 transformation C matrix which may be applied to the stored variations in order to C modify them. C C Input: C IBB... IBB=0: 4*4 transformation matrix is set to the identity C matrix multiplied by BBI. C IBB=1,2,...,16: BBI is added to the IBB-th element of the C transformation matrix. C BBI... Given real value. C The input parameters are not altered. C C No output. C C....................................................................... C IF(IBB.LE.0) THEN DO 41 I=2,15 BB(I)=0. 41 CONTINUE DO 42 I=1,16,5 BB(I)=BBI 42 CONTINUE ELSE BB(IBB)=BB(IBB)+BBI END IF RETURN C C----------------------------------------------------------------------- C C C ENTRY VAR5(IVAL,IVAL0) C INTEGER IVAL,IVAL0 C C This entry is designed to modify the stored variations by means of a C linear transformation, and to eventually append them to the registers C corresponding to the individual functions describing the model. The C linear transformation is defined by invocation(s) of the entry VAR4. C C Input: C IVAL,IVAL0... The variations from the register IVAL0 are C transformed by means of the matrix defined through the C entry VAR4, and then copied to the register IVAL. C The transformed variations are appended to ones already C stored in the IVAL-th register. C If IVAL=IVAL0 or IVAL0=0, the original variations are C deleted from the IVAL0-th register, otherwise the original C variations are retained. C The input parameters are not altered. C C No output. C C....................................................................... C IF(IVAL.LE.0) THEN JVAL=MFUNCT JB=NB(JVAL-1) ELSE JVAL=IVAL IF(IVAL.EQ.IVAL0) THEN JB=NB(JVAL-1) ELSE JB=NB(JVAL) END IF END IF IF(IVAL0.LE.0) THEN JVAL0=MFUNCT ELSE JVAL0=IVAL0 END IF C DO 58 J=1,NB(JVAL0)-NB(JVAL0-1) JB=JB+1 IF(JVAL.EQ.MFUNCT.OR.JVAL0.LT.MFUNCT) THEN JB0=NB(JVAL0-1)+J ELSE JB0=NB(JVAL0-1)+1 END IF IAUX=IB(JB0) AUX0=B0(JB0) AUX1=B1(JB0) AUX2=B2(JB0) AUX3=B3(JB0) IF(JVAL.NE.JVAL0) THEN DO 51 I=JVAL,MFUNCT-1 NB(I)=NB(I)+1 51 CONTINUE IF(JVAL0.LT.MFUNCT) THEN C original variations are not deleted JB0=NB(MFUNCT)+1 NB(MFUNCT)=JB0 END IF END IF IF(JB0.GT.MB) THEN C 365 CALL ERROR('365 in VAR5: Array index out of range.') C Dimension MB of arrays IB, B0, B1, B2 and B3 should be C increased. END IF DO 52 I=JB0-1,JB,-1 IB(I+1)=IB(I) B0(I+1)=B0(I) B1(I+1)=B1(I) B2(I+1)=B2(I) B3(I+1)=B3(I) 52 CONTINUE IB(JB)=IAUX B0(JB)=BB(1)*AUX0+BB(5)*AUX1+BB( 9)*AUX2+BB(13)*AUX3 B1(JB)=BB(2)*AUX0+BB(6)*AUX1+BB(10)*AUX2+BB(14)*AUX3 B2(JB)=BB(3)*AUX0+BB(7)*AUX1+BB(11)*AUX2+BB(15)*AUX3 B3(JB)=BB(4)*AUX0+BB(8)*AUX1+BB(12)*AUX2+BB(16)*AUX3 58 CONTINUE RETURN C C----------------------------------------------------------------------- C C C ENTRY VAR6(IVAL,II,NBI,IBI,B0I,B1I,B2I,B3I) C INTEGER IVAL,II,NBI,IBI C REAL B0I,B1I,B2I,B3I C C This entry is designed to recall the stored variations corresponding C to a given function describing the model. C C Input: C IVAL... Index of the function describing the model. The output C variations are thus recalled from the IVAL-th register. C II... Sequential number within the register of the required C variation of the IVAL-th function. C The input parameters are not altered. C C Output: C NBI... Number of the variations of the IVAL-th function stored in C the IVAL-th register. C IBI... Absolute index of the function coefficient. For II.GT.NBI C undefined. C B0I,B1I,B2I,B3I... Variation of the functional value and the three C first derivatives, with respect to the IBI-th coefficient C of the model. For II.GT.NBI undefined. C C....................................................................... C NBI=NB(IVAL)-NB(IVAL-1) IF(II.LE.NBI) THEN I=NB(IVAL-1)+II IBI=IB(I) B0I=B0(I) B1I=B1(I) B2I=B2(I) B3I=B3(I) END IF RETURN END C C======================================================================= Cvarnul.for 100666 1750 1750 5246 6600357642 12173 0 ustar klimes klimes C
C Subroutine file 'varnul.for' - empty subroutines VAR1 to VAR6. C C Date: 1996, September 30 C Coded by Ludek Klimes C C....................................................................... C C Subroutine VAR1 and its entries VAR2, VAR3, VAR4 and VAR5 are called C from the model specification subroutines in order to keep in the C memory variations of the functions describing the model, with respect C to their coefficients. The variations are required for the C travel-time inversion of the model and are recalled from the memory by C calling the entry VAR6, see the subroutine file 'var.for'. In the C case of forward modelling, the invocation of subroutines VAR1, VAR2, C VAR3, VAR4 and VAR5 is useless. C C In the case of forward modelling, either: C The complete ray tracing program may be linked with the empty C subroutines of this file, C or: C User may remove the invocations of the subroutines VAR1, VAR2, C VAR3, VAR4 and VAR5 from the model specification subroutine files. C This option saves the CPU time with respect to the former one. C In the basic version of C.R.T. routines, subroutines VAR* are C called from the following subroutine files: C 'model.for' 7 times (in subroutines VELOC and POWER), C 'parm.for' 7 times (in subroutine PARM2), C 'val.for' 21 times (in subroutine VAL2), C 'fit.for' 3 times (in subrs. CURVBD, SURFBD and VAL3BD). C Note that the corresponding call statements contain the substring C ' CALL VAR', and are denoted by '*V' in the first two C columns of the distributed source code. C Attention: there is a continuation line of such a call statement C in the file 'fit.for'. C C----------------------------------------------------------------------- C SUBROUTINE VAR1() C Dummy arguments of all entries: INTEGER IBI,IBB,IVAL,IVAL0,II,IEND REAL B0I,B1I,B2I,B3I,BBI C ENTRY VAR2(IBI,B0I,B1I,B2I,B3I) C ENTRY VAR3(IBI) C ENTRY VAR4(IBB,BBI) C ENTRY VAR5(IVAL,IVAL0) RETURN C ENTRY VAR6(IVAL,II,IEND,IBI,B0I,B1I,B2I,B3I) C 360 CALL ERROR('360 in VAR6: No variations stored') C Model-treating subroutine files are linked with the C dummy subroutine file 'varnul.for' instead of 'var.for'. C No variations are stored in the memory, thus the entry C VAR6 cannot be called. RETURN END C C======================================================================= Cwb/ 40777 1750 1750 0 6613213034 10446 5 ustar klimes klimes wb/wb2-mod.dat 100666 1750 1750 70364 6223642746 12553 0 ustar klimes klimes 'WESTERN BOHEMIA: REVISED EXTENDED A PRIORI MODEL WITH SURFACE' / 850 910 980 1050 -12 1.1 (BOUNDARIES OF THE MODEL) 1 SURFACE 1 SIMPLE BLOCK: 1 / 1 COMPLEX BLOCK: 1 / 'EARTH SURFACE' 1 1 2 -3 0 / (I.E. W(X1,X2)-X3=0, TENSION=0) 61 71 (NUMBERS OF GRID POINTS) 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 .695 .700 .660 .600 .570 .634 .690 .760 .769 .718 .685 .687 .664 .602 .664 .738 .757 .732 .694 .600 .627 .595 .673 .658 .671 .694 .717 .678 .652 .658 .630 .623 .649 .633 .625 .624 .615 .550 .562 .621 .539 .530 .525 .478 .496 .490 .460 .450 .428 .403 .390 .423 .409 .390 .403 .470 .503 .457 .505 .500 .500 .575 .641 .690 .673 .698 .577 .745 .707 .812 .749 .728 .649 .719 .632 .705 .787 .754 .782 .718 .707 .671 .636 .636 .631 .699 .665 .709 .689 .708 .695 .720 .614 .700 .658 .632 .609 .610 .646 .582 .560 .533 .519 .478 .479 .452 .451 .440 .438 .437 .403 .398 .409 .435 .442 .443 .395 .408 .509 .518 .500 .500 .721 .720 .607 .731 .714 .660 .641 .673 .768 .800 .779 .724 .799 .730 .742 .888 .824 .827 .813 .744 .645 .714 .680 .650 .667 .652 .674 .675 .673 .703 .685 .609 .704 .647 .672 .613 .622 .632 .575 .523 .486 .488 .503 .480 .442 .425 .420 .412 .382 .407 .481 .435 .423 .463 .423 .492 .520 .520 .572 .500 .500 .770 .598 .746 .721 .614 .607 .709 .661 .698 .788 .839 .775 .888 .715 .871 .941 .889 .891 .787 .740 .743 .761 .690 .651 .650 .642 .697 .723 .678 .693 .684 .658 .712 .689 .721 .665 .591 .673 .560 .525 .470 .495 .440 .483 .471 .450 .398 .430 .424 .467 .500 .440 .474 .470 .396 .503 .451 .498 .518 .500 .500 .732 .725 .812 .686 .700 .813 .735 .711 .689 .836 .877 .899 .992 .740 .862 .922 .891 .864 .822 .838 .817 .769 .710 .719 .750 .698 .690 .742 .705 .688 .702 .730 .768 .735 .725 .668 .564 .573 .509 .495 .475 .495 .480 .424 .450 .432 .425 .474 .482 .526 .480 .440 .490 .522 .453 .482 .468 .456 .483 .500 .500 .640 .839 .822 .763 .833 .877 .785 .740 .841 .823 .860 .886 .900 .747 .777 .868 .900 .808 .910 .891 .830 .740 .664 .830 .802 .797 .780 .803 .749 .716 .693 .715 .763 .774 .761 .688 .665 .610 .551 .544 .528 .510 .485 .473 .456 .428 .463 .486 .521 .509 .461 .491 .521 .522 .454 .470 .501 .507 .472 .535 .500 .703 .887 .899 .878 .891 .833 .773 .705 .870 .875 .851 .860 .842 .865 .877 .902 .882 .918 .914 .806 .830 .770 .755 .807 .816 .833 .826 .832 .778 .742 .713 .716 .755 .783 .767 .701 .668 .603 .585 .565 .559 .528 .489 .512 .508 .396 .436 .480 .522 .511 .473 .504 .541 .512 .499 .519 .522 .508 .504 .501 .500 .872 .850 .916 .868 .845 .840 .728 .749 .832 .843 .907 .914 .891 .870 .889 .923 .904 .935 .932 .939 .865 .787 .780 .849 .812 .920 .897 .819 .780 .733 .724 .752 .733 .748 .775 .731 .661 .595 .546 .515 .517 .519 .515 .517 .459 .416 .480 .503 .550 .510 .490 .507 .540 .565 .525 .491 .541 .558 .538 .500 .500 .949 .924 .895 .913 .854 .721 .726 .822 .809 .839 .903 .933 .942 .872 .933 .950 .914 .927 .947 .865 .845 .904 .828 .879 .842 .908 .777 .702 .747 .764 .759 .762 .778 .782 .731 .638 .605 .571 .515 .468 .488 .450 .430 .434 .415 .481 .455 .483 .543 .542 .488 .541 .582 .607 .568 .523 .540 .542 .525 .530 .500 .960 .945 .948 .937 .886 .782 .771 .782 .788 .858 .928 .915 .924 .884 .906 .929 .955 .932 .928 .952 .903 .915 .855 .895 .830 .779 .733 .638 .660 .772 .786 .781 .771 .715 .748 .736 .612 .519 .511 .528 .549 .535 .540 .450 .478 .528 .539 .530 .572 .542 .507 .526 .582 .598 .582 .580 .600 .540 .560 .542 .500 .958 .910 .874 .855 .884 .840 .824 .779 .839 .928 .950 .874 .866 .921 .930 .922 .904 .939 .937 .935 .850 .839 .746 .840 .657 .672 .639 .749 .783 .762 .722 .768 .747 .678 .703 .705 .609 .584 .561 .538 .512 .517 .523 .442 .485 .453 .476 .518 .597 .522 .557 .587 .614 .597 .565 .592 .577 .576 .569 .548 .500 .932 .961 .960 .949 .967 .910 .790 .845 .904 .926 .873 .871 .895 .911 .915 .942 .906 .912 .877 .760 .720 .675 .708 .745 .720 .650 .590 .642 .646 .714 .694 .733 .729 .691 .681 .629 .591 .558 .535 .542 .490 .448 .435 .453 .564 .553 .562 .558 .599 .580 .605 .619 .595 .562 .572 .564 .568 .577 .577 .546 .500 .999 1.029 .983 1.003 .944 .898 .892 .955 .988 .860 .912 .914 .920 .870 .888 .876 .888 .924 .887 .876 .820 .788 .610 .690 .710 .744 .560 .620 .633 .675 .670 .697 .638 .690 .681 .657 .600 .578 .589 .542 .537 .499 .458 .528 .560 .530 .598 .579 .619 .611 .590 .581 .567 .543 .529 .528 .531 .556 .570 .551 .520 1.011 .982 .975 .962 .902 .866 .922 .931 .941 .879 .781 .820 .812 .830 .868 .903 .902 .945 .907 .921 .810 .640 .595 .754 .743 .728 .540 .652 .643 .683 .590 .700 .772 .727 .711 .590 .555 .610 .608 .579 .516 .490 .505 .488 .505 .542 .551 .597 .627 .598 .583 .560 .548 .585 .570 .557 .554 .545 .575 .543 .527 .890 .932 .938 .916 .897 .927 .972 .860 .811 .802 .820 .850 .871 .869 .908 .859 .906 .920 .876 .871 .892 .819 .654 .616 .699 .540 .688 .600 .683 .755 .657 .743 .720 .685 .690 .605 .564 .556 .541 .560 .509 .485 .486 .538 .527 .508 .511 .579 .613 .598 .607 .557 .563 .594 .575 .561 .543 .515 .524 .536 .545 .880 .903 .894 .870 .858 .977 .955 .791 .728 .792 .801 .797 .798 .904 .896 .911 .838 .823 .822 .808 .913 .838 .695 .670 .550 .687 .717 .733 .729 .729 .635 .655 .632 .592 .589 .592 .580 .550 .500 .500 .462 .489 .452 .533 .582 .578 .523 .548 .591 .613 .560 .567 .564 .603 .622 .582 .581 .558 .519 .520 .515 .902 .833 .863 .870 .885 .957 .900 .879 .866 .660 .745 .758 .867 .842 .865 .893 .826 .798 .783 .747 .908 .789 .778 .565 .540 .605 .623 .655 .746 .790 .771 .721 .680 .539 .550 .543 .515 .485 .478 .490 .552 .560 .480 .527 .511 .568 .631 .619 .599 .577 .583 .604 .582 .618 .607 .601 .599 .548 .557 .557 .538 1.000 .770 .828 .811 .950 .870 .800 .931 .811 .670 .750 .845 .856 .845 .810 .783 .820 .760 .720 .718 .822 .744 .750 .550 .588 .640 .599 .688 .770 .775 .713 .726 .650 .549 .610 .538 .583 .615 .571 .560 .554 .494 .480 .468 .551 .581 .646 .617 .609 .590 .611 .583 .617 .602 .584 .594 .570 .582 .588 .578 .563 .840 .705 .893 .954 .922 .881 .827 .725 .679 .602 .777 .758 .760 .803 .690 .761 .669 .669 .630 .655 .713 .685 .680 .535 .635 .708 .690 .696 .694 .786 .693 .720 .663 .593 .650 .620 .604 .572 .560 .592 .540 .493 .570 .525 .484 .540 .587 .653 .606 .626 .629 .613 .626 .597 .567 .575 .592 .538 .566 .581 .535 .627 .880 .931 .939 .914 .768 .677 .660 .568 .632 .622 .645 .663 .654 .652 .652 .629 .626 .597 .569 .568 .589 .560 .593 .611 .647 .660 .664 .701 .735 .753 .647 .691 .652 .660 .622 .598 .533 .515 .532 .518 .520 .563 .503 .559 .538 .635 .682 .628 .656 .637 .638 .662 .601 .589 .560 .544 .538 .532 .541 .523 .846 .890 .847 .800 .828 .748 .623 .560 .568 .636 .635 .600 .618 .666 .666 .632 .627 .607 .570 .540 .549 .569 .637 .568 .581 .590 .670 .657 .636 .673 .740 .677 .628 .644 .626 .635 .578 .580 .591 .576 .495 .554 .580 .570 .539 .559 .550 .623 .658 .687 .662 .630 .675 .598 .599 .578 .580 .552 .527 .540 .543 .680 .700 .709 .680 .718 .631 .580 .540 .495 .642 .648 .687 .668 .689 .679 .685 .664 .635 .609 .603 .582 .520 .628 .581 .610 .620 .650 .644 .610 .672 .680 .643 .627 .600 .612 .651 .628 .658 .570 .571 .535 .601 .661 .568 .550 .515 .591 .555 .611 .639 .680 .667 .663 .599 .594 .604 .562 .540 .565 .575 .547 .493 .529 .640 .602 .619 .610 .616 .506 .582 .672 .660 .657 .654 .640 .659 .688 .681 .669 .666 .625 .628 .625 .550 .640 .657 .665 .655 .582 .604 .608 .635 .605 .619 .552 .631 .609 .582 .572 .639 .588 .549 .553 .608 .539 .647 .559 .609 .643 .592 .643 .672 .638 .686 .677 .611 .578 .549 .589 .570 .602 .584 .462 .498 .521 .513 .530 .617 .580 .468 .642 .632 .600 .675 .631 .630 .649 .647 .700 .703 .681 .647 .575 .654 .480 .589 .665 .657 .695 .688 .562 .650 .593 .621 .572 .563 .606 .561 .559 .569 .622 .571 .546 .585 .653 .628 .633 .580 .617 .742 .630 .645 .640 .627 .615 .611 .619 .589 .584 .591 .592 .624 .619 .461 .496 .479 .495 .514 .512 .481 .520 .516 .550 .620 .638 .577 .607 .650 .690 .702 .733 .697 .659 .628 .554 .487 .666 .667 .700 .682 .682 .598 .578 .661 .554 .515 .532 .580 .542 .530 .537 .580 .622 .588 .598 .652 .679 .644 .572 .668 .697 .650 .676 .647 .614 .601 .578 .571 .588 .658 .618 .599 .633 .625 .491 .450 .465 .478 .495 .452 .471 .450 .482 .430 .504 .590 .565 .605 .659 .695 .655 .722 .720 .704 .651 .530 .552 .650 .679 .592 .658 .655 .564 .668 .597 .551 .502 .516 .525 .512 .534 .538 .565 .600 .609 .597 .642 .684 .664 .602 .655 .672 .682 .649 .638 .622 .599 .589 .579 .598 .657 .713 .654 .670 .639 .490 .440 .498 .500 .444 .422 .432 .430 .430 .430 .450 .468 .483 .530 .560 .619 .601 .611 .677 .709 .594 .508 .518 .562 .638 .631 .594 .582 .627 .558 .556 .492 .504 .488 .486 .498 .532 .510 .512 .550 .591 .629 .622 .720 .665 .641 .663 .647 .624 .617 .621 .631 .621 .627 .622 .609 .634 .630 .637 .731 .690 .430 .450 .517 .512 .430 .436 .420 .435 .430 .430 .430 .458 .450 .450 .450 .450 .551 .577 .574 .585 .578 .448 .615 .618 .626 .578 .626 .601 .608 .590 .489 .475 .491 .489 .482 .478 .506 .510 .530 .611 .625 .654 .641 .727 .649 .682 .695 .647 .610 .595 .607 .599 .600 .621 .605 .665 .610 .593 .610 .647 .682 .411 .404 .400 .427 .434 .432 .418 .432 .433 .420 .444 .455 .450 .450 .450 .450 .450 .515 .450 .484 .492 .438 .528 .547 .577 .605 .500 .600 .600 .525 .492 .478 .469 .477 .496 .492 .481 .499 .555 .641 .640 .670 .690 .734 .691 .658 .644 .625 .631 .656 .618 .569 .600 .571 .575 .600 .618 .574 .593 .602 .605 .407 .403 .386 .408 .444 .440 .385 .400 .408 .420 .457 .452 .465 .468 .450 .450 .450 .450 .450 .450 .430 .460 .497 .564 .602 .613 .560 .505 .615 .532 .487 .469 .462 .480 .490 .475 .477 .494 .540 .550 .619 .729 .719 .644 .648 .614 .624 .630 .627 .652 .601 .570 .565 .545 .550 .563 .551 .547 .578 .575 .602 .425 .392 .396 .427 .410 .400 .422 .429 .450 .450 .442 .440 .440 .440 .440 .440 .450 .490 .450 .485 .481 .527 .539 .559 .590 .614 .580 .539 .592 .503 .475 .452 .472 .471 .462 .467 .479 .546 .510 .542 .530 .598 .636 .617 .648 .601 .605 .568 .619 .589 .578 .563 .549 .565 .567 .530 .560 .578 .558 .580 .596 .375 .373 .372 .378 .385 .432 .460 .460 .460 .440 .436 .430 .430 .430 .430 .439 .444 .448 .470 .480 .436 .510 .498 .554 .587 .602 .538 .561 .587 .489 .472 .459 .463 .467 .471 .462 .458 .478 .502 .498 .521 .552 .586 .588 .579 .567 .575 .572 .597 .578 .571 .582 .570 .566 .577 .563 .518 .538 .550 .575 .575 .450 .505 .460 .380 .387 .428 .511 .493 .474 .420 .427 .400 .452 .426 .419 .414 .438 .433 .418 .422 .447 .470 .491 .522 .542 .572 .584 .596 .468 .477 .473 .438 .456 .457 .462 .457 .452 .462 .486 .498 .511 .544 .532 .546 .544 .534 .553 .611 .583 .582 .573 .575 .578 .572 .549 .524 .549 .512 .533 .550 .558 .390 .561 .489 .470 .412 .400 .525 .520 .488 .415 .432 .491 .485 .478 .424 .430 .430 .425 .405 .400 .400 .410 .405 .472 .478 .495 .512 .538 .457 .473 .474 .435 .462 .445 .458 .452 .462 .452 .471 .492 .509 .520 .517 .538 .520 .536 .538 .562 .532 .578 .593 .573 .554 .560 .561 .520 .510 .545 .538 .548 .541 .510 .467 .500 .466 .505 .475 .455 .395 .420 .430 .433 .390 .439 .438 .464 .396 .399 .402 .400 .400 .400 .400 .400 .450 .500 .520 .492 .494 .453 .472 .466 .437 .455 .446 .437 .440 .440 .453 .473 .489 .484 .500 .522 .548 .528 .523 .508 .535 .552 .581 .624 .529 .496 .532 .491 .535 .539 .531 .540 .540 .532 .512 .425 .561 .550 .579 .535 .482 .510 .506 .450 .475 .454 .423 .449 .458 .464 .430 .421 .437 .400 .425 .525 .474 .457 .510 .530 .500 .466 .458 .466 .461 .435 .452 .432 .432 .437 .443 .453 .452 .458 .483 .473 .488 .491 .519 .518 .522 .507 .586 .587 .573 .530 .495 .531 .529 .559 .538 .549 .534 .585 .568 .533 .449 .537 .430 .609 .660 .627 .622 .495 .563 .534 .529 .524 .466 .430 .458 .450 .425 .410 .410 .448 .483 .426 .461 .478 .525 .502 .444 .448 .461 .459 .428 .445 .430 .432 .451 .453 .460 .457 .448 .448 .448 .454 .474 .508 .522 .534 .497 .579 .529 .569 .483 .506 .551 .557 .541 .564 .579 .574 .602 .580 .543 .555 .545 .442 .629 .685 .702 .680 .470 .562 .607 .632 .662 .564 .539 .531 .450 .450 .460 .450 .450 .417 .464 .421 .433 .465 .533 .462 .445 .453 .447 .432 .437 .442 .447 .434 .439 .453 .450 .440 .437 .449 .451 .461 .463 .504 .543 .499 .484 .476 .502 .519 .538 .535 .571 .585 .573 .600 .595 .577 .581 .520 .557 .568 .460 .555 .700 .662 .595 .512 .577 .633 .658 .667 .658 .548 .622 .656 .530 .486 .444 .427 .445 .408 .422 .477 .392 .417 .423 .438 .437 .445 .432 .424 .437 .423 .420 .444 .438 .466 .444 .443 .440 .447 .465 .447 .453 .471 .456 .487 .482 .568 .646 .571 .572 .580 .577 .589 .592 .615 .627 .655 .563 .572 .580 .460 .569 .576 .641 .525 .552 .595 .608 .637 .762 .680 .627 .747 .726 .637 .627 .479 .510 .452 .438 .493 .488 .497 .420 .414 .418 .418 .428 .428 .421 .423 .426 .436 .424 .443 .448 .457 .486 .472 .489 .476 .467 .440 .455 .454 .490 .497 .541 .597 .551 .537 .547 .541 .571 .582 .607 .612 .610 .603 .656 .601 .500 .550 .623 .604 .603 .596 .632 .605 .655 .805 .757 .625 .742 .738 .735 .670 .578 .538 .530 .485 .484 .496 .505 .446 .416 .427 .430 .418 .422 .430 .428 .451 .442 .425 .442 .452 .468 .476 .440 .440 .440 .440 .474 .456 .484 .458 .493 .511 .544 .528 .520 .519 .531 .566 .595 .591 .594 .578 .620 .685 .562 .461 .643 .623 .590 .612 .639 .642 .650 .673 .714 .741 .672 .671 .733 .714 .649 .647 .611 .599 .562 .510 .505 .522 .443 .458 .462 .451 .421 .442 .461 .458 .456 .453 .441 .467 .469 .512 .478 .451 .470 .487 .510 .493 .481 .511 .470 .449 .494 .512 .546 .525 .551 .568 .625 .575 .607 .598 .563 .681 .698 .631 .527 .561 .647 .645 .630 .654 .700 .733 .717 .720 .757 .765 .680 .721 .689 .640 .630 .570 .572 .539 .577 .528 .488 .472 .448 .465 .463 .440 .440 .466 .464 .462 .463 .467 .454 .452 .448 .473 .491 .579 .584 .571 .566 .535 .548 .548 .531 .455 .482 .468 .489 .531 .536 .542 .558 .577 .570 .579 .730 .731 .700 .663 .585 .610 .687 .698 .698 .789 .778 .773 .777 .808 .734 .763 .776 .735 .650 .650 .622 .632 .648 .609 .559 .540 .484 .467 .442 .457 .462 .440 .461 .466 .468 .476 .478 .472 .473 .482 .481 .523 .502 .578 .571 .640 .556 .562 .577 .581 .564 .496 .511 .514 .517 .512 .530 .538 .576 .539 .546 .738 .735 .600 .690 .512 .683 .716 .735 .748 .766 .775 .792 .802 .786 .728 .750 .741 .737 .679 .667 .710 .730 .658 .583 .572 .599 .450 .465 .450 .472 .472 .440 .440 .440 .449 .483 .487 .484 .487 .508 .484 .536 .504 .556 .550 .601 .567 .557 .555 .566 .577 .580 .590 .474 .487 .519 .518 .530 .521 .540 .509 .699 .707 .685 .630 .498 .578 .540 .563 .585 .660 .730 .772 .795 .778 .813 .747 .813 .822 .743 .710 .739 .691 .659 .676 .669 .646 .482 .462 .453 .470 .463 .452 .440 .445 .440 .448 .458 .461 .480 .513 .510 .532 .539 .531 .578 .599 .597 .574 .540 .525 .516 .511 .519 .513 .476 .494 .501 .509 .513 .512 .620 .702 .698 .690 .685 .638 .619 .690 .682 .627 .747 .754 .763 .784 .816 .820 .792 .783 .806 .727 .730 .778 .708 .744 .717 .678 .581 .459 .451 .468 .484 .459 .470 .465 .459 .480 .450 .440 .440 .487 .508 .499 .503 .486 .537 .525 .590 .588 .557 .554 .543 .530 .543 .600 .541 .491 .502 .518 .524 .510 .531 .550 .707 .710 .663 .639 .590 .542 .510 .649 .696 .755 .765 .798 .793 .823 .827 .826 .807 .847 .787 .723 .810 .800 .710 .656 .567 .542 .470 .492 .469 .478 .487 .490 .457 .498 .469 .478 .476 .455 .479 .500 .486 .494 .512 .507 .576 .583 .577 .560 .588 .604 .575 .545 .593 .592 .559 .567 .551 .511 .508 .532 .528 .674 .697 .689 .643 .644 .617 .580 .630 .731 .730 .763 .778 .785 .787 .802 .803 .822 .832 .831 .792 .815 .840 .827 .768 .717 .510 .492 .517 .512 .509 .493 .500 .465 .510 .467 .484 .481 .512 .492 .473 .467 .488 .516 .493 .517 .558 .605 .532 .591 .567 .554 .552 .578 .670 .616 .642 .620 .533 .564 .563 .525 .662 .692 .687 .701 .702 .690 .528 .710 .751 .681 .749 .738 .752 .742 .776 .800 .823 .846 .832 .783 .793 .931 .878 .795 .716 .544 .522 .516 .574 .488 .534 .530 .509 .501 .497 .495 .520 .498 .493 .498 .535 .532 .487 .473 .493 .523 .511 .533 .542 .536 .527 .537 .557 .600 .642 .665 .593 .535 .640 .556 .570 .662 .673 .675 .649 .692 .681 .593 .709 .721 .703 .676 .763 .721 .763 .769 .804 .817 .830 .871 .900 .883 .918 .912 .832 .730 .535 .520 .544 .501 .540 .557 .550 .533 .515 .531 .528 .541 .511 .491 .528 .567 .540 .520 .504 .475 .507 .523 .575 .530 .519 .556 .568 .612 .595 .580 .605 .664 .557 .582 .560 .555 .657 .665 .661 .634 .615 .657 .691 .690 .665 .707 .750 .778 .799 .840 .822 .799 .813 .815 .830 .949 .928 .850 .792 .686 .576 .542 .560 .541 .541 .571 .613 .608 .612 .530 .566 .540 .530 .478 .480 .522 .551 .571 .534 .487 .473 .494 .520 .570 .537 .506 .558 .570 .596 .578 .562 .550 .563 .589 .596 .589 .614 .655 .645 .627 .624 .695 .735 .671 .620 .696 .741 .715 .743 .751 .775 .811 .830 .841 .822 .837 .880 .825 .755 .648 .610 .550 .597 .550 .573 .664 .670 .642 .602 .580 .535 .615 .595 .535 .505 .522 .523 .542 .581 .538 .511 .500 .489 .504 .515 .501 .502 .568 .642 .557 .540 .562 .575 .592 .650 .697 .640 .598 .650 .634 .620 .674 .696 .680 .678 .606 .687 .723 .720 .725 .733 .750 .763 .793 .825 .843 .868 .827 .821 .670 .614 .601 .571 .601 .609 .591 .602 .755 .702 .619 .645 .610 .609 .578 .542 .514 .546 .526 .580 .571 .529 .533 .533 .521 .520 .489 .516 .520 .550 .583 .564 .540 .607 .663 .616 .626 .670 .637 .643 .656 .655 .667 .681 .703 .692 .701 .619 .645 .670 .709 .726 .764 .776 .783 .777 .802 .797 .795 .698 .638 .608 .607 .602 .608 .619 .657 .660 .665 .723 .738 .657 .652 .641 .592 .540 .529 .528 .561 .601 .624 .580 .548 .572 .584 .530 .527 .498 .492 .514 .525 .533 .553 .518 .580 .610 .652 .703 .722 .685 .707 .657 .692 .708 .702 .706 .691 .678 .644 .681 .699 .740 .763 .771 .786 .784 .787 .731 .759 .763 .630 .600 .591 .584 .589 .616 .618 .647 .659 .717 .805 .792 .780 .644 .609 .589 .550 .556 .542 .572 .651 .589 .571 .590 .572 .532 .527 .530 .486 .515 .513 .509 .517 .528 .526 .532 .538 .587 .602 .684 .734 .733 .693 .712 .733 .708 .687 .671 .640 .665 .717 .739 .743 .730 .747 .772 .762 .782 .723 .732 .641 .577 .578 .603 .615 .596 .604 .620 .620 .654 .678 .716 .855 .898 .742 .645 .578 .562 .601 .568 .600 .722 .598 .574 .565 .548 .552 .566 .584 .538 .512 .514 .507 .522 .543 .536 .531 .542 .532 .623 .635 .700 .806 .704 .723 .726 .703 .679 .685 .652 .670 .700 .734 .748 .710 .731 .740 .760 .766 .648 .658 .600 .548 .593 .584 .606 .623 .670 .649 .648 .679 .692 .679 .724 .819 .831 .735 .620 .602 .658 .634 .677 .677 .606 .590 .568 .575 .563 .556 .519 .500 .523 .512 .500 .532 .530 .508 .519 .510 .564 .574 .529 .680 .667 .673 .701 .706 .689 .693 .692 .665 .714 .717 .714 .700 .742 .798 .745 .769 .748 .664 .592 .573 .552 .590 .591 .613 .686 .701 .675 .656 .673 .695 .719 .725 .749 .790 .769 .685 .648 .728 .680 .684 .628 .614 .589 .558 .527 .518 .503 .522 .527 .515 .502 .490 .492 .503 .499 .516 .542 .534 .545 .581 .630 .617 .672 .667 .694 .686 .662 .657 .685 .693 .703 .692 .702 .725 .709 .721 .710 .681 .585 .570 .549 .548 .573 .629 .633 .683 .659 .648 .627 .659 .764 .723 .699 .753 .730 .718 .689 .695 .764 .675 .610 .571 .560 .549 .526 .508 .517 .523 .531 .515 .505 .498 .486 .493 .513 .502 .503 .501 .510 .513 .532 .555 .557 .692 .691 .670 .665 .655 .662 .677 .676 .682 .692 .703 .710 .710 .645 .651 .652 .543 .555 .547 .556 .561 .580 .613 .666 .630 .642 .635 .704 .739 .722 .695 .714 .708 .689 .683 .649 .626 .608 .575 .578 .566 .535 .513 .523 .534 .518 .520 .512 .497 .478 .498 .492 .494 .494 .485 .488 .497 .505 .529 .550 .527 .675 .703 .698 .683 .660 .677 .667 .687 .703 .723 .730 .702 .683 .655 .635 .603 .538 .533 .551 .556 .564 .590 .644 .667 .623 .651 .601 .662 .661 .711 .670 .675 .688 .635 .626 .640 .596 .564 .567 .540 .525 .524 .533 .543 .532 .500 .494 .487 .478 .473 .474 .484 .491 .482 .483 .492 .497 .495 .524 .507 .509 .666 .679 .693 .695 .671 .680 .678 .710 .744 .730 .745 .709 .702 .597 .648 .542 .536 .537 .548 .557 .563 .585 .654 .650 .600 .617 .584 .592 .649 .690 .678 .658 .725 .669 .603 .612 .592 .590 .546 .536 .522 .544 .547 .570 .528 .490 .488 .473 .474 .473 .472 .475 .473 .484 .482 .491 .486 .487 .495 .515 .501 .639 .643 .645 .657 .711 .702 .704 .719 .718 .735 .697 .646 .634 .652 .614 .526 .542 .534 .542 .548 .566 .580 .636 .640 .577 .620 .567 .589 .632 .628 .638 .657 .731 .676 .616 .578 .585 .570 .544 .558 .554 .542 .522 .506 .516 .485 .482 .474 .475 .487 .482 .468 .473 .487 .507 .500 .499 .481 .493 .492 .508 .638 .590 .640 .630 .687 .667 .668 .708 .702 .694 .719 .661 .545 .591 .552 .521 .528 .525 .535 .542 .554 .557 .579 .620 .617 .601 .549 .615 .642 .645 .622 .652 .670 .656 .624 .614 .580 .567 .587 .572 .548 .520 .510 .491 .493 .491 .503 .515 .500 .498 .488 .496 .487 .478 .503 .507 .514 .510 .476 .488 .485 .577 .538 .590 .673 .671 .623 .671 .672 .670 .702 .670 .640 .555 .569 .560 .535 .524 .540 .547 .556 .545 .538 .556 .585 .579 .585 .551 .570 .580 .612 .664 .676 .655 .673 .656 .620 .635 .623 .636 .605 .557 .553 .512 .496 .506 .493 .514 .500 .477 .494 .496 .497 .482 .487 .481 .485 .505 .511 .506 .493 .460 .519 .551 .598 .658 .623 .610 .670 .641 .616 .635 .610 .610 .560 .600 .580 .544 .526 .531 .522 .538 .545 .510 .532 .538 .524 .528 .589 .657 .651 .708 .712 .747 .707 .687 .695 .652 .676 .670 .638 .614 .583 .559 .527 .497 .505 .503 .498 .498 .522 .510 .522 .533 .525 .502 .510 .460 .513 .510 .502 .498 .458 .570 .573 .610 .604 .557 .610 .618 .588 .652 .633 .583 .583 .555 .591 .588 .536 .526 .512 .510 .522 .510 .512 .508 .541 .590 .615 .583 .648 .681 .750 .788 .750 .749 .710 .761 .730 .735 .691 .667 .624 .605 .578 .542 .517 .509 .526 .522 .519 .537 .529 .518 .512 .510 .523 .498 .459 .507 .494 .489 .493 .479 .596 .609 .622 .574 .550 .585 .571 .616 .653 .600 .601 .530 .615 .635 .589 .560 .493 .495 .512 .517 .507 .522 .547 .579 .600 .630 .607 .676 .712 .697 .742 .690 .714 .703 .710 .736 .766 .760 .660 .617 .594 .572 .557 .544 .528 .514 .528 .537 .537 .550 .550 .523 .495 .507 .495 .463 .440 .460 .470 .440 .495 .570 .602 .640 .590 .564 .528 .593 .622 .643 .631 .580 .560 .590 .634 .608 .570 .561 .496 .484 .503 .509 .527 .557 .556 .565 .618 .653 .690 .667 .653 .672 .658 .667 .705 .657 .626 .749 .677 .700 .638 .645 .580 .540 .525 .541 .523 .511 .550 .557 .553 .546 .540 .514 .504 .499 .507 .510 .465 .438 .462 .460 .536 .546 .558 .543 .597 .581 .607 .609 .612 .609 .560 .531 .612 .621 .604 .572 .489 .472 .494 .503 .513 .507 .528 .541 .583 .651 .682 .661 .648 .624 .638 .625 .650 .617 .672 .720 .745 .666 .623 .639 .635 .643 .537 .540 .569 .582 .529 .535 .543 .527 .511 .517 .537 .528 .525 .500 .488 .484 .443 .477 .508 'END OF SURFACES' / 'COMPLEX BLOCK' 1 'VP ' 1 1 2 3 0 / (I.E. VP=W(X1,X2,X3), TENSION=0) 7 8 5 (NUMBERS OF GRID POINTS) 910 900 890 880 870 860 850 980 990 1000 1010 1020 1030 1040 1050 1 0 -1 -4 -10 3.60 3.30 3.00 4.20 3.90 3.60 3.30 3.60 3.60 3.60 3.90 4.20 3.90 3.60 3.60 3.90 4.20 3.60 4.50 4.20 3.90 4.80 4.70 4.20 1.80 2.40 3.00 3.60 4.80 4.40 2.40 .60 2.40 3.00 3.60 4.20 3.50 2.40 1.50 4.80 3.90 3.00 3.96 3.78 3.60 3.47 3.30 4.15 4.80 3.12 3.96 4.79 5.40 1.79 4.20 5.40 5.20 5.15 5.10 5.30 5.25 5.20 5.14 5.20 5.20 5.20 5.25 5.30 5.25 5.20 5.20 5.25 5.30 5.20 5.35 5.30 5.25 5.40 5.38 5.30 4.90 5.00 5.10 5.20 5.40 5.33 5.00 4.70 5.00 5.10 5.20 5.30 5.18 5.00 4.85 5.40 5.25 5.10 5.26 5.23 5.20 5.18 5.15 5.29 5.40 5.12 5.26 5.40 5.50 4.90 5.30 5.50 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.60 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 5.90 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 6.50 'END OF COMPLEX BLOCKS, END OF THE INPUT DATA FOR THE MODEL' /