Download erreu2.eso

Back to the list

   1 : C ERREU2    SOURCE    JC220346  14/01/31    21:15:06     7939           
   2 : C  EDITION MESSAGE                                                              
   3 : C                                                                               
   4 :       SUBROUTINE ERREU2(CHLU,CHER,NBLIG,ITYP)                                   
   5 :       IMPLICIT INTEGER(I-N)
   6 : -INC CCOPTIO                                                                    
   7 :       CHARACTER*(*) CHLU(2),CHER(2)      
   8 :       CHARACTER*12 CHAUX                                                        
   9 :       CHARACTER*11 NOMBRE
  10 :       LOGICAL ZTRIM
  11 :       DATA NOMBRE /'0123456789:'/                                               
  12 :       CHER(1)=' '                                                               
  13 :       CHER(2)=' '                                                               
  14 :       CHER(1)=CHLU(1)                                                           
  15 :       CHER(2)=CHLU(2)                                                           
  16 :       DO 20 IL=1,NBLIG                                                          
  17 :           IOUT=0                                                                    
  18 :           IIN=0                                                                     
  19 :  100      CONTINUE                                                                  
  20 :           IIN=IIN+1                                                                 
  21 :           IF (IIN.GT.LEN(CHLU(IL))) GOTO 110                                        
  22 :           IF (CHLU(IL)(IIN:IIN).NE.'%') THEN                                       
  23 :               IOUT=IOUT+1                                                             
  24 :               CHER(IL)(IOUT:IOUT)=CHLU(IL)(IIN:IIN)                                   
  25 :           ELSEIF (CHLU(IL)(IIN+1:IIN+1).EQ.'i') THEN                               
  26 :               INUM=INDEX(NOMBRE,CHLU(IL)(IIN+2:IIN+2))-1                              
  27 :               IF (INUM.EQ.0) THEN                                                     
  28 :                   INOMB=ITYP                                                             
  29 :               ELSE                                                                    
  30 :                   INOMB=INTERR(INUM)                                                     
  31 :               ENDIF                                                                   
  32 :               WRITE (CHAUX,FMT='(I12)') INOMB                                         
  33 : *  NE GARDER QUE LES SIGNES SIGNIFICATIFS                                       
  34 :               DO 30 IAUX=1,12                                                         
  35 :                   IF (CHAUX(IAUX:IAUX).NE.' ') GOTO 40                                   
  36 :   30          CONTINUE                                                                
  37 :               IAUX=12                                                                 
  38 :   40          CONTINUE                                                                
  39 :               CHER(IL)(IOUT+1:IOUT+13-IAUX)=CHAUX(IAUX:12)                            
  40 :               IOUT=IOUT+13-IAUX                                                       
  41 :               IIN=IIN+2                                                               
  42 :           ELSEIF (CHLU(IL)(IIN+1:IIN+1).EQ.'r') THEN                               
  43 :               INUM=INDEX(NOMBRE,CHLU(IL)(IIN+2:IIN+2))-1                              
  44 :               RNOMB=REAERR(INUM)                                                      
  45 :               WRITE (CHAUX,FMT='(1PG12.5)') RNOMB                                     
  46 : *  NE GARDER QUE LES SIGNES SIGNIFICATIFS                                       
  47 :               DO 50 IAUX=1,12                                                         
  48 :                   IF (CHAUX(IAUX:IAUX).NE.' ') GOTO 60                                   
  49 :   50          CONTINUE                                                                
  50 :               IAUX=12                                                                 
  51 :   60          CONTINUE                                                                
  52 :               CHER(IL)(IOUT+1:IOUT+13-IAUX)=CHAUX(IAUX:12)                            
  53 :               IOUT=IOUT+13-IAUX                                                       
  54 :               IIN=IIN+2 
  55 :           ELSEIF (CHLU(IL)(IIN+1:IIN+1).EQ.'b') THEN                               
  56 :               INUM=INDEX(NOMBRE,CHLU(IL)(IIN+2:IIN+2))-1                                                                               
  57 :               IF (BOOERR(INUM)) THEN
  58 :                   CHAUX(1:4)='VRAI'
  59 :               ELSE
  60 :                   CHAUX(1:4)='FAUX'
  61 :               ENDIF                                                          
  62 :               CHER(IL)(IOUT+1:IOUT+4)=CHAUX(1:4)                            
  63 :               IOUT=IOUT+4                                                    
  64 :               IIN=IIN+2      
  65 :           ELSEIF ((CHLU(IL)(IIN+1:IIN+1).EQ.'m').OR.
  66 :      &            (CHLU(IL)(IIN+1:IIN+1).EQ.'M')) THEN
  67 :               ZTRIM=(CHLU(IL)(IIN+1:IIN+1).EQ.'M')
  68 :               IIN=IIN+1                                                               
  69 :               IPOS=INDEX(NOMBRE,CHLU(IL)(IIN+1:IIN+1))-1                              
  70 :               IIN=IIN+1                                                               
  71 :               IPOS1=INDEX(NOMBRE,CHLU(IL)(IIN+1:IIN+1))-1                             
  72 :               IF (IPOS1.NE.10) THEN                                                   
  73 :                   IPOS=10*IPOS+IPOS1                                                     
  74 :                   IIN=IIN+1                                                              
  75 :                   IPOS1=INDEX(NOMBRE,CHLU(IL)(IIN+1:IIN+1))-1                            
  76 :                   IF (IPOS1.NE.10) THEN                                                  
  77 :                       IPOS=10*IPOS+IPOS1                                                    
  78 :                       IIN=IIN+1                                                             
  79 :                   ENDIF                                                                  
  80 :               ENDIF                                                                   
  81 : *  LA IL Y A UN % ON LE SAUTE                                                   
  82 :               IIN=IIN+1                                                               
  83 :               JPOS=INDEX(NOMBRE,CHLU(IL)(IIN+1:IIN+1))-1                              
  84 :               IIN=IIN+1                                                               
  85 :               JPOS1=INDEX(NOMBRE,CHLU(IL)(IIN+1:IIN+1))-1                             
  86 :               IF (JPOS1.NE.-1) THEN                                                   
  87 :                   JPOS=10*JPOS+JPOS1                                                     
  88 :                   IIN=IIN+1                                                              
  89 :                   JPOS1=INDEX(NOMBRE,CHLU(IL)(IIN+1:IIN+1))-1                            
  90 :                   IF (JPOS1.NE.-1) THEN                                                  
  91 :                       JPOS=10*JPOS+JPOS1                                                    
  92 :                       IIN=IIN+1                                                             
  93 :                   ENDIF                                                                  
  94 :               ENDIF                                                                   
  95 :               IF (IPOS.EQ.0.AND.JPOS.EQ.0) THEN                                       
  96 :                   CHER(IL)(IOUT+1:IOUT+5)=LOCERR                                         
  97 :                   IOUT=IOUT+5                                                            
  98 :               ELSE
  98 :                   CALL LENCHA(MOTERR(IPOS:JPOS),LLMERR)
  99 :                   IF (LLMERR.GT.0.AND.ZTRIM) JPOS=IPOS+LLMERR-1
 100 :                   CHER(IL)(IOUT+1:IOUT+1+JPOS-IPOS)=MOTERR(IPOS:JPOS)                    
 101 :                   IOUT=IOUT+1+JPOS-IPOS                                                  
 102 :               ENDIF                                                                   
 103 :           ELSE                                                                     
 104 :               IOUT=IOUT+1                                                             
 105 :               CHER(IL)(IOUT:IOUT)=CHLU(IL)(IIN:IIN)                                   
 106 :           ENDIF                                                                    
 107 :           GOTO 100                                                                 
 108 :  110      CONTINUE                                                                  
 109 :   20  CONTINUE                                                                  
 110 :       END                                                                       
 111 :  
 112 :  

© Cast3M 2003 - All rights reserved.
Disclaimer