Télécharger accro3.eso

Retour à la liste

Numérotation des lignes :

  1. C ACCRO3 SOURCE BP208322 16/11/18 21:15:04 9177
  2. SUBROUTINE ACCRO3
  3. C========================================================================
  4. C Cree la matrice de liaison entre le champ u et w
  5. C avec une formulation forte => On utilise les fonctions de forme
  6. C et on identifie le deplacement aux noeuds de la fissure
  7. c
  8. c On prend en compte les enrichissements XFEM
  9. c
  10. C Creation : BP, decembre 2012
  11. C Modifications : ...
  12. C
  13. C========================================================================
  14.  
  15. IMPLICIT INTEGER(I-N)
  16. IMPLICIT REAL*8 (A-H,O-Z)
  17.  
  18. -INC CCREEL
  19. -INC CCOPTIO
  20. -INC SMCOORD
  21. -INC SMELEME
  22. -INC SMRIGID
  23. -INC SMLMOTS
  24. -INC CCHAMP
  25. -INC CCGEOME
  26. -INC SMMODEL
  27. -INC SMINTE
  28. -INC SMCHAML
  29. -INC SMLREEL
  30.  
  31.  
  32. C Segment contenant les informations sur un element
  33. SEGMENT INFO
  34. INTEGER INFELL(JG)
  35. ENDSEGMENT
  36.  
  37. POINTEUR INFO1.INFO,INFO2.INFO
  38. POINTEUR MCHEX1.MCHELM
  39. external shape
  40. DATA EPSI/1.D-9/
  41. DIMENSION ICOR(6),IMEL(6),imtt(10)
  42. DIMENSION QSI(3),XPO(3)
  43.  
  44. C INITIALISATION DES INCONNUES obligatoires et facultatives
  45. PARAMETER (NOBL=3,NFAC=9)
  46. CHARACTER*4 DDLOBL(NOBL),DDLFAC(NFAC),MODDL,MODDL2
  47. CHARACTER*4 DUAOBL(NOBL),DUAFAC(NFAC)
  48.  
  49. DATA DDLOBL/'UX ','UY ','UZ '/
  50. DATA DDLFAC/'AX ','AY ','AZ ',
  51. >'B1X ','B1Y ','B1Z ',
  52. >'B2X ','B2Y ','B2Z '/
  53. DATA DUAOBL/'FX ','FY ','FZ '/
  54. DATA DUAFAC/'FAX ','FAY ','FAZ ',
  55. >'FB1X','FB1Y','FB1Z',
  56. >'FB2X','FB2Y','FB2Z'/
  57.  
  58.  
  59. c-----------------------------------------------------
  60. c Segment de travail
  61. c-----------------------------------------------------
  62. SEGMENT MTRAV
  63. REAL*8 XE2(3,NBNN2)
  64. REAL*8 SHPP1(6,NBNN1)
  65. REAL*8 XE1(3,NBNN1)
  66. INTEGER IDEJVU(NBPTS)
  67. ENDSEGMENT
  68.  
  69. c tableaux comptant le nbre d EF de chaque ddl
  70. PARAMETER(NDDLMAX=6)
  71. INTEGER NELDDL(NDDLMAX)
  72.  
  73. if(iimpi.ge.2) then
  74. write(ioimp,*) '-----------------------------------------------'
  75. write(ioimp,*) ' ENTREE dans ACCRO3'
  76. write(ioimp,*) '-----------------------------------------------'
  77. endif
  78.  
  79. c Preliminaires
  80. idim1 = idim + 1
  81. SEGACT,MCOORD*mod
  82. NBPTS = (XCOOR(/1)/idim1)
  83.  
  84. c-----------------------------------------------------
  85. c RECUPERATION DU MAILLAGE MASSIF
  86. c-----------------------------------------------------
  87. CALL LIROBJ ('MMODEL',IPMODL,1,IRETOU)
  88. IF(IERR.NE.0) RETURN
  89. MMODE1=IPMODL
  90. segact,MMODE1
  91. c Récupération du nombre de zones du modèle
  92. N1 = MMODE1.KMODEL(/1)
  93. if(N1.gt.1) write(ioimp,*) 'attention 1 seule zone a ce jour!'
  94. IMODE1 = MMODE1.KMODEL(1)
  95. segdes,MMODE1
  96. C Récupération du maillage et du numéro d'élément du modèle
  97. segact,IMODE1
  98. nele1 = IMODE1.NEFMOD
  99. IPT1 = IMODE1.IMAMOD
  100. SEGACT IPT1
  101. C Récupération du numéro d'élément du maillage, du nombre de noeuds et d'éléments
  102. iele1 = IPT1.itypel
  103. nbnn1 = IPT1.num(/1)
  104. nbel1 = IPT1.num(/2)
  105. c récupération des caractéristique EF IPT1
  106. call elquoi(nele1,0,3,IPTR1,IMODE1)
  107. segdes,IMODE1
  108. INFO = IPTR1
  109. segact,INFO
  110. mele1 = INFELL(1)
  111. MINTE1 = INFELL(11)
  112. segdes,INFO
  113.  
  114. c-----------------------------------------------------
  115. c RECUPERATION DU MAILLAGE INTERFACE
  116. c-----------------------------------------------------
  117. IPMAI2 = 0
  118. CALL LIROBJ ('MMODEL',IPMODL,0,IRETOU)
  119. IF(IERR.NE.0) RETURN
  120. if (IRETOU.EQ.1)then
  121. MMODE2=IPMODL
  122. segact,MMODE2
  123. N2 = MMODE2.KMODEL(/1)
  124. if(N2.gt.1) write(ioimp,*) 'attention 1 seule zone a ce jour!'
  125. IMODE2 = MMODE2.KMODEL(1)
  126. segdes,MMODE2
  127. segact,IMODE2
  128. nele2 = IMODE2.NEFMOD
  129. IPT2 = IMODE2.IMAMOD
  130. SEGACT IPT2
  131. c pour l'instant on dit que nele = iele (marche pour iele entre 2 et 26, voir bdata.eso)
  132. iele2 = IPT2.itypel
  133. nbnn2 = IPT2.num(/1)
  134. nbel2 = IPT2.num(/2)
  135.  
  136. c recuperation des caracteritiques de l'element
  137. c write(ioimp,*) 'appel elquoi',iele2,nele2
  138. call elquoi(nele2,0,3,IPTR2,IMODE2)
  139. 1 segdes,IMODE2
  140. INFO = IPTR2
  141. segact,INFO
  142. MINTE2 = INFELL(11)
  143. ngau2 = INFELL(6)
  144. segdes,INFO
  145. else
  146. C Dans le cas où on a un maillage en entrée
  147. CALL LIROBJ('MAILLAGE',IPMAI2,1,IRETOU)
  148. IF(IERR.NE.0) RETURN
  149. IPT2 = IPMAI2
  150. SEGACT IPT2
  151. c pour l'instant on dit que nele = iele (marche pour iele entre 2 et 26, voir bdata.eso)
  152. iele2 = IPT2.itypel
  153. nele2 = iele2
  154. if (nele2.lt.2.or.nele2.gt.26) then
  155. write(ioimp,*)'element geometrique different de l element fini'
  156. call erreur(16)
  157. endif
  158. nbnn2 = IPT2.num(/1)
  159. nbel2 = IPT2.num(/2)
  160. c SEG2
  161. if (nele2.EQ.2) ngau2 = 2
  162. c SEG3
  163. if (nele2.EQ.3) ngau2 = 3
  164. c TRI3
  165. if (nele2.EQ.4) ngau2 = 1
  166. c TRI6
  167. if (nele2.EQ.6) ngau2 = 4
  168. c QUA4
  169. if (nele2.EQ.8) ngau2 = 4
  170. c QUA8
  171. if (nele2.EQ.10) ngau2 = 9
  172. endif
  173.  
  174. call RESHPT(ngau2,nbnn2,iele2,nele2,0,IPTR2,IRET)
  175. MINTE2 = IPTR2
  176. segact,MINTE1,MINTE2
  177.  
  178.  
  179. c-----------------------------------------------------
  180. c RECHERCHE DU MCHAML ISSU MCHEX1 D ENRICHISSEMENT
  181. c-----------------------------------------------------
  182. MCHAM1=0
  183. NBENR2=0
  184. segact,IMODE1
  185. NOBMOD = IMODE1.IVAMOD(/1)
  186. IF (NOBMOD.NE.0) THEN
  187. DO 1002 iobmo1=1,NOBMOD
  188. if((IMODE1.TYMODE(iobmo1)).ne.'MCHAML') goto 1002
  189. MCHEX1 = IMODE1.IVAMOD(iobmo1)
  190. segact,MCHEX1
  191. if((MCHEX1.TITCHE).ne.'ENRICHIS') goto 1003
  192. MCHAM1 = MCHEX1.ICHAML(1)
  193. segact,MCHAM1
  194. NBENR2 = MCHAM1.IELVAL(/1)
  195. do ienr2=1,NBENR2
  196. MELVA1=MCHAM1.IELVAL(IENR2)
  197. if(MELVA1.ne.0) segact,MELVA1
  198. enddo
  199. 1003 continue
  200. segdes,MCHEX1
  201. 1002 CONTINUE
  202. ENDIF
  203.  
  204. c-------------------------------------
  205. c INITIALISATION DES OBJETS DE TRAVAIL : MTRAV et ITYMAT
  206. c-------------------------------------
  207. segini,MTRAV
  208. *bp : NTYMAT = (U ou H ou HB1 ou HB1B2)
  209. * nbre de types de matrices = NRIGEL = NTYMAT * idim
  210. c NTYMAT = 4
  211. NTYMAT = 1+NBENR2
  212.  
  213. c-------------------------------------
  214. c INITIALISATION DU MCOORD
  215. c-------------------------------------
  216. NBPTS0 = NBPTS
  217. NBPTS = NBPTS0 + ((nbel2 + 1)*idim*3)
  218. SEGADJ,MCOORD
  219. NBPTS = NBPTS0
  220. * on compte le vrai nombre de LX ajouté via NBPTS
  221.  
  222. c--------------------------------------------------------------------
  223. c INITIALISATION DU SEGMENT MRIGID
  224. c--------------------------------------------------------------------
  225. NRIGEL = NTYMAT*idim
  226. segini,MRIGID
  227. IFORIG = IFOUR
  228. MTYMAT ='RIGIDITE'
  229. c -on prepare le meleme
  230. NBSOUS = 0
  231. NBREF = 0
  232.  
  233. ityty=0
  234. c on initialise la taille matrice en fonction du type de matrice
  235. do ity=1,NTYMAT
  236. do iidim=1,idim
  237.  
  238. ityty=ityty+1
  239. COERIG(ityty) = 1.D0
  240.  
  241. * dim de la matrice RE elementaire
  242. * = 1 (LX) + 1 (UX) + nbnoeud (UX)
  243. * = 1 (LX) + 1 (AX) + nbnoeud (AX)
  244. * = 1 (LX) + 1 (AX) + 2*nbnoeud (AX+B1X)
  245. * = 1 (LX) + 1 (AX) + 3*nbnoeud (AX+B1X+B2X)
  246. nbno1 = nbnn1
  247. nenr1 = ity
  248. if(nenr1.le.2) then
  249. NLIGRP = 1 + 1 + nbno1
  250. else
  251. NLIGRP = 1 + 1 + ((nenr1-1)*nbno1)
  252. endif
  253. NLIGRD = NLIGRP
  254.  
  255. c -creation du MELEME
  256. NBNN = 2 + nbno1
  257. NBELEM=0
  258. SEGINI,MELEME
  259. c ITYPEL=28
  260. ITYPEL=22
  261. IRIGEL(1,ityty) = MELEME
  262.  
  263. c -remplissage du DESCR
  264. SEGINI,DESCR
  265. IRIGEL(3,ityty) = DESCR
  266. iddl=0
  267. c remplissage des ddl LX de la fissure
  268. iddl=iddl+1
  269. LISINC(iddl)='LX'
  270. LISDUA(iddl)='FLX'
  271. NOELEP(iddl)=1
  272. NOELED(iddl)=1
  273. c remplissage des ddl UX de la fissure (ici appelé WX) []*WX=TX
  274. iddl=iddl+1
  275. if (nenr1.eq.1) then
  276. LISINC(iddl)=DDLOBL(iidim)
  277. LISDUA(iddl)=DUAOBL(iidim)
  278. else
  279. LISINC(iddl)=DDLFAC(iidim)
  280. LISDUA(iddl)=DUAFAC(iidim)
  281. endif
  282. NOELEP(iddl)=2
  283. NOELED(iddl)=2
  284. c remplissage des ddl de la structure
  285. if (nenr1.eq.1) then
  286. do ino1=1,nbno1
  287. iddl=iddl+1
  288. LISINC(iddl)=DDLOBL(iidim)
  289. LISDUA(iddl)=DUAOBL(iidim)
  290. NOELEP(iddl)=2+ino1
  291. NOELED(iddl)=2+ino1
  292. enddo
  293. else
  294. do ini1=1,(nenr1-1)
  295. do ino1=1,nbno1
  296. iddl=iddl+1
  297. LISINC(iddl)=DDLFAC(iidim+(3*(ini1-1)))
  298. LISDUA(iddl)=DUAFAC(iidim+(3*(ini1-1)))
  299. NOELEP(iddl)=2+ino1
  300. NOELED(iddl)=2+ino1
  301. enddo
  302. enddo
  303. endif
  304. if(iimpi.ge.3) write(ioimp,*) ityty,(LISINC(iou),iou=1,NLIGRP)
  305. if(iimpi.ge.3) write(ioimp,*) ityty,(NOELEP(iou),iou=1,NLIGRP)
  306. SEGDES,DESCR
  307.  
  308. c -initialisation du XMATRI
  309. NELRIG=0
  310. SEGINI,XMATRI
  311. IRIGEL(4,ityty) = XMATRI
  312. IRIGEL(5,ityty) = NIFOUR
  313. IRIGEL(6,ityty) = 0
  314. IRIGEL(7,ityty) = 0
  315. IRIGEL(8,ityty) = 0
  316.  
  317. enddo
  318. enddo
  319.  
  320.  
  321. c----------------------------------------------------------------------
  322. c 1. RECHERCHE DES ELEMENTS DE STRUCTURE CONTENANT DES POINTS DE GAUSS
  323. c DES ELEMENTS DE LA FISSURE
  324. c 2. REMPLISSAGE DU MRIGID (XMATRI et MELEME)
  325. c----------------------------------------------------------------------
  326. iaccro=0
  327. NODES=0
  328. C
  329. c==== Boucle sur les elements de fissure ==============================
  330. DO 1100 iem2=1,nbel2
  331.  
  332. call doxe(xcoor,idim,nbnn2,ipt2.num,iem2,xe2)
  333. nbenrj = 0
  334.  
  335. c======= Boucle sur les noeuds de fissure ============================
  336. DO 1132 ino2=1,nbnn2
  337.  
  338. c on n'attache qu'une seule fois chaque noeud
  339. inode2 = IPT2.NUM(ino2,iem2)
  340. if(IDEJVU(inode2).ne.0) goto 1132
  341. IDEJVU(inode2)=1
  342. NODES=NODES+1
  343.  
  344. c récupération des coordonnees du point de gauss dans le repère global
  345. XPO(1) = xe2(1,ino2)
  346. XPO(2) = xe2(2,ino2)
  347. XPO(3) = xe2(3,ino2)
  348.  
  349. c---------- Boucle sur les elements de structure ----------------------
  350. DO 1131 iem1=1,nbel1
  351.  
  352. c si pas d'enrichissement, on travaille sur tous les elements
  353. if(MCHAM1.eq.0) goto 1133
  354. c on saute les elements non enrichi car a priori ne contiennent pas la fissure
  355. do ienr2=1,NBENR2
  356. MELVA1=MCHAM1.IELVAL(IENR2)
  357. if(MELVA1.ne.0) then
  358. do inode1=1,nbnn1
  359. if(MELVA1.IELCHE(inode1,iem1).ne.0) goto 1133
  360. enddo
  361. endif
  362. enddo
  363. goto 1131
  364. 1133 continue
  365.  
  366. c recuperation des coordonnées des noeuds de IPT1 : xe1 (dans le repère x,y,z)
  367. call doxe(xcoor,idim,nbnn1,ipt1.num,iem1,xe1)
  368.  
  369. c calcul des fonctions de formes de IPT1 au pt de Gauss de IPT2
  370. call QSIJS(xe1,iele1,nbnn1,idim,XPO,SHPP1,qsi,IRET)
  371.  
  372. c test pour savoir si PG est dans EF de IPT1
  373. DO 1130 ino1=1,NBNN1
  374. if (SHPP1(1,ino1).LT.-1.01D-7) then
  375. go to 1131
  376. endif
  377. 1130 continue
  378. c ON a trouvé : l'iem1 élément de structure contient ce noeud de fissure
  379. IDEJVU(inode2)=10
  380. iaccro=iaccro+1
  381.  
  382. c DETECTION DU TYPE D'ENRICHISSEMENT MAX DE CET ELEMENT = nbenrj
  383. DO 3001 IENR2=1,NBENR2
  384. MELVA1=MCHAM1.IELVAL(IENR2)
  385. IF(MELVA1.eq.0) GOTO 3001
  386. DO 3002 ino1=1,nbnn1
  387. MLREEL = MELVA1.IELCHE(ino1,iem1)
  388. c Test pour savoir si le noeud est enrichi
  389. IF(MLREEL.eq.0) GOTO 3002
  390. nbenrj=max(nbenrj,IENR2)
  391. 3002 continue
  392. 3001 continue
  393.  
  394. if(iimpi.ge.3) write(ioimp,*) 'EF fissure ',iem2,
  395. & ' ptdeG ',ino2,' -> EF MASSIF ',iem1,' nbenrj=',nbenrj
  396.  
  397.  
  398. c Remplissage du MRIGID
  399.  
  400. c ---Boucle sur la Partie standard et enrichie ---
  401. do 6000 ity=1,min(2,NTYMAT)
  402. c ---Boucle sur la dimension ---
  403. c rem : utile uniquement pour le meleme
  404. c (on pourrait garder le meme xmatri pour les differents iidim)
  405. do 6000 iidim=1,idim
  406.  
  407. if(ity.eq.1) then
  408. ityty = iidim
  409. else
  410. ityty = (nbenrj*idim) + iidim
  411. endif
  412. MELEME = IRIGEL(1,ityty)
  413. XMATRI = IRIGEL(4,ityty)
  414. NBELEM = NUM(/2)+1
  415. NLIGRD = RE(/1)
  416. NLIGRP = RE(/2)
  417. NELRIG = RE(/3)+1
  418. segadj,MELEME
  419. segadj,XMATRI
  420.  
  421. c Remplissage du MELEME
  422. c traitement du LX
  423. NBPTS = NBPTS + 1
  424. if(NBPTS.gt.(XCOOR(/1)/idim1)) then
  425. NBPTS0 = NBPTS
  426. NBPTS = NBPTS0 + (nbel2 + 1)
  427. SEGADJ,MCOORD
  428. NBPTS = NBPTS0
  429. endif
  430. NUM(1,NBELEM) = NBPTS
  431. XCOOR((NBPTS-1)*idim1 +1) = XCOOR((inode2-1)*idim1 +1)
  432. XCOOR((NBPTS-1)*idim1 +2) = XCOOR((inode2-1)*idim1 +2)
  433. if(idim.eq.3)
  434. & XCOOR((NBPTS-1)*idim1 +3) = XCOOR((inode2-1)*idim1 +3)
  435. c traitement du noeud de la fissure
  436. NUM(2,NBELEM) = inode2
  437. c traitement des noeuds de la structure
  438. inono=2
  439. cbp inutile do j2=1,max(1,nbenrj)
  440. cbp inutile car noelep boucle deja sur les enrichissement
  441. do ino1=1,nbnn1
  442. inono=inono+1
  443. NUM(inono,NBELEM) = IPT1.NUM(ino1,iem1)
  444. enddo
  445. c enddo
  446.  
  447. c Remplissage du XMATRI
  448. c traitement du terme LX - ddl fissure
  449. RE(1,2,NELRIG)=1.d0
  450. RE(2,1,NELRIG)=1.d0
  451. c traitement des terme LX - ddl structure
  452. inono=2
  453. c UX = UX seulement
  454. if(ity.eq.1) then
  455. do ino1=1,nbnn1
  456. inono=inono+1
  457. RE(1,inono,NELRIG)=-1.d0*SHPP1(1,ino1)
  458. RE(inono,1,NELRIG)=-1.d0*SHPP1(1,ino1)
  459. enddo
  460. else
  461. c AX = AX ...
  462. if(nbenrj.ge.1) then
  463. MELVA1 = MCHAM1.IELVAL(1)
  464. do ino1=1,nbnn1
  465. MLREEL = MELVA1.IELCHE(ino1,iem1)
  466. inono=inono+1
  467. if(MLREEL.ne.0) then
  468. RE(1,inono,NELRIG)=-1.d0*SHPP1(1,ino1)
  469. RE(inono,1,NELRIG)=-1.d0*SHPP1(1,ino1)
  470. endif
  471. enddo
  472. endif
  473. c ... + B1X + B2X
  474. if(nbenrj.ge.2) then
  475. do jenrj=2,nbenrj
  476. c on ecrit B1X pour les nbnn1 noeuds, puis B2X ...
  477. MELVA1 = MCHAM1.IELVAL(jenrj)
  478. do ino1=1,nbnn1
  479. MLREEL = MELVA1.IELCHE(ino1,iem1)
  480. if(MLREEL.eq.0) then
  481. c pas d'enrichissement => on met 0
  482. RX05 = 0.d0
  483. else
  484. SEGACT,MLREEL
  485. PSIX = 0.d0
  486. do iii0 = 1,nbnn1
  487. PSIX = PSIX + (SHPP1(1,iii0) * PROG(iii0))
  488. enddo
  489. SEGDES,MLREEL
  490. RX05= -1.d0*SQRT(ABS(PSIX))
  491. endif
  492. inono=inono+1
  493. RE(1,inono,NELRIG)=RX05*SHPP1(1,ino1)
  494. RE(inono,1,NELRIG)=RX05*SHPP1(1,ino1)
  495. enddo
  496. enddo
  497. endif
  498. endif
  499.  
  500. 6000 continue
  501. c ---fin de Boucle sur les XMATRI et MELEME
  502. c des Partie standard et enrichie et sur les dimensions ---
  503.  
  504. c on a trouvé le iem1 élément et on a fait le travail :
  505. c on passe au point de gauss suivant
  506. goto 1132
  507.  
  508. 1131 CONTINUE
  509. c---------- fin de la Boucle sur les elements de structure -------------
  510. if(iimpi.ge.2) write(ioimp,*)
  511. 1 'Fin de la boucle sur les elements de structure'
  512.  
  513. if(IDEJVU(inode2).ne.10) then
  514. write(ioimp,*) 'Attention le noeud ',inode2,' est hors support'
  515. endif
  516.  
  517. 1132 CONTINUE
  518. c======= fin de la Boucle sur les noeuds de fissure ===================
  519.  
  520.  
  521.  
  522. 1100 CONTINUE
  523. c==== fin de la Boucle sur les elements de fissure =====================
  524.  
  525. c MESSAGE : Nombre de points accrochés %i1 sur %i2 proposés
  526. INTERR(1)=iaccro
  527. INTERR(2)=NODES
  528. CALL ERREUR(-319)
  529.  
  530. c------------------------------------
  531. c AJUSTEMENT AVANT DE QUITTER
  532. c------------------------------------
  533.  
  534. if(iimpi.ge.2) write(ioimp,*) 'AJUSTEMENT AVANT DE QUITTER'
  535. c NBPTS est deja le vrai nomber de noeuds
  536. SEGADJ,MCOORD
  537.  
  538. C BOUCLE SUR LES SOUS RIGIDITÉS
  539. ityok = 0
  540. DO 2000 ityty=1,(idim*NTYMAT)
  541. MELEME = IRIGEL(1,ityty)
  542. DESCR = IRIGEL(3,ityty)
  543. XMATRI = IRIGEL(4,ityty)
  544. NBELEM = NUM(/2)
  545. if(NBELEM.ne.0) then
  546. ityok = ityok + 1
  547. IRIGEL(1,ityok) = MELEME
  548. IRIGEL(3,ityok) = DESCR
  549. IRIGEL(4,ityok) = XMATRI
  550. segdes,MELEME,XMATRI
  551. else
  552. segsup,MELEME,DESCR,XMATRI
  553. endif
  554. 2000 continue
  555. NRIGEL = ityok
  556. segadj,MRIGID
  557.  
  558. c-------------------------------
  559. c MENAGE AVANT DE QUITTER
  560. c-------------------------------
  561.  
  562. segsup,MTRAV
  563. segdes IPT1,IPT2
  564. if(MCHAM1.ne.0) segdes,MCHAM1
  565. SEGDES,MRIGID
  566.  
  567. if(iimpi.ge.3) write(ioimp,*) 'ecriture du MRIGID',MRIGID
  568. CALL ECROBJ('RIGIDITE',MRIGID)
  569.  
  570. RETURN
  571.  
  572. END
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  

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