Download nomc3.eso

Back to the list

   1 : C NOMC3     SOURCE    PV        11/03/08    21:15:44     6888           
   2 :       SUBROUTINE NOMC3(IPCH1,IPLM1,IPLM2,IPCH2,MOT)   
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8(A-H,O-Z)
   5 : *-----------------------------------------------------------------------
   6 : *
   7 : * Renommer certaines composantes d'un MCHAML
   8 : *
   9 : * IPCH1 (e)     pointeur sur un champ par points (type MCHAML)
  10 : * IPLM1 (e)     liste des composantes a remplacer (type LISTMOTS)
  11 : * IPLM2 (e)     liste des nouvelles composantes (type LISTMOTS)
  12 : * IPCH2 (s)     objet resultat (type MCHAML) 
  13 : * MOT           nouveau nom de composante
  14 : *
  15 : * kich 01/99
  16 : *-----------------------------------------------------------------------
  17 : -INC CCOPTIO
  18 : -INC SMCHAML
  19 : -INC SMLMOTS
  20 : *
  21 :        CHARACTER*(*) MOT
  22 : 
  23 : * le MCHAML ne doit avoir qu un constituant
  24 :        mchel1 = ipch1
  25 :        segact mchel1
  26 :        n1 = mchel1.ichaml(/1)
  27 :        n3 = mchel1.infche(/2)
  28 : *       if (n1.gt.1) then 
  29 : *         do ico = 2,n1 
  30 : *           if (mchel1.conche(ico).ne.mchel1.conche(1)) then
  30 : *             call erreur(716)
  31 : *             goto 990
  32 : *           endif
  33 : *         enddo
  34 : *       endif
  35 :        segini,mchelm = mchel1
  36 :       
  37 :       do 1 icha = 1,n1 
  38 :        mcham1 = mchel1.ichaml(icha)
  39 :        segact mcham1
  40 :        n2 = mcham1.ielval(/1)
  41 : 
  42 :        IF (IPLM1.NE.-1) goto 100
  43 : * cas du MCHAML a une composante 
  44 :        if (n2.gt.1) then
  45 :           moterr(1:8) = mot
  46 :           moterr(9:16) = 'MCHAML  '
  46 :           call erreur(784)
  47 :           goto 980
  48 :        endif
  49 :        segini,mchaml = mcham1
  50 :        ichaml(icha) = mchaml
  51 :        nomche(1) = mot
  52 : 
  53 :        melva1 = mcham1.ielval(1)
  54 :        segact melva1
  55 :        n1ptel = melva1.velche(/1)
  56 :        n1el = melva1.velche(/2)
  57 :        n2ptel = melva1.ielche(/1)
  58 :        n2el = melva1.ielche(/2)
  59 :        segini,melval=melva1
  60 : 
  61 :        ielval(1) = melval
  62 :        segdes melva1, melval
  63 :        goto 900
  64 : 
  65 :  100   continue
  66 : * cas du MCHAML a plusieurs composantes
  67 :       MLMOT1 = IPLM1
  68 :       SEGACT MLMOT1
  69 :       JGM1 = MLMOT1.MOTS(/2)
  70 :       MLMOT2 = IPLM2
  71 :       SEGACT MLMOT2
  72 :       JGM2 = MLMOT2.MOTS(/2)
  73 :       IF (JGM1.NE.JGM2) THEN
  73 :          CALL ERREUR(217)
  74 :          SEGDES MLMOT1,MLMOT2
  75 :          goto 980
  76 :       ENDIF
  77 :        segini,mchaml = mcham1
  78 :        ichaml(icha) = mchaml
  79 :          DO 130 K=1,n2
  79 :             CALL PLACE(MLMOT1.MOTS,JGM1,IMO,mcham1.nomche(k))
  80 :             IF (IMO.NE.0) THEN
  81 :                nomche(k) = MLMOT2.MOTS(IMO)
  82 :             ELSE
  83 :                nomche(k) = mcham1.nomche(k)
  84 :             ENDIF
  85 :            melva1 = mcham1.ielval(k)   
  86 :        segact melva1
  87 :        n1ptel = melva1.velche(/1)
  88 :        n1el = melva1.velche(/2)
  89 :        n2ptel = melva1.ielche(/1)
  90 :        n2el = melva1.ielche(/2)
  91 :        segini,melval = melva1
  92 :            
  93 :           ielval(k) = melval
  94 :           segdes melva1, melval
  95 :  130     CONTINUE
  96 : 
  97 :        
  98 :  900   continue
  99 :        segdes mchaml,mcham1
 100 :    1   continue 
 101 : 
 102 :        segdes mchelm,mchel1
 103 :        IPCH2 = MCHELM
 104 :        return
 105 : 
 106 :  980   continue
 107 :        segdes mcham1
 108 :        do ik = 1,n1
 109 :          mchaml = ichaml(ik)
 110 :          if (mchaml.gt.-1) then
 111 :          segact mchaml
 112 :          do il = 1,ielval(/1)
 113 :            melval = ielval(il)
 114 :            if (melval.gt.-1) segsup melval
 115 :          enddo
 116 :          segsup mchaml
 117 :          endif
 118 :        enddo
 119 :        segsup mchelm
 120 :  990   continue
 121 :        segdes mchel1
 122 :        return
 123 :        end
 124 : 
 125 : 
 126 :  
 127 :  
 128 :  
 129 :  
 130 :  
 131 :  

© Cast3M 2003 - All rights reserved.
Disclaimer