Télécharger cneqmg.eso

Retour à la liste

Numérotation des lignes :

cneqmg
  1. C CNEQMG SOURCE CB215821 26/08/24 21:15:37 12622
  2. SUBROUTINE CNEQMG(IPMAIL,IPMINT,IVAPVE,IVAPNO,MOFOVO,MELE)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8(A-H,O-Z)
  5. ************************************************************************
  6. *
  7. * C N E Q M G
  8. * -----------
  9. *
  10. * FONCTION:
  11. * ---------
  12. * CALCUL DU PRODUIT DU POTENTIEL VECTEUR INDUCTEUR
  13. * AVEC LES FONCTIONS DE FORME ROT3 POUR LA
  14. * FORMULATION MAGNETODYNAMIQUE
  15. *
  16. * MODULES UTILISES:
  17. * -----------------
  18. *
  19.  
  20. -INC PPARAM
  21. -INC CCOPTIO
  22. -INC CCHAMP
  23. -INC CCREEL
  24.  
  25. -INC SMCOORD
  26. -INC SMINTE
  27. -INC SMMODEL
  28. -INC SMELEME
  29. -INC SMCHAML
  30. *
  31. * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN)
  32. * -----------
  33. *
  34. * IPMAIL (E) NUMERO DU MAILLAGE ELEMENTAIRE CONSIDERE (ACTIF E/S)
  35. * IPMINT (E) POINTEUR SUR UN SEGMENT MINTE (ACTIF E/S)
  36. * IVAPVE (E) POINTEUR SUR UN SEGMENT MPTVAL POUR LE POTENTIEL VECTEUR
  37. * IVAPNO (S) POINTEUR SUR UN SEGMENT MPTVAL POUR LE RESULTAT
  38. * +XCOOR (E) VOIR SMCOORD
  39. * +IDIM (E) VOIR CCOPTIO
  40. * +IFOMOD (E) VOIR CCOPTIO
  41. * +XZERO (E) VOIR CCREEL
  42. *
  43. * VARIABLES:
  44. * ----------
  45. *
  46. * NBNN NOMBRE DE NOEUDS DANS L'ELEMENT CONSIDERE
  47. * NEF NUMERO DE L'ELEMENT FINI DANS NOMTP (VOIR CCHAMP)
  48. * NBELEM NOMBRE D'ELEMENTS DANS LE MAILLAGE ELEMENTAIRE
  49. * NBPGAU NOMBRE DE POINTS DE GAUSS DANS L'ELEMENT-FINI
  50. * NDIM NOMBRE DE LIGNES DE LA MATRICE GRADIENT
  51. * XE(3,NBNN) COORDONNEES DE L'ELEMENT DANS LE REPERE GLOBAL
  52. * SHP(6,NBNN) TABLEAU DE TRAVAIL
  53. * VALMAT(NMATR) TABLEAU DE TRAVAIL
  54.  
  55. -INC TMPTVAL
  56.  
  57. SEGMENT,MMAT1
  58. REAL*8 VALMAT(NMATR)
  59. REAL*8 XE(3,NBNN),XE1(3,NBNN)
  60. REAL*8 SHP(6,NBNN)
  61. REAL*8 COSD1(3),COSD2(3),GRD3(3,3)
  62. ENDSEGMENT
  63. *
  64. SEGMENT NOTYPE
  65. CHARACTER*16 TYPE(NBTYPE)
  66. ENDSEGMENT
  67. *
  68. CHARACTER*8 CNM
  69. CHARACTER*(NCONCH) CONM
  70. *
  71. * AUTEUR, DATE DE CREATION:
  72. * -------------------------
  73. *
  74. * YANN STEPHAN , AOUT 1997 (COPIE DE ROT3R)
  75. *
  76. * LANGAGE:
  77. * --------
  78. *
  79. * ESOPE + FORTRAN77
  80. *
  81. ************************************************************************
  82. *
  83. * RECUPERATION DES CARACTERISTIQUES GEOMETRIQUES DU MAILLAGE
  84. * ELEMENTAIRE
  85. *
  86. MELEME=IPMAIL
  87. C* SEGACT,MELEME <- Actif en E/S
  88. NBNN=NUM(/1)
  89. NBELEM=NUM(/2)
  90. *
  91. * RECUPERATION DES CARACTERISTIQUES D'INTEGRATION DE L'ELEMENT
  92. * FINI LIE A NOTRE MAILLAGE
  93. *
  94. MINTE=IPMINT
  95. C* SEGACT,MINTE <- Actif en E/S
  96. NBPGAU=POIGAU(/1)
  97. *
  98. * CHANGEMENT DE SUPPORT DU MPTVAL IVAPVE
  99. *
  100. MPTVAL=IVAPVE
  101. NCOMP=IVAL(/1)
  102. *
  103. * on suppose pas de formulation poreux ici
  104. IPPORE=0
  105. *
  106. CALL VALCHE(IVAPVE,NCOMP,IPMINT,IPPORE,MOFOVO,MELE)
  107. *
  108. NDIM=IDIM-1
  109. NFIN=NDIM+1
  110. NMATR=NCOMP
  111. SEGINI,MMAT1
  112. *
  113. * BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE IMAIL
  114. *
  115. DO 10 IEL=1,NBELEM
  116. *
  117. * MISE A ZERO DU TABLEAU XE1
  118. *
  119. CALL ZERO (XE1,3,NBNN)
  120. *
  121. * ON CHERCHE LES COORDONNEES DES NOEUDS DE L'ELEMENT IEL,
  122. * DANS LE REPERE GLOBAL
  123. *
  124. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IEL,XE)
  125. *
  126. * CALCUL DES COORDONNEES DES NOEUDS DANS LE REPERE LOCAL DE L'
  127. * ELEMENT COQUE
  128. *
  129. CALL COQLOC(NBNN,XE,COSD1,COSD2,XE1)
  130. *
  131. IFOIS=0
  132. IFOI2=0
  133. DO 20 IGAU=1,NBPGAU
  134. *
  135. * CALCUL DE LA MATRCIE GRADIENT DES FONCTIONS DE FORME ET
  136. * DU JACOBIEN(DANS LE PLAN), EN UN POINT DE GAUSS
  137. *
  138. DO 1000 NP=1,NBNN
  139. DO 90 I=1,NFIN
  140. SHP(I,NP)=SHPTOT(I,NP,IGAU)
  141. 90 CONTINUE
  142. 1000 CONTINUE
  143. *
  144. * DERIVES DES FONCTIONS DE FORME DANS LA GEOMETRIE REELLE
  145. * ET LE JACOBIEN
  146. CALL JACOBI(XE1,SHP,NDIM,NBNN,DJAC)
  147. *
  148. IF(DJAC.LT.XZERO)IFOIS=IFOIS+1
  149. IF(ABS(DJAC).LT.XPETIT)IFOI2=IFOI2 +1
  150. *
  151. DO 100 NP=1,NBNN
  152. * ON FAIT TOURNER LE GRADIENT DE -PI/2 DANS LE REPERE LOCAL
  153. * POUR ETRE PARALLELE AU COTE OPPOSE AU SOMMET
  154. XG=SHP(2,NP)
  155. SHP(2,NP)=SHP(3,NP)
  156. C* YG=SHP(3,NP)
  157. C* SHP(2,NP)=YG
  158. SHP(3,NP)=-XG
  159. * RETOUR AU REPERE 3D
  160. r_z1 = SHP(2,NP)
  161. r_z2 = SHP(3,NP)
  162. DO 60 I=1,NFIN
  163. GRD3(I,NP)= r_z1*COSD1(I) + r_z2*COSD2(I)
  164. 60 CONTINUE
  165. 100 CONTINUE
  166. *
  167. * ON MULTIPLIE LE JACOBIEN PAR LE POIDS D'INTEGRATION,POUR LE
  168. * POINT DE GAUSS CONSIDERE
  169. *
  170. DJAC=ABS(DJAC)*POIGAU(IGAU)
  171. *
  172. * ON CHERCHE LES VALEURS DES COMPOSANTES
  173. * DU POTENTIEL VECTEUR
  174. *
  175. MPTVAL=IVAPVE
  176. DO 30 IM=1,NCOMP
  177. IF(IVAL(IM).NE.0)THEN
  178. MELVAL=IVAL(IM)
  179. IBMN=MIN(IEL,VELCHE(/2))
  180. IGMN=MIN(IGAU,VELCHE(/1))
  181. VALMAT(IM)=VELCHE(IGMN,IBMN)
  182. ELSE
  183. VALMAT(IM)=0.
  184. ENDIF
  185. 30 CONTINUE
  186. *
  187. * ON EFFECTUE LE PRODUIT DJAC*TRANSPOSEE(GRAD)*VALMAT
  188. * POUR LE POINT DE GAUSS CONSIDERE (RESULTAT SCALAIRE)
  189. *
  190. MPTVAL=IVAPNO
  191. MELVAL=IVAL(1)
  192. DO 40 IP=1,NBNN
  193. r_z = 0.
  194. DO 41 IM=1,NCOMP
  195. r_z = r_z + GRD3(IM,IP)*VALMAT(IM)
  196. 41 CONTINUE
  197. VELCHE(IP,IEL)=VELCHE(IP,IEL) + DJAC*r_z
  198. 40 CONTINUE
  199. *
  200. 20 CONTINUE
  201. *
  202. * LE JACOBIEN EST NEGATIF ,MAILLAGE INCORRECT
  203. IF(IFOIS.NE.0.AND.IFOIS.NE.NBPGAU)THEN
  204. INTERR(1)=IEL
  205. CALL ERREUR(195)
  206. GO TO 999
  207. *
  208. * CAS OU LE JACOBIEN EST TRES PETIT
  209. ELSEIF(IFOI2.EQ.NBPGAU)THEN
  210. INTERR(1)=IEL
  211. CALL ERREUR (259)
  212. GO TO 999
  213. ENDIF
  214. *
  215. 10 CONTINUE
  216. *
  217. * DESACTIVATION DES SEGMENTS
  218. *
  219. 999 CONTINUE
  220. SEGSUP,MMAT1
  221. END
  222.  
  223.  
  224.  
  225.  

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