Télécharger menag2.eso

Retour à la liste

Numérotation des lignes :

menag2
  1. C MENAG2 SOURCE PV090527 25/01/03 21:15:16 12111
  2. C SUPPRIMER LES SEGMENTS INDESIRABLES
  3. C DESACTIVER LES AUTRES
  4. C
  5. SUBROUTINE MENAG2(ISLIS,ICOLAC)
  6.  
  7. IMPLICIT INTEGER(I-N)
  8. IMPLICIT REAL*8(A-H,O-Z)
  9.  
  10. C=======================================================================
  11. C TABLEAU KCOLA: VOIR SIGNIFICATION DANS SOUS-PROGRAMME TYPFIL
  12. C=======================================================================
  13.  
  14. CHARACTER*8 MODYN
  15.  
  16. SEGMENT ISLIS(NP)
  17. SEGMENT IBLIS(ISLIS(/1))
  18. * SEGMENT BIDON POUR REMPLACER LES TROP NOMBREUSES
  19. * DECLARATION
  20. SEGMENT ISEG(0)
  21. *
  22. integer ooolen
  23.  
  24. -INC PPARAM
  25. -INC CCOPTIO
  26. -INC SMCOORD
  27. -INC TMCOLAC
  28. *-INC SMCOORD
  29. *-INC SMELEME
  30. -INC SMCHPOI
  31. -INC SMRIGID
  32. *-INC SMCLSTR
  33. *-INC SMELSTR
  34. -INC SMSTRUC
  35. *-INC SMTABLE
  36. -INC SMINTE
  37. -INC SMATTAC
  38. -INC SMMATRI
  39. -INC SMSOLUT
  40. *-INC SMSUPER
  41. -INC SMTEXTE
  42. *-INC SMDEFOR
  43. -INC CCASSIS
  44. -INC SILICRE
  45.  
  46. MODYN='DYNAMIQU'
  47.  
  48. ILISSE=ILISSG
  49. NP=ILISEG(/1)
  50. SEGINI ISLIS
  51. * A TOUT HASARD SAUVER LA CONFIGURATION COURANTE
  52. ISLIS((MCOORD-1)/npgcd)=1
  53. SEGACT MCOORD
  54. IF (MROTA.NE.0) ISLIS((MROTA-1)/npgcd)=1
  55. SEGDES MCOORD
  56. SEGACT ICOLAC
  57. *
  58. * CAS DES MELEME
  59. *
  60. ITLACC=KCOLA(1)
  61. IF (ITLAC(/1).EQ.0) GOTO 20
  62. DO 12 I=1,ITLAC(/1)
  63. ISEG=ITLAC(I)
  64. IF (ISEG.NE.0) THEN
  65. ISLIS((ISEG-1)/npgcd)=1
  66. * ne pas desactiver si trop grand car boucle menage automatique
  67. if (ooolen(iseg).lt.10000000) then
  68. SEGDES ISEG
  69. else
  70. SEGact ISEG
  71. endif
  72. ENDIF
  73. 12 CONTINUE
  74. 20 CONTINUE
  75. *
  76. * CAS DES CHPOINT
  77. *
  78. ITLACC=KCOLA(2)
  79. IF (ITLAC(/1).EQ.0) GOTO 30
  80. DO 21 I=1,ITLAC(/1)
  81. MCHPOI=ITLAC(I)
  82. IF (MCHPOI.EQ.0) GOTO 21
  83. ISLIS((MCHPOI-1)/npgcd)=1
  84. SEGACT MCHPOI
  85. if (ipchp(/1).gt.1000.or.ipchp(/1).lt.0) then
  86. write (6,*) ' menag2 chpo incorrect ',
  87. > mchpoi,j,ipchp(/1),msoupo
  88. goto 21
  89. endif
  90. DO 22 J=1,IPCHP(/1)
  91. MSOUPO=IPCHP(J)
  92. if (msoupo.eq.0) goto 22
  93. if (msoupo.le.100) then
  94. write (6,*) ' menag2 chpo incorrect ',
  95. > mchpoi,j,ipchp(/1),msoupo
  96. goto 21
  97. endif
  98. ISLIS((MSOUPO-1)/npgcd)=1
  99. SEGACT MSOUPO
  100. MPOVAL=IPOVAL
  101. C
  102. C BIZARRE : DANS UN ATTACH, ON TROUVE UN CHPOI SANS MPOVAL ?
  103. IF(MPOVAL.NE.0) THEN
  104. ISLIS((MPOVAL-1)/npgcd)=1
  105. SEGDES MPOVAL
  106. ENDIF
  107. SEGDES MSOUPO
  108. 22 CONTINUE
  109. SEGDES MCHPOI
  110. 21 CONTINUE
  111. 30 CONTINUE
  112. *
  113. * CAS DES MRIGID (ON REMPLIT MMATRI CAR CA N'A PAS L'AIR FAIT DANS
  114. * FILLPO
  115. *
  116. ITLACC=KCOLA(3)
  117. ITLAC1=KCOLA(16)
  118. IF (ITLAC(/1).EQ.0) GOTO 40
  119. DO 31 I=1,ITLAC(/1)
  120. MRIGID=ITLAC(I)
  121. ISLIS((MRIGID-1)/npgcd)=1
  122. SEGACT MRIGID
  123. * IF (ICHOLE.NE.0) ITLAC1.ITLAC(**)=ICHOLE
  124. IMGEOD=IMGEO1
  125. IF (IMGEOD.NE.0) THEN
  126. ISLIS((IMGEOD-1)/npgcd)=1
  127. SEGDES IMGEOD
  128. ENDIF
  129. IF(IVECRI.NE.0) then
  130. ISLIS((IVECRI-1)/npgcd)=1
  131. MVECRI=IVECRI
  132. SEGDES MVECRI
  133. ENDIF
  134. DO 32 J=1,IRIGEL(/2)
  135. DESCR=IRIGEL(3,J)
  136. ISLIS((DESCR-1)/npgcd)=1
  137. SEGDES DESCR
  138. * maintenant fait dans la pile imatri
  139. *** xmatri=irigel(4,j)
  140. *** islis((xmatri-1)/npgcd)=1
  141. *** segdes xmatri
  142. 32 CONTINUE
  143. SEGDES MRIGID
  144. 31 CONTINUE
  145. 40 CONTINUE
  146. *
  147. * CAS DES BLOQ STRUC
  148. *
  149. ITLACC=KCOLA(6)
  150. IF (ITLAC(/1).EQ.0) GOTO 70
  151. DO 61 I=1,ITLAC(/1)
  152. * MCLSTR=ITLAC(I)
  153. * ISLIS((MCLSTR-1)/npgcd)=1
  154. * SEGDES MCLSTR
  155. ISEG=ITLAC(I)
  156. ISLIS((ISEG-1)/npgcd)=1
  157. SEGDES ISEG
  158. 61 CONTINUE
  159. 70 CONTINUE
  160. *
  161. * CAS DES ELEM STRUC
  162. *
  163. ITLACC=KCOLA(7)
  164. IF (ITLAC(/1).EQ.0) GOTO 80
  165. DO 71 I=1,ITLAC(/1)
  166. * MELSTR=ITLAC(I)
  167. * ISLIS((MELSTR-1)/npgcd)=1
  168. * SEGDES MELSTR
  169. ISEG=ITLAC(I)
  170. ISLIS((ISEG-1)/npgcd)=1
  171. SEGDES ISEG
  172. 71 CONTINUE
  173. 80 CONTINUE
  174. *
  175. * CAS DES MSOLUT
  176. *
  177. ITLACC=KCOLA(8)
  178. SEGACT ITLACC
  179. IF (ITLAC(/1).EQ.0) GOTO 90
  180. DO 81 I=1,ITLAC(/1)
  181. MSOLUT=ITLAC(I)
  182. ISLIS((MSOLUT-1)/npgcd)=1
  183. SEGACT MSOLUT
  184. C
  185. C ZONE COMMUNE PAS SI COMMUNE QUE CA |
  186. C
  187. IF(ITYSOL.EQ.MODYN) THEN
  188. MSOLRE=MSOLIS(1)
  189. ISLIS((MSOLRE-1)/npgcd)=1
  190. SEGDES MSOLRE
  191. MSOLEN=MSOLIS(2)
  192. IF(MSOLEN.NE.0) THEN
  193. ISLIS((MSOLEN-1)/npgcd)=1
  194. SEGDES MSOLEN
  195. ENDIF
  196. ENDIF
  197. ISEG=MSOLIS(3)
  198. IF(ISEG.NE.0) THEN
  199. ISLIS((ISEG-1)/npgcd)=1
  200. SEGDES ISEG
  201. ENDIF
  202. MSOLEN=MSOLIS(4)
  203. IF(MSOLEN.NE.0) THEN
  204. ISLIS((MSOLEN-1)/npgcd)=1
  205. SEGACT MSOLEN
  206. DO 82 NS=1,ISOLEN(/1)
  207. MMODE=ISOLEN(NS)
  208. ISLIS((MMODE-1)/npgcd)=1
  209. SEGDES MMODE
  210. 82 CONTINUE
  211. SEGDES MSOLEN
  212. ENDIF
  213. C
  214. NIPO=MSOLIS(/1)
  215. DO 83 J=5,NIPO
  216. MSOLEN=MSOLIS(J)
  217. IF(MSOLEN.NE.0) THEN
  218. ISLIS((MSOLEN-1)/npgcd)=1
  219. SEGDES MSOLEN
  220. ENDIF
  221. 83 CONTINUE
  222. SEGDES MSOLUT
  223. 81 CONTINUE
  224. 90 CONTINUE
  225. *
  226. * CAS DES MSTRUC
  227. *
  228. ITLACC=KCOLA(9)
  229. IF (ITLAC(/1).EQ.0) GOTO 100
  230. DO 91 I=1,ITLAC(/1)
  231. MSTRUC=ITLAC(I)
  232. ISLIS((MSTRUC-1)/npgcd)=1
  233. SEGDES MSTRUC
  234. 91 CONTINUE
  235. 100 CONTINUE
  236. *
  237. * CAS DES MTABLE
  238. *
  239. ITLACC=KCOLA(10)
  240. IF (ITLAC(/1).EQ.0) GOTO 110
  241. DO 101 I=1,ITLAC(/1)
  242. * MTABLE=ITLAC(I)
  243. * ISLIS((**-1)/npgcd)=MTABLE
  244. * SEGDES MTABLE
  245. ISEG=ITLAC(I)
  246. ISLIS((ISEG-1)/npgcd)=1
  247. SEGDES ISEG
  248. 101 CONTINUE
  249. 110 CONTINUE
  250. *
  251. * CAS DES MSOSTU
  252. *
  253. ITLACC=KCOLA(12)
  254. IF (ITLAC(/1).EQ.0) GOTO 130
  255. DO 121 I=1,ITLAC(/1)
  256. MSOSTU=ITLAC(I)
  257. ISLIS((MSOSTU-1)/npgcd)=1
  258. SEGDES MSOSTU
  259. 121 CONTINUE
  260. 130 CONTINUE
  261. *
  262. * CAS DES IMATRI
  263. *
  264. ITLACC=KCOLA(13)
  265. IF (ITLAC(/1).EQ.0) GOTO 140
  266. DO 131 I=1,ITLAC(/1)
  267. IMATRI=ITLAC(I)
  268. ISLIS((IMATRI-1)/npgcd)=1
  269. 131 CONTINUE
  270. 140 CONTINUE
  271. *
  272. * CAS DES MJONCT
  273. *
  274. ITLACC=KCOLA(14)
  275. IF (ITLAC(/1).EQ.0) GOTO 150
  276. DO 141 I=1,ITLAC(/1)
  277. MJONCT=ITLAC(I)
  278. ISLIS((MJONCT-1)/npgcd)=1
  279. SEGDES MJONCT
  280. 141 CONTINUE
  281. 150 CONTINUE
  282. *
  283. * CAS DES MATTAC
  284. *
  285. ITLACC=KCOLA(15)
  286. SEGACT ITLACC
  287. IF (ITLAC(/1).EQ.0) GOTO 160
  288. DO 151 I=1,ITLAC(/1)
  289. MATTAC=ITLAC(I)
  290. SEGACT MATTAC
  291. ISLIS((MATTAC-1)/npgcd)=1
  292. DO 152 NM=1,LISATT(/1)
  293. MSOUMA=LISATT(NM)
  294. if (MSOUMA.gt.0) then
  295. ISLIS((MSOUMA-1)/npgcd)=1
  296. SEGACT MSOUMA
  297. MPHYCH=IPHYCH
  298. if (MPHYCH.gt.0) then
  299. ISLIS((MPHYCH-1)/npgcd)=1
  300. SEGDES MPHYCH
  301. endif
  302. MGEOCH=IGEOCH
  303. if (MGEOCH.gt.0) then
  304. ISLIS((MGEOCH-1)/npgcd)=1
  305. SEGDES MGEOCH
  306. endif
  307. DO 153 NATR=1,IATREL(/1)
  308. MJONCT=IATREL(NATR)
  309. ISLIS((MJONCT-1)/npgcd)=1
  310. C
  311. SEGDES MJONCT
  312. 153 CONTINUE
  313. SEGDES MSOUMA
  314. endif
  315. 152 CONTINUE
  316. SEGDES MATTAC
  317. 151 CONTINUE
  318. 160 CONTINUE
  319. *
  320. * CAS DES MMATRI : LES MMATRI N'ETANT PAS REMPLI DANS LE PROCESSUS
  321. * NORMAL : FILLPO ON LES REMPLI AU NIVEAU DE MRIGID
  322. * ON EST EGALEMENT CONTRAINT DE SAUVER IGEOMA (MELEME) CAR CE N'EST
  323. * PAS FAIT AUTOMATIQUEMENT
  324. *
  325. ITLACC=KCOLA(16)
  326. IF (ITLAC(/1).EQ.0) GOTO 170
  327. DO 161 I=1,ITLAC(/1)
  328. MMATRI=ITLAC(I)
  329. ISLIS((MMATRI-1)/npgcd)=1
  330. SEGACT MMATRI
  331. ISEG=IGEOMA
  332. ISLIS((ISEG-1)/npgcd)=1
  333. SEGDES ISEG
  334. MDIAG=IDIAG
  335. ISLIS((MDIAG-1)/npgcd)=1
  336. SEGDES MDIAG
  337. MINCPO=IINCPO
  338. ISLIS((MINCPO-1)/npgcd)=1
  339. SEGDES MINCPO
  340. IF(IDUAPO.GT.0) THEN
  341. MINCPO=IDUAPO
  342. ISLIS((MINCPO-1)/npgcd)=1
  343. SEGDES MINCPO
  344. ENDIF
  345. MIDUA=IIDUA
  346. ISLIS((MIDUA-1)/npgcd)=1
  347. SEGDES MIDUA
  348. MIMIK=IIMIK
  349. ISLIS((MIMIK-1)/npgcd)=1
  350. SEGDES MIMIK
  351. MDNOR=IDNORM
  352. ISLIS((MDNOR-1)/npgcd)=1
  353. SEGDES MDNOR
  354. MHARK=IHARK
  355. ISLIS((MHARK-1)/npgcd)=1
  356. SEGDES MHARK
  357. IF(IHARDU.GT.0) THEN
  358. MHARK=IHARDU
  359. ISLIS((MHARK-1)/npgcd)=1
  360. SEGDES MHARK
  361. ENDIF
  362. IF(IDNORD.GT.0) THEN
  363. MDNO1=IDNORD
  364. ISLIS((MDNO1-1)/npgcd)=1
  365. SEGDES MDNO1
  366. ENDIF
  367. IF (JLICRE.NE.0) then
  368. ISLIS((JLICRE-1)/npgcd)=1
  369. ILICRE=JLICRE
  370. SEGACT ILICRE
  371. ligcre=ligcrp
  372. ISLIS((LIGCRE-1)/npgcd)=1
  373. segdes ligcre,ilicre
  374. ENDIF
  375.  
  376. MILIGN=IILIGN
  377. ISLIS((MILIGN-1)/npgcd)=1
  378. SEGACT MILIGN
  379. DO 162 J=1,ILIGN(/1)
  380. LIGN=ILIGN(J)
  381. ISLIS((LIGN-1)/npgcd)=1
  382. SEGDES LIGN
  383. 162 CONTINUE
  384. SEGDES MILIGN
  385.  
  386. IF(IILIGS.NE.0) THEN
  387. MILIGN=IILIGS
  388. ISLIS((MILIGN-1)/npgcd)=1
  389. SEGACT MILIGN
  390. DO 163 J=1,ILIGN(/1)
  391. LIGN=ILIGN(J)
  392. ISLIS((LIGN-1)/npgcd)=1
  393. SEGDES LIGN
  394. 163 CONTINUE
  395. SEGDES MILIGN
  396. ENDIF
  397. IF(IASLIG.NE.0) THEN
  398. ISLIS((IASLIG-1)/npgcd)=1
  399. MILIGN=IASLIG
  400. SEGACT MILIGN
  401. DO 164 J=1,ILIGN(/1)
  402. LIGN=ILIGN(J)
  403. ISLIS((LIGN-1)/npgcd)=1
  404. SEGDES LIGN
  405. 164 CONTINUE
  406. SEGDES MILIGN
  407. MDIAG=IASDIA
  408. ISLIS((MDIAG-1)/npgcd)=1
  409. SEGDES MDIAG
  410. ENDIF
  411. SEGDES MMATRI
  412. 161 CONTINUE
  413. 170 CONTINUE
  414. *
  415. * CAS DES MDEFOR
  416. *
  417. ITLACC=KCOLA(17)
  418. IF (ITLAC(/1).EQ.0) GOTO 180
  419. DO 171 I=1,ITLAC(/1)
  420. * MDEFOR=ITLAC(I)
  421. * ISLIS((MDEFOR-1)/npgcd)=1
  422. * SEGDES MDEFOR
  423. ISEG=ITLAC(I)
  424. ISLIS((ISEG-1)/npgcd)=1
  425. SEGDES ISEG
  426. 171 CONTINUE
  427. 180 CONTINUE
  428. *
  429. * LA SUITE EST DANS MENAG6
  430. *
  431. CALL MENAG6(ILISSE,ISLIS,ICOLAC)
  432. *
  433. * ORDONNER LES SEGMENTS
  434. *
  435. NP=0
  436. DO 11 I=1,ISLIS(/1)
  437. IF( ISLIS(I).NE.0) THEN
  438. NP=NP+1
  439. ISLIS(NP)=I*npgcd+1
  440. ENDIF
  441. 11 CONTINUE
  442. SEGADJ ISLIS
  443. * SEGINI IBLIS
  444. * CALL TRIENT(ISLIS(1),IBLIS(1),ISLIS(/1))
  445. * SEGSUP IBLIS
  446.  
  447. RETURN
  448. END
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  

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