C BPLQCI SOURCE CHAT 05/01/12 21:42:23 5004 SUBROUTINE BPLQCI(SANGLE,COUR,RI,RE,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 une couronne circulaire de courant COUR, C d'axe Oz : C - rayons interieur et exterieur RI, RE 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 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 A=(RE-RI)/2. R=(RE+RI)/2. COEF=COUR*AMU/(8.*XPI*A) C 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 BX=0. BY=0. BZ=0. DO 21 I=IDEB,IFIN COST=COS(TETM(I)) SINT=SIN(TETM(I)) DFPL=FPLQ1(X,COST,Z,RE)-FPLQ1(X,COST,Z,RI) HX=Z*COST*DFPL HY=Z*SINT*DFPL DFPL=FPLQ2(X,COST,Z,RE)-FPLQ2(X,COST,Z,RI) HZ=DFPL+LOG(FPLQ3(X,COST,Z,RE)/FPLQ3(X,COST,Z,RI)) BX=BX+HX*DTE(I) BY=BY+HY*DTE(I) BZ=BZ+HZ*DTE(I) 21 CONTINUE 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