Télécharger pre411.eso

Retour à la liste

Numérotation des lignes :

pre411
  1. C PRE411 SOURCE OF166741 24/10/03 21:15:35 12022
  2. SUBROUTINE PRE411(ICEN,IFACE,IFACEL,MLMCOM,IROC,IROF,
  3. & LOGAN,MESERR)
  4. C************************************************************************
  5. C
  6. C PROJET : CASTEM 2000
  7. C
  8. C NOM : PRE411
  9. C
  10. C DESCRIPTION : Voir PRE41
  11. C
  12. C Cas 2D/3D
  13. C 1er ordre en espace, 1re ordre en temps
  14. C
  15. C Creations des objets MCHAML IROF
  16. C
  17. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
  18. C
  19. C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/TTMF
  20. C
  21. C************************************************************************
  22. C
  23. C
  24. C APPELES (Outils) : KRIPAD, LICHT
  25. C
  26. C APPELES (Calcul) : AUCUN
  27. C
  28. C
  29. C************************************************************************
  30. C
  31. C ENTREES
  32. C
  33. C 1) Pointeurs de MELEMEs et de CHPOINTs de la table DOMAINE
  34. C
  35. C ICEN : MELEME de 'POI1' SPG des CENTRES
  36. C
  37. C IFACE : MELEME de 'POI1' SPG des FACES
  38. C
  39. C IFACEL : MELEME de 'SEG3' avec
  40. C CENTRE d'Elt "gauche"
  41. C CENTRE de Face
  42. C CENTRE d'Elt "droite"
  43. C
  44. C N.B. = IFACE.NUM(i,1) = IFACEL.NUM(i,2)
  45. C
  46. C 2) Pointeurs des CHPOINTs
  47. C
  48. C IROC : CHPOINT "CENTRE" contenant les scalaires
  49. C
  50. C SORTIES
  51. C
  52. C
  53. C IROF : MCHAML defini sur le MELEME de pointeur IFACEL,
  54. C contenant les scalaires
  55. C
  56. C LOGAN : anomalie detectee (changement de la convention dans
  57. C la table domaine)
  58. C
  59. C MESERR : pour les messages d'erreur
  60. C
  61. C************************************************************************
  62. C
  63. C HISTORIQUE (Anomalies et modifications éventuelles)
  64. C
  65. C HISTORIQUE : Créée le 28.12.01.
  66. C
  67. C************************************************************************
  68. C
  69. C**** Les variables
  70. C
  71. IMPLICIT INTEGER(I-N)
  72. INTEGER ICEN, IFACE, IFACEL, IROC
  73. & , IROF
  74. & , IGEOM, NFAC
  75. & , N1PTEL, N1EL, N2PTEL, N2EL, N2, N1, N3, L1
  76. & , NLCF, NGCF, NGCEG, NLCEG, NGCED, NLCED, NGCF1, I1
  77. REAL*8 ROG, ROD
  78. CHARACTER*(40) MESERR
  79. CHARACTER*(8) TYPE
  80. LOGICAL LOGAN
  81. C
  82. C**** Les Includes
  83. C
  84. -INC SMCOORD
  85.  
  86. -INC PPARAM
  87. -INC CCOPTIO
  88. -INC SMCHPOI
  89. POINTEUR MPROC.MPOVAL
  90. -INC SMCHAML
  91. -INC SMLENTI
  92. -INC SMELEME
  93. -INC SMLMOTS
  94. POINTEUR MLMCOM.MLMOTS
  95. C
  96. C**** Initialisation des parametres d'erreur déjà faite, i.e.
  97. C
  98. C MESERR = ' '
  99. C MOTERR(1:40) = MESERR(1:40)
  100. C
  101. C
  102. C**** KRIPAD pour la correspondance global/local de centre
  103. C
  104. CALL KRIPAD(ICEN,MLENT1)
  105. C
  106. C**** MLENTI1 a MCORD.XCOORD(/1)/(IDIM+1) elements
  107. C
  108. C Si i est le numero global d'un noeud de ICEN,
  109. C MLENT1.LECT(i) contient sa position, i.e.
  110. C
  111. C I = numero global du noeud centre
  112. C MLENT1.LECT(i) = numero local du noeud centre
  113. C
  114. C MLENT1 déjà activé, i.e.
  115. C
  116. C SEGACT MLENT1
  117. C
  118. C**** Activation de CHPOINTs
  119. C
  120. CALL LICHT(IROC, MPROC, TYPE, IGEOM)
  121. C SEGACT MPROC
  122. C
  123. C**** Le MELEME FACEL
  124. C
  125. IPT1 = IFACEL
  126. IPT2 = IFACE
  127. SEGACT IPT1
  128. SEGACT IPT2
  129. NFAC = IPT1.NUM(/2)
  130. C
  131. SEGACT MLMCOM
  132. C
  133. C**** Creation de MCHAMLs contenant les etats gauche et droite,
  134. C
  135. C**** Densité
  136. C
  137. N1 = 1
  138. N3 = 6
  139. L1 = 15
  140. SEGINI MCHEL2
  141. IROF = MCHEL2
  142. MCHEL2.IMACHE(1) = IFACEL
  143. MCHEL2.TITCHE = ' '
  144. MCHEL2.CONCHE(1) = ' '
  145. C
  146. C**** Valeurs independente du repére, i.e.
  147. C
  148. MCHEL2.INFCHE(1,1) = 0
  149. MCHEL2.INFCHE(1,3) = NIFOUR
  150. MCHEL2.INFCHE(1,4) = 0
  151. MCHEL2.INFCHE(1,5) = 0
  152. MCHEL2.INFCHE(1,6) = 1
  153. MCHEL2.IFOCHE = IFOUR
  154. N2 = MLMCOM.MOTS(/2)
  155. SEGINI MCHAM1
  156. MCHEL2.ICHAML(1) = MCHAM1
  157. SEGDES MCHEL2
  158. N1EL = NFAC
  159. N1PTEL = 3
  160. N2EL = 0
  161. N2PTEL = 0
  162. DO I1=1,N2,1
  163. MCHAM1.NOMCHE(I1) = MLMCOM.MOTS(I1)
  164. MCHAM1.TYPCHE(I1) = 'REAL*8 '
  165. SEGINI MELVA1
  166. MCHAM1.IELVAL(I1) = MELVA1
  167. ENDDO
  168. C
  169. C**** Boucle sur le faces
  170. C
  171. DO NLCF = 1, NFAC
  172. C
  173. C******* NLCF = numero local du centre de face
  174. C NGCF = numero global du centre de face
  175. C NGCEG = numero global du centre ELT "gauche"
  176. C NLCEG = numero local du centre ELT "gauche"
  177. C NGCED = numero global du centre ELT "droite"
  178. C NLCED = numero local du centre ELT "droite"
  179. C
  180. NGCEG = IPT1.NUM(1,NLCF)
  181. NGCF = IPT1.NUM(2,NLCF)
  182. NGCED = IPT1.NUM(3,NLCF)
  183. NLCEG = MLENT1.LECT(NGCEG)
  184. NLCED = MLENT1.LECT(NGCED)
  185. C
  186. C******* TEST: IPT2.NUM(1,NLCF) = IPT1.NUM(2,NLCF)
  187. C
  188. NGCF1 = IPT2.NUM(1,NLCF)
  189. IF(NGCF1 .NE. NGCF) THEN
  190. LOGAN = .TRUE.
  191. MESERR(1:40) = 'PRET, subroutine pre411.eso '
  192. GOTO 9999
  193. ENDIF
  194. DO I1 = 1, N2, 1
  195. IF(NGCEG .EQ. NGCED)THEN
  196. ROG = MPROC.VPOCHA(NLCEG , I1)
  197. C
  198. C********** Son etat droite
  199. C
  200. ROD = ROG
  201. ELSE
  202. C
  203. C************* Etat gauche
  204. C
  205. ROG = MPROC.VPOCHA(NLCEG, I1)
  206. C
  207. C********** Etat droit
  208. C
  209. ROD = MPROC.VPOCHA(NLCED, I1)
  210. ENDIF
  211. MELVA1=MCHAM1.IELVAL(I1)
  212. MELVA1.VELCHE(1,NLCF) = ROG
  213. MELVA1.VELCHE(3,NLCF) = ROD
  214. ENDDO
  215. ENDDO
  216. C
  217. C**** Desactivation des SEGMENTs
  218. C
  219. SEGDES IPT1
  220. SEGDES IPT2
  221. DO I1 = 1, N2, 1
  222. MELVA1=MCHAM1.IELVAL(I1)
  223. SEGDES MELVA1
  224. ENDDO
  225. SEGDES MCHAM1
  226. C
  227. SEGDES MPROC
  228. C
  229. SEGSUP MLENT1
  230. SEGDES MLMCOM
  231. C
  232. 9999 CONTINUE
  233. C
  234. RETURN
  235. END
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  

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