--- DarthVader/TrackerLevel2/src/F77/tricircle.f 2014/01/16 15:30:00 1.5 +++ DarthVader/TrackerLevel2/src/F77/tricircle.f 2014/01/17 12:56:52 1.6 @@ -31,16 +31,12 @@ integer npoints !fit number of points real dep(npoints),indep(npoints) !dependent and independent variables -c real angle(npoints) !angle between the tangent line in the input points and -c ! the independent variable axis -c real residual(npoints) !residuals -c real chi !sum of squared residuals -c real xc,zc,radius !circle parameters - double precision angle(npoints) !angle between the tangent line in the input points and + real angle(npoints) !angle between the tangent line in the input points and ! the independent variable axis - double precision residual(npoints) !residuals EM GCC4.7 - double precision chi !sum of squared residuals EM GCC4.7 - double precision xc,zc,radius !circle parameters EM GCC4.7 + + real residual(npoints) !residuals + real chi !sum of squared residuals + real xc,zc,radius !circle parameters integer eflag !error flag =1 if the procedure fails @@ -55,9 +51,7 @@ integer ifail !=-1 if singular matrix error, =0 if not singular integer jfail !=0 if determinant can be evaluated, =-1 if determinat is probably too small, =+1 if too large - integer ibig ! EM GCC4.7 -c parameter (ibig=1.e4) !just a number greater than C(npoints,3) - parameter (ibig=10000) !just a number greater than C(npoints,3) EM GCC 4.7 + parameter (ibig=10000) !just a number greater than C(npoints,3) !EM GCC4.7 double precision xxc(ibig),zzc(ibig),rrr(ibig) !centres and radii to be averaged double precision tmp1,tmp2,tmp(npoints) !temp variables @@ -302,9 +296,9 @@ zc=0. radius=0. do i=1,k - xc=xc+xxc(i) - zc=zc+zzc(i) - radius=radius+rrr(i) + xc=xc+REAL(xxc(i)) !EM GCC4.7 + zc=zc+REAL(zzc(i)) !EM GCC4.7 + radius=radius+REAL(rrr(i)) !EM GCC4.7 enddo xc=xc/k * scale !back to micrometers zc=zc/k * scale @@ -341,7 +335,7 @@ else tmp(i)=-tmp1 endif - residual(i)=tmp2 - tmp(i) + residual(i)=REAL(tmp2 - tmp(i)) !EM GCC4.7 chi=chi + residual(i)**2. c print*,dep(i) !??? c print*,indep(i) !??? @@ -353,7 +347,7 @@ c independent variable axis c------------------------------------------------------------------------ do i=1,npoints - angle(i)=(zc-indep(i)) / tmp(i) + angle(i)=REAL((zc-indep(i)) / tmp(i)) !EM GCC4.7 angle(i)=ATAN(angle(i)) !-pi/2 <= angle <= pi/2 angle(i)=angle(i)/pigr*180. enddo