C ARCTRA SOURCE CB215821 17/11/30 21:15:07 9639 C C******************************************************************* C SUBROUTINE ARCTRA(SANGLE,COUR,HI,HE,RI,RE,QB,QH,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 trapezoidale asymetrique par rapport a xOy: C - rayons interieur et exterieur RI et RE C - hauteurs interieure et exterieure HI et HE C - pentes basse et haute QB et QH 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 C calcul des grandeurs geometriques independantes de TETA C AMU=4.E-7*XPI R=(RI+RE)/2. A=(RE-RI)/2. B=(HI+HE)/4. COEF=COUR*AMU/(16.*XPI*A*B) C Q1B=QB*QB+1. Q2B=SQRT(QB*QB+1.) Q3B=(QB*QB+1.)*SQRT(QB*QB+1.) Q4B=-QB*(QB*QB+2.) Q1H=QH*QH+1. Q2H=SQRT(QH*QH+1.) Q3H=(QH*QH+1.)*SQRT(QH*QH+1.) Q4H=QH*(QH*QH+2.) C C C recherche des bornes d'integration C IDEB=0 IFIN=0 TTAI=-1. TTAF=-1. NT4=TETM(/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 DP=B+QB*R+Z DM=B-QH*R-Z APZP=-QB*(R+A)+DP APZM=QH*(R+A)+DM AMZP=-QB*(R-A)+DP AMZM=QH*(R-A)+DM C BX=0. BY=0. BZ=0. C DO 21 I=IDEB,IFIN XC=X*COS(TETM(I)) XS=X*SIN(TETM(I)) RPA=R+A-XC RMA=R-A-XC C BPZ=DP-QB*XC BMZ=DM+QH*XC BKPZ=-QB*DP-XC BKMZ=QH*DM-XC C RPZP=Q2B*(R+A)+BKPZ/Q2B RPZM=Q2H*(R+A)+BKMZ/Q2H RMZP=Q2B*(R-A)+BKPZ/Q2B RMZM=Q2H*(R-A)+BKMZ/Q2H C DPZP=X**2+DP**2+Q1B*(R+A)**2+2.*(R+A)*BKPZ DPZP=SQRT(DPZP) DPZM=X**2+DM**2+Q1H*(R+A)**2+2.*(R+A)*BKMZ DPZM=SQRT(DPZM) DMZP=X**2+DP**2+Q1B*(R-A)**2+2.*(R-A)*BKPZ DMZP=SQRT(DMZP) DMZM=X**2+DM**2+Q1H*(R-A)**2+2.*(R-A)*BKMZ DMZM=SQRT(DMZM) C ALZP=LOG((RPZP+DPZP)/(RMZP+DMZP)) ALZM=LOG((RPZM+DPZM)/(RMZM+DMZM)) C HR=((DPZM-DMZM)/Q1H-(DPZP-DMZP)/Q1B & +(BKPZ*ALZP/Q3B-BKMZ*ALZM/Q3H)) & *DTE(I) C HX=HR*XC/X HY=HR*XS/X C HZ=(-QB/Q1B*(DPZP-DMZP)+QH/Q1H*(DPZM-DMZM) & +(DP+Q4B*XC)*ALZP/Q3B+(DM+Q4H*XC)*ALZM/Q3H & +XC/2.*LOG( (DPZM-APZM)/(DPZM+APZM) & /(DMZM-AMZM)*(DMZM+AMZM) & *(DPZP-APZP)/(DPZP+APZP) & /(DMZP-AMZP)*(DMZP+AMZP)) & -XS*(ATAN((RPA*BMZ-QH*XS**2)/XS/DPZM) & +ATAN((RPA*BPZ+QB*XS**2)/XS/DPZP) & -ATAN((RMA*BMZ-QH*XS**2)/XS/DMZM) & -ATAN((RMA*BPZ+QB*XS**2)/XS/DMZP)) ) & *DTE(I) C BX=BX+HX BY=BY+HY BZ=BZ+HZ C 21 CONTINUE C 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