Télécharger menag6.eso

Retour à la liste

Numérotation des lignes :

menag6
  1. C MENAG6 SOURCE PV090527 25/01/07 18:18:25 12116
  2. SUBROUTINE MENAG6(ILISSE,IPLIS,IPOLAC)
  3.  
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6.  
  7. C=======================================================================
  8. C TABLEAU KCOLA: VOIR SIGNIFICATION DANS SOUS-PROGRAMME TYPFIL
  9. C=======================================================================
  10.  
  11. CHARACTER*8 MODYN
  12.  
  13. SEGMENT ISLIS(NP)
  14. SEGMENT IBLIS(ISLIS(/1))
  15. * SEGMENT BIDON POUR REMPLACER LES TROP NOMBREUSES
  16. * DECLARATION
  17. SEGMENT ISEG(0)
  18. *
  19. POINTEUR PTR.MATRAK
  20. -INC TMCOLAC
  21.  
  22. -INC PPARAM
  23. -INC CCOPTIO
  24. -INC SMCOORD
  25. -INC CCNOYAU
  26. -INC SMTEXTE
  27. -INC SMMODEL
  28. *-INC SMLREEL
  29. *-INC SMLENTI
  30. -INC SMCHARG
  31. -INC SMEVOLL
  32. *-INC SMLMOTS
  33. * -INC SMVECTE TROP DE DECLARATION INTEGER AVEC ESOPE
  34. * -INC SMVECTD DECLARATION CONFLICTUELLE AVEC SMVECTE
  35. *-INC SMLCHPO
  36. -INC SMBASEM
  37. -INC SMBLOC
  38. -INC SMNUAGE
  39. -INC SMSUPER
  40. -INC SMANNOT
  41. C-INC SMMATRAK
  42. -INC CCASSIS
  43. -INC SMLOBJE
  44. C*************************************************************************
  45. C
  46. C REPERAGE ET STOKAGE DES MATRICES ELEMENTAIRES puis assemblees
  47. C
  48.  
  49. * LGEOC SPG de la pression et/ou des multiplicateurs de Lagrange
  50. * (points CENTRE ) pour chaque operateur de contrainte
  51. * KGEOC SPG pour la totalite des points CENTRE.
  52. * KGEOS SPG pour la totalite des points SOMMET (Diagonale vitesse)
  53. * KLEMC Connectivites de l'ensemble des contraintes
  54. * LIZAFM(NBSOUS) contient les pointeurs IZAFM des sous-zones
  55.  
  56. SEGMENT MATRAK
  57. INTEGER LGEOC(NBOP),IDEBS(NBOP),IFINS(NBOP)
  58. INTEGER LIZAFM(NBSOUS)
  59. INTEGER IKAM0 (NBSOUS)
  60. INTEGER IMEM (NBELC)
  61. INTEGER KLEMC,KGEOS,KGEOC,KDIAG,KCAC,KIZCL,KIZGC
  62. ENDSEGMENT
  63.  
  64. SEGMENT IZAFM
  65. REAL*8 AM(NNELP,NP,IESP),RPGI(NELAX)
  66. ENDSEGMENT
  67.  
  68. POINTEUR IPMJ.IZAFM,IPMK.IZAFM
  69.  
  70. C*******************************************************************
  71. MODYN='DYNAMIQU'
  72. ISLIS = IPLIS
  73. *
  74. ICOLAC = IPOLAC
  75. *
  76. * CAS DES MLREEL
  77. *
  78. ITLACC=KCOLA(18)
  79. IF (ITLAC(/1).EQ.0) GOTO 190
  80. DO 181 I=1,ITLAC(/1)
  81. * MLREEL=ITLAC(I)
  82. * ISLIS((MLREEL-1)/npgcd)=1
  83. * SEGDES MLREEL
  84. ISEG=ITLAC(I)
  85. ISLIS((ISEG-1)/npgcd)=1
  86. SEGDES ISEG
  87. 181 CONTINUE
  88. 190 CONTINUE
  89. *
  90. * CAS DES MLENTI
  91. *
  92. ITLACC=KCOLA(19)
  93. IF (ITLAC(/1).EQ.0) GOTO 200
  94. DO 191 I=1,ITLAC(/1)
  95. * MLENTI=ITLAC(I)
  96. * ISLIS((**-1)/npgcd)=MLENTI
  97. * SEGDES MLENTI
  98. ISEG=ITLAC(I)
  99. ISLIS((ISEG-1)/npgcd)=1
  100. SEGDES ISEG
  101. 191 CONTINUE
  102. 200 CONTINUE
  103. *
  104. * CAS DES MCHARG
  105. *
  106. ITLACC=KCOLA(20)
  107. IF (ITLAC(/1).EQ.0) GOTO 210
  108. DO 201 I=1,ITLAC(/1)
  109. MCHARG=ITLAC(I)
  110. SEGACT MCHARG
  111. ISLIS((MCHARG-1)/npgcd)=1
  112. DO 202 J=1,KCHARG(/1)
  113. ICHARG=KCHARG(J)
  114. ISLIS((ICHARG-1)/npgcd)=1
  115. SEGACT ICHARG
  116. ISEG=ICHPO1
  117. ISLIS((ISEG-1)/npgcd)=1
  118. SEGDES ISEG
  119. ISEG=ICHPO2
  120. IF (ISEG.NE.0) THEN
  121. ISLIS((ISEG-1)/npgcd)=1
  122. SEGDES ISEG
  123. IF(CHATYP.NE.'TABLE '.AND.CHATYP.NE.'LISTOBJE') THEN
  124. ISEG=ICHPO3
  125. ISLIS((ISEG-1)/npgcd)=1
  126. SEGDES ISEG
  127. ENDIF
  128. ENDIF
  129. IF(CHAMOB(J).EQ.'TRAN') THEN
  130. ISEG=ICHPO6
  131. ISLIS((ISEG-1)/npgcd)=1
  132. SEGDES ISEG
  133. ISEG=ICHPO7
  134. ISLIS((ISEG-1)/npgcd)=1
  135. SEGDES ISEG
  136. ELSEIF(CHAMOB(J).EQ.'ROTA') THEN
  137. ISEG=ICHPO6
  138. ISLIS((ISEG-1)/npgcd)=1
  139. SEGDES ISEG
  140. ISEG=ICHPO7
  141. ISLIS((ISEG-1)/npgcd)=1
  142. SEGDES ISEG
  143. ELSEIF(CHAMOB(J).EQ.'TRAJ') THEN
  144. ISEG=ICHPO4
  145. ISLIS((ISEG-1)/npgcd)=1
  146. SEGDES ISEG
  147. ISEG=ICHPO6
  148. ISLIS((ISEG-1)/npgcd)=1
  149. SEGDES ISEG
  150. ENDIF
  151. SEGDES ICHARG
  152. 202 CONTINUE
  153. SEGDES MCHARG
  154. 201 CONTINUE
  155. 210 CONTINUE
  156. *
  157. * CAS DES MEVOLL
  158. *
  159. ITLACC=KCOLA(22)
  160. IF (ITLAC(/1).EQ.0) GOTO 230
  161. DO 221 I=1,ITLAC(/1)
  162. MEVOLL=ITLAC(I)
  163. SEGACT MEVOLL
  164. ISLIS((MEVOLL-1)/npgcd)=1
  165. DO 222 J=1,IEVOLL(/1)
  166. KEVOLL=IEVOLL(J)
  167. ISLIS((KEVOLL-1)/npgcd)=1
  168. SEGACT KEVOLL
  169. ISEG=IPROGX
  170. ISLIS((ISEG-1)/npgcd)=1
  171. SEGDES ISEG
  172. ISEG=IPROGY
  173. ISLIS((ISEG-1)/npgcd)=1
  174. SEGDES ISEG
  175. SEGDES KEVOLL
  176. 222 CONTINUE
  177. SEGDES MEVOLL
  178. 221 CONTINUE
  179. 230 CONTINUE
  180. *
  181. * CAS DES SUPERELEMENTS
  182. *
  183. ITLACC=KCOLA(23)
  184. IF (ITLAC(/1).EQ.0) GOTO 240
  185. DO 231 I=1,ITLAC(/1)
  186. MSUPER=ITLAC(I)
  187. segact msuper
  188. iseg=mdnorr
  189. if( iseg. ne. 0) then
  190. ISLIS((iseg-1)/npgcd)=1
  191. segdes iseg
  192. endif
  193. ISEG=ITLAC(I)
  194. ISLIS((ISEG-1)/npgcd)=1
  195. SEGDES ISEG
  196. 231 CONTINUE
  197. 240 CONTINUE
  198. *
  199. * CAS DES LOGIQUES FLOTTANT ENTIER MOT RIEN A FAIRE
  200. *
  201. *
  202. * CAS DES TEXTES
  203. *
  204. ITLACC=KCOLA(28)
  205. IF (ITLAC(/1).EQ.0) GOTO 290
  206. DO 281 I=1,ITLAC(/1)
  207. MTEXTE=ITLAC(I)
  208. ISLIS((MTEXTE-1)/npgcd)=1
  209. SEGACT MTEXTE
  210. MTRADU=MTRADC
  211. IF (MTRADU.NE.0) THEN
  212. ISLIS((MTRADU-1)/npgcd)=1
  213. SEGDES MTRADU
  214. ENDIF
  215. SEGDES MTEXTE
  216. 281 CONTINUE
  217. 290 CONTINUE
  218. *
  219. * CAS DES LISTMOTS
  220. *
  221. ITLACC=KCOLA(29)
  222. IF (ITLAC(/1).EQ.0) GOTO 300
  223. DO 291 I=1,ITLAC(/1)
  224. * MLMOTS=ITLAC(I)
  225. * ISLIS((MLMOTS-1)/npgcd)=1
  226. * SEGDES MLMOTS
  227. ISEG=ITLAC(I)
  228. ISLIS((ISEG-1)/npgcd)=1
  229. SEGDES ISEG
  230. 291 CONTINUE
  231. 300 CONTINUE
  232. *
  233. * CAS DES VECTEURS
  234. *
  235. ITLACC=KCOLA(30)
  236. IF (ITLAC(/1).EQ.0) GOTO 310
  237. DO 301 I=1,ITLAC(/1)
  238. * MVECTE=ITLAC(I)
  239. * ISLIS((MVECTE-1)/npgcd)=1
  240. * SEGDES MVECTE
  241. ISEG=ITLAC(I)
  242. ISLIS((ISEG-1)/npgcd)=1
  243. SEGDES ISEG
  244. 301 CONTINUE
  245. 310 CONTINUE
  246. *
  247. * CAS DES VECTD ON ECRIT ISEG CAR ON NE PEUT PAS FAIRE -INC MVECTD
  248. *
  249. ITLACC=KCOLA(31)
  250. IF (ITLAC(/1).EQ.0) GOTO 320
  251. DO 311 I=1,ITLAC(/1)
  252. * MVECTD=ITLAC(I)
  253. * ISLIS((MVECTD-1)/npgcd)=1
  254. * SEGDES MVECTD
  255. ISEG=ITLAC(I)
  256. ISLIS((ISEG-1)/npgcd)=1
  257. SEGDES ISEG
  258. 311 CONTINUE
  259. 320 CONTINUE
  260. *
  261. * CAS DES POINTS RIEN A FAIRE
  262. *
  263. *
  264. * CAS DES CONFIG NE SURTOUT PAS UTILISER MCOORD (DANS CCOPTIO)
  265. *
  266. ITLACC=KCOLA(33)
  267. IF (ITLAC(/1).EQ.0) GOTO 340
  268. DO 331 I=1,ITLAC(/1)
  269. ISEG=ITLAC(I)
  270. if (iseg.gt.0) then
  271. ISLIS((ISEG-1)/npgcd)=1
  272. MCOOR1=ISEG
  273. SEGACT MCOOR1
  274. MROTAT=MCOOR1.MROTA
  275. IF (MROTAT.GT.0) THEN
  276. ISLIS((MROTAT-1)/npgcd)=1
  277. SEGDES MROTAT
  278. ENDIF
  279. SEGDES ISEG
  280. endif
  281. 331 CONTINUE
  282. 340 CONTINUE
  283. *
  284. * CAS DES MLCHPO
  285. *
  286. ITLACC=KCOLA(34)
  287. IF (ITLAC(/1).EQ.0) GOTO 350
  288. DO 341 I=1,ITLAC(/1)
  289. * MLCHPO=ITLAC(I)
  290. * ISLIS((MLCHPO-1)/npgcd)=1
  291. * SEGDES MLCHPO
  292. ISEG=ITLAC(I)
  293. ISLIS((ISEG-1)/npgcd)=1
  294. SEGDES ISEG
  295. 341 CONTINUE
  296. 350 CONTINUE
  297. *
  298. * CAS DES MBASEM
  299. *
  300. ITLACC=KCOLA(35)
  301. IF (ITLAC(/1).EQ.0) GOTO 360
  302. DO 351 I=1,ITLAC(/1)
  303. MBASEM=ITLAC(I)
  304. ISLIS((MBASEM-1)/npgcd)=1
  305. SEGACT MBASEM
  306. DO 352 J=1,LISBAS(/1)
  307. MSOBAS=LISBAS(J)
  308. ISLIS((MSOBAS-1)/npgcd)=1
  309. SEGDES MSOBAS
  310. 352 CONTINUE
  311. SEGDES MBASEM
  312. 351 CONTINUE
  313. 360 CONTINUE
  314. *
  315. * CAS DES PROCEDUR
  316. *
  317. MTTRY=MTXBL
  318. ITLACC=KCOLA(36)
  319. ITLAC1=KCOLA(37)
  320. IF (ITLAC(/1).EQ.0) GOTO 370
  321. DO 361 I=1,ITLAC(/1)
  322. MBLA1=ITLAC(I)
  323. MBLO1=IPIPR1(MBLA1)
  324. * LES PROCEDURES EN NEGATIFS NE SONT PAS ENCORE MISES EN SEGMENT
  325. IF (MBLO1.LE.0) GOTO 361
  326. ISLIS((MBLO1-1)/npgcd)=1
  327. SEGACT MBLO1
  328. ISLIS((MBLO1.ISPOTE-1)/npgcd)=1
  329. IARGUM=MBLO1.MARGUM
  330. ISLIS((IARGUM-1)/npgcd)=1
  331. SEGACT IARGUM
  332. MTXBI3=MTXBB
  333. ISLIS((MTXBI3-1)/npgcd)=1
  334. SEGDES MTXBI3
  335. MTXFL3=MTXFLO
  336. IF( MTXFL3.NE.0) THEN
  337. SEGDES MTXFL3
  338. ISLIS((MTXFL3-1)/npgcd)=1
  339. ENDIF
  340. SEGDES IARGUM
  341. MTXBLC=MBLO1.MTXBL
  342. IF (MTXBLC.NE.0) THEN
  343. ISLIS((MTXBLC-1)/npgcd)=1
  344. C SEGACT MTXBLC
  345. C DO 362 J=1,MTXBLC(/1)
  346. C MTXBLL=MTXBLC(J)
  347. C ISLIS((MTXBLL-1)/npgcd)=1
  348. C SEGDES MTXBLL
  349. C 362 CONTINUE
  350. SEGDES MTXBLC
  351. ENDIF
  352. * MSAPI3=MBLO1.MSAPII
  353. * IF (MSAPI3.NE.0) THEN
  354. * ISLIS((MSAPI3-1)/npgcd)=1
  355. * SEGDES MSAPI3
  356. * ENDIF
  357. MPROCE=MBLO1.MPROCD
  358. IF (MPROCE.NE.0) THEN
  359. ISLIS((MPROCE-1)/npgcd)=1
  360. SEGDES MPROCE
  361. ENDIF
  362. * ON MET DANS LA PILE DES BLOCS LES BLOCS CONTENUS DANS LA PROCEDURE
  363. DO 363 J=MBLO1.MDEOBJ,MBLO1.MFIOBJ
  364. IF (INOOB2(J).EQ.'BLOC ') THEN
  365. ITLAC1.ITLAC(**)=IOUEP2(J)
  366. ENDIF
  367. 363 CONTINUE
  368. IF (MBLO1.NE.MBLOC) SEGDES MBLO1
  369. 361 CONTINUE
  370. * reactiver la precompilation du bloc courant
  371. MTXBLC=MBLOC.MTXBL
  372. IF(MTXBLC.NE.0) SEGACT MTXBLC
  373. 370 CONTINUE
  374.  
  375. *
  376. * CAS DES BLOC
  377. *
  378. ITLACC=KCOLA(37)
  379. DO 375 J=1,LMNNOM
  380. IF (INOOB2(J).EQ.'BLOC ') THEN
  381. ITLAC(**)=IOUEP2(J)
  382. ENDIF
  383. 375 CONTINUE
  384. IF (ITLAC(/1).EQ.0) GOTO 378
  385. DO 371 I=1,ITLAC(/1)
  386. MBLO1=ITLAC(I)
  387. ISLIS((MBLO1-1)/npgcd)=1
  388. SEGACT MBLO1
  389. ISLIS(( MBLO1.ISPOTE-1)/npgcd)=1
  390. MTXBLC=MBLO1.MTXBL
  391. IF (MTXBLC.NE.0) THEN
  392. ISLIS((MTXBLC-1)/npgcd)=1
  393. C SEGACT MTXBLC
  394. C DO 372 J=1,MTXBLC(/1)
  395. C MTXBLL=MTXBLC(J)
  396. C ISLIS((MTXBLL-1)/npgcd)=1
  397. C SEGDES MTXBLL
  398. C 372 CONTINUE
  399. IF (MBLO1.NE.MBLOC) SEGDES MTXBLC
  400. ENDIF
  401. mtresu=mblo1.itresu
  402. IF( MTRESU.NE.0) THEN
  403. SEGDES MTRESU
  404. ISLIS((MTRESU-1)/npgcd)=1
  405. ENDIF
  406. IF (MBLO1.NE.MBLOC) SEGDES MBLO1
  407. 371 CONTINUE
  408. 378 CONTINUE
  409. *
  410. * ON MET EGALEMENT LA CHAINE DES BLOCS MONTANTES CAR CEUX OU ON
  411. * SE TROUVE PEUVENT AVOIR ETE CREE DANS PROCED (DUPLICATION)
  412. *
  413. MBLO1=MBLOC
  414. 373 CONTINUE
  415. SEGACT MBLO1
  416. ISLIS((MBLO1-1)/npgcd)=1
  417. ISLIS((MBLO1.ISPOTE-1)/npgcd)=1
  418. MTXBLC=MBLO1.MTXBL
  419. IF (MTXBLC.NE.0) THEN
  420. ISLIS((MTXBLC-1)/npgcd)=1
  421. C SEGACT MTXBLC
  422. C DO 374 J=1,MTXBLC(/1)
  423. C MTXBLL=MTXBLC(J)
  424. C ISLIS((MTXBLL-1)/npgcd)=1
  425. C SEGDES MTXBLL
  426. C 374 CONTINUE
  427. IF (MBLO1.NE.MBLOC) SEGDES MTXBLC
  428. ENDIF
  429. IARGUM=MBLO1.MARGUM
  430. IF (IARGUM.NE.0) THEN
  431. ISLIS((IARGUM-1)/npgcd)=1
  432. SEGACT IARGUM
  433. MTXBI3=MTXBB
  434. ISLIS((MTXBI3-1)/npgcd)=1
  435. SEGDES MTXBI3
  436. MTXFL3=MTXFLO
  437. IF( MTXFL3.NE.0) THEN
  438. SEGDES MTXFL3
  439. ISLIS((MTXFL3-1)/npgcd)=1
  440. ENDIF
  441. SEGDES IARGUM
  442. ENDIF
  443. * MSAPI3=MBLO1.MSAPII
  444. * IF (MSAPI3.NE.0) THEN
  445. * ISLIS((MSAPI3-1)/npgcd)=1
  446. * SEGDES MSAPI3
  447. * ENDIF
  448. MPROCE=MBLO1.MPROCD
  449. IF (MPROCE.NE.0) THEN
  450. SEGACT MPROCE
  451. ISLIS((MPROCE-1)/npgcd)=1
  452. ISLIS((LTTINT-1)/npgcd)=1
  453. ISLIS((KTABNO-1)/npgcd)=1
  454. ISLIS((MPOOB-1)/npgcd)=1
  455. SEGDES MPROCE
  456. ENDIF
  457. * WRITE (6,*) ' BLOC DANS LA CHAINE MONTANTE ',MBLO1
  458. MBLSU=MBLO1.MBLSUP
  459. IF (MBLSU.NE.0) THEN
  460. SEGDES MBLO1
  461. MBLO1=MBLSU
  462. GOTO 373
  463. ENDIF
  464. SEGDES MBLO1
  465. SEGACT MBLOC*MOD
  466. ISLIS((ISPOTE-1)/npgcd)=1
  467. ISLIS((ITTINT-1)/npgcd)=1
  468. ISLIS((JPOOB-1)/npgcd)=1
  469. ISLIS((ITABNO-1)/npgcd)=1
  470. 380 CONTINUE
  471. MTXBLC = MTTRY
  472. IF(MTXBLC.NE.0) SEGACT MTXBLC
  473. *
  474. * Cas du MMODEL
  475. *
  476. ITLACC = KCOLA(38)
  477. IF (ITLAC(/1).EQ.0) GOTO 390
  478. DO 381 I=1,ITLAC(/1)
  479. MMODEL = ITLAC(I)
  480. ISLIS((MMODEL-1)/npgcd)=1
  481. SEGACT,MMODEL
  482. DO 382 J=1,KMODEL(/1)
  483. IMODEL = KMODEL(J)
  484. ISLIS((IMODEL-1)/npgcd)=1
  485. SEGACT IMODEL
  486. NFOR=FORMOD(/1)
  487. * IF(NFOR.EQ.2.OR.FORMOD(1).EQ.'MECANIQUE'.OR.
  488. * $ FORMOD(1).EQ.'POREUX')THEN
  489. do IO=3,INFMOD(/1)
  490. if(infmod(io).gt.0)then
  491. iseg= infmod(io)
  492. ISLIS((ISEG-1)/npgcd)=1
  493. SEGDES ISEG
  494. endif
  495. enddo
  496. * ENDIF
  497. do io=1,lnomid(/1)
  498. if(lnomid(io).ne.0) then
  499. iseg=lnomid(io)
  500. ISLIS((ISEG-1)/npgcd)=1
  501. SEGDES ISEG
  502. endif
  503. enddo
  504. do il = 1,ivamod(/1)
  505. MODYN=tymode(il)
  506. Jtc=0
  507. CALL TYPFIL (MODYN,JTC)
  508. if( jtc.ne.0) go to 3819
  509. c... kich si pas un vrai objet par defaut ce sont des imodel
  510. imode1=ivamod(il)
  511. islis((imode1-1)/npgcd)=1
  512. segact imode1
  513. c... kich espere qu un niveau de recursivite suffit ...
  514. segdes imode1
  515. 3819 continue
  516. enddo
  517. SEGDES,IMODEL
  518. 382 CONTINUE
  519. segdes MMODEL
  520. * END DO
  521. 381 CONTINUE
  522. * END DO
  523. 390 CONTINUE
  524. *
  525. * Cas du MCHAML
  526. *
  527. ITLACC = KCOLA(39)
  528. IF (ITLAC(/1).EQ.0) GOTO 400
  529. CALL MECHAM(ILISSE,ISLIS,ICOLAC)
  530. 400 CONTINUE
  531. *
  532. * CAS DES MINTE
  533. *
  534. ITLACC=KCOLA(40)
  535. IF (ITLAC(/1).EQ.0) GOTO 410
  536. DO 401 I=1,ITLAC(/1)
  537. ISEG=ITLAC(I)
  538. ISLIS((ISEG-1)/npgcd)=1
  539. SEGDES ISEG
  540. 401 CONTINUE
  541. 410 CONTINUE
  542. *
  543. * CAS DES NUAGEs
  544. *
  545. ITLACC=KCOLA(41)
  546. IF (ITLAC(/1).EQ.0) GOTO 420
  547. DO 411 I=1,ITLAC(/1)
  548. MNUAGE=ITLAC(I)
  549. ISLIS((MNUAGE-1)/npgcd)=1
  550. SEGACT MNUAGE
  551. IF(NUAPOI(/1).EQ.0) GO TO 411
  552. DO 412 K=1,NUAPOI(/1)
  553. ISEG=NUAPOI(K)
  554. ISLIS((ISEG-1)/npgcd)=1
  555. SEGDES ISEG
  556. 412 CONTINUE
  557. SEGDES MNUAGE
  558. 411 CONTINUE
  559. 420 CONTINUE
  560. *
  561. * CAS DES MATRAK
  562. *
  563. ITLACC=KCOLA(42)
  564. IF (ITLAC(/1).EQ.0) GOTO 430
  565. DO 421 I=1,ITLAC(/1)
  566. MATRAK=ITLAC(I)
  567. ISLIS((MATRAK-1)/npgcd)=1
  568. SEGACT MATRAK
  569. DO 422 I1=1,LIZAFM(/1)
  570. PTR=LIZAFM(I1)
  571. ISLIS((PTR-1)/npgcd)=1
  572. SEGDES PTR
  573. 422 CONTINUE
  574. IF(KIZCL.NE.0)THEN
  575. IZL=KIZCL
  576. SEGACT IZL
  577. ISLIS((IZL-1)/npgcd)=1
  578. IF(KZA1.NE.0)THEN
  579. IDMAT=KZA1
  580. ISLIS((IDMAT-1)/npgcd)=1
  581. SEGACT IDMAT
  582. PTR=IDIAG
  583. SEGDES PTR
  584. ISLIS((PTR-1)/npgcd)=1
  585. NBLK=IDESCR(/1)
  586. DO 423 I1=1,NBLK
  587. PTR=IDESCR(I1)
  588. IDBLK=PTR
  589. SEGDES PTR
  590. ISLIS((IDBLK-1)/npgcd)=1
  591. SEGACT IDBLK
  592. PTR=IMAT
  593. ISLIS((PTR-1)/npgcd)=1
  594. SEGDES PTR
  595. SEGDES IDBLK
  596. 423 CONTINUE
  597. SEGDES IDMAT
  598. ENDIF
  599. SEGDES IZL
  600. ENDIF
  601. SEGDES MATRAK
  602. 421 CONTINUE
  603.  
  604. 430 CONTINUE
  605. *
  606. * CAS DES MATRIK
  607. *
  608. ITLACC=KCOLA(43)
  609. IF (ITLAC(/1).EQ.0) GOTO 440
  610. CALL XMNG6(ILISSE,ITLACC,ISLIS)
  611. 440 CONTINUE
  612. *
  613. * Cas des OBJET
  614. *
  615. ITLACC=KCOLA(44)
  616. IF (ITLAC(/1).EQ.0) GOTO 450
  617. DO 441 I=1,ITLAC(/1)
  618. ISEG=ITLAC(I)
  619. ISLIS((ISEG-1)/npgcd)=1
  620. SEGDES ISEG
  621. 441 CONTINUE
  622.  
  623. 450 CONTINUE
  624. *
  625. * Cas des ESCLAVE
  626. *
  627. ITLACC=KCOLA(46)
  628. * print*, ' Cas des ESCLAVE ITLACC', ITLACC,'NB', ITLAC(/1)
  629. IF (ITLAC(/1).EQ.0) GOTO 460
  630. DO 451 I=1,ITLAC(/1)
  631. ISEG=ITLAC(I)
  632. * write (6,*) ' menag6 esclave ajout de mesres ',iseg
  633. ISLIS((ISEG-1)/npgcd)=1
  634. mesres = ISEG
  635. SEGDES mesres
  636. 451 CONTINUE
  637. * ajouter les segments des piles d'instructions des assistants
  638. do ith=1,nbesc
  639. mesins=mescl(ith)
  640. segact mesins
  641. do ins=1,nbins
  642. mescla=lismes(ins)
  643. ISLIS((mescla-1)/npgcd)=1
  644. enddo
  645. if (inscou.ne.0) ISLIS((inscou-1)/npgcd)=1
  646. segdes mesins
  647. enddo
  648.  
  649. 460 CONTINUE
  650. *
  651. * cas des ielval
  652. *
  653. ITLACC=KCOLA(48)
  654. IF (ITLAC(/1).EQ.0) GOTO 470
  655. DO 461 I=1,ITLAC(/1)
  656. ISEG=ITLAC(I)
  657. ISLIS((ISEG-1)/npgcd)=1
  658. SEGDES ISEG
  659. 461 CONTINUE
  660.  
  661.  
  662.  
  663. 470 CONTINUE
  664. *
  665. * cas des annotations
  666. *
  667. ITLACC=KCOLA(49)
  668. IF (ITLAC(/1).EQ.0) GOTO 480
  669. DO 471 I=1,ITLAC(/1)
  670. mannot=ITLAC(I)
  671. segact mannot
  672. do ianno=1,isegt(/1)
  673. iseg=isegt(ianno)
  674. ISLIS((ISEG-1)/npgcd)=1
  675. SEGDES ISEG
  676. enddo
  677. iseg=mannot
  678. ISLIS((ISEG-1)/npgcd)=1
  679. SEGDES mannot
  680. 471 continue
  681.  
  682.  
  683.  
  684. 480 CONTINUE
  685.  
  686. *
  687. * cas des LISTOBJE
  688. *
  689. ITLACC=KCOLA(50)
  690. IF (ITLAC(/1).EQ.0) GOTO 490
  691. DO 481 I=1,ITLAC(/1)
  692. MLOBJE=ITLAC(I)
  693. SEGACT,MLOBJE
  694. ** write(6,*) ' menag6 mlobje ',mlobje
  695. ISLIS((MLOBJE-1)/npgcd)=1
  696. IF (TYPOBJ.EQ.'POINT ') GOTO 483
  697. IF (TYPOBJ.EQ.'ENTIER ') GOTO 483
  698. IF (TYPOBJ.EQ.'MOT ') GOTO 483
  699. C IF (LISOBJ(/1).LE.0) GOTO 481
  700. DO 482 J=1,LISOBJ(/1)
  701. ISEG=LISOBJ(J)
  702. C IF (ISEG.LE.0) GOTO 482
  703. ISLIS((ISEG-1)/npgcd)=1
  704. SEGDES,ISEG
  705. 482 CONTINUE
  706. 483 CONTINUE
  707. SEGDES,MLOBJE
  708. 481 CONTINUE
  709.  
  710.  
  711.  
  712. 490 CONTINUE
  713.  
  714.  
  715. *
  716. RETURN
  717. END
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  

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