Download bcylci.eso

Back to the list

   1 : C BCYLCI    SOURCE    CHAT      05/01/12    21:37:44     5004           
   2 :       SUBROUTINE BCYLCI(SANGLE,COUR,R,H,TMIN,TMAX,X,Z,BX,BY,BZ)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8(A-H,O-Z)
   5 : C
   6 : -INC CCREEL
   7 : C
   8 : C*******************************************************************
   9 : C  Calcul du champ induit par un arc de cylindre circulaire
  10 : C  de courant COUR,d'axe Oz :
  11 : C     - rayon R
  12 : C     - hauteur H
  13 : C     - extension angulaire TMIN a TMAX par rapport au plan meridien
  14 : C       xOz contenant le point de coordonnees (X,0,Z)
  15 : C       ou on calcule le champ (BX,BY,BZ)
  16 : C*******************************************************************
  17 : C
  18 :       SEGMENT SANGLE
  19 :          REAL*8 TETM(NT4)
  20 :          REAL*8 TETI(NT4)
  21 :          REAL*8 DTE(NT4)
  22 :       ENDSEGMENT
  23 : C
  24 : C  champ magnetique selon Ox, Oy, Or et Oz cree par l'element d'arc de
  25 : C  longueur DTE situe en TETA, et grandeurs dependant de TETA pour
  26 : C  l'integration
  27 : C
  28 : C
  29 : C
  30 : C  calcul des grandeurs geometriques independantes de TETA
  31 : C
  32 :       AMU=4.E-7*XPI
  33 :       B=H/2.
  34 :       COEF=COUR*AMU*R/(8.*XPI*B)
  35 :       ZH=B-Z
  36 :       ZB=-B-Z
  37 : C
  38 : C
  39 : C  recherche des bornes d'integration
  40 : C
  41 :       IDEB=0 
  42 :       IFIN=0
  43 :       TTAI=-1.     
  44 :       TTAF=-1.
  45 :       NT4=TETM(/1)
  46 : C
  47 :       DO 1 I=1,NT4
  48 :          DMIN=TMIN-TETI(I)      
  49 :          DMAX=TMAX-TETI(I)
  50 :          TTBI=SIGN(1.D0,DMIN)
  51 :          TTBF=SIGN(1.D0,DMAX)
  52 :          TESTI=0.5*(1.-TTAI*TTBI) 
  53 :          TESTF=0.5*(1.-TTAF*TTBF) 
  54 :          IDEB=IDEB+I*INT(TESTI)
  55 :          IFIN=IFIN+I*INT(TESTF)
  56 :          TTAI=TTBI
  57 :          TTAF=TTBF
  58 :  1    CONTINUE   
  59 : C
  60 :       DTINI=DTE(IDEB)
  61 :       DTFIN=DTE(IFIN)
  62 :       TETINI=TETM(IDEB)
  63 :       TETFIN=TETM(IFIN)
  64 :       DTE(IDEB)=TETI(IDEB+1)-TMIN
  65 :       DTE(IFIN)=TMAX-TETI(IFIN)
  66 :       TETM(IDEB)=0.5*(TETI(IDEB+1)+TMIN)
  67 :       TETM(IFIN)=0.5*(TETI(IFIN)+TMAX)
  68 : C
  69 :       BX=0.
  70 :       BY=0.
  71 :       BZ=0.
  72 :       DO 21 I=IDEB,IFIN
  73 :          COST=COS(TETM(I))
  74 :          SINT=SIN(TETM(I))
  75 :          DR2=R**2+X**2-2.*X*R*COST
  76 :          DMAX=SQRT(DR2+ZH**2)
  77 :          DMIN=SQRT(DR2+ZB**2)
  78 :          HX=COST*(1./DMAX-1./DMIN)
  79 :          HZ=(R-X*COST)/DR2*(ZH/DMAX-ZB/DMIN)
  80 :          BX=BX+HX*DTE(I)
  81 :          BZ=BZ+HZ*DTE(I)
  82 :  21   CONTINUE
  83 : C     CALCUL ANALYTIQUE DE BY
  84 :       DHTET1=SQRT(R**2+X**2+ZH**2-2.*X*R*COS(TMIN))
  85 :       DHTET2=SQRT(R**2+X**2+ZH**2-2.*X*R*COS(TMAX))
  86 :       DBTET1=SQRT(R**2+X**2+ZB**2-2.*X*R*COS(TMIN))
  87 :       DBTET2=SQRT(R**2+X**2+ZB**2-2.*X*R*COS(TMAX))
  88 :       BY=(DHTET2-DHTET1-DBTET2+DBTET1)/(X*R)
  89 :       BX=BX*COEF
  90 :       BY=BY*COEF
  91 :       BZ=BZ*COEF
  92 : C
  93 :       DTE(IDEB)=DTINI
  94 :       DTE(IFIN)=DTFIN
  95 :       TETM(IDEB)=TETINI
  96 :       TETM(IFIN)=TETFIN
  97 : C
  98 :       RETURN
  99 :       END
 100 :  
 101 :  
 102 :  
 103 :  

© Cast3M 2003 - All rights reserved.
Disclaimer