C FLUXBC    SOURCE    CHAT      05/01/13    00:05:13     5004

         FUNCTION FLUXBC (RX1,ZX1,RX2,ZX2,DSURF,NE,ELIP)
      IMPLICIT INTEGER(I-N)
         IMPLICIT REAL*8 (A-H,O-Z)
          REAL*8 RX1,RX2,ZX1,ZX2,DSURF,AS1,F,DH,AX
          REAL*8 ELI1,ELI2,ELI
         INTEGER NF,NE
         DIMENSION ELIP(101)

C        WRITE(6,*) '##FluxBC##'
         IF (RX2.EQ.0) THEN
c         WRITE(6,*) 'ERREUR il faut un rayon d inducteur > 0 '
           call erreur(959)
         else

          IF (RX1.EQ.0) THEN
          FLUXBC=0.
          ELSE
          F=8.54
          DH=DSURF/F
          AS1= (RX1*RX1)+(RX2*RX2)+((ZX1-ZX2)**2)
          as1 = as1 + dh
*          IF ((AS1-(2*RX1*RX2)).LE.DH) THEN
*              AS1=(2*RX1*RX2)+DH
*          END IF
          AX= RX1*RX2/AS1
          NF=INT (2*AX*NE)
          ELI1=ELIP(NF+1)*(NF+1-(2*AX*NE))
          ELI2=ELIP(NF+2)*((2*AX*NE)-NF)
          ELI=ELI1+ELI2
          ELI=ELI-(0.707107*(LOG(1-(4*AX*AX))))+(0.3127313*AX*AX)
          FLUXBC=ELI*(AS1**0.5)/10.
          RETURN
          END IF
         end if
         return
         END


