Télécharger konre1.eso

Retour à la liste

Numérotation des lignes :

  1. C KONRE1 SOURCE CHAT 05/01/13 01:03:06 5004
  2. SUBROUTINE KONRE1(MELEMC,MELEMF,MELEFE,ICHPVO,
  3. & ICHFLU, ICHRES,
  4. & LOGAN,MESERR)
  5. C
  6. C************************************************************************
  7. C
  8. C PROJET : CASTEM 2000
  9. C
  10. C NOM : KONRE1
  11. C
  12. C DESCRIPTION : Voir KONV1, YLAP11
  13. C Restitution des residus
  14. C Destruction des flux
  15. C
  16. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  17. C
  18. C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/TTMF
  19. C
  20. C************************************************************************
  21. C
  22. C
  23. C APPELES
  24. C
  25. C************************************************************************
  26. C
  27. C ENTREES
  28. C
  29. C
  30. C MELEMC : MELEME 'CENTRE' du SPG des CENTRES
  31. C
  32. C MELEFE : MELEME 'FACEL' du connectivité FACES -> ELEM
  33. C
  34. C ICHPVO : CHPOINT "CENTRE" contenant le volume
  35. C de chaque element
  36. C
  37. C E/S
  38. C
  39. C ICHFLU. : pointeurs de CHPOINTs "FACE" des flux aux interfaces:
  40. C
  41. C ICHRES : pointeurs de CHPOINTs "CENTRE" des résidus
  42. C
  43. C LOGAN : (LOGICAL): si .TRUE. une anomalie à été detectée
  44. C
  45. C MESERR : pour l'ecriture des messages d'erreurs
  46.  
  47. C
  48. C************************************************************************
  49. C
  50. C HISTORIQUE (Anomalies et modifications éventuelles)
  51. C
  52. C HISTORIQUE :
  53. C
  54. C************************************************************************
  55. C
  56. C
  57. C************************************************************************
  58. C
  59. IMPLICIT INTEGER(I-N)
  60. INTEGER IGEOMC, IGEOMF, NFAC, MELEMC,MELEFE, MELEMF, ICHPVO
  61. & ,ICHFLU, ICHRES
  62. & , NLCF , NGCF , NLCF1 , NGCEG , NLCEG, NGCED, NLCED
  63. & , ICOMP, NCOMP
  64. REAL*8 VOLUG, VOLUD, CELLF
  65. CHARACTER*8 TYPE
  66. CHARACTER*40 MESERR
  67. LOGICAL LOGAN
  68. C
  69. C**** LES INCLUDES
  70. C
  71. -INC SMCHPOI
  72. POINTEUR MPOVVO.MPOVAL
  73. & , MPOFLU.MPOVAL, MPORES.MPOVAL
  74. -INC SMELEME
  75. -INC SMLENTI
  76. C
  77. C**** Initialisation des MELEMEs
  78. C
  79. C 'CENTRE', 'FACEL'
  80. IPT2 = MELEFE
  81. SEGACT IPT2
  82. NFAC = IPT2.NUM(/2)
  83. C
  84. CALL LICHT(ICHPVO,MPOVVO,TYPE,IGEOMC)
  85. C SEGACT MPOVVO*MOD
  86. IF(IGEOMC .NE. MELEMC)THEN
  87. MESERR = 'Il ne faut pas jouer avec la console. '
  88. LOGAN = .TRUE.
  89. GOTO 9999
  90. ENDIF
  91. C
  92. C**** KRIPAD pour la correspondance global/local de centre
  93. C
  94. CALL KRIPAD(MELEMC,MLENT1)
  95. CALL KRIPAD(MELEMF,MLENT2)
  96. C
  97. CALL LICHT(ICHFLU,MPOFLU,TYPE,IGEOMF)
  98. CALL LICHT(ICHRES,MPORES,TYPE,IGEOMC)
  99. C
  100. C SEGACT MPOFLU*MOD
  101. C SEGACT MPORES*MOD
  102. C
  103. IF(IGEOMF .NE. MELEMF)THEN
  104. MESERR = 'Il ne faut pas jouer avec la console. '
  105. LOGAN = .TRUE.
  106. GOTO 9999
  107. ENDIF
  108. IF(IGEOMC .NE. MELEMC)THEN
  109. MESERR = 'Il ne faut pas jouer avec la console. '
  110. LOGAN = .TRUE.
  111. GOTO 9999
  112. ENDIF
  113. NCOMP = MPOFLU.VPOCHA(/2)
  114. C
  115. C**** BOUCLE SUR FACEL pour le calcul du FLUX
  116. C
  117. DO NLCF = 1, NFAC
  118. C
  119. C******* NLCF = numero local du centre de facel
  120. C NGCF = numero global du centre de facel
  121. C NLCF1 = numero local du centre de face
  122. C NGCEG = numero global du centre ELT "gauche"
  123. C NLCEG = numero local du centre ELT "gauche"
  124. C NGCED = numero global du centre ELT "droite"
  125. C NLCED = numero local du centre ELT "droite"
  126. C
  127. NGCEG = IPT2.NUM(1,NLCF)
  128. NGCED = IPT2.NUM(3,NLCF)
  129. NGCF = IPT2.NUM(2,NLCF)
  130. NLCF1 = MLENT2.LECT(NGCF)
  131. NLCEG = MLENT1.LECT(NGCEG)
  132. NLCED = MLENT1.LECT(NGCED)
  133. C
  134. C******* NLCF != NLCF1 -> l'auteur (MOI) n'a rien compris.
  135. C
  136. IF(NLCF .NE. NLCF1)THEN
  137. MESERR = 'Il ne faut pas jouer avec la console. '
  138. LOGAN = .TRUE.
  139. GOTO 9999
  140. ENDIF
  141. C
  142. VOLUG = MPOVVO.VPOCHA(NLCEG,1)
  143. VOLUD = MPOVVO.VPOCHA(NLCED,1)
  144. C
  145. IF(NLCEG .NE. NLCED)THEN
  146. C
  147. DO ICOMP = 1, NCOMP, 1
  148. CELLF = MPOFLU.VPOCHA(NLCF,ICOMP)
  149. MPORES.VPOCHA(NLCEG,ICOMP) = MPORES.VPOCHA(NLCEG,ICOMP)
  150. & - (CELLF / VOLUG)
  151. MPORES.VPOCHA(NLCED,ICOMP) = MPORES.VPOCHA(NLCED,ICOMP)
  152. $ + (CELLF / VOLUD)
  153. ENDDO
  154. C
  155. ELSE
  156. C
  157. C*********** Murs
  158. C
  159. DO ICOMP = 1, NCOMP, 1
  160. CELLF = MPOFLU.VPOCHA(NLCF,ICOMP)
  161. MPORES.VPOCHA(NLCEG,ICOMP) = MPORES.VPOCHA(NLCEG,ICOMP) -
  162. & (CELLF / VOLUG)
  163. ENDDO
  164. ENDIF
  165. C
  166. C**** Fin boucle sur FACEL
  167. C
  168. ENDDO
  169. C
  170. SEGSUP MLENT1
  171. SEGDES MLENT2
  172. SEGDES IPT2
  173. C
  174. SEGDES MPOVVO
  175. C
  176. C**** On detrui les CHPOINTs des FLUX
  177. C
  178. MCHPOI = ICHFLU
  179. SEGACT MCHPOI*MOD
  180. MSOUPO = MCHPOI.IPCHP(1)
  181. SEGSUP MSOUPO
  182. SEGSUP MPOFLU
  183. ICHFLU = 0
  184. C
  185. C**** On desactive les CHPOINTs des RESIDU
  186. C
  187. SEGDES MPORES
  188. C
  189. 9999 RETURN
  190. END
  191. C
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  

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