Télécharger lire01.eso

Retour à la liste

Numérotation des lignes :

  1. C LIRE01 SOURCE CB215821 17/04/20 21:15:18 9406
  2. SUBROUTINE LIRE01 (IPOIN1,IPOS,IPOIN2)
  3. ************************************************************************
  4. *
  5. * L I R E 0 1
  6. * -----------
  7. *
  8. * FONCTION:
  9. * ---------
  10. *
  11. * LIRE 2 OBJETS, L'UN ETANT UN INDICE DE POSITION DANS L'AUTRE
  12. * (UTILISE, A L'ORIGINE, POUR LES OPERATEURS "EXTRAIRE" ET
  13. * "ENLEVER").
  14. *
  15. * MODE D'APPEL:
  16. * -------------
  17. *
  18. * CALL LIRE01 (IPOIN1,IPOS,IPOIN2)
  19. *
  20. * PARAMETRES: (E)=ENTREE (S)=SORTIE
  21. * -----------
  22. *
  23. * IPOS ENTIER (E) IPOS<>0 IPOIN2 PEUT ETRE UN LISTENTI
  24. * IPOS=0 IPOIN2 NE PEUT PAS ETRE UN LISTENTI
  25. *
  26. * IPOIN1 ENTIER (S) POINTEUR SUR LA LISTE A MODIFIER
  27. *
  28. * IPOIN2 ENTIER (S) POINTEUR SUR LA LISTE D'INDICES DE POSITION
  29. * (OU L'INDICE DE POSITION LUI-MEME).
  30. *
  31. * IPOS ENTIER (S) CHIFFRE INDIQUANT LES TYPES POINTES PAR
  32. * IPOIN1 ET IPOIN2
  33. *
  34. * |IPOS|=1 :: IPOIN1=LISTREEL
  35. * |IPOS|=2 :: IPOIN1=LISTENTI
  36. * |IPOS|=3 :: IPOIN1=LISTMOTS
  37. * |IPOS|=4 :: IPOIN1=LISTCHPO
  38. *
  39. * IPOS>0 :: IPOIN2=ENTIER
  40. * IPOS<0 :: IPOIN2=LISTENTI
  41. *
  42. * IPOS =0 :: PAS D'OBJET "LISTxxxx" TROUVÉ
  43. *
  44. *
  45. * MODE DE FONCTIONNEMENT
  46. * ----------------------
  47. *
  48. *
  49. * SUITE A MODIF IL N'EST PLUS POSSIBLE DE LIRE UNE TABLE.
  50. *
  51. *
  52. * SOUS-PROGRAMMES APPELES:
  53. * ------------------------
  54. *
  55. * LIRE, LIRENT
  56. *
  57. * AUTEUR, DATE DE CREATION:
  58. * -------------------------
  59. *
  60. * PASCAL MANIGOT 5 DECEMBRE 1984
  61. * DATE DE MODIFICATION 22 JANVIER 1988
  62. * LANGAGE:
  63. * --------
  64. *
  65. * FORTRAN77
  66. *
  67. ************************************************************************
  68. *
  69. IMPLICIT INTEGER(I-N)
  70.  
  71. -INC CCOPTIO
  72.  
  73. CHARACTER*(8) CMOT
  74. LOGICAL ZLENTI
  75.  
  76. PARAMETER (NBMO=4)
  77. CHARACTER*8 CLIST(NBMO)
  78.  
  79. DATA CLIST /'LISTREEL','LISTENTI','LISTMOTS','LISTCHPO'/
  80.  
  81. * AUTORISE-T-ON INDIC1 A ETRE DE TYPE LISTENTI ?
  82. ZLENTI=(IPOS.NE.0)
  83.  
  84.  
  85. * LECTURE DE OBJET1 DANS IPOIN1
  86. CALL QUETYP(CMOT,0,IRETOU)
  87. IF (IRETOU.EQ.0) THEN
  88. CALL ERREUR(533)
  89. RETURN
  90. ENDIF
  91.  
  92. CALL PLACE(CLIST,NBMO,IPOS,CMOT)
  93. IF (IPOS.EQ.0) THEN
  94. MOTERR(1:8)=CMOT
  95. CALL ERREUR(39)
  96. RETURN
  97. ELSE
  98. CALL LIROBJ(CMOT,IPOIN1,1,IRETOU)
  99. ENDIF
  100.  
  101.  
  102. * LECTURE DE INDIC1 DANS IPOIN2
  103. CALL QUETYP(CMOT,0,IRETOU)
  104. IF (IRETOU.EQ.0) THEN
  105. CALL ERREUR(533)
  106. RETURN
  107. ENDIF
  108.  
  109. IF (CMOT.EQ.'ENTIER') THEN
  110. ISGN=1
  111. CALL LIRENT (IPOIN2,1,IRETOU)
  112. IF (IERR.NE.0) RETURN
  113. ELSEIF (ZLENTI.AND.CMOT.EQ.'LISTENTI') THEN
  114. ISGN=-1
  115. CALL LIROBJ('LISTENTI',IPOIN2,1,IRETOU)
  116. IF (IERR.NE.0) RETURN
  117. ELSE
  118. MOTERR(1:8)=CMOT
  119. CALL ERREUR(39)
  120. RETURN
  121. ENDIF
  122. IPOS=IPOS*ISGN
  123.  
  124. RETURN
  125. END
  126.  
  127.  

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