Télécharger divu1.eso

Retour à la liste

Numérotation des lignes :

divu1
  1. C DIVU1 SOURCE FANDEUR 22/01/03 21:15:12 11136
  2. SUBROUTINE DIVU1(IRE1,IRE2,IRE3,IRE4,IRE5,IRET)
  3. C-----------------------------------------------------------------------
  4. C Calcul la divergence à partir des FLUX.
  5. C Le CHAMPOINT résultat est de support CENTRE.
  6. C-----------------------------------------------------------------------
  7. C
  8. C---------------------------
  9. C Parametres Entree/Sortie :
  10. C---------------------------
  11. C
  12. C E/ IRE1 : Champoint de type FLUX
  13. C E/ IRE2 : Mchaml des orientation de normale (1=out,-1=in)
  14. C E/ IRE3 : MELEME des points FACE
  15. C E/ IRE4 : MELEME des points CENTRE
  16. C E/ IRE5 : CHPOIN des points CENTRE
  17. C /S IRET : Champoint resultat de composante SCAL
  18. C
  19. C----------------------
  20. C Tableaux de travail :
  21. C----------------------
  22. C
  23. C ICPR(I)=J : Le noeud I a le numero J dans le MELEME des faces
  24. C Correspondance numerotation globale/locale
  25. C INUI(I)=J : Le Ieme noeud local est le Jeme global
  26. C Correspondance numerotation locale/globale
  27. C NNGOT : Nombre de noeuds total du domaine
  28. C
  29. C----------------------
  30. C Variables en COMMON :
  31. C----------------------
  32. C
  33. C IFOUR : cf CCOPTIO.INC
  34. C
  35. C-----------------------------------------------------------------------
  36. C
  37. C Langage : ESOPE + FORTRAN77
  38. C
  39. C Auteurs : F.DABBENE 01/94
  40. C Complements : C. LE POTIER ET F. AURIOL 20/00
  41. C
  42. C-----------------------------------------------------------------------
  43. IMPLICIT INTEGER(I-N)
  44. IMPLICIT REAL*8 (A-H,O-Z)
  45. *
  46.  
  47. -INC PPARAM
  48. -INC CCOPTIO
  49. -INC SMELEME
  50. -INC SMCHPOI
  51. -INC SMCHAML
  52. -INC SMCOORD
  53. *
  54. SEGMENT ICCPR
  55. INTEGER ICPR(NNGOT) , INUI(NNGOT)
  56. ENDSEGMENT
  57. C
  58. C= INITIALISATIONS
  59. C
  60. MCHPOI = IRE1
  61. MCHELM = IRE2
  62. IPT1 = IRE3
  63. IPT2 = IRE4
  64. C
  65. C= Initialisations à partir de la rigidité
  66. C
  67. NNGOT = nbpts
  68. SEGINI ICCPR
  69. IRET = 0
  70. *
  71. *= Creation des tableaux ICPR et INUI pour le maillage IPT1 des FACES
  72. *
  73. SEGACT IPT1
  74. N2 = IPT1.NUM(/2)
  75. IK = 0
  76. NBFACE = N2
  77. DO 10 I2=1,N2
  78. K = IPT1.NUM(1,I2)
  79. IF (ICPR(K).EQ.0) THEN
  80. IK = IK + 1
  81. ICPR(K) = IK
  82. INUI(IK)= K
  83. ENDIF
  84. 10 CONTINUE
  85. SEGDES IPT1
  86. C
  87. C- Récupération du pointeur MPOVAL des flux
  88. C
  89. SEGACT MCHPOI
  90. MSOUPO = IPCHP(1)
  91. SEGACT MSOUPO
  92. MPOVA1 = IPOVAL
  93. SEGDES MSOUPO
  94. SEGDES MCHPOI
  95. C
  96. C------------------------------------------
  97. C Création du CHAMPOINT SCAL contenant DIVu
  98. C------------------------------------------
  99. C
  100. NSOUPO = 1
  101. NAT = 1
  102. SEGINI MCHPOI
  103. IRET = MCHPOI
  104. IFOPOI = IFOUR
  105. JATTRI(1) = 1
  106. NC = 1
  107. SEGINI MSOUPO
  108. IPCHP(1) = MSOUPO
  109. SEGDES MCHPOI
  110. NOCOMP(1) = 'SCAL'
  111. IGEOC = IRE4
  112. SEGACT IPT2
  113. N = IPT2.NUM(/2)
  114. SEGDES IPT2
  115. SEGINI MPOVAL
  116. IPOVAL = MPOVAL
  117. NOHARM(1) = NIFOUR
  118. SEGDES MSOUPO
  119. C
  120. C------------------------------------------------
  121. C= Boucle sur les ZONES ELEMENTAIRES du MCHAML
  122. C------------------------------------------------
  123. C
  124. ITELEM = 0
  125. SEGACT MCHELM
  126. SEGACT MPOVA1
  127. NRIGEL = IMACHE(/1)
  128. IF(IRE5.EQ.0)THEN
  129. DO 40 IRI=1,NRIGEL
  130. C
  131. C Recuperation du MELEME et activation
  132. C
  133. MELEME = IMACHE(IRI)
  134. SEGACT MELEME
  135. N1 = NUM(/1)
  136. N2 = NUM(/2)
  137. C
  138. C Récupération du pointeur MELVAL du MCHAML d'orientation
  139. C
  140. MCHAML = ICHAML(IRI)
  141. SEGACT MCHAML
  142. MELVAL = IELVAL(1)
  143. SEGDES MCHAML
  144. SEGACT MELVAL
  145. C
  146. C------------------------------
  147. C= Boucle 30 sur les ELEMENTs.
  148. C------------------------------
  149. C
  150. DO 30 I2=1,N2
  151. ITELEM = ITELEM + 1
  152. DO 20 IN=1,N1
  153. VALIN1 = MPOVA1.VPOCHA(ICPR(NUM(IN,I2)),1)*VELCHE(IN,I2)
  154. VPOCHA(ITELEM,1) = VPOCHA(ITELEM,1) + VALIN1
  155. 20 CONTINUE
  156. 30 CONTINUE
  157. SEGDES MELVAL, MELEME
  158. 40 CONTINUE
  159. ELSE
  160. C
  161. C Cas ou l'on a une fonction
  162. C
  163. MCHPO2=IRE5
  164. SEGACT MCHPO2
  165. MSOUP2=MCHPO2.IPCHP(1)
  166. SEGACT MSOUP2
  167. MPOVA2= MSOUP2.IPOVAL
  168. SEGACT MPOVA2
  169. DO 70 IRI=1,NRIGEL
  170. C
  171. C Recuperation du MELEME et activation
  172. C
  173. MELEME = IMACHE(IRI)
  174. SEGACT MELEME
  175. N1 = NUM(/1)
  176. N2 = NUM(/2)
  177. C
  178. C Récupération du pointeur MELVAL du MCHAML d'orientation
  179. C
  180. MCHAML = ICHAML(IRI)
  181. SEGACT MCHAML
  182. MELVAL = IELVAL(1)
  183. SEGDES MCHAML
  184. SEGACT MELVAL
  185. C
  186. C------------------------------
  187. C= Boucle sur les ELEMENTs.
  188. C------------------------------
  189. C
  190. DO 60 I2=1,N2
  191. ITELEM = ITELEM + 1
  192. DO 50 IN=1,N1
  193. VALIN1 = MPOVA1.VPOCHA(ICPR(NUM(IN,I2)),1)*VELCHE(IN,I2)
  194. * * MPOVA2.VPOCHA(ICPR(NUM(IN,I2)),1)
  195. VPOCHA(ITELEM,1) = VPOCHA(ITELEM,1) + VALIN1
  196. 50 CONTINUE
  197. 60 CONTINUE
  198. SEGDES MELVAL, MELEME
  199. 70 CONTINUE
  200. SEGDES MPOVA2,MSOUP2,MCHPO2
  201. ENDIF
  202. SEGDES MCHELM
  203. SEGDES MPOVA1
  204. SEGDES MPOVAL
  205. SEGSUP ICCPR
  206. C
  207. RETURN
  208. END
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  

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