C AARCTR    SOURCE    PV        20/09/22    16:45:51     10721          
      SUBROUTINE AARCTR(SANGLE,COUR,HI,HE,RI,RE,QB,QH,TMIN,TMAX,
     &XP,ZP,AX,AY,AZ)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
C
-INC CCREEL
C*******************************************************************
C  Calcul du potentiel vecteur 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 (AX,AY,0)
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
      EXTERNAL FARCA
C
C  calcul des grandeurs geometriques independantes de TETA
C
      X=XP
      Z=ZP
      AMU=4.E-7*XPI
      R=(RI+RE)/2.
      A=(RE-RI)/2.
      B=(HI+HE)/4.
      COEF=COUR*AMU/(16.*XPI*A*B)
      RE2=RE**2
      RI2=RI**2
C
      QH2=QH**2
      AH=1.+QH2
      QHR=QH*R
      QHRPZ=QHR+Z
      QHZ=QH*Z
      CH=X**2+B**2+QHR**2+Z**2-2.*B*QHRPZ+2.*QHR*Z
      DH=QH
      EH=B-QHRPZ
C
      QB2=QB**2
      AB=1.+QB2
      QBR=QB*R
      QBRPZ=QBR+Z
      QBZ=QB*Z
      CB=X**2+B**2+QBR**2+Z**2+2.*B*QBRPZ+2.*QBR*Z
      DB=QB
      EB=-B-QBRPZ
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
      AX=0.
      AY=0.
      AZ=0.
C
      DO 21 I=IDEB,IFIN
         COST=COS(TETM(I))
         SINT=SIN(TETM(I))
         BH=-2.*(-B*QH+QH*QHRPZ+X*COST)
         BB=-2.*(B*QB+QB*QBRPZ+X*COST)
C
         HR11=RE2*LOG(SQRT(AH*RE2+BH*RE+CH)+DH*RE+EH)
     &       -RI2*LOG(SQRT(AH*RI2+BH*RI+CH)+DH*RI+EH)
         HR12=RE2*LOG(SQRT(AB*RE2+BB*RE+CB)+DB*RE+EB)
     &       -RI2*LOG(SQRT(AB*RI2+BB*RI+CB)+DB*RI+EB)
         HR1=HR11-HR12
         HR1=0.5*HR1
         HR211=FARCA(RE,AH,BH,CH,DH,EH,X,COST,SINT)
         HR212=FARCA(RI,AH,BH,CH,DH,EH,X,COST,SINT)
         HR21=HR211-HR212
         HR221=FARCA(RE,AB,BB,CB,DB,EB,X,COST,SINT)
         HR222=FARCA(RI,AB,BB,CB,DB,EB,X,COST,SINT)
         HR22=HR221-HR222
         HR2=HR21-HR22
         HR=HR1-HR2
         HR=HR*DTE(I)
C
         HX=HR*SINT
         HY=HR*COST
C
         AX=AX-HX
         AY=AY+HY
C
 21   CONTINUE
C
      AX=AX*COEF
      AY=AY*COEF
C
      DTE(IDEB)=DTINI
      DTE(IFIN)=DTFIN
      TETM(IDEB)=TETINI
      TETM(IFIN)=TETFIN
C
      RETURN
      END




 
 
