C BPLQDR    SOURCE    CHAT      05/01/12    21:42:27     5004
      SUBROUTINE BPLQDR(COUR,RI,RE,Y1,Y2,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 plaque rectangulaire de courant COUR,
C  d'axe Oy:
C     - rayons interieur et exterieur RI et RE (RI=-RE)
C     - extension longitudinale Y1 a Y2 par rapport au plan xOz
C       contenant le point de coordonnees (X,0,Z)
C       et on calcule le champ (BX,BY,BZ)
C*********************************************************************
C
C
C  calcul des grandeurs geometriques reduites
C
      AMU=4.E-7*XPI
      R=(RI+RE)/2.
      A=(RE-RI)/2.
      COEF=COUR*AMU/(8.*XPI*A)
C
      XI1=Y1**2+Z**2
      XI2=Y2**2+Z**2
      XMA2=(X-A)**2
      XPA2=(X+A)**2
      Z2=Z**2
      DEXT1=XMA2+Z2
      DEXT2=XPA2+Z2
      DEXT3=XMA2-Z2
      DEXT4=XPA2-Z2
      IF(Z.EQ.0.) THEN
         BX=0.
      ELSE
         IF(DEXT1.EQ.0.) THEN
            FAXI2=-XPI/2.
            FAXI1=-XPI/2.
         ELSE
            FAXI2=ASIN((DEXT3*XI2-2.*Z2*XMA2)/(DEXT1*XI2))
            FAXI1=ASIN((DEXT3*XI1-2.*Z2*XMA2)/(DEXT1*XI1))
         ENDIF
         IF(DEXT2.EQ.0.) THEN
            FMAXI2=-XPI/2.
            FMAXI1=-XPI/2.
         ELSE
            FMAXI2=ASIN((DEXT4*XI2-2.*Z2*XPA2)/(DEXT2*XI2))
            FMAXI1=ASIN((DEXT4*XI1-2.*Z2*XPA2)/(DEXT2*XI1))
         ENDIF
C
         BX=0.5*COEF*(FAXI2-FAXI1-FMAXI2+FMAXI1)
      ENDIF
      BY=0.
      DCOIN1=SQRT(DEXT1+Y1**2)+Y1
      DCOIN2=SQRT(DEXT1+Y2**2)+Y2
      DCOIN3=SQRT(DEXT2+Y1**2)+Y1
      DCOIN4=SQRT(DEXT2+Y2**2)+Y2
      IF(DCOIN1*DCOIN2*DCOIN3*DCOIN4.NE.0) THEN
         BZ=COEF*LOG((DCOIN4*DCOIN1)/(DCOIN2*DCOIN3))
      ELSE
         BZ=XGRAND
      ENDIF
      RETURN
      END




