Télécharger menag2.eso

Retour à la liste

Numérotation des lignes :

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

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