Download lire01.eso

Back to the list

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

© Cast3M 2003 - All rights reserved.
Disclaimer