Télécharger chamar.eso

Retour à la liste

Numérotation des lignes :

chamar
  1. C CHAMAR SOURCE CHAT 05/01/12 21:54:46 5004
  2. SUBROUTINE CHAMAR(IUNIT,IC,CC,A1,A2,RI,ALFA,BETA,DENS,XP,YP,ZP,
  3. + BXP,BYP,BZP)
  4. C-----------------------------------------------------------------------
  5. CALCUL DU CHAMP D'UN ARC DE BOBINE RECTANGULAIRE
  6. C IUNIT INDIQUE LES UNITES CHOISIES:
  7. C IUNIT=0 OU 1 IUNIT=2 IUNIT=3
  8. C DIMENSIONS EN M MM MM
  9. C DENSITE DE COURANT EN A/M2 A/MM2 A/MM2
  10. C CHAMP EN TESLA TESLA GAUSS
  11. C GRADIENTS EN TESLA/M TESLA/MM GAUSS/MM
  12. C FMUJ=MU*DENS/4*XPI 1E-7*DENS 1E-4*DENS DENS
  13. C
  14. C PRECIS=PRECISION RELATIVE DEMANDEE DU CALCUL DES INTEGRALES
  15. C PRABW=PRECISION ABSOLUE DU CALCUL SUR LA COMPOSANTE BW
  16. C
  17. C IF(IC.EQ.1) CALCUL DE LA COMPOSANTE BZP SEULE
  18. C IF(IC.EQ.2) CALCUL DES COMPOSANTES BXP ET BYP SEULES
  19. C IF(IC.NE.1.OR.NE.2) CALCUL DES TROIS COMPOSANTES BZP BYP BXP
  20. C-----------------------------------------------------------------------
  21. IMPLICIT INTEGER(I-N)
  22. IMPLICIT REAL*8 (A-H,O-Z)
  23. EXTERNAL FONZ,FONR,FONT
  24. DIMENSION CC(3)
  25. -INC CCREEL
  26.  
  27. -INC PPARAM
  28. -INC CCOPTIO
  29. COMMON/CMCHAM/ D1,D2,R,A,U,DD1,DD2,LSOMD,LD1,LD2
  30. LOGICAL LSOMD,LSOMT,LD1,LD2,LR
  31. BXP=0.D0
  32. BYP=0.D0
  33. BZP=0.D0
  34. BRP=0.D0
  35. BTP=0.D0
  36. PRABZ=0.D0
  37. UPSI=0.000001D0
  38. U=1.D0
  39. UU=1.D0
  40. FMUJ=DENS*0.0000001D0
  41. IF(IUNIT.EQ.2) FMUJ=DENS*0.0001D0
  42. IF(IUNIT.EQ.3) FMUJ=DENS
  43. RMUJ=FMUJ*RI
  44. X=XP-CC(1)
  45. Y=YP-CC(2)
  46. RP=SQRT(X**2+Y**2)
  47. Z=(ZP-CC(3))/RI
  48. D1=Z-BETA
  49. D2=Z+BETA
  50. R=RP/RI
  51. A=ALFA
  52. DD1=D1**2
  53. DD2=D2**2
  54. AA=A**2
  55. LR=R.LE.UPSI
  56. LSOMD=ABS(D1+D2).LE.UPSI
  57. LD1=ABS(D1).LE.UPSI
  58. LD2=ABS(D2).LE.UPSI
  59. IF(LR) GOTO 2
  60. TAU=ASIN(Y/RP)
  61. IF(X.LT.0.D0) TAU=XPI-TAU
  62. T1=A1-TAU
  63. T2=A2-TAU
  64. ABST=ABS(T1+T2)
  65. LSOMT=(ABST.LE.UPSI).OR.(ABS(ABST-2.D0*XPI).LE.UPSI)
  66. IF(LSOMT) T1=(T1+T2)/2.D0
  67. COSTAU=COS(TAU)
  68. SINTAU=SIN(TAU)
  69. C
  70. CAS OU R.NE.0.D0
  71. IF(IC.EQ.2) GOTO 11
  72. CALCUL DE LA COMPOSANTE AXIALE BZP
  73. ACBZ=0.D0
  74. SOMBZ= GQUAD(FONZ,T1,T2,80)
  75. IF(IERR.NE.0) RETURN
  76. BZP=RMUJ*(SOMBZ+FZ4(T2)-FZ4(T1))
  77. IF(LSOMT) BZP=2.D0*BZP
  78. PRABZ=ABS(ACBZ*SOMBZ*RMUJ)
  79. IF(SOMBZ.EQ.0.D0) PRABZ=RMUJ*ACBZ
  80. IF(LSOMT) PRABZ=2.D0*PRABZ
  81. IF(IC.EQ.1) RETURN
  82. 11 CONTINUE
  83. CALCUL DE LA COMPOSANTE RADIALE BRP
  84. IF(LSOMD) RETURN
  85. SOMBR= GQUAD(FONR,T1,T2,80)
  86. IF(IERR.NE.0) RETURN
  87. IF(LSOMT) SOMBR=2.D0*SOMBR
  88. BRP=RMUJ*SOMBR
  89. CALCUL DE LA COMPOSANTE TANGENTIELLE
  90. IF(LSOMT) GOTO 3
  91. SOMBT= GQUAD(FONT,T1,T2,80)
  92. IF(IERR.NE.0) RETURN
  93. BTP=RMUJ*SOMBT
  94. 3 CONTINUE
  95. CALCUL DES COMPOSANTES BXP ET BYP
  96. BXP=BRP*COSTAU-BTP*SINTAU
  97. BYP=BRP*SINTAU+BTP*COSTAU
  98. RETURN
  99. 2 CONTINUE
  100. C
  101. CAS OU R.EQ.0.D0
  102. SQA2=SQRT(AA+DD2)
  103. SQA1=SQRT(AA+DD1)
  104. SQU2=SQRT(UU+DD2)
  105. SQU1=SQRT(UU+DD1)
  106. IF(IC.EQ.2) GOTO 22
  107. SOMLG2=LOG((A+SQA2)/(U+SQU2))
  108. SOMLG1=LOG((A+SQA1)/(U+SQU1))
  109. BZP=RMUJ*(D2*SOMLG2-D1*SOMLG1)*(A2-A1)
  110. IF(IC.EQ.1) RETURN
  111. 22 CONTINUE
  112. IF(LSOMD) RETURN
  113. SOR=SQA2-SQA1-SQU2+SQU1
  114. BXP=RMUJ*SOR*(SIN(A1)-SIN(A2))
  115. BYP=RMUJ*SOR*(COS(A2)-COS(A1))
  116. RETURN
  117. END
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales