Download towa1.eso

Back to the list

   1 : C TOWA1     SOURCE    CHAT      09/10/09    21:25:34     6519           
   2 :       SUBROUTINE TOWA1 (REDIR,NOCOPO,NOMDU1,IPINW,NOMPR1,
   3 :      &                  MPOVD1,MPOVC1,MPOVR1,MPOVL1,MPOVT1,
   4 :      &                  XDT1,DESCR,xMATRI,MCHPOI)
   5 : C
   6 : C***********************************************************************
   7 : C
   8 : C
   9 : C     Subroutine appelée par TOWA.
  10 : C     Création de la matrice élémentaire et du second membre associés
  11 : C     à l'opération de thermique 1D dans un mur.
  12 : C
  13 : C
  14 : C  ENTREES :
  15 : C  --------
  16 : C
  17 : C  REDIR   :  Segment des tableaux de correspondances
  18 : C  NOCOPO  :  Segment des tableaux de positions des noms de composantes
  19 : C  NOMDU1  :  Nom de l'inconnue duale définie sur les points de
  20 : C             tous les murs.
  21 : C  IPINW   :  Support géométrique associé au mur
  22 : C  NOMPR1  :  Nom de l'inconnue ou de la donnée flux de chaleur.
  23 : C  MPOVD1  :  Pointeur sur le segment MPOVAL des valeurs de l'inconnue
  24 : C             duale à l'itération précédente.
  25 : C  MPOVC1  :  Pointeur sur le segment MPOVAL des valeurs des chaleurs
  26 : C             spécifiques.
  27 : C  MPOVR1  :  Pointeur sur le segment MPOVAL des valeurs des masses 
  28 : C             volumiques.
  29 : C  MPOVL1  :  Pointeur sur le segment MPOVAL des valeurs des 
  30 : C             conductivités spécifiques.
  31 : C  MPOVT1  :  Pointeur sur le segment MPOVAL des valeurs des 
  32 : C             épaisseurs.
  33 : C  XDT1    :  Valeur du pas de temps 
  34 : C
  35 : C  SORTIE :
  36 : C  -------
  37 : C
  38 : C  DESCR   :  Pointeur sur le segment descriptif de la matrice
  39 : C             élémentaire.
  40 : C  IMATRI  :  Pointeur sur le segment contenant le pointeur de 
  41 : C             la matrice élémentaire.
  42 : C  MCHPOI  :  Pointeur sur le champ second membre.
  43 : C 
  44 : C  
  45 : C AUTEUR, DATE DE CREATION:
  46 : C -------------------------
  47 : C
  48 : C     Laurent DADA      décembre 1996
  49 : C
  50 : C
  51 : C LANGAGE:
  52 : C --------
  53 : C
  54 : C     ESOPE + FORTRAN77
  55 : C
  56 : C***********************************************************************
  57 : C
  58 :       IMPLICIT INTEGER(I-N)
  59 :       IMPLICIT REAL*8 (A-H,O-Z)
  60 : C
  61 : -INC CCOPTIO
  62 : -INC SMCHPOI
  63 :       POINTEUR MPOVC1.MPOVAL,MPOVR1.MPOVAL,MPOVD1.MPOVAL
  64 :       POINTEUR MPOVL1.MPOVAL,MPOVT1.MPOVAL
  65 : -INC SMELEME
  66 :       POINTEUR IPINW.MELEME
  67 : -INC SMRIGID
  68 : -INC TMTRAV
  69 : C
  70 :       SEGMENT REDIR
  71 :         INTEGER IPOSC1(NNGOT)
  72 :         INTEGER IPOSR1(NNGOT)
  73 :         INTEGER IPOSL1(NNGOT)
  74 :         INTEGER IPOST1(NNGOT)
  75 :         INTEGER IPOSQ1(NNGOT)
  76 :         INTEGER IPOSD1(NNGOT)
  77 :       ENDSEGMENT
  78 : C
  79 :       SEGMENT NOCOPO
  80 :         INTEGER NOCOC1(2)
  81 :         INTEGER NOCOR1(2)
  82 :         INTEGER NOCOL1(2)
  83 :         INTEGER NOCOT1(2)
  84 :       ENDSEGMENT
  85 : C
  86 :       CHARACTER*8 NOMDU1,NOMPR1
  87 :       REAL*8      LGAU,LDRO
  88 : C
  89 :       SEGACT IPINW
  90 :       NBELW1 = IPINW.NUM(/2)
  91 : C
  92 : C Remplissage du descripteur de l'objet RIGIDITE
  93 : C
  94 :       NLIGRP = NBELW1
  95 :       NLIGRD = NBELW1
  96 :       SEGINI DESCR
  97 : C
  98 :       DO 20 I20=1,NBELW1
  99 :         NOELEP(I20) = I20
 100 :         LISINC(I20) = NOMDU1
 101 :         NOELED(I20) = I20
 102 :         LISDUA(I20) = NOMDU1
 103 : 20    CONTINUE
 104 : C
 105 :       SEGDES DESCR
 106 : C
 107 :       NELRIG = 1
 108 : *      SEGINI IMATRI
 109 :       SEGINI XMATRI
 110 : C
 111 : *      IMATTT(1)   = XMATRI
 112 : *      SEGDES IMATRI
 113 : C
 114 : C Initialisation du segment de travail
 115 : C
 116 :       NNIN  = 1
 117 :       NNNOE = NBELW1
 118 :       SEGINI MTRAV
 119 :       INCO(1) = NOMDU1
 120 :       NHAR(1) = NIFOUR
 121 : C Boucle sur les points internes du mur
 122 :       SEGACT REDIR
 123 :       SEGACT NOCOPO
 124 :       SEGACT MPOVC1
 125 :       SEGACT MPOVR1
 126 :       SEGACT MPOVL1
 127 :       SEGACT MPOVT1
 128 :       SEGACT MPOVD1
 129 : C
 130 :       DO 40 I40=2,(NBELW1-1)
 131 :         NUMW1  = IPINW.NUM(1,I40)
 132 :         IGEO(I40)   = NUMW1
 133 :         IBIN(1,I40) = 1
 134 :         JPOSC1 = IPOSC1(NUMW1)
 135 :         JPOSR1 = IPOSR1(NUMW1)
 136 :         JPOSL1 = IPOSL1(NUMW1)
 137 :         JPOST1 = IPOST1(NUMW1)
 138 :         JPOSD1 = IPOSD1(NUMW1)
 139 :         CGAU = MPOVC1.VPOCHA(JPOSC1,NOCOC1(1))
 140 :         RGAU = MPOVR1.VPOCHA(JPOSR1,NOCOR1(1))
 141 :         LGAU = MPOVL1.VPOCHA(JPOSL1,NOCOL1(1))
 142 :         TGAU = MPOVT1.VPOCHA(JPOST1,NOCOT1(1))
 143 :         CDRO = MPOVC1.VPOCHA(JPOSC1,NOCOC1(2))
 144 :         RDRO = MPOVR1.VPOCHA(JPOSR1,NOCOR1(2))
 145 :         LDRO = MPOVL1.VPOCHA(JPOSL1,NOCOL1(2))
 146 :         TDRO = MPOVT1.VPOCHA(JPOST1,NOCOT1(2))
 147 :         AI = - LGAU / TGAU
 148 :         BI = (0.5D0*TGAU*RGAU*CGAU+0.5D0*TDRO*RDRO*CDRO) / XDT1 
 149 :      &     +  LGAU / TGAU + LDRO / TDRO
 150 :         CI = - LDRO / TDRO
 151 :         DI = ((0.5D0*TGAU*RGAU*CGAU+0.5D0*TDRO*RDRO*CDRO) / XDT1)
 152 :      &      * (MPOVD1.VPOCHA(JPOSD1,1))
 153 :         RE(I40,I40-1,1) = AI
 154 :         RE(I40,I40,1)   = BI
 155 :         RE(I40,I40+1,1) = CI
 156 :         BB(1,I40)     = DI
 157 : 40    CONTINUE
 158 : C Le premier point du mur
 159 :       NUMW1     = IPINW.NUM(1,1)
 160 :       IGEO(1)   = NUMW1
 161 :       IBIN(1,1) = 1
 162 :       JPOSC1 = IPOSC1(NUMW1)
 163 :       JPOSR1 = IPOSR1(NUMW1)
 164 :       JPOSL1 = IPOSL1(NUMW1)
 165 :       JPOST1 = IPOST1(NUMW1)
 166 :       JPOSD1 = IPOSD1(NUMW1)
 167 :       CDRO = MPOVC1.VPOCHA(JPOSC1,NOCOC1(2))
 168 :       RDRO = MPOVR1.VPOCHA(JPOSR1,NOCOR1(2))
 169 :       LDRO = MPOVL1.VPOCHA(JPOSL1,NOCOL1(2))
 170 :       TDRO = MPOVT1.VPOCHA(JPOST1,NOCOT1(2))
 171 :       BI = 0.5D0*TDRO*RDRO*CDRO / XDT1 + LDRO / TDRO
 172 :       CI = - LDRO / TDRO
 173 :       DI = (0.5D0*TDRO*RDRO*CDRO / XDT1) * (MPOVD1.VPOCHA(JPOSD1,1))
 174 :       RE(1,1,1) = BI
 175 :       RE(1,2,1) = CI
 176 :       BB(1,1) = DI
 177 : C Le dernier point du mur
 178 :       NUMW1          = IPINW.NUM(1,NBELW1)
 179 :       IGEO(NBELW1)   = NUMW1
 180 :       IBIN(1,NBELW1) = 1
 181 :       JPOSC1 = IPOSC1(NUMW1)
 182 :       JPOSR1 = IPOSR1(NUMW1)
 183 :       JPOSL1 = IPOSL1(NUMW1)
 184 :       JPOST1 = IPOST1(NUMW1)
 185 :       JPOSD1 = IPOSD1(NUMW1)
 186 :       CGAU = MPOVC1.VPOCHA(JPOSC1,NOCOC1(1))
 187 :       RGAU = MPOVR1.VPOCHA(JPOSR1,NOCOR1(1))
 188 :       LGAU = MPOVL1.VPOCHA(JPOSL1,NOCOL1(1))
 189 :       TGAU = MPOVT1.VPOCHA(JPOST1,NOCOT1(1))
 190 :       AI = - LGAU / TGAU
 191 :       BI = 0.5D0*TGAU*RGAU*CGAU / XDT1 +  LGAU / TGAU
 192 :       DI = (0.5D0*TGAU*RGAU*CGAU / XDT1) * (MPOVD1.VPOCHA(JPOSD1,1))
 193 :       RE(NBELW1,NBELW1-1,1) = AI
 194 :       RE(NBELW1,NBELW1,1)   = BI
 195 :       BB(1,NBELW1) = DI
 196 : C
 197 : C Création du second membre
 198 : C
 198 :       CALL CRECHP (MTRAV,MCHPOI)
 199 : C
 200 :       SEGDES MPOVD1
 201 :       SEGDES IPINW
 202 :       SEGDES XMATRI
 203 :       SEGDES MPOVC1
 204 :       SEGDES MPOVR1
 205 :       SEGDES MPOVL1
 206 :       SEGDES MPOVT1
 207 : C
 208 :       SEGDES REDIR
 209 :       SEGDES NOCOPO
 210 :       SEGSUP MTRAV
 211 : C
 212 : C
 213 :       END
 214 :  
 215 :  

© Cast3M 2003 - All rights reserved.
Disclaimer