C CHABAR SOURCE CHAT 05/03/07 21:15:01 5041 SUBROUTINE CHABAR(IUNIT,CENTR,GY,DX,DZ,DENS,XP,YP,ZP,BXP,BYP,BZP) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER(I-N) C----------------------------------------------------------------- CALCUL DU CHAMP D'UNE BARRE RECTANGULAIRE // A L AXE OX C IUNIT INDIQUE LES UNITES CHOISIES: C IUNIT=0 OU 1 IUNIT=2 IUNIT=3 C DIMENSIONS EN M MM MM C DENSITE DE COURANT EN A/M2 A/MM2 A/MM2 C CHAMP EN TESLA TESLA GAUSS C FMUJ=MU*DENS/4*PI 1E-7*DENS 1E-4*DENS DENS C C C----------------------------------------------------------------- DIMENSION CENTR(3) BXP=0.D0 BYP=0.D0 BZP=0.D0 UPSI=0.000001D0 IF(IUNIT.GT.1) UPSI=0.001D0 IF(GY.LT.UPSI) RETURN X=XP-CENTR(1) Y=YP-CENTR(2) Z=ZP-CENTR(3) C V=Y Y=X X=-V C CALCUL DE BZP (ENTREE CHABAY) C FMUJ= 0.0000001D0*DENS IF(IUNIT.EQ.2) FMUJ=0.0001D0*DENS IF(IUNIT.EQ.3) FMUJ= DENS ICOMP= 1 X1= X +DX/2.D0 X2= X -DX/2.D0 Y1= Y +GY/2.D0 Y2= Y -GY/2.D0 Z1= Z +DZ/2.D0 Z2= Z -DZ/2.D0 C 10 H= 0.D0 IF(ABS(X2+X1).LT.UPSI) GOTO 11 SQ222= SQRT(X2**2+Y2**2+Z2**2) SQ221= SQRT(X2**2+Y2**2+Z1**2) SQ212= SQRT(X2**2+Y1**2+Z2**2) SQ211= SQRT(X2**2+Y1**2+Z1**2) SQ122= SQRT(X1**2+Y2**2+Z2**2) SQ121= SQRT(X1**2+Y2**2+Z1**2) SQ112= SQRT(X1**2+Y1**2+Z2**2) SQ111= SQRT(X1**2+Y1**2+Z1**2) TAG=FTAN(X2,Y2,Z2,SQ222)-FTAN(X1,Y2,Z2,SQ122)-FTAN(X2,Y1,Z2,SQ212) $ -FTAN(X2,Y2,Z1,SQ221)+FTAN(X1,Y2,Z1,SQ121)+FTAN(X2,Y1,Z1,SQ211) $ +FTAN(X1,Y1,Z2,SQ112)-FTAN(X1,Y1,Z1,SQ111) H=FMUJ*(+FLOZ(UPSI,Z2,Y1,Y2,SQ222,SQ212,SQ122,SQ112) $ -FLOZ(UPSI,Z1,Y1,Y2,SQ221,SQ211,SQ121,SQ111) $ +FLOZ(UPSI,Y2,Z1,Z2,SQ222,SQ221,SQ122,SQ121) $ -FLOZ(UPSI,Y1,Z1,Z2,SQ212,SQ211,SQ112,SQ111)+TAG) 11 IF(ICOMP.EQ.2) GOTO 12 BZP= H C CALCUL DE BXP (ENTREE CHABAY) C ICOMP=2 V = X1 X1=-Z1 Z1= V V = X2 X2=-Z2 Z2= V X1=-X1 X2=-X2 GOTO10 12 BXP=-H 101 V=BYP BYP=-BXP BXP=V END