Télécharger jpmag1.eso

Retour à la liste

Numérotation des lignes :

jpmag1
  1. C JPMAG1 SOURCE CB215821 24/04/12 21:16:27 11897
  2. SUBROUTINE JPMAG1(ILREE,ICHAMJ,ICHAMA,IMOD5,MINTE1,NBELEM)
  3.  
  4. * ---------------------------------------------------------------------
  5. *
  6. * ROUTINE JPMAG1
  7. *
  8. * ---------------------------------------------------------------------
  9. * Auteur : Nikola JERANCE
  10. *
  11. * Historique :
  12. *
  13. * 20/09/2022 - Première écriture (N. Jerance)
  14. *
  15. *
  16. * Descriptif :
  17. *
  18. * Le potentiel magnétique vecteur est calculé à partir de J(x,y)
  19. * et la matrice obtenue par MPMAGV. Le potentiel est en 3D.
  20. *
  21. *
  22. *
  23. * Arguments :
  24. *
  25. * (E) ILREE = Pointeur sur la liste de réels (résultat)
  26. * (E) ICHAMJ = J(x,y) en tant que MCHAML
  27. * (S) ICHAMA = A(x,y) au milieu de l'épaisseur, MCHAML
  28. * (E) IMOD5 = pointeur sur le modèle
  29. * (E) MINTE1 = pointeur sur MINTE
  30. * (E) NBELEM = nb d'éléments
  31. *
  32. * ---------------------------------------------------------------------
  33.  
  34. * ----------------------------------------------------------------------
  35. *
  36. * 0 - DECLARATIONS ET IMPORTS
  37. *
  38. * ----------------------------------------------------------------------
  39.  
  40. IMPLICIT INTEGER(I-N)
  41. IMPLICIT REAL*8(A-H,O-Z)
  42.  
  43. -INC PPARAM
  44. -INC CCOPTIO
  45. -INC CCGEOME
  46. -INC CCREEL
  47. -INC SMCOORD
  48. -INC SMELEME
  49. -INC SMLREEL
  50. -INC SMCHAML
  51. -INC SMMODEL
  52. -INC SMINTE
  53.  
  54.  
  55.  
  56. INTEGER NBEL1,NBEL2
  57. POINTEUR IA.MCHELM
  58. POINTEUR ILREE1.MLREEL
  59. POINTEUR IJ.MCHELM
  60. POINTEUR IJX.MELVAL
  61. POINTEUR IJY.MELVAL
  62. POINTEUR IAX.MELVAL
  63. POINTEUR IAY.MELVAL
  64. POINTEUR IMOD1.IMODEL
  65. POINTEUR IA1.MCHAML
  66. POINTEUR IJ1.MCHAML
  67.  
  68. C WRITE(IOIMP,*) ' *** CALCUL DE A *** '
  69.  
  70. IJ = ICHAMJ
  71. SEGACT,IJ
  72.  
  73. NB1 = IJ.ICHAML(/1)
  74.  
  75. IJ1 = IJ.ICHAML(1)
  76. SEGACT,IJ1
  77.  
  78. IMOD1 = IMOD5
  79.  
  80.  
  81.  
  82. L1 = 13
  83. N1 = 1
  84. N3 = 6
  85.  
  86. SEGINI,IA
  87. IA.TITCHE = 'POT MAG VEC'
  88. IA.CONCHE(1) = IMOD1.CONMOD
  89. IA.IMACHE(1) = IMOD1.IMAMOD
  90. IA.IFOCHE = IFOUR
  91. IA.INFCHE(1,1) = 0
  92. IA.INFCHE(1,2) = 0
  93. IA.INFCHE(1,3) = 0
  94. IA.INFCHE(1,4) = MINTE1
  95. IA.INFCHE(1,5) = 0
  96. IA.INFCHE(1,6) = 2
  97.  
  98. N2 = 2
  99.  
  100. SEGINI,IA1
  101. IA.ICHAML(1) = IA1
  102. IA1.NOMCHE(1) = 'AX'
  103. IA1.TYPCHE(1) = 'REAL*8'
  104. IA1.NOMCHE(2) = 'AY'
  105. IA1.TYPCHE(2) = 'REAL*8'
  106.  
  107. ILREE1 = ILREE
  108. SEGACT,ILREE1
  109.  
  110.  
  111. NCOMPO = IJ1.IELVAL(/1)
  112.  
  113. DO ICOMPO = 1,NCOMPO
  114. IF (IJ1.NOMCHE(ICOMPO).EQ.'JX') THEN
  115. IA1.NOMCHE(ICOMPO) ='AX'
  116. IJX = IJ1.IELVAL(ICOMPO)
  117. SEGACT,IJX
  118. N1PTEL =1
  119. N1EL = NBELEM
  120. N2PTEL = 0
  121. N2EL = 0
  122. SEGINI,IAX
  123. IA1.IELVAL(ICOMPO)=IAX
  124. SEGACT,IAX*MOD
  125. K=0
  126. NBEL1 = IJX.VELCHE(/2)
  127. NBEL2 = IJX.VELCHE(/1)
  128. IF (NBEL1.EQ.1) THEN
  129.  
  130.  
  131.  
  132. DO I = 1, NBELEM
  133.  
  134. AX = 0.0
  135. DO J1=1,NBELEM
  136. K = K + 1
  137. DO I1 = 1,N1PTEL
  138. AX = AX + ILREE1.PROG(K)*(IJX.VELCHE(I1,1))/N1PTEL
  139. END DO
  140. END DO
  141. NAX1 = IAX.VELCHE(/1)
  142. NAX2 = IAX.VELCHE(/2)
  143. DO J1=1,NAX1
  144. IAX.VELCHE(J1,I) = AX
  145. END DO
  146. END DO
  147.  
  148.  
  149. ELSE
  150.  
  151. DO I = 1, NBELEM
  152.  
  153. AX = 0.0
  154.  
  155. DO J=1,NBELEM
  156. K = K + 1
  157. DO I1 = 1,NBEL2
  158. AX = AX + ILREE1.PROG(K)*(IJX.VELCHE(I1,J))/NBEL2
  159. END DO
  160. END DO
  161. NAX1 = IAX.VELCHE(/1)
  162. NAX2 = IAX.VELCHE(/2)
  163.  
  164. DO J1=1,NAX1
  165. IAX.VELCHE(J1,I) = AX
  166. END DO
  167. END DO
  168. END IF
  169. END IF
  170.  
  171.  
  172. IF (IJ1.NOMCHE(ICOMPO).EQ.'JY') THEN
  173. IA1.NOMCHE(ICOMPO) ='AY'
  174. IJY = IJ1.IELVAL(ICOMPO)
  175. SEGACT,IJY
  176.  
  177. N1PTEL =1
  178. N1EL = NBELEM
  179. N2PTEL = 0
  180. N2EL = 0
  181. SEGINI,IAY
  182. IA1.IELVAL(ICOMPO)=IAY
  183. SEGACT,IAY*MOD
  184.  
  185.  
  186. K=0
  187. NBEL1 = IJY.VELCHE(/2)
  188. NBEL2 = IJY.VELCHE(/1)
  189. IF (NBEL1.EQ.1) THEN
  190.  
  191.  
  192.  
  193.  
  194. DO I = 1, NBELEM
  195.  
  196. AY = 0.0
  197. DO J=1,NBELEM
  198. K = K + 1
  199. DO I1 = 1,NBEL2
  200. AY = AY + ILREE1.PROG(K)*(IJY.VELCHE(I1,1))/NBEL2
  201. END DO
  202. END DO
  203. NAY1 = IAY.VELCHE(/1)
  204. NAY2 = IAY.VELCHE(/2)
  205. DO J1=1,NAY1
  206. IAY.VELCHE(J1,I) = AY
  207. END DO
  208. END DO
  209.  
  210.  
  211. ELSE
  212.  
  213. DO I = 1, NBELEM
  214.  
  215. AY = 0.0
  216. DO J=1,NBELEM
  217. K = K + 1
  218. DO I1 = 1,NBEL2
  219. AY = AY + ILREE1.PROG(K)*(IJY.VELCHE(I1,J))/NBEL2
  220. END DO
  221. END DO
  222. NAY1 = IAY.VELCHE(/1)
  223. NAY2 = IAY.VELCHE(/2)
  224. DO J1=1,NAY1
  225. IAY.VELCHE(J1,I) = AY
  226. END DO
  227. END DO
  228. END IF
  229. END IF
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236. END DO
  237.  
  238.  
  239. ICHAMA = IA
  240.  
  241. SEGDES,ILREE1
  242. SEGDES,IJ
  243. SEGDES,IA
  244. SEGDES,IAX
  245. SEGDES,IAY
  246. SEGDES,IJX
  247. SEGDES,IJY
  248.  
  249.  
  250.  
  251. RETURN
  252. END
  253.  
  254.  

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