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.
    -INC SMELEME
  74. -INC SMLENTI
  75. C
  76. C**** Initialisation des MELEMEs
  77. C
  78. C 'CENTRE', 'FACEL'
  79. IPT2 = MELEFE
  80. SEGACT IPT2
  81. NFAC = IPT2.NUM(/2)
  82. C
  83. CALL LICHT(ICHPVO,MPOVVO,TYPE,IGEOMC)
  84. C SEGACT MPOVVO*MOD
  85. IF(IGEOMC .NE. MELEMC)THEN
  86. MESERR = 'Il ne faut pas jouer avec la console. '
  87. LOGAN = .TRUE.
  88. GOTO 9999
  89. ENDIF
  90. C
  91. C**** KRIPAD pour la correspondance global/local de centre
  92. C
  93. CALL KRIPAD(MELEMC,MLENT1)
  94. CALL KRIPAD(MELEMF,MLENT2)
  95. C
  96. CALL LICHT(ICHFLU,MPOFLU,TYPE,IGEOMF)
  97. CALL LICHT(ICHRES,MPORES,TYPE,IGEOMC)
  98. C
  99. C SEGACT MPOFLU*MOD
  100. C SEGACT MPORES*MOD
  101. C
  102. IF(IGEOMF .NE. MELEMF)THEN
  103. MESERR = 'Il ne faut pas jouer avec la console. '
  104. LOGAN = .TRUE.
  105. GOTO 9999
  106. ENDIF
  107. IF(IGEOMC .NE. MELEMC)THEN
  108. MESERR = 'Il ne faut pas jouer avec la console. '
  109. LOGAN = .TRUE.
  110. GOTO 9999
  111. ENDIF
  112. NCOMP = MPOFLU.VPOCHA(/2)
  113. C
  114. C**** BOUCLE SUR FACEL pour le calcul du FLUX
  115. C
  116. DO NLCF = 1, NFAC
  117. C
  118. C******* NLCF = numero local du centre de facel
  119. C NGCF = numero global du centre de facel
  120. C NLCF1 = numero local du centre de face
  121. C NGCEG = numero global du centre ELT "gauche"
  122. C NLCEG = numero local du centre ELT "gauche"
  123. C NGCED = numero global du centre ELT "droite"
  124. C NLCED = numero local du centre ELT "droite"
  125. C
  126. NGCEG = IPT2.NUM(1,NLCF)
  127. NGCED = IPT2.NUM(3,NLCF)
  128. NGCF = IPT2.NUM(2,NLCF)
  129. NLCF1 = MLENT2.LECT(NGCF)
  130. NLCEG = MLENT1.LECT(NGCEG)
  131. NLCED = MLENT1.LECT(NGCED)
  132. C
  133. C******* NLCF != NLCF1 -> l'auteur (MOI) n'a rien compris.
  134. C
  135. IF(NLCF .NE. NLCF1)THEN
  136. MESERR = 'Il ne faut pas jouer avec la console. '
  137. LOGAN = .TRUE.
  138. GOTO 9999
  139. ENDIF
  140. C
  141. VOLUG = MPOVVO.VPOCHA(NLCEG,1)
  142. VOLUD = MPOVVO.VPOCHA(NLCED,1)
  143. C
  144. IF(NLCEG .NE. NLCED)THEN
  145. C
  146. DO ICOMP = 1, NCOMP, 1
  147. CELLF = MPOFLU.VPOCHA(NLCF,ICOMP)
  148. MPORES.VPOCHA(NLCEG,ICOMP) = MPORES.VPOCHA(NLCEG,ICOMP)
  149. & - (CELLF / VOLUG)
  150. MPORES.VPOCHA(NLCED,ICOMP) = MPORES.VPOCHA(NLCED,ICOMP)
  151. $ + (CELLF / VOLUD)
  152. ENDDO
  153. C
  154. ELSE
  155. C
  156. C*********** Murs
  157. C
  158. DO ICOMP = 1, NCOMP, 1
  159. CELLF = MPOFLU.VPOCHA(NLCF,ICOMP)
  160. MPORES.VPOCHA(NLCEG,ICOMP) = MPORES.VPOCHA(NLCEG,ICOMP) -
  161. & (CELLF / VOLUG)
  162. ENDDO
  163. ENDIF
  164. C
  165. C**** Fin boucle sur FACEL
  166. C
  167. ENDDO
  168. C
  169. SEGSUP MLENT1
  170. SEGDES MLENT2
  171. SEGDES IPT2
  172. C
  173. SEGDES MPOVVO
  174. C
  175. C**** On detrui les CHPOINTs des FLUX
  176. C
  177. MCHPOI = ICHFLU
  178. SEGACT MCHPOI*MOD
  179. MSOUPO = MCHPOI.IPCHP(1)
  180. SEGSUP MSOUPO
  181. SEGSUP MPOFLU
  182. ICHFLU = 0
  183. C
  184. C**** On desactive les CHPOINTs des RESIDU
  185. C
  186. SEGDES MPORES
  187. C
  188. 9999 RETURN
  189. END
  190. C
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  

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