Télécharger pre411.eso

Retour à la liste

Numérotation des lignes :

pre411
  1. C PRE411 SOURCE CB215821 20/11/25 13:36:30 10792
  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
  70. C**** Variables de COOPTIO
  71. C
  72. C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  73. C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ
  74. C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES
  75. C & ,IECHO, IIMPI, IOSPI
  76. C & ,IDIM
  77. CC & ,MCOORD
  78. C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
  79. C & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
  80. C & ,NORINC,NORVAL,NORIND,NORVAD
  81. C & ,NUCROU, IPSAUV
  82. C
  83. C**** Les variables
  84. C
  85. IMPLICIT INTEGER(I-N)
  86. INTEGER ICEN, IFACE, IFACEL, IROC
  87. & , IROF
  88. & , IGEOM, NFAC
  89. & , N1PTEL, N1EL, N2PTEL, N2EL, N2, N1, N3, L1
  90. & , NLCF, NGCF, NGCEG, NLCEG, NGCED, NLCED, NGCF1, I1
  91. REAL*8 ROG, ROD
  92. CHARACTER*(40) MESERR
  93. CHARACTER*(8) TYPE
  94. LOGICAL LOGAN
  95. C
  96. C**** Les Includes
  97. C
  98. -INC SMCOORD
  99.  
  100. -INC PPARAM
  101. -INC CCOPTIO
  102. -INC SMCHPOI
  103. POINTEUR MPROC.MPOVAL
  104. -INC SMCHAML
  105. -INC SMLENTI
  106. -INC SMELEME
  107. -INC SMLMOTS
  108. POINTEUR MLMCOM.MLMOTS
  109. C
  110. C**** Initialisation des parametres d'erreur déjà faite, i.e.
  111. C
  112. C MESERR = ' '
  113. C MOTERR(1:40) = MESERR(1:40)
  114. C
  115. C
  116. C**** KRIPAD pour la correspondance global/local de centre
  117. C
  118. CALL KRIPAD(ICEN,MLENT1)
  119. C
  120. C**** MLENTI1 a MCORD.XCOORD(/1)/(IDIM+1) elements
  121. C
  122. C Si i est le numero global d'un noeud de ICEN,
  123. C MLENT1.LECT(i) contient sa position, i.e.
  124. C
  125. C I = numero global du noeud centre
  126. C MLENT1.LECT(i) = numero local du noeud centre
  127. C
  128. C MLENT1 déjà activé, i.e.
  129. C
  130. C SEGACT MLENT1
  131. C
  132. C**** Activation de CHPOINTs
  133. C
  134. CALL LICHT(IROC, MPROC, TYPE, IGEOM)
  135. C SEGACT MPROC
  136. C
  137. C**** Le MELEME FACEL
  138. C
  139. IPT1 = IFACEL
  140. IPT2 = IFACE
  141. SEGACT IPT1
  142. SEGACT IPT2
  143. NFAC = IPT1.NUM(/2)
  144. C
  145. SEGACT MLMCOM
  146. C
  147. C**** Creation de MCHAMLs contenant les etats gauche et droite,
  148. C
  149. C**** Densité
  150. C
  151. N1 = 1
  152. N3 = 6
  153. L1 = 15
  154. SEGINI MCHEL2
  155. IROF = MCHEL2
  156. MCHEL2.IMACHE(1) = IFACEL
  157. MCHEL2.TITCHE = ' '
  158. MCHEL2.CONCHE(1) = ' '
  159. C
  160. C**** Valeurs independente du repére, i.e.
  161. C
  162. MCHEL2.INFCHE(1,1) = 0
  163. MCHEL2.INFCHE(1,3) = NIFOUR
  164. MCHEL2.INFCHE(1,4) = 0
  165. MCHEL2.INFCHE(1,5) = 0
  166. MCHEL2.INFCHE(1,6) = 0
  167. MCHEL2.IFOCHE = IFOUR
  168. N2 = MLMCOM.MOTS(/2)
  169. SEGINI MCHAM1
  170. MCHEL2.ICHAML(1) = MCHAM1
  171. SEGDES MCHEL2
  172. N1EL = NFAC
  173. N1PTEL = 3
  174. N2EL = 0
  175. N2PTEL = 0
  176. DO I1=1,N2,1
  177. MCHAM1.NOMCHE(I1) = MLMCOM.MOTS(I1)
  178. MCHAM1.TYPCHE(I1) = 'REAL*8 '
  179. SEGINI MELVA1
  180. MCHAM1.IELVAL(I1) = MELVA1
  181. ENDDO
  182. C
  183. C**** Boucle sur le faces
  184. C
  185. DO NLCF = 1, NFAC
  186. C
  187. C******* NLCF = numero local du centre de face
  188. C NGCF = numero global du centre de face
  189. C NGCEG = numero global du centre ELT "gauche"
  190. C NLCEG = numero local du centre ELT "gauche"
  191. C NGCED = numero global du centre ELT "droite"
  192. C NLCED = numero local du centre ELT "droite"
  193. C
  194. NGCEG = IPT1.NUM(1,NLCF)
  195. NGCF = IPT1.NUM(2,NLCF)
  196. NGCED = IPT1.NUM(3,NLCF)
  197. NLCEG = MLENT1.LECT(NGCEG)
  198. NLCED = MLENT1.LECT(NGCED)
  199. C
  200. C******* TEST: IPT2.NUM(1,NLCF) = IPT1.NUM(2,NLCF)
  201. C
  202. NGCF1 = IPT2.NUM(1,NLCF)
  203. IF(NGCF1 .NE. NGCF) THEN
  204. LOGAN = .TRUE.
  205. MESERR(1:40) = 'PRET, subroutine pre411.eso '
  206. GOTO 9999
  207. ENDIF
  208. DO I1 = 1, N2, 1
  209. IF(NGCEG .EQ. NGCED)THEN
  210. ROG = MPROC.VPOCHA(NLCEG , I1)
  211. C
  212. C********** Son etat droite
  213. C
  214. ROD = ROG
  215. ELSE
  216. C
  217. C************* Etat gauche
  218. C
  219. ROG = MPROC.VPOCHA(NLCEG, I1)
  220. C
  221. C********** Etat droit
  222. C
  223. ROD = MPROC.VPOCHA(NLCED, I1)
  224. ENDIF
  225. MELVA1=MCHAM1.IELVAL(I1)
  226. MELVA1.VELCHE(1,NLCF) = ROG
  227. MELVA1.VELCHE(3,NLCF) = ROD
  228. ENDDO
  229. ENDDO
  230. C
  231. C**** Desactivation des SEGMENTs
  232. C
  233. SEGDES IPT1
  234. SEGDES IPT2
  235. DO I1 = 1, N2, 1
  236. MELVA1=MCHAM1.IELVAL(I1)
  237. SEGDES MELVA1
  238. ENDDO
  239. SEGDES MCHAM1
  240. C
  241. SEGDES MPROC
  242. C
  243. SEGSUP MLENT1
  244. SEGDES MLMCOM
  245. C
  246. 9999 CONTINUE
  247. C
  248. RETURN
  249. END
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  

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