C BFILCI SOURCE CB215821 17/11/30 21:15:15 9639 SUBROUTINE BFILCI(SANGLE,COUR,R,TMIN,TMAX,X,Z,BX,BY,BZ) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C -INC CCREEL C C******************************************************************* C Calcul du champ induit par un arc de cercle de courant COUR, C d'axe Oz, de section filaire : C - rayon R C - extension angulaire TMIN a TMAX par rapport au plan meridien C xOz contenant le point de coordonnees (X,0,Z) C ou on calcule le champ (BX,BY,BZ) C******************************************************************* C SEGMENT SANGLE REAL*8 TETM(NT4) REAL*8 TETI(NT4) REAL*8 DTE(NT4) ENDSEGMENT C C champ magnetique selon Ox, Oy, Or et Oz cree par l'element d'arc de C longueur DTE situe en TETA, et grandeurs dependant de TETA pour C l'integration C NT4=TETM(/1) C C C calcul des grandeurs geometriques independantes de TETA C AMU=4.E-7*XPI COEF=COUR*AMU*R/(4.*XPI) C BX=0. BY=0. BZ=0. C C cas de l'axe C IF(X.EQ.0.) THEN DIST=SQRT(R**2+Z**2) DIST3=DIST**3 BX=COEF*Z/DIST3*(SIN(TMAX)-SIN(TMIN)) BY=-COEF*Z/DIST3*(COS(TMAX)-COS(TMIN)) BZ=COEF*R/DIST3*(TMAX-TMIN) RETURN ENDIF C C recherche des bornes d'integration C IDEB=0 IFIN=0 TTAI=-1. TTAF=-1. C DO 1 I=1,NT4 DMIN=TMIN-TETI(I) DMAX=TMAX-TETI(I) TTBI=SIGN(1.D0,DMIN) TTBF=SIGN(1.D0,DMAX) TESTI=0.5*(1.-TTAI*TTBI) TESTF=0.5*(1.-TTAF*TTBF) IDEB=IDEB+I*INT(TESTI) IFIN=IFIN+I*INT(TESTF) TTAI=TTBI TTAF=TTBF 1 CONTINUE C DTINI=DTE(IDEB) DTFIN=DTE(IFIN) TETINI=TETM(IDEB) TETFIN=TETM(IFIN) DTE(IDEB)=TETI(IDEB+1)-TMIN DTE(IFIN)=TMAX-TETI(IFIN) TETM(IDEB)=0.5*(TETI(IDEB+1)+TMIN) TETM(IFIN)=0.5*(TETI(IFIN)+TMAX) C DO 21 I=IDEB,IFIN COST=COS(TETM(I)) SINT=SIN(TETM(I)) DIST=SQRT(R**2+X**2+Z**2-2.*X*R*COST) DIST3=DIST**3 HX=Z*COST/DIST3 HZ=(R-X*COST)/DIST**3 BX=BX+HX*DTE(I) BZ=BZ+HZ*DTE(I) 21 CONTINUE C CALCUL ANALYTIQUE DE BY DIST1=SQRT(R**2+X**2+Z**2-2.*X*R*COS(TMIN)) DIST2=SQRT(R**2+X**2+Z**2-2.*X*R*COS(TMAX)) BY=Z/(X*R)*(1./DIST2-1./DIST1) BX=BX*COEF BY=BY*COEF BZ=BZ*COEF C DTE(IDEB)=DTINI DTE(IFIN)=DTFIN TETM(IDEB)=TETINI TETM(IFIN)=TETFIN C RETURN END