Télécharger chama2.eso

Retour à la liste

Numérotation des lignes :

chama2
  1. C CHAMA2 SOURCE CB215821 21/03/03 21:15:09 10910
  2.  
  3. C=======================================================================
  4. C= C H A M A 2 =
  5. C= ----------- =
  6. C= =
  7. C= Fonction : =
  8. C= ---------- =
  9. C= Calcul du MCHAML (champ par element aux noeuds) des flux nodaux =
  10. C= equivalents a des sources volumiques. Cas BIDIMENSIONNEL MASSIF =
  11. C= =
  12. C= Parametres : (E)=Entree (S)=Sortie =
  13. C= ------------ =
  14. C= IPSONO (E) Pointeur sur le segment MELVAL des SOURCES =
  15. C= IPGEOM (E) Pointeur sur un objet MAILLAGE elementaire =
  16. C= IPINTE (E) Pointeur sur un segment MINTE contenant les =
  17. C= caracteristiques d'integration =
  18. C= IPCHEQ (S) Pointeur sur un segment MELVAL contenant les =
  19. C= flux de chaleur nodaux equivalents =
  20. C= =
  21. C= Variables locales : =
  22. C= ------------------- =
  23. C= XEL(3,NBPTEL) Coordonnees GLOBALES des noeuds d'un element =
  24. C= Surf Surface elementaire au point de Gauss =
  25. C= AEL Vecteur de travail =
  26. C= =
  27. C= Denis ROBERT, le 16 fevrier 1988. =
  28. C=======================================================================
  29.  
  30. SUBROUTINE CHAMA2 (IPSONO,IPGEOM,IPINTE, IPCHEQ)
  31.  
  32. IMPLICIT INTEGER(I-N)
  33. IMPLICIT REAL*8 (A-H,O-Z)
  34.  
  35.  
  36. -INC PPARAM
  37. -INC CCOPTIO
  38. -INC CCREEL
  39.  
  40. -INC SMCHAML
  41. -INC SMELEME
  42. -INC SMINTE
  43. -INC SMCOORD
  44.  
  45. SEGMENT MMAT1
  46. REAL*8 XEL(3,NBPTEL), AEL(NBPTEL)
  47. ENDSEGMENT
  48.  
  49. C= Quelques constantes (2.Pi)
  50. PARAMETER (X2Pi=6.283185307179586476925286766559D0)
  51.  
  52. C 1 - INITIALISATION
  53. C ====================
  54. C 1.1 - Recuperation d'informations sur le maillage elementaire
  55. C =====
  56. MELEME=IPGEOM
  57. NBPTEL=NUM(/1)
  58. NbElt=NUM(/2)
  59. C =====
  60. C 1.2 - Recuperation d'informations sur l'element fini du maillage
  61. C =====
  62. MINTE=IPINTE
  63. NBPGAU=POIGAU(/1)
  64. C* NBNO=SHPTOT(/2)
  65. C* On doit avoir -> NBNO = NBPTEL
  66. C =====
  67. C 1.3 - Activation du MCHAML contenant les valeurs des sources
  68. C =====
  69. MELVA1=IPSONO
  70. NBPTE1=MELVA1.VELCHE(/1)
  71. NEL1=MELVA1.VELCHE(/2)
  72. * IPSONO s'appuie normalement sur IPINTE
  73. * On doit avoir : NBPGAU = NBPTE1 si NBPTE1 != 1 (champ constant par element)
  74. * NEL1 = NELT si NEL1 != 1 (champ uniforme)
  75. C =====
  76. C 1.4 - Initialisation du segment de travail MMAT1
  77. C =====
  78. SEGINI,MMAT1
  79. C =====
  80. C 1.5 - Initialisation du segment resultat MELVAL contenant les valeurs
  81. C des flux nodaux pour chaque element du maillage (IPGEOM)
  82. C =====
  83. N1PTEL=NBPTEL
  84. N1EL =NbElt
  85. N2PTEL=0
  86. N2EL =0
  87. SEGINI,MELVAL
  88. IPCHEQ=MELVAL
  89.  
  90. C 2 - BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE IMAMOD
  91. C ============================================================
  92. DO iElt=1,NbElt
  93.  
  94. IEMIN1 = MIN(NEL1,iElt)
  95. C =====
  96. C 2.1 - Mise a zero de la source nodale equivalente AEL
  97. C =====
  98. DO iNoe = 1, NBPTEL
  99. AEL(iNoe) = XZero
  100. ENDDO
  101. C =====
  102. C 2.2 - Recuperation des coordonnees GLOBALES des noeuds de l'element
  103. C =====
  104. CALL DOXE(XCOOR,IDIM,NBPTEL,NUM,iElt,XEL)
  105. C =====
  106. C 2.3 - Boucle sur les points de Gauss de l'element iElt
  107. C =====
  108. DO iGau=1,NBPGAU
  109. C =======
  110. C 2.3.1 - Calcul du volume associe au point de Gauss iGau
  111. C Pour les elements MASSIFs, traitement du cas axisymetrique
  112. C =======
  113. S1=XZERO
  114. S2=XZERO
  115. S3=XZERO
  116. S4=XZERO
  117. DO iNoe = 1, NBPTEL
  118. S1=S1+SHPTOT(2,iNoe,iGau)*XEL(1,iNoe)
  119. S2=S2+SHPTOT(3,iNoe,iGau)*XEL(1,iNoe)
  120. S3=S3+SHPTOT(3,iNoe,iGau)*XEL(2,iNoe)
  121. S4=S4+SHPTOT(2,iNoe,iGau)*XEL(2,iNoe)
  122. ENDDO
  123. VOLU=S1*S3-S2*S4
  124. IF (IFOMOD.EQ.0) THEN
  125. CALL DISTRR(XEL,SHPTOT(1,1,iGau),NBPTEL,RR)
  126. VOLU=X2Pi*RR*VOLU
  127. ENDIF
  128. VOLU=ABS(VOLU)*POIGAU(iGau)
  129. C =======
  130. C 2.3.2 - Calcul de la contribution du point de Gauss a AEL
  131. C pour cet element (MCHAML aux noeuds)
  132. C =======
  133. IGMIN1 = MIN(iGau,NBPTE1)
  134. R_z = VOLU * MELVA1.VELCHE(IGMIN1,IEMIN1)
  135. DO iNoe = 1, NBPTEL
  136. AEL(iNoe) = AEL(iNoe) + SHPTOT(1,iNoe,iGau) * R_z
  137. ENDDO
  138. ENDDO
  139. C =====
  140. C 2.4 - Calcul des flux equivalents sur cet element (MCHAML aux noeuds)
  141. C =====
  142. DO iNoe = 1,NBPTEL
  143. VELCHE(iNoe,iElt) = AEL(iNoe)
  144. ENDDO
  145. ENDDO
  146.  
  147. C 3 - MENAGE : DESACTIVATION/DESTRUCTION DE SEGMENTS
  148. C ====================================================
  149. SEGSUP,MMAT1
  150.  
  151. END
  152.  
  153.  

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