Télécharger pre311.eso

Retour à la liste

Numérotation des lignes :

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

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