Télécharger menag6.eso

Retour à la liste

Numérotation des lignes :

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

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