Download adcham.eso

Back to the list

   1 : C ADCHAM    SOURCE    PV        09/03/12    21:15:08     6325           
   2 :       SUBROUTINE ADCHAM (IPCHA2,IPCHA,XX)                                       
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8 (A-H,O-Z)                                                 
   5 :       CHARACTER*16 TYPCH1,TYPCH2
   6 : *_______________________________________________________________________        
   7 : *                                                                               
   8 : *         ROUTINE EXECUTANT L'ADDITION DES COMPOSANTE DE 2 MCHAML               
   9 : *                                                                               
  10 : *  ENTREES :                                                                    
  11 : *        IPCHA    : POINTEUR SUR UN SEGMENT MCHAML SUPPOSE ACTIF                
  12 : *        IPCHA2   : POINTEUR SUR 2IEME SEGGMENT MCHAML SUPPOSE ACTIF            
  13 : *        XX       : COEFFICIENT MULTIPLICATEUR                                  
  14 : *                                                                               
  15 : *                                                                               
  16 : *  SORTIE :                                                                     
  17 : *        IPCHA    : POINTEUR SUR UN SEGMENT MCHAML RESULTAT SUPPOSE ACTI        
  18 : *                 = 0 SI PB                                                     
  19 : *                                                                               
  20 : *  PASSAGE AUX NOUVEAU CHAMELEM PAR JM CAMPENON LE 01/91                        
  21 : *                                                                               
  22 : *_______________________________________________________________________        
  23 : *                                                                               
  24 : -INC SMCHAML                                                                    
  25 : -INC CCOPTIO                                                                    
  26 : *                                                                               
  27 :       MCHAML=IPCHA                                                              
  28 :       MCHAM2=IPCHA2                                    
  29 : *     ON CHERCHE LES NOM DE COMPOSANTES EN COMMUN DANS LES                      
  30 : *     2 CHAMELEMS                                                               
  31 : *                                                                               
  32 :       DO 1 ICOMP=1,IELVAL(/1)                                                   
  32 :          CALL PLACE (MCHAM2.NOMCHE,MCHAM2.NOMCHE(/2),IPLAC,                     
  33 :      &               NOMCHE(ICOMP))                                             
  34 :          IF (IPLAC.NE.0) THEN                                                   
  35 : C           On verifie que les composantes trouvees sont du meme type
  36 :             TYPCH1=MCHAML.TYPCHE(ICOMP)
  37 :             TYPCH2=MCHAM2.TYPCHE(IPLAC)
  38 :             IF (TYPCH1.NE.TYPCH2) THEN
  39 :                MOTERR(1:4)=MCHAML.NOMCHE(ICOMP)
  40 :                MOTERR(5:21)=TYPCH1
  41 :                MOTERR(22:38)=TYPCH2
  41 :                CALL ERREUR (917)
  42 :                IPCHA=0
  43 :                RETURN
  44 :             ENDIF
  45 : C           ICOD=0/1/2/3 en fonction du type des composantes
  46 :             IPMEL1=IELVAL(ICOMP)                                                
  47 :             IPMEL2=MCHAM2.IELVAL(IPLAC)                                         
  48 :             ICOD=0                                                              
  49 :             IF (TYPCHE(ICOMP).EQ.'POINTEURLISTREEL') ICOD=1                     
  50 :             IF (TYPCHE(ICOMP).EQ.'POINTEURPOINT   ') ICOD=2                     
  51 :             IF (TYPCHE(ICOMP).EQ.'POINTEUREVOLUTIO') ICOD=3
  52 : *                                                                               
  52 :             CALL ADCHVE(IPMEL1,IPMEL2,XX,ICOD,IPMELV,IRETOU)
  53 :             MELVA1=IPMEL1
  54 :             SEGDES MELVA1
  55 :             MELVA1=IPMEL2
  56 :             SEGDES MELVA1
  57 :             IF (IRETOU.NE.0) THEN                                               
  58 :                IF (IRETOU.EQ.197) MOTERR(1:4)=NOMCHE(ICOMP)                     
  58 :                CALL ERREUR (IRETOU)                                             
  59 :                IPCHA=0                                                          
  60 :                RETURN                                                           
  61 :             ENDIF                                                               
  62 :             IELVAL(ICOMP)=IPMELV                                                
  63 :          ELSE                                                                   
  64 :             MELVA1=IELVAL(ICOMP)                                                
  65 :             SEGINI,MELVAL=MELVA1                                                
  66 :             IELVAL(ICOMP)=MELVAL                                                
  67 :             SEGDES MELVAL                                                       
  68 :          ENDIF                                                                  
  69 :  1    CONTINUE                                                                  
  70 : *                                                                               
  71 : *     ON RAJOUTE LES COMPOSANTES DU 2IEME CHAMELEM QUI NE SONT PAS              
  72 : *     ENCORE PRIS EN COMPTE (LE NUMERO DE LA SOUS ZONE EST DONNE                
  73 : *     JTAFF(ISOUS1)                                                             
  74 : *                                                                               
  75 :       N22=IELVAL(/1)                                                            
  76 :       DO 2 ICOMP=1,MCHAM2.IELVAL(/1)                                            
  76 :          CALL PLACE (NOMCHE,N22,IPLAC,                                          
  77 :      &               MCHAM2.NOMCHE(ICOMP))                                      
  78 :          IF (IPLAC.EQ.0) THEN                                                   
  79 :             N2=IELVAL(/1)                                                       
  80 :             N2=N2+1                                                             
  81 :             SEGADJ MCHAML                                                       
  82 :             NOMCHE(N2)=MCHAM2.NOMCHE(ICOMP)                                     
  83 :             TYPCHE(N2)=MCHAM2.TYPCHE(ICOMP)                                     
  84 :             MELVA2=MCHAM2.IELVAL(ICOMP)                                         
  85 :             SEGINI,MELVAL=MELVA2                                                
  86 :             IELVAL(N2)=MELVAL                                                   
  87 :             SEGDES MELVAL                                                       
  88 :          ENDIF                                                                  
  89 :  2    CONTINUE                                                                  
  90 : *                                                                               
  91 :  9990 CONTINUE                                                         
  92 :       END                                                                       
  93 :  
  94 :  
  95 :  
  96 :  
  97 :  
  98 :  

© Cast3M 2003 - All rights reserved.
Disclaimer