Télécharger prlist.eso

Retour à la liste

Numérotation des lignes :

prlist
  1. C PRLIST SOURCE SP204843 25/03/17 21:15:05 12205
  2.  
  3. C DONNE LA LISTE DES OBJETS EN MEMOIRE
  4. C SUIVI D'UN OBJET DONNE DES INFORMATIONS SUR LUI
  5. C 09/2003 : Affichage point si IDIM = 1 (GOTO 70)
  6. C 10/2003 : Affichage modele pour IDIM = 1 (GOTO
  7.  
  8. SUBROUTINE PRLIST
  9.  
  10. IMPLICIT INTEGER(I-N)
  11. IMPLICIT REAL*8(A-H,O-Z)
  12.  
  13. -INC CCNOYAU
  14.  
  15. -INC PPARAM
  16. -INC CCOPTIO
  17. -INC CCGEOME
  18. -INC SMLENTI
  19. -INC SMLREEL
  20. -INC SMCOORD
  21. -INC SMTEXTE
  22. -INC SMDEFOR
  23. -INC SMVECTE
  24. -INC CCASSIS
  25.  
  26. PARAMETER (NMO=37)
  27. LOGICAL IR
  28. CHARACTER*(LOCHAI) IMO
  29. CHARACTER*(8) ICHA
  30. CHARACTER*(8) LISMO(NMO)
  31. CHARACTER*24 TITI
  32.  
  33. DATA LISMO / 'MOT ','ENTIER ','FLOTTANT','LOGIQUE ',
  34. $ 'MAILLAGE','LISTENTI','POINT ','LISTREEL',
  35. $ 'CHPOINT ','RIGIDITE','TEXTE ','STRUCTUR',
  36. $ 'ATTACHE ','SOLUTION','BASEMODA','LISTOBJE',
  37. $ 'CONFIGUR','VECTDOUB','LISTMOTS','DEFORME ',
  38. $ 'LISTCHPO','CHARGEME','EVOLUTIO','--------',
  39. $ 'VECTEUR ','TABLE ','PROCEDUR','ELEMSTRU',
  40. $ 'BLOQSTRU','MCHAML ','MMODEL ','ANNULE ',
  41. $ 'NUAGE ','MATRIK ','OBJET ','ESCLAVE ',
  42. $ 'ANNOTATI'/
  43.  
  44. JENTET=0
  45.  
  46.  
  47. 1100 CONTINUE
  48.  
  49.  
  50. c * modif LODESL pour les objets ESCLAVE
  51. c * LODESL = .TRUE.
  52. c CALL LIROBJ('PROCEDUR',IRET,0,IRETOU)
  53. c * LODESL = .FALSE.
  54. c IF (IRETOU.NE.0) THEN
  55. c CALL ECPROC
  56. c RETURN
  57. c ENDIF
  58.  
  59. * modif LODESL pour les objets ESCLAVE
  60. * LODESL = .TRUE.
  61. CALL QUETYP(ICHA,0,IRETOU)
  62. * LODESL = .FALSE.
  63. IF (IERR.NE.0) RETURN
  64.  
  65. * LISTE DE TOUS LES OBJETS NOMMES...
  66. * ==================================
  67. IF (IRETOU.NE.1) THEN
  68. ICHA=' '
  69. CALL REPER(ICHA)
  70. RETURN
  71. ENDIF
  72.  
  73. * ...OU BIEN AIGUILLAGE VERS LE TYPE D'OBJET DETECTE PAR QUETYP
  74. * =============================================================
  75. DO 1000 IPPL=1,NMO
  76. IF(LISMO(IPPL).EQ.ICHA) GOTO 1001
  77. 1000 CONTINUE
  78. MOTERR(1:8) = ICHA
  79. CALL ERREUR(387)
  80. RETURN
  81. 1001 CONTINUE
  82.  
  83. C MOT, ENTIER, FLOTTANT et LOGIQUE sont traites a part, comme d'habitude
  84. IF (IPPL.GT.4) GOTO 1005
  85. GOTO (10,20,30,40),IPPL
  86.  
  87. C LISTE D'UN MOT
  88. C ==============
  89. 10 CONTINUE
  90. CALL LIRCHA(IMO,1,IRETOU)
  91.  
  92. * ***********************************
  93. * CAS PARTICULIER 1 : ON VEUT LISTER TOUS LES OBJETS D'UN TYPE DONNE
  94. IF(IMO(1:1).EQ.'*') THEN
  95. CALL LIRCHA(ICHA,1,IRETOU)
  96. IF (IERR.NE.0) RETURN
  97. CALL REPER(ICHA)
  98. RETURN
  99. ENDIF
  100. * CAS PARTICULIER 2 : ON INDIQUE QU'ON VEUT UN LISTING RESUME
  101. IF (IMO(1:4).EQ.'RESU') THEN
  102. JENTET = 1
  103. GOTO 1100
  104. ENDIF
  105. * ***********************************
  106.  
  107. INTERR(1)=IRETOU
  108. MOTERR=IMO
  109. CALL ERREUR(-2)
  110. GOTO 50000
  111.  
  112. C LISTE D'UN ENTIER
  113. C =================
  114. 20 CONTINUE
  115. CALL LIRENT(IRET,1,IRETOU)
  116. INTERR(1)=IRET
  117. CALL ERREUR(-3)
  118. GOTO 50000
  119.  
  120. C LISTE D'UN FLOTTANT
  121. C ===================
  122. 30 CONTINUE
  123. CALL LIRREE(REEL,1,IRETOU)
  124. REAERR(1)=REEL
  125. CALL ERREUR(-4)
  126. GOTO 50000
  127.  
  128. C LISTE D'UN LOGIQUE
  129. C ==================
  130. 40 CONTINUE
  131. CALL LIRLOG(IR,1,IRETOU)
  132. IF(IR) THEN
  133. MOTERR(1:4)='VRAI'
  134. CALL ERREUR(-5)
  135. ELSE
  136. MOTERR(1:4)='FAUX'
  137. CALL ERREUR(-5)
  138. ENDIF
  139. GOTO 50000
  140.  
  141. C on traite enfin tous les autres types d'objet
  142. 1005 CONTINUE
  143. IPP=IPPL-4
  144. CALL LIROBJ(ICHA,IRET,1,IRETOU)
  145. CALL ACTOBJ(ICHA,IRET,2)
  146. IF (IERR.NE.0) GOTO 50000
  147. GOTO ( 50, 60, 70, 80, 90,100,110,120,130,140,150,160,170,180,
  148. . 190,200,210,220,230,240,250,260,270,280,290,300,310,320,
  149. . 330,340,350,360,370),IPP
  150.  
  151. C LISTE D'UN MAILLAGE
  152. C ===================
  153. 50 CONTINUE
  154. CALL ECMAIL(IRET,JENTET)
  155. GOTO 50000
  156.  
  157. C LISTE D'UN LISTENTI
  158. C ===================
  159. 60 CONTINUE
  160. MLENTI=IRET
  161. SEGACT MLENTI
  162. N1=LECT(/1)
  163. INTERR(1)=N1
  164. INTERR(2)=MLENTI
  165. CALL ERREUR(-6)
  166. if(jentet.eq.1) n1 = min ( n1, 10)
  167. c IF(N1.NE.0) WRITE(IOIMP,62)(LECT(J),J=1,N1)
  168. c 62 FORMAT((20I6))
  169. cbp : on lit eventuellement nombre de colonne avant retour a la ligne :
  170. NMAX=20
  171. CALL LIRENT(IMAX,0,IRETOU)
  172. if(IRETOU.NE.0) NMAX=MIN(IMAX,999)
  173. WRITE(TITI,FMT='("(",I3,"(I8))")') NMAX
  174. IF(N1.NE.0) WRITE(IOIMP,TITI)(LECT(J),J=1,N1)
  175. SEGDES MLENTI
  176. GOTO 50000
  177.  
  178. C LISTE D'UN POINT
  179. C ================
  180. 70 CONTINUE
  181. SEGACT MCOORD
  182. IB=IRET
  183. ID=(IDIM+1)*(IB-1)
  184. INTERR(1)=IB
  185. REAERR(1)=XCOOR(ID+1)
  186. REAERR(2)=XCOOR(ID+2)
  187. IF (IDIM.EQ.1) THEN
  188. CALL ERREUR(-339)
  189. ELSE
  190. REAERR(3)=XCOOR(ID+3)
  191. IF (IDIM.EQ.2) CALL ERREUR(-7)
  192. IF (IDIM.EQ.3) THEN
  193. REAERR(4)=XCOOR(ID+4)
  194. CALL ERREUR(-8)
  195. ENDIF
  196. ENDIF
  197. RETURN
  198.  
  199. C LISTE D'UN LISTREEL
  200. C ===================
  201. 80 CONTINUE
  202. CALL ECLRE1(IRET,JENTET)
  203. GO TO 50000
  204.  
  205. C LISTE D'UN CHPOINT
  206. C ==================
  207. 90 CONTINUE
  208. CALL ECCHPO(IRET,jentet)
  209. GO TO 50000
  210.  
  211. C LISTE D'UNE RIGIDITE
  212. C ====================
  213. 100 CONTINUE
  214. CALL PRRIGI(IRET,jentet)
  215. GO TO 50000
  216.  
  217. C LISTE D'UN OBJET TEXTE
  218. C ======================
  219. 110 CONTINUE
  220. MTEXTE=IRET
  221. SEGACT MTEXTE
  222. INTERR(1)=NCART
  223. CALL ERREUR (-10)
  224. IF(NCART.NE.0) WRITE(IOIMP,111) MTEXT
  225. 111 FORMAT(5X,A72)
  226. SEGDES MTEXTE
  227. GO TO 50000
  228.  
  229. C LISTE D'UN OBJET STRUCTURE
  230. C ==========================
  231. 120 CONTINUE
  232. CALL ECSTRU(IRET)
  233. GO TO 50000
  234.  
  235. C LISTE D'UN OBJET ATTACHE
  236. C ========================
  237. 130 CONTINUE
  238. CALL ECMATT(IRET,jentet)
  239. GO TO 50000
  240.  
  241. C LISTE D'UN OBJET SOLUTION
  242. C =========================
  243. 140 CONTINUE
  244. CALL ECSOLU(IRET,jentet)
  245. GO TO 50000
  246.  
  247. C LISTE D'UN OBJET BASEMODA
  248. C =========================
  249. 150 CONTINUE
  250. CALL ECBASE(IRET)
  251. GO TO 50000
  252.  
  253. C LISTE D'UN OBJET LISTOBJE
  254. C =========================
  255. 160 CONTINUE
  256. CALL ECLOBJ(IRET,JENTET)
  257. GOTO 50000
  258.  
  259. C LISTE D'UN OBJET CONFIGUR
  260. C =========================
  261. 170 CONTINUE
  262. MCOORD=IRET
  263. SEGACT,MCOORD
  264. NNOEUD=XCOOR(/1)/(IDIM+1)
  265. IROTA=MROTA
  266. SEGDES,MCOORD
  267. INTERR(1)=IRET
  268. INTERR(2)=NNOEUD
  269. INTERR(3)=IROTA
  270. CALL ERREUR(-390)
  271. GOTO 50000
  272.  
  273. C LISTE D'UN VECTDOUB
  274. C ===================
  275. 180 CONTINUE
  276. CALL PRVECT(IRET,jentet)
  277. GO TO 50000
  278.  
  279. C LISTE D'UN LISTMOTS
  280. C ===================
  281. 190 CONTINUE
  282. CALL ECLMOT(IRET)
  283. GOTO 50000
  284.  
  285. C LISTE D'UNE DEFORMEE
  286. C ====================
  287. 200 CONTINUE
  288. MDEFOR=IRET
  289. SEGACT MDEFOR
  290. NDEF=AMPL(/1)
  291. INTERR(1)=NDEF
  292. CALL ERREUR(-11)
  293. WRITE (IOIMP,201) (AMPL(I),IELDEF(I),ICHDEF(I),MTVECT(I),
  294. * NCOUL(JCOUL(I)),MDCHP(I),MDCHEL(I),MDMODE(I),I=1,NDEF)
  295. 201 FORMAT(1X,G12.5,4X,I8,I8,I8,2X,A6,3X,I8,4X,I8,I8)
  296. SEGDES MDEFOR
  297. GOTO 50000
  298.  
  299. C LISTE D'UNE LISTCHPO
  300. C ====================
  301. 210 CONTINUE
  302. CALL ECLCHP(IRET,jentet)
  303. GOTO 50000
  304.  
  305. C LISTE D'UN CHARGEMENT
  306. C =====================
  307. 220 CONTINUE
  308. CALL ECCHAR(IRET,jentet)
  309. GOTO 50000
  310.  
  311. C LISTE D'UNE EVOLUTION
  312. C =====================
  313. 230 CONTINUE
  314. CALL ECEVOL(IRET,jentet)
  315. GOTO 50000
  316.  
  317. C ... INUTILISE
  318. C =============
  319. 240 CONTINUE
  320. GOTO 50000
  321.  
  322. C LISTE D'UN VECTEUR
  323. C ==================
  324. 250 CONTINUE
  325. MVECTE=IRET
  326. SEGACT MVECTE
  327. NVEC=AMPF(/1)
  328. ID=NOCOVE(/3)
  329. INTERR(1)=NVEC
  330. CALL ERREUR(-12)
  331. DO i=1,NVEC
  332. WRITE(IOIMP,251) AMPF(i),ICHPO(i),
  333. & NCOUL(MAX(0,MIN(NBCOUL-1,NOCOUL(i)))),
  334. & (NOCOVE(i,j),j=1,ID)
  335. ENDDO
  336. 251 FORMAT(2X,G12.5,3X,I8,3X,A4,6X,A4,4X,A4,4X,A4)
  337. SEGDES MVECTE
  338. GOTO 50000
  339.  
  340. C LISTE D'UNE TABLE
  341. C =================
  342. 260 CONTINUE
  343. CALL ECTABL(IRET)
  344. GOTO 50000
  345.  
  346. C LISTE D'UNE PROCEDURE
  347. C =====================
  348. 270 CONTINUE
  349. CALL ECPROC
  350. RETURN
  351.  
  352. C LISTE D'UN OBJET ELEMSTRU
  353. C =========================
  354. 280 CONTINUE
  355. CALL PRELST(IRET)
  356. GOTO 50000
  357.  
  358. C LISTE D'UN OBJET BLOQSTRU
  359. C =========================
  360. 290 CONTINUE
  361. CALL PRCLST(IRET)
  362. GOTO 50000
  363.  
  364. C LISTE D'UN MCHAML
  365. C =================
  366. 300 CONTINUE
  367. CALL ZPCHEL(IRET,jentet)
  368. GOTO 50000
  369.  
  370. C LISTE D'UN MMODEL
  371. C =================
  372. 310 CONTINUE
  373. CALL ZPMODE(IRET)
  374. GOTO 50000
  375.  
  376. C CAS D'UN OBJET DE TYPE ANNULE
  377. C =============================
  378. 320 CONTINUE
  379. CALL ERREUR(-256)
  380. GOTO 50000
  381.  
  382. C LISTE D'UN NUAGE
  383. C ================
  384. 330 CONTINUE
  385. CALL ECNUAG(IRET)
  386. GOTO 50000
  387.  
  388. C LISTE D'UN MATRIK
  389. C =================
  390. 340 CONTINUE
  391. CALL ECMATK(IRET)
  392. GOTO 50000
  393.  
  394. C LISTE D'UN OBJET (DE TYPE = OBJET)
  395. C ==================================
  396. 350 CALL ECTABL(-IRET)
  397. GOTO 50000
  398.  
  399. C LISTE D'UN OBJET ESCLAVE
  400. C ========================
  401. 360 CONTINUE
  402. * modif LODESL pour les objets ESCLAVE
  403. * LODESL = .TRUE.
  404. CALL LIROBJ(ICHA,IRET,1,IRETOU)
  405. * LODESL = .FALSE.
  406. MESRES = IRET
  407. SEGACT MESRES
  408. IF ( LOREMP ) WRITE(ioimp,*) 'objet ESCLAVE, ????'
  409. WRITE(ioimp,*) ' objet ESCLAVE '
  410. SEGDES MESRES
  411. GOTO 50000
  412.  
  413. C LISTE D'UN OBJET ANNOTATION
  414. C ===========================
  415. 370 CALL ECANNO(IRET)
  416. GOTO 50000
  417.  
  418. 50000 CONTINUE
  419.  
  420. RETURN
  421. END
  422.  
  423.  
  424.  

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