Télécharger pre212.eso

Retour à la liste

Numérotation des lignes :

pre212
  1. C PRE212 SOURCE OF166741 24/10/03 21:15:30 12022
  2.  
  3. SUBROUTINE PRE212(ICEN,IFACE,IFACEL,INORM,IROC,IVITC,IPC,
  4. & IYC,IGAMC,
  5. & IROF,IVITF,IPF,IYF,IGAMF,
  6. & LOGAN,LOGNEG,LOGBOR,MESERR,VALER,VAL1,VAL2)
  7. C************************************************************************
  8. C
  9. C PROJET : CASTEM 2000
  10. C
  11. C NOM : PRE211
  12. C
  13. C DESCRIPTION : Voir PRE21
  14. C
  15. C Cas Deux Dimensions
  16. C
  17. C MultiEspeces
  18. C
  19. C 1er ordre en espace, 1re ordre en temps
  20. C
  21. C Creations des objets MCHAML IROF, IVITF, IPF,IYF,
  22. C IGAMF
  23. C
  24. C
  25. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
  26. C
  27. C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/TTMF
  28. C
  29. C************************************************************************
  30. C
  31. C
  32. C APPELES (Outils) : KRIPAD, LICHT
  33. C
  34. C APPELES (Calcul) : AUCUN
  35. C
  36. C
  37. C************************************************************************
  38. C
  39. C ENTREES
  40. C
  41. C 1) Pointeurs de MELEMEs et de CHPOINTs de la table DOMAINE
  42. C
  43. C ICEN : MELEME de 'POI1' SPG des CENTRES
  44. C
  45. C IFACE : MELEME de 'POI1' SPG des FACES
  46. C
  47. C IFACEL : MELEME de 'SEG3' avec
  48. C CENTRE d'Elt "gauche"
  49. C CENTRE de Face
  50. C CENTRE d'Elt "droite"
  51. C
  52. C N.B. = IFACE.NUM(i,1) = IFACEL.NUM(i,2)
  53. C
  54. C INORM : CHPOINT des cosinus directeurs de normales aux faces
  55. C
  56. C 2) Pointeurs des CHPOINTs
  57. C
  58. C IROC : CHPOINT "CENTRE" contenant la masse volumique RHO
  59. C
  60. C IVITC : CHPOINT "CENTRE" contenant la vitesse UX, UY ;
  61. C
  62. C IPC : CHPOINT "CENTRE" contenat la pression P;
  63. C
  64. C IYC : CHPOINT "CENTRE" contenat les fractions massiques;
  65. C
  66. C IGAMC : CHPOINT "CENTRE" contenat le "Gamma" du gaz
  67. C
  68. C
  69. C SORTIES
  70. C
  71. C
  72. C IROF : MCHAML defini sur le MELEME de pointeur IFACEL,
  73. C contenant la masse volumique RHO
  74. C
  75. C IVITF : MCHAML defini sur le MELEME de pointeur IFACEL,
  76. C contenant la vitesse UN, UT dans le repaire local
  77. C (n,t) et defini sur le MELEME de pointeur IFACE,
  78. C contenant les cosinus directeurs du repere local
  79. C
  80. C IPF : MCHAML defini sur le MELEME de pointeur IFACEL,
  81. C contenant la pression P
  82. C
  83. C IYF : MCHAML defini sur le MELEME de pointeur IFACEL,
  84. C contenant les fractions massiques
  85. C
  86. C IGAMF : MCHAML defini sur le MELEME de pointeur IFACEL,
  87. C contenant le "gamma" du gaz
  88. C
  89. C LOGAN : anomalie detectee (changement de la convention dans
  90. C la table domaine)
  91. C
  92. C LOGNEG : (LOGICAL): si .TRUE. une pression ou une densité
  93. C negative a été detectée -> en interactif le
  94. C programme s'arrete en GIBIANE
  95. C (erreur stocké en MESERR et VALER)
  96. C
  97. C LOGBOR : (LOGICAL): si .TRUE. un gamma a ete detecte
  98. C dehor 1 et 3 (sa valeur stockée en MESERR et VALER;
  99. C en VAL1 et en VAL2 on stocke 1.0 et 3.0)
  100. C
  101. C MESERR
  102. C VALER
  103. C VAL1,
  104. C VAL2 : pour les messages d'erreur
  105. C
  106. C************************************************************************
  107. C
  108. C HISTORIQUE (Anomalies et modifications éventuelles)
  109. C
  110. C HISTORIQUE : Créée le 11.6.98.
  111. C
  112. C************************************************************************
  113. C
  114. C
  115. C ATTENTION: Cet programme marche si le MAILLAGE est convex;
  116. C si non il faut changer l'argoritme de calcul de
  117. C l'orientation des normales aux faces.
  118. C
  119. C
  120. C************************************************************************
  121. C
  122. C**** Les variables
  123. C
  124. IMPLICIT INTEGER(I-N)
  125. INTEGER ICEN, IFACE, IFACEL, IROC, IVITC, IPC ,IYC, IGAMC, INORM
  126. & , IROF, IVITF, IPF, IYF, IGAMF, NESP
  127. & , IGEOM, NFAC,IDIMP1,INDCEL
  128. & , N1PTEL, N1EL, N2PTEL, N2EL, N2, N1, N3, L1
  129. & , NLCF, NGCF, NGCEG, NLCEG, NGCED, NLCED, NGCF1, I1
  130. REAL*8 VALER, VAL1, VAL2,XG,YG,ZG,XC,YC,ZC
  131. & ,DXG, DYG, DZG,ORIENT
  132. & , CNX, CNY, CNZ, CTX, CTY, CTZ, CVX, CVY, CVZ
  133. & , ROG, PG, GAMG, UXG, UYG, UZG, UNG, UTG, UVG
  134. & , ROD, PD, GAMD, UXD, UYD, UZD, UND, UTD, UVD
  135. CHARACTER*(40) MESERR
  136. CHARACTER*(8) TYPE
  137. LOGICAL LOGAN,LOGNEG, LOGBOR
  138. C
  139. C**** Les Includes
  140. C
  141. -INC SMCOORD
  142.  
  143. -INC PPARAM
  144. -INC CCOPTIO
  145. -INC SMCHPOI
  146. POINTEUR MPROC.MPOVAL, MPVITC.MPOVAL, MPPC.MPOVAL,
  147. & MPGAMC.MPOVAL, MPNORM.MPOVAL, MPYC.MPOVAL
  148. -INC SMCHAML
  149. POINTEUR MELVNX.MELVAL, MELVNY.MELVAL, MELVNZ.MELVAL,
  150. & MELT1X.MELVAL, MELT1Y.MELVAL, MELT1Z.MELVAL,
  151. & MELT2X.MELVAL, MELT2Y.MELVAL, MELT2Z.MELVAL
  152. POINTEUR MELVUN.MELVAL, MELVUT.MELVAL, MELVUV.MELVAL
  153. POINTEUR MELRO.MELVAL, MELP.MELVAL,
  154. & MELGAM.MELVAL
  155. POINTEUR MCHAMY.MCHAML
  156. -INC SMLENTI
  157. -INC SMELEME
  158. C
  159. C**** Segments des fractions massiques gauche et droit
  160. C
  161. SEGMENT FRAMAS
  162. REAL*8 FRAMG(NESP), FRAMD(NESP)
  163. ENDSEGMENT
  164. C
  165. C**** Initialisation des parametres d'erreur déjà faite, i.e.
  166. C
  167. C LOGNEG = .FALSE.
  168. C LOGBOR = .FALSE.
  169. C MESERR = ' '
  170. C MOTERR(1:40) = MESERR(1:40)
  171. C VALER = 0.0D0
  172. C VAL1 = 0.0D0
  173. C VAL2 = 0.0D0
  174. C
  175. C
  176. C**** KRIPAD pour la correspondance global/local de centre
  177. C
  178. CALL KRIPAD(ICEN,MLENT1)
  179. C
  180. C**** MLENTI1 a MCORD.XCOORD(/1)/(IDIM+1) elements
  181. C
  182. C Si i est le numero global d'un noeud de ICEN,
  183. C MLENT1.LECT(i) contient sa position, i.e.
  184. C
  185. C I = numero global du noeud centre
  186. C MLENT1.LECT(i) = numero local du noeud centre
  187. C
  188. C MLENT1 déjà activé, i.e.
  189. C
  190. C SEGACT MLENT1
  191. C
  192. C**** Activation de CHPOINTs
  193. C
  194. C densité
  195. C vitesse
  196. C pression
  197. C gamma
  198. C cosinus directeurs des normales aux surface
  199. C
  200. IDIMP1=IDIM+1
  201. CALL LICHT(IROC ,MPROC ,TYPE,IGEOM)
  202. CALL LICHT(IVITC,MPVITC,TYPE,IGEOM)
  203. CALL LICHT(IPC ,MPPC ,TYPE,IGEOM)
  204. CALL LICHT(IGAMC,MPGAMC,TYPE,IGEOM)
  205. CALL LICHT(INORM,MPNORM,TYPE,IGEOM)
  206. C
  207. C**** MPOVA1 - MPOVA5 sont déjà activés i.e.:
  208. C
  209. C SEGACT MPROC
  210. C SEGACT MPVITC
  211. C SEGACT MPPC
  212. C SEGACT MPGAMC
  213. C SEGACT MPNORM
  214. C
  215. C
  216. C**** Le MELEME FACEL
  217. C
  218. IPT1 = IFACEL
  219. IPT2 = IFACE
  220. SEGACT IPT1
  221. SEGACT IPT2
  222. NFAC = IPT1.NUM(/2)
  223. C
  224. C**** Creation de MCHAMLs contenant les etats gauche et droite,
  225. C
  226. C i.e.:
  227. C
  228. C vitesse + cosinus directors du repere local
  229. C densité
  230. C pression
  231. C gamma
  232. C
  233. C**** Cosinus directors du repere local et vitesse
  234. C
  235. C Les cosinus directeurs
  236. C
  237. N1 = 2
  238. N3 = 6
  239. L1 = 28
  240. SEGINI MCHEL1
  241. IVITF = MCHEL1
  242. MCHEL1.TITCHE = 'U '
  243. MCHEL1.IMACHE(1) = IFACE
  244. MCHEL1.IMACHE(2) = IFACEL
  245. MCHEL1.CONCHE(1) = '(n,t,v)in(x,y,z)'
  246. MCHEL1.CONCHE(2) = ' U in (n,t,v) '
  247. C
  248. C**** Valeurs des cosinus definies par respect au repair global, i.e.
  249. C
  250. MCHEL1.INFCHE(1,1) = 2
  251. MCHEL1.INFCHE(1,3) = NIFOUR
  252. MCHEL1.INFCHE(1,4) = 0
  253. MCHEL1.INFCHE(1,5) = 0
  254. MCHEL1.INFCHE(1,6) = 1
  255. MCHEL1.IFOCHE = IFOUR
  256. C
  257. C**** Valeurs de vitesse definies par respect au repair local, i.e.
  258. C
  259. MCHEL1.INFCHE(2,1) = 1
  260. MCHEL1.INFCHE(2,3) = NIFOUR
  261. MCHEL1.INFCHE(2,4) = 0
  262. MCHEL1.INFCHE(2,5) = 0
  263. MCHEL1.INFCHE(2,6) = 1
  264. C
  265. C**** Le cosinus directeurs
  266. C
  267. N1PTEL = 1
  268. N1EL = NFAC
  269. N2PTEL = 0
  270. N2EL = 0
  271. C
  272. C**** MCHAML a N2 composantes:
  273. C
  274. C cosinus directeurs du repere local (n,t1,t2)=(n,t,v)
  275. C
  276. C IDIM = 3 -> 9 composantes
  277. C
  278. N2 = 9
  279. SEGINI MCHAM1
  280. MCHEL1.ICHAML(1) = MCHAM1
  281. MCHAM1.NOMCHE(1) = 'NX '
  282. MCHAM1.NOMCHE(2) = 'NY '
  283. MCHAM1.NOMCHE(3) = 'NZ '
  284. MCHAM1.NOMCHE(4) = 'TX '
  285. MCHAM1.NOMCHE(5) = 'TY '
  286. MCHAM1.NOMCHE(6) = 'TZ '
  287. MCHAM1.NOMCHE(7) = 'VX '
  288. MCHAM1.NOMCHE(8) = 'VY '
  289. MCHAM1.NOMCHE(9) = 'VZ '
  290. MCHAM1.TYPCHE(1) = 'REAL*8 '
  291. MCHAM1.TYPCHE(2) = 'REAL*8 '
  292. MCHAM1.TYPCHE(3) = 'REAL*8 '
  293. MCHAM1.TYPCHE(4) = 'REAL*8 '
  294. MCHAM1.TYPCHE(5) = 'REAL*8 '
  295. MCHAM1.TYPCHE(6) = 'REAL*8 '
  296. MCHAM1.TYPCHE(7) = 'REAL*8 '
  297. MCHAM1.TYPCHE(8) = 'REAL*8 '
  298. MCHAM1.TYPCHE(9) = 'REAL*8 '
  299. SEGINI MELVNX
  300. SEGINI MELVNY
  301. SEGINI MELVNZ
  302. SEGINI MELT1X
  303. SEGINI MELT1Y
  304. SEGINI MELT1Z
  305. SEGINI MELT2X
  306. SEGINI MELT2Y
  307. SEGINI MELT2Z
  308. MCHAM1.IELVAL(1) = MELVNX
  309. MCHAM1.IELVAL(2) = MELVNY
  310. MCHAM1.IELVAL(3) = MELVNZ
  311. MCHAM1.IELVAL(4) = MELT1X
  312. MCHAM1.IELVAL(5) = MELT1Y
  313. MCHAM1.IELVAL(6) = MELT1Z
  314. MCHAM1.IELVAL(7) = MELT2X
  315. MCHAM1.IELVAL(8) = MELT2Y
  316. MCHAM1.IELVAL(9) = MELT2Z
  317. SEGDES MCHAM1
  318. C
  319. C**** Vitesse
  320. C
  321. N1EL = NFAC
  322. N1PTEL = 3
  323. N2EL = 0
  324. N2PTEL = 0
  325. C
  326. C**** MCHAML a N2 composantes:
  327. C
  328. C
  329. C IDIM = 3 -> 3 composantes
  330. C
  331. N2 = 3
  332. SEGINI MCHAM1
  333. MCHEL1.ICHAML(2) = MCHAM1
  334. SEGDES MCHEL1
  335. MCHAM1.NOMCHE(1) = 'UN '
  336. MCHAM1.NOMCHE(2) = 'UT '
  337. MCHAM1.NOMCHE(3) = 'UV '
  338. MCHAM1.TYPCHE(1) = 'REAL*8 '
  339. MCHAM1.TYPCHE(2) = 'REAL*8 '
  340. MCHAM1.TYPCHE(3) = 'REAL*8 '
  341. SEGINI MELVUN
  342. SEGINI MELVUT
  343. SEGINI MELVUV
  344. MCHAM1.IELVAL(1) = MELVUN
  345. MCHAM1.IELVAL(2) = MELVUT
  346. MCHAM1.IELVAL(3) = MELVUV
  347. SEGDES MCHAM1
  348. C
  349. C**** Densite
  350. C
  351. N1 = 1
  352. N3 = 6
  353. L1 = 15
  354. SEGINI MCHEL2
  355. IROF = MCHEL2
  356. MCHEL2.IMACHE(1) = IFACEL
  357. MCHEL2.TITCHE = 'RO '
  358. MCHEL2.CONCHE(1) = ' '
  359. C
  360. C**** Valeurs independente du repére, i.e.
  361. C
  362. MCHEL2.INFCHE(1,1) = 0
  363. MCHEL2.INFCHE(1,3) = NIFOUR
  364. MCHEL2.INFCHE(1,4) = 0
  365. MCHEL2.INFCHE(1,5) = 0
  366. MCHEL2.INFCHE(1,6) = 1
  367. MCHEL2.IFOCHE = IFOUR
  368. N2 = 1
  369. SEGINI MCHAM1
  370. MCHEL2.ICHAML(1) = MCHAM1
  371. SEGDES MCHEL2
  372. MCHAM1.NOMCHE(1) = 'SCAL '
  373. MCHAM1.TYPCHE(1) = 'REAL*8 '
  374. SEGINI MELRO
  375. MCHAM1.IELVAL(1) = MELRO
  376. SEGDES MCHAM1
  377. C
  378. C**** Pression
  379. C
  380. MCHEL1 = IROF
  381. SEGINI, MCHEL2 = MCHEL1
  382. IPF = MCHEL2
  383. MCHEL2.TITCHE = 'P '
  384. C
  385. C**** MCHAM1 = MCHAML de la densite
  386. C
  387. SEGINI, MCHAM2 = MCHAM1
  388. MCHEL2.ICHAML(1) = MCHAM2
  389. SEGDES MCHEL2
  390. SEGINI MELP
  391. MCHAM2.IELVAL(1) = MELP
  392. SEGDES MCHAM2
  393. C
  394. C**** Les fractions massiques: le CHPOINT et le relative CHAMELEM
  395. C
  396. MCHPO1 = IYC
  397. SEGACT MCHPO1
  398. MSOUP1 = MCHPO1.IPCHP(1)
  399. SEGDES MCHPO1
  400. SEGACT MSOUP1
  401. NESP = MSOUP1.NOCOMP(/2)
  402. MPYC = MSOUP1.IPOVAL
  403. SEGACT MPYC
  404. C
  405. MCHEL1 = IROF
  406. SEGINI, MCHEL2 = MCHEL1
  407. IYF = MCHEL2
  408. MCHEL2.TITCHE = 'Y '
  409. N2 = NESP
  410. SEGINI MCHAMY
  411. MCHEL2.ICHAML(1) = MCHAMY
  412. SEGDES MCHEL2
  413. N1EL = NFAC
  414. N1PTEL = 3
  415. N2EL = 0
  416. N2PTEL = 0
  417. DO I1 = 1, NESP
  418. SEGINI MELVA1
  419. MCHAMY.IELVAL(I1) = MELVA1
  420. MCHAMY.NOMCHE(I1) = MSOUP1.NOCOMP(I1)
  421. MCHAMY.TYPCHE(I1) = 'REAL*8 '
  422. ENDDO
  423. C
  424. SEGDES MSOUP1
  425. SEGINI FRAMAS
  426. C
  427. C**** On laisse actives les segments pointes par
  428. C MPYC, MCHAMY,FRAMAS, et le MELVALs relatifs aux
  429. C fractions massiques
  430. C
  431. C
  432. C
  433. C**** Gamma
  434. C
  435. MCHEL1 = IROF
  436. SEGINI, MCHEL2 = MCHEL1
  437. IGAMF = MCHEL2
  438. MCHEL2.TITCHE = 'GAMMA '
  439. C
  440. C**** MCHAM1 = MCHAML de la densite
  441. C
  442. SEGINI, MCHAM2 = MCHAM1
  443. MCHEL2.ICHAML(1) = MCHAM2
  444. SEGDES MCHEL2
  445. SEGINI MELGAM
  446. MCHAM2.IELVAL(1) = MELGAM
  447. SEGDES MCHAM2
  448. C
  449. C**** Recapitulatif
  450. C
  451. C MELVNX, MELVNY, MELVNZ
  452. C MELT1X, MELT1Y, MELT1Z
  453. C MELT2X, MELT2Y, MELT2Z
  454. C
  455. C MELVUN, MELVUT, MELVUV -> vitesse
  456. C
  457. C MELRO -> densite
  458. C
  459. C MELP -> pression
  460. C
  461. C MELGAM -> gamma
  462. C
  463. C MPROC -> densite
  464. C
  465. C MPVITC -> vitesse
  466. C
  467. C MPPC -> pression
  468. C
  469. C MPGAMC -> gamma
  470. C
  471. C MPNORM -> normales aux faces
  472. C
  473. C**** Boucle sur le faces
  474. C
  475. DO NLCF = 1, NFAC
  476. C
  477. C******* NLCF = numero local du centre de face
  478. C NGCF = numero global du centre de face
  479. C NGCEG = numero global du centre ELT "gauche"
  480. C NLCEG = numero local du centre ELT "gauche"
  481. C NGCED = numero global du centre ELT "droite"
  482. C NLCED = numero local du centre ELT "droite"
  483. C
  484. NGCEG = IPT1.NUM(1,NLCF)
  485. NGCF = IPT1.NUM(2,NLCF)
  486. NGCED = IPT1.NUM(3,NLCF)
  487. NLCEG = MLENT1.LECT(NGCEG)
  488. NLCED = MLENT1.LECT(NGCED)
  489. C
  490. C******* TEST: IPT2.NUM(1,NLCF) = IPT1.NUM(2,NLCF)
  491. C
  492. NGCF1 = IPT2.NUM(1,NLCF)
  493. IF( NGCF1 .NE. NGCF) THEN
  494. LOGAN = .TRUE.
  495. MESERR(1:40) = 'PRET, subroutine pre211.eso '
  496. GOTO 9999
  497. ENDIF
  498. C
  499. C******* Cosinus directeurs des NORMALES aux faces
  500. C
  501. C On impose que les normales sont direct "Gauche" -> "Centre"
  502. C
  503. INDCEL = (NGCEG-1)*IDIMP1
  504. XG = XCOOR(INDCEL+1)
  505. YG = XCOOR(INDCEL+2)
  506. ZG = XCOOR(INDCEL+3)
  507. INDCEL = (NGCF-1)*IDIMP1
  508. XC = XCOOR(INDCEL + 1)
  509. YC = XCOOR(INDCEL + 2)
  510. ZC = XCOOR(INDCEL+3)
  511. DXG = XC - XG
  512. DYG = YC - YG
  513. DZG = ZC - ZG
  514. C
  515. C******* On calcule le sign du pruduit scalare
  516. C (Normales de Castem) * (vecteur "gauche" -> "centre")
  517. CNX = MPNORM.VPOCHA(NLCF,7)
  518. CNY = MPNORM.VPOCHA(NLCF,8)
  519. CNZ = MPNORM.VPOCHA(NLCF,9)
  520. ORIENT = CNX * DXG + CNY * DYG + CNZ * DZG
  521. ORIENT = SIGN(1.0D0,ORIENT)
  522. IF(ORIENT .NE. 1.0D0)THEN
  523. LOGAN = .TRUE.
  524. MESERR(1:30)=
  525. & 'PRET , subroutine pre121.eso. '
  526. GOTO 9999
  527. ENDIF
  528. CNX = CNX * ORIENT
  529. CNY = CNY * ORIENT
  530. CNZ = CNZ * ORIENT
  531. C
  532. C********** Cosinus directeurs de tangente 1
  533. C
  534. CTX = MPNORM.VPOCHA(NLCF,1) * ORIENT
  535. CTY = MPNORM.VPOCHA(NLCF,2) * ORIENT
  536. CTZ = MPNORM.VPOCHA(NLCF,3) * ORIENT
  537. C
  538. C********** Cosinus directeurs de tangente 2
  539. C
  540. CVX = MPNORM.VPOCHA(NLCF,4) * ORIENT
  541. CVY = MPNORM.VPOCHA(NLCF,5) * ORIENT
  542. CVZ = MPNORM.VPOCHA(NLCF,6) * ORIENT
  543. C
  544. C
  545. C******* Les autres MELVALs
  546. C
  547. C
  548. C******* N.B.: On suppose qu'on a déjà controlle RO, P > 0
  549. C GAMMA \in (1,3)
  550. C Si non il faut le faire, en utlisant LOGBOR,
  551. C LOGNEG, VALER, VAL1, VAL2
  552. C
  553. C
  554. C
  555. C******* NGCEG = NGCED -> Mur
  556. C
  557. IF( NGCEG .EQ. NGCED)THEN
  558. ROG = MPROC.VPOCHA(NLCEG , 1)
  559. PG = MPPC.VPOCHA(NLCEG, 1)
  560. GAMG = MPGAMC.VPOCHA(NLCEG, 1)
  561. UXG = MPVITC.VPOCHA(NLCEG , 1)
  562. UYG = MPVITC.VPOCHA(NLCEG , 2)
  563. UZG = MPVITC.VPOCHA(NLCEG , 3)
  564. UNG = UXG * CNX + UYG * CNY + UZG * CNZ
  565. UTG = UXG * CTX + UYG * CTY + UZG * CTZ
  566. UVG = UXG * CVX + UYG * CVY + UZG * CVZ
  567. C
  568. C********** Son etat droite
  569. C
  570. ROD = ROG
  571. PD = PG
  572. GAMD = GAMG
  573. UND = -1.0D0 * UNG
  574. UTD = UTG
  575. UVD = UVG
  576. C
  577. C********** Les fractiones massiques
  578. C
  579. DO I1 = 1, NESP
  580. FRAMAS.FRAMG(I1) = MPYC.VPOCHA(NLCEG,I1)
  581. FRAMAS.FRAMD(I1) = FRAMAS.FRAMG(I1)
  582. ENDDO
  583. C
  584. C************* Fin cas mur
  585. C
  586. ELSE
  587. C
  588. C************* Etat gauche
  589. C
  590. ROG = MPROC.VPOCHA(NLCEG, 1)
  591. PG = MPPC.VPOCHA(NLCEG, 1)
  592. GAMG = MPGAMC.VPOCHA(NLCEG, 1)
  593. UXG = MPVITC.VPOCHA(NLCEG , 1)
  594. UYG = MPVITC.VPOCHA(NLCEG , 2)
  595. UZG = MPVITC.VPOCHA(NLCEG , 3)
  596. UNG = UXG * CNX + UYG * CNY + UZG * CNZ
  597. UTG = UXG * CTX + UYG * CTY + UZG * CTZ
  598. UVG = UXG * CVX + UYG * CVY + UZG * CVZ
  599. C
  600. C********** Etat droit
  601. C
  602. ROD = MPROC.VPOCHA(NLCED,1)
  603. PD = MPPC.VPOCHA(NLCED,1)
  604. GAMD = MPGAMC.VPOCHA(NLCED,1)
  605. C
  606. C************* On suppose qu'on a déjà controlle ROG, PG > 0
  607. C Si non il faut le faire!!!
  608. C
  609. UXD = MPVITC.VPOCHA(NLCED,1)
  610. UYD = MPVITC.VPOCHA(NLCED,2)
  611. UZD = MPVITC.VPOCHA(NLCED,3)
  612. UND = UXD * CNX + UYD * CNY + UZD * CNZ
  613. UTD = UXD * CTX + UYD * CTY + UZD * CTZ
  614. UVD = UXD * CVX + UYD * CVY + UZD * CVZ
  615. C
  616. C********** Les fractions massiques
  617. C
  618. DO I1 = 1, NESP
  619. FRAMAS.FRAMG(I1) = MPYC.VPOCHA(NLCEG,I1)
  620. FRAMAS.FRAMD(I1) = MPYC.VPOCHA(NLCED,I1)
  621. ENDDO
  622. ENDIF
  623. C
  624. C************* Les MELVALs
  625. C
  626. MELRO.VELCHE(1,NLCF) = ROG
  627. MELRO.VELCHE(3,NLCF) = ROD
  628. MELP.VELCHE(1,NLCF) = PG
  629. MELP.VELCHE(3,NLCF) = PD
  630. MELGAM.VELCHE(1,NLCF) = GAMG
  631. MELGAM.VELCHE(3,NLCF) = GAMD
  632. MELVUN.VELCHE(1,NLCF) = UNG
  633. MELVUN.VELCHE(3,NLCF) = UND
  634. MELVUT.VELCHE(1,NLCF) = UTG
  635. MELVUT.VELCHE(3,NLCF) = UTD
  636. MELVUV.VELCHE(1,NLCF) = UVG
  637. MELVUV.VELCHE(3,NLCF) = UVD
  638. MELVNX.VELCHE(1,NLCF) = CNX
  639. MELVNY.VELCHE(1,NLCF) = CNY
  640. MELVNZ.VELCHE(1,NLCF) = CNZ
  641. MELT1X.VELCHE(1,NLCF) = CTX
  642. MELT1Y.VELCHE(1,NLCF) = CTY
  643. MELT1Z.VELCHE(1,NLCF) = CTZ
  644. MELT2X.VELCHE(1,NLCF) = CVX
  645. MELT2Y.VELCHE(1,NLCF) = CVY
  646. MELT2Z.VELCHE(1,NLCF) = CVZ
  647. DO I1 = 1, NESP
  648. MELVA1 = MCHAMY.IELVAL(I1)
  649. MELVA1.VELCHE(1,NLCF) = FRAMAS.FRAMG(I1)
  650. MELVA1.VELCHE(3,NLCF) = FRAMAS.FRAMD(I1)
  651. ENDDO
  652. ENDDO
  653. C
  654. C**** Desactivation des SEGMENTs
  655. C
  656. SEGDES IPT1
  657. SEGDES IPT2
  658. C
  659. SEGDES MPROC
  660. SEGDES MPVITC
  661. SEGDES MPPC
  662. SEGDES MPGAMC
  663. SEGDES MPNORM
  664. C
  665. SEGDES MELRO
  666. SEGDES MELP
  667. SEGDES MELGAM
  668. SEGDES MELVUN
  669. SEGDES MELVUT
  670. SEGDES MELVUV
  671. SEGDES MELVNX
  672. SEGDES MELVNY
  673. SEGDES MELVNZ
  674. SEGDES MELT1X
  675. SEGDES MELT1Y
  676. SEGDES MELT1Z
  677. SEGDES MELT2X
  678. SEGDES MELT2Y
  679. SEGDES MELT2Z
  680. C
  681. SEGDES MPYC
  682. DO I1 = 1, NESP
  683. MELVA1 = MCHAMY.IELVAL(I1)
  684. SEGDES MELVA1
  685. ENDDO
  686. SEGDES MCHAMY
  687. SEGSUP FRAMAS
  688. C
  689. C**** Destruction du MELNTI correspondance local/global
  690. C
  691. SEGSUP MLENT1
  692. C
  693. 9999 CONTINUE
  694. C
  695. RETURN
  696. END
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  

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