Télécharger prlist.eso

Retour à la liste

Numérotation des lignes :

prlist
  1. C PRLIST SOURCE GOUNAND 26/07/06 21:15:09 12593
  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 ACTOBJ('MAILLAGE',IRET, 2)
  155. CALL ECMAIL(IRET,JENTET)
  156. GOTO 50000
  157.  
  158. C LISTE D'UN LISTENTI
  159. C ===================
  160. 60 CONTINUE
  161. MLENTI=IRET
  162. SEGACT MLENTI
  163. N1=LECT(/1)
  164. INTERR(1)=N1
  165. INTERR(2)=MLENTI
  166. CALL ERREUR(-6)
  167. if(jentet.eq.1) n1 = min ( n1, 10)
  168. c IF(N1.NE.0) WRITE(IOIMP,62)(LECT(J),J=1,N1)
  169. c 62 FORMAT((20I6))
  170. cbp : on lit eventuellement nombre de colonne avant retour a la ligne :
  171. NMAX=20
  172. CALL LIRENT(IMAX,0,IRETOU)
  173. if(IRETOU.NE.0) NMAX=MIN(IMAX,999)
  174. WRITE(TITI,FMT='("(",I3,"(I8))")') NMAX
  175. IF(N1.NE.0) WRITE(IOIMP,TITI)(LECT(J),J=1,N1)
  176. SEGDES MLENTI
  177. GOTO 50000
  178.  
  179. C LISTE D'UN POINT
  180. C ================
  181. 70 CONTINUE
  182. SEGACT MCOORD
  183. IB=IRET
  184. ID=(IDIM+1)*(IB-1)
  185. INTERR(1)=IB
  186. REAERR(1)=XCOOR(ID+1)
  187. REAERR(2)=XCOOR(ID+2)
  188. IF (IDIM.EQ.1) THEN
  189. CALL ERREUR(-339)
  190. ELSE
  191. REAERR(3)=XCOOR(ID+3)
  192. IF (IDIM.EQ.2) CALL ERREUR(-7)
  193. IF (IDIM.EQ.3) THEN
  194. REAERR(4)=XCOOR(ID+4)
  195. CALL ERREUR(-8)
  196. ENDIF
  197. ENDIF
  198. RETURN
  199.  
  200. C LISTE D'UN LISTREEL
  201. C ===================
  202. 80 CONTINUE
  203. CALL ECLRE1(IRET,JENTET)
  204. GO TO 50000
  205.  
  206. C LISTE D'UN CHPOINT
  207. C ==================
  208. 90 CONTINUE
  209. CALL ECCHPO(IRET,jentet)
  210. GO TO 50000
  211.  
  212. C LISTE D'UNE RIGIDITE
  213. C ====================
  214. 100 CONTINUE
  215. CALL PRRIGI(IRET,jentet)
  216. GO TO 50000
  217.  
  218. C LISTE D'UN OBJET TEXTE
  219. C ======================
  220. 110 CONTINUE
  221. MTEXTE=IRET
  222. SEGACT MTEXTE
  223. INTERR(1)=NCART
  224. CALL ERREUR (-10)
  225. IF(NCART.NE.0) WRITE(IOIMP,111) MTEXT
  226. 111 FORMAT(5X,A72)
  227. SEGDES MTEXTE
  228. GO TO 50000
  229.  
  230. C LISTE D'UN OBJET STRUCTURE
  231. C ==========================
  232. 120 CONTINUE
  233. CALL ECSTRU(IRET)
  234. GO TO 50000
  235.  
  236. C LISTE D'UN OBJET ATTACHE
  237. C ========================
  238. 130 CONTINUE
  239. CALL ECMATT(IRET,jentet)
  240. GO TO 50000
  241.  
  242. C LISTE D'UN OBJET SOLUTION
  243. C =========================
  244. 140 CONTINUE
  245. CALL ECSOLU(IRET,jentet)
  246. GO TO 50000
  247.  
  248. C LISTE D'UN OBJET BASEMODA
  249. C =========================
  250. 150 CONTINUE
  251. CALL ECBASE(IRET)
  252. GO TO 50000
  253.  
  254. C LISTE D'UN OBJET LISTOBJE
  255. C =========================
  256. 160 CONTINUE
  257. CALL ECLOBJ(IRET,JENTET)
  258. GOTO 50000
  259.  
  260. C LISTE D'UN OBJET CONFIGUR
  261. C =========================
  262. 170 CONTINUE
  263. MCOORD=IRET
  264. SEGACT,MCOORD
  265. NNOEUD=XCOOR(/1)/(IDIM+1)
  266. IROTA=MROTA
  267. SEGDES,MCOORD
  268. INTERR(1)=IRET
  269. INTERR(2)=NNOEUD
  270. INTERR(3)=IROTA
  271. CALL ERREUR(-390)
  272. GOTO 50000
  273.  
  274. C LISTE D'UN VECTDOUB
  275. C ===================
  276. 180 CONTINUE
  277. CALL PRVECT(IRET,jentet)
  278. GO TO 50000
  279.  
  280. C LISTE D'UN LISTMOTS
  281. C ===================
  282. 190 CONTINUE
  283. CALL ECLMOT(IRET)
  284. GOTO 50000
  285.  
  286. C LISTE D'UNE DEFORMEE
  287. C ====================
  288. 200 CONTINUE
  289. MDEFOR=IRET
  290. SEGACT MDEFOR
  291. NDEF=AMPL(/1)
  292. INTERR(1)=NDEF
  293. CALL ERREUR(-11)
  294. WRITE (IOIMP,201) (AMPL(I),IELDEF(I),ICHDEF(I),MTVECT(I),
  295. * NCOUL(JCOUL(I)),MDCHP(I),MDCHEL(I),MDMODE(I),I=1,NDEF)
  296. 201 FORMAT(1X,G12.5,4X,I8,I8,I8,2X,A6,3X,I8,4X,I8,I8)
  297. SEGDES MDEFOR
  298. GOTO 50000
  299.  
  300. C LISTE D'UNE LISTCHPO
  301. C ====================
  302. 210 CONTINUE
  303. CALL ECLCHP(IRET,jentet)
  304. GOTO 50000
  305.  
  306. C LISTE D'UN CHARGEMENT
  307. C =====================
  308. 220 CONTINUE
  309. CALL ECCHAR(IRET,jentet)
  310. GOTO 50000
  311.  
  312. C LISTE D'UNE EVOLUTION
  313. C =====================
  314. 230 CONTINUE
  315. CALL ECEVOL(IRET,jentet)
  316. GOTO 50000
  317.  
  318. C ... INUTILISE
  319. C =============
  320. 240 CONTINUE
  321. GOTO 50000
  322.  
  323. C LISTE D'UN VECTEUR
  324. C ==================
  325. 250 CONTINUE
  326. MVECTE=IRET
  327. SEGACT MVECTE
  328. NVEC=AMPF(/1)
  329. ID=NOCOVE(/3)
  330. INTERR(1)=NVEC
  331. CALL ERREUR(-12)
  332. DO i=1,NVEC
  333. WRITE(IOIMP,251) AMPF(i),ICHPO(i),
  334. & NCOUL(MAX(0,MIN(NBCOUL-1,NOCOUL(i)))),
  335. & (NOCOVE(i,j),j=1,ID)
  336. ENDDO
  337. 251 FORMAT(2X,G12.5,3X,I8,3X,A4,6X,A4,4X,A4,4X,A4)
  338. SEGDES MVECTE
  339. GOTO 50000
  340.  
  341. C LISTE D'UNE TABLE
  342. C =================
  343. 260 CONTINUE
  344. CALL ECTABL(IRET)
  345. GOTO 50000
  346.  
  347. C LISTE D'UNE PROCEDURE
  348. C =====================
  349. 270 CONTINUE
  350. CALL ECPROC
  351. RETURN
  352.  
  353. C LISTE D'UN OBJET ELEMSTRU
  354. C =========================
  355. 280 CONTINUE
  356. CALL PRELST(IRET)
  357. GOTO 50000
  358.  
  359. C LISTE D'UN OBJET BLOQSTRU
  360. C =========================
  361. 290 CONTINUE
  362. CALL PRCLST(IRET)
  363. GOTO 50000
  364.  
  365. C LISTE D'UN MCHAML
  366. C =================
  367. 300 CONTINUE
  368. CALL ACTOBJ('MCHAML ',IRET, 2)
  369. CALL ZPCHEL(IRET,jentet)
  370. GOTO 50000
  371.  
  372. C LISTE D'UN MMODEL
  373. C =================
  374. 310 CONTINUE
  375. CALL ZPMODE(IRET)
  376. GOTO 50000
  377.  
  378. C CAS D'UN OBJET DE TYPE ANNULE
  379. C =============================
  380. 320 CONTINUE
  381. CALL ERREUR(-256)
  382. GOTO 50000
  383.  
  384. C LISTE D'UN NUAGE
  385. C ================
  386. 330 CONTINUE
  387. CALL ECNUAG(IRET)
  388. GOTO 50000
  389.  
  390. C LISTE D'UN MATRIK
  391. C =================
  392. 340 CONTINUE
  393. CALL ECMATK(IRET)
  394. GOTO 50000
  395.  
  396. C LISTE D'UN OBJET (DE TYPE = OBJET)
  397. C ==================================
  398. 350 CALL ECTABL(-IRET)
  399. GOTO 50000
  400.  
  401. C LISTE D'UN OBJET ESCLAVE
  402. C ========================
  403. 360 CONTINUE
  404. * modif LODESL pour les objets ESCLAVE
  405. * LODESL = .TRUE.
  406. CALL LIROBJ(ICHA,IRET,1,IRETOU)
  407. * LODESL = .FALSE.
  408. MESRES = IRET
  409. SEGACT MESRES
  410. IF ( LOREMP ) WRITE(ioimp,*) 'objet ESCLAVE, ????'
  411. WRITE(ioimp,*) ' objet ESCLAVE '
  412. SEGDES MESRES
  413. GOTO 50000
  414.  
  415. C LISTE D'UN OBJET ANNOTATION
  416. C ===========================
  417. 370 CALL ECANNO(IRET)
  418. GOTO 50000
  419.  
  420. 50000 CONTINUE
  421.  
  422. RETURN
  423. END
  424.  
  425.  

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