Download result.eso

Back to the list

   1 : C RESULT    SOURCE    GOUNAND   13/08/01    21:15:11     7810           
   2 :       SUBROUTINE RESULT(ICHPO1,ICHPOR)
   3 : C====================================================================
   4 : C     
   5 : C         CALCULE LA RESULTANTE D UN CHAMP PAR POINT
   6 : C     
   7 : C    ENTREES
   8 : C     ICHPO1 = UN CHAMP PAR POINT ARBITRAIRE
   9 : C    SORTIES
  10 : C     ICHPOR =  CHAMP PAR POINT RESULTANT
  11 : C               QUI A LES CARACTERISTIQUES SUIVANTES
  12 : C                NSOUPO=1   IGEOC=1ER POINT DU CHAMP DONNE
  13 : C     
  14 : C    ATTENTION : DANS L IMMEDIAT CET OPERATEUR SE CONTENTE DE
  15 : C      SOMMER LES VALEURS SUR LES DIFFERENTES COMPOSANTES
  16 : C     
  17 : C         CODE JACQUELINE BROCHARD AVRIL 85
  18 : C         corrections pour prendre en compte divers types 
  19 : C         de chpoints vide S. GOUNAND JUILLET 2013
  20 : C=====================================================================
  21 :       IMPLICIT INTEGER(I-N)
  22 :       IMPLICIT REAL*8(A-H,O-Z)
  23 : -INC SMCHPOI
  24 : -INC SMELEME
  25 : -INC CCOPTIO
  26 :       SEGMENT SICOMP
  27 :       CHARACTER*4 ICOMP(0)
  28 :       ENDSEGMENT
  29 :       SEGMENT IHARM(0)
  30 : C
  31 : C             STOCKENT LES NOMS DES COMPOSANTES ET LES HARMONIQUES
  32 : C
  33 :       MCHPO1=ICHPO1
  34 :       SEGACT MCHPO1
  35 :       NSOUP1=MCHPO1.IPCHP(/1)
  36 : C     
  37 : C     ON INITIALISE LE CHPOINT RESULTANT
  38 : C     
  39 :       NSOUPO=MIN(1,NSOUP1)
  40 :       NAT=MAX(1,MCHPO1.JATTRI(/1))
  41 :       SEGINI MCHPOI
  42 : C     
  43 : C     INITIALISATION DES TITRES DU CHPOINT RESULTANT ET DU IFOPOI
  44 : C     
  45 :       MTYPOI=MCHPO1.MTYPOI
  46 :       MOCHDE=MCHPO1.MOCHDE
  47 :       IFOPOI=MCHPO1.IFOPOI
  48 :       DO 111 NATI=1,NAT
  49 :          JATTRI(NATI)=MCHPO1.JATTRI(NATI)
  50 :  111  CONTINUE
  51 :       JATTRI(1)=2
  52 : * le champ par point resultant est de nature discrete (DEGAY)
  53 :       ICHPOR=MCHPOI
  54 :       IF (NSOUP1.GT.0) THEN
  55 : C     
  56 : C     ON RECUPERE LES NOMS DES COMPOSANTES ET ON LES MET DANS ICOMP
  57 : C     ON CHERCHE EGALEMENT LE NUMERO DU PREMIER NOEUD NON NUL DANS LES
  58 : C     IGEOC 
  59 : C     
  60 :          INODE=0
  61 :          SEGINI SICOMP,IHARM
  62 : * gounand Les deux lignes suivantes sont inutiles et potentiellement 
  63 : *         dangereuses si NC=0
  64 : *      ICOMP(**)=MSOUP1.NOCOMP(1)
  65 : *      IHARM(**)=MSOUP1.NOHARM(1)
  66 :          DO 100 IA=1,NSOUP1
  67 :             MSOUP1=MCHPO1.IPCHP(IA)
  68 :             SEGACT MSOUP1
  69 :             NC1=MSOUP1.NOCOMP(/2)
  70 :             DO 120 IB=1,NC1
  71 :                DO 140 IC=1,ICOMP(/2)
  72 :                   IF (ICOMP(IC).EQ.MSOUP1.NOCOMP(IB)
  73 :      S                 .AND.IHARM(IC).EQ.MSOUP1.NOHARM(IB)) GOTO 120
  74 :  140           CONTINUE
  75 :                ICOMP(**)=MSOUP1.NOCOMP(IB)
  76 :                IHARM(**)=MSOUP1.NOHARM(IB)
  77 :  120        CONTINUE
  78 :             IPT1=MSOUP1.IGEOC
  79 :             IF (IPT1.GT.0.AND.INODE.EQ.0) THEN
  80 :                SEGACT IPT1
  81 :                NBL=IPT1.NUM(/2)
  82 :                IF (NBL.GT.0) INODE=IPT1.NUM(1,1)
  83 :                SEGDES IPT1
  84 :             ENDIF
  85 :             SEGDES MSOUP1
  86 :  100     CONTINUE
  87 :          NC=ICOMP(/2)
  88 :          IF (NC.EQ.0) THEN
  89 : * On n'a pas trouvé de composantes => CHPO VIDE
  90 :             NSOUPO=0
  91 :             SEGADJ MCHPOI
  92 :          ELSE
  93 :             SEGINI MSOUPO
  94 :             IPCHP(1)=MSOUPO
  95 : C     
  96 : C     REMPLISSAGE DES NOMS DE COMPOSANTES ET DES HARMONIQUES
  97 : C     
  98 :             DO 210 I=1,NC
  99 :                NOCOMP(I)=ICOMP(I)
 100 :                NOHARM(I)=IHARM(I)
 101 :  210        CONTINUE
 102 : C     
 103 : C     CREATION DU SUPPORT GEOMETRIQUE DU CHPOINT RESULTANT
 104 : C     
 105 :             NBNN=1
 106 :             NBELEM=1
 107 : * On n'a pas trouvé de noeuds => CHPO VIDE + noms de composantes
 108 : * + IGEOC vide + IPOVAL vide
 109 : * On est un peu trop gentil
 110 :             IF (INODE.EQ.0) NBELEM=0
 111 :             NBSOUS=0
 112 :             NBREF=0
 113 :             SEGINI MELEME
 114 :             ITYPEL=1
 115 :             IF (INODE.NE.0) NUM(1,1)=INODE
 116 :             SEGDES MELEME
 117 :             IGEOC=MELEME
 118 : C
 119 : C     CREATION DES VALEURS DU CHPOINT RESULTANT
 120 : C            
 121 :             N=1
 122 :             IF (INODE.EQ.0) N=0
 123 :             SEGINI MPOVAL
 124 :             IPOVAL=MPOVAL
 125 :             IF (INODE.GT.0) THEN
 126 : C     
 127 : C     BOUCLE SUR LES SOUS PAQUETS DU CHPOINT ARGUMMENT
 128 : C     
 129 :                DO 200 IA=1,NSOUP1
 130 :                   MSOUP1=MCHPO1.IPCHP(IA)
 131 :                   SEGACT MSOUP1
 132 :                   NC1=MSOUP1.NOCOMP(/2)
 133 :                   MPOVA1=MSOUP1.IPOVAL
 134 :                   SEGACT MPOVA1
 135 : C     
 136 : C     ON CHERCHE LE NOM DE LA COMPOSANTE
 137 : C     
 138 :                   N1=MPOVA1.VPOCHA(/1)
 139 :                   DO 220 IB=1,NC1
 140 :                      DO 240 IC=1,NC
 141 :                         IF (ICOMP(IC).EQ.MSOUP1.NOCOMP(IB)
 142 :      S                       .AND.IHARM(IC).EQ.MSOUP1.NOHARM(IB))
 143 :      $                       GOTO 260
 144 :  240                 CONTINUE
 145 :  260                 CONTINUE
 146 : C     
 147 : C     ET ON ADDITIONNE
 148 : C     
 149 :                      DO 280 ID=1,N1
 150 :                         VPOCHA(1,IC)=VPOCHA(1,IC)+
 151 :      $                       MPOVA1.VPOCHA(ID,IB)
 152 :  280                 CONTINUE
 153 :  220              CONTINUE
 154 :                   SEGDES MPOVA1
 155 :                   SEGDES MSOUP1
 156 :  200           CONTINUE
 157 :             ENDIF
 158 :             SEGDES MPOVAL
 159 :             SEGDES MSOUPO
 160 :          ENDIF
 161 : C     
 162 : C     SUPPRESSION DES SEGMENTS DE TRAVAIL
 163 : C     
 164 :          SEGSUP SICOMP,IHARM
 165 :       ENDIF
 166 :       SEGDES MCHPOI
 167 :       SEGDES MCHPO1
 168 :       RETURN
 169 :       END
 170 : 
 171 : 
 172 : 
 173 : 
 174 :  

© Cast3M 2003 - All rights reserved.
Disclaimer