Download chal1.eso

Back to the list

   1 : C CHAL1     SOURCE    CHAT      11/03/16    21:16:47     6902           
   2 : 
   3 : C=======================================================================
   4 : C=                            C H A L 1                                =
   5 : C=                            ---------                                =
   6 : C=                                                                     =
   7 : C=  Fonction :                                                         =
   8 : C=  ----------                                                         =
   9 : C=   Calcul des flux equivalents a des sources volumiques              =
  10 : C=                                                                     =
  11 : C=  Parametres :  (E)=Entree  (S)=Sortie                               =
  12 : C=  ------------                                                       =
  13 : C=   IPMODE   (E)   Pointeur sur le segment MMODEL de la structure     =
  14 : C=   IPCHPO   (E)   Pointeur sur le CHPOINT de sources (puits) aux     =
  15 : C=                  noeuds de la structure (champ variable)            =
  16 : C=   S1       (E)   Valeur de la source (FLOTTANT = champ constant)    =
  17 : C=   IPGEOM   (E)   Pointeur sur le MAILLAGE sur lequel s'applique S1  =
  18 : C=   IPCHEL   (E)   Pointeur sur le segment MCHAML de sources donnees  =
  19 : C=                  en chaque element de la structure (champ variable) =
  20 : C=   IPCARA   (E)   Pointeur sur le segment MCHALM de CARACTERISTIQUES =
  21 : C=                  dans le cas des COQues et des BARRes               =
  22 : C=   MOCOMP   (E)   Nom de la composante du champ de flux equivalents  =
  23 : C=   IPCHAL   (S)   Pointeur sur le champ des flux nodaux equivalents  =
  24 : C=                                                                     =
  25 : C=  Variables locales :                                                =
  26 : C=  -------------------                                                =
  27 : C=   IMASSI   Tableau contenant les numeros dans NOMTP des elements    =
  28 : C=            thermiques de type MASSIF (dont l'element BARR)          =
  29 : C=   LMASSI   Longueur du tableau IMASSI                               =
  30 : C=   ICOQUE   Tableau contenant les numeros dans NOMTP des elements    =
  31 : C=            thermiques de type COQUE                                 =
  32 : C=   LCOQUE   Longueur du tableau ICOQUE                               =
  33 : C=                                                                     =
  34 : C=  Remarque :  Le MODELE doit contenir exclusivement un seul type     =
  35 : C=  ----------  d'elements, soit MASSIFs, soit COQUEs, soit BARREs.    =
  36 : C=                                                                     =
  37 : C=  Denis ROBERT, le 26 fevrier 1988.                                  =
  38 : C=======================================================================
  39 : 
  40 :       SUBROUTINE CHAL1 (IPMODE,IPCHPO,S1,IPGEOM,IPCHEL,IPCARA,MOCOMP,
  41 :      &                  IPCHAL)
  42 : 
  43 :       IMPLICIT INTEGER(I-N)
  44 :       IMPLICIT REAL*8 (A-H,O-Z)
  45 : 
  46 : -INC CCOPTIO
  47 : -INC SMMODEL
  48 : -INC SMCHPOI
  49 : 
  50 :       CHARACTER*(*) MOCOMP
  51 : 
  52 :       PARAMETER (LMASSI=16,LCOQUE=5)
  53 :       INTEGER IMASSI(LMASSI),ICOQUE(LCOQUE)
  54 :       CHARACTER*4 LICOM(3)
  55 : 
  56 : C ----------
  57 : C  Elements         TRI3 TRI6 QUA4 QUA8 CUB8 CU20 PRI6 PR15 TET4 TE10
  58 : C  MASSIFs          PYR5 PY13 T1D2 T1D3 M1D2 M1D3
  59 : C ----------
  60 :       DATA IMASSI /    4,   6,   8,  10,  14,  15,  16,  17,  23,  24,
  61 :      &                25,  26, 191, 192, 193, 194 /
  62 : C -------------
  63 : C  Elts COQUEs      COQ2 COQ3 COQ8 COQ4 COQ6
  64 : C -------------
  65 :       DATA ICOQUE /   44,  27,  41,  49,  56 /
  66 : C -------------
  67 :       DATA LICOM / 'SINF','SMOY','SSUP' /
  68 : 
  69 :       IPCHAL=0
  70 : 
  71 : C  1 - VERIFICATIONS SUR LE MODELE
  72 : C =================================
  73 : C  1.1 - ERREUR si l'objet MODELE ne contient pas uniquement un seul
  74 : C        type d'elements soit MASSIF, soit COQUE, soit BARRE.
  75 : C =====
  76 :       jMASSi=0
  77 :       jCOQue=0
  78 :       jBARRe=0
  79 :       MMODEL=IPMODE
  80 :       SEGACT,MMODEL
  81 :       NSOU=KMODEL(/1)
  82 :       DO i=1,NSOU
  83 :         IMODEL=KMODEL(i)
  84 :         SEGACT,IMODEL
  85 :         IF (NEFMOD.EQ.46) THEN
  86 :           jBARRe=jBARRe+1
  87 :         ELSE
  87 :           CALL PLACE2(IMASSI,LMASSI,IOK,NEFMOD)
  88 :           IF (IOK.NE.0) THEN
  89 :             jMASSi=jMASSi+1
  90 :           ELSE
  90 :             CALL PLACE2(ICOQUE,LCOQUE,IOK,NEFMOD)
  91 :             IF (IOK.NE.0) jCOQue=jCOQue+1
  92 :           ENDIF
  93 :         ENDIF
  94 :         SEGDES,IMODEL
  95 :       ENDDO
  96 :       SEGDES,MMODEL
  97 :       IF (jMASSi.NE.NSOU.AND.jCOQue.NE.NSOU.AND.jBARRe.NE.NSOU) THEN
  97 :         CALL ERREUR(409)
  98 :         RETURN
  99 :       ENDIF
 100 : C =====
 101 : C  1.2 - Verification de l'existence des caracteristiques dans le cas
 102 : C        d'elements COQUEs et BARREs.
 103 : C =====
 104 :       IF (jBARRe.EQ.NSOU.AND.IPCARA.EQ.0) THEN
 104 :         CALL ERREUR(518)
 105 :         RETURN
 106 :       ENDIF
 107 :       IF (jCOQue.EQ.NSOU.AND.IPCARA.EQ.0) THEN
 107 :         CALL ERREUR(514)
 108 :         RETURN
 109 :       ENDIF
 110 : C En elements MASSIFs, aucune caracteristique n'est necessaire.
 111 :       IF (jMASSi.EQ.NSOU) IPCARA=0
 112 : 
 113 : C  2 - SOURCES VOLUMIQUES : CHAMP PAR ELEMENT AUX NOEUDS
 114 : C =======================================================
 115 :       IPCHSO=IPCHEL
 116 : C 2.1 - Sources sous forme d'un MCHAML
 117 : C       Reduction au modele + Transport aux noeuds si necessaire
 118 :       IF (IPCHEL.NE.0) THEN
 119 :         IPCH_Z=IPCHSO
 120 : ** A VOIR : Dans certains cas, REDUAF pose souci (pb. de constituant)
 120 : **      CALL REDUAF(IPCHSO,IPMODE,IPCH_Z,1,IOK,KERRE)
 120 : **      IF (IOK.NE.1) CALL ERREUR(KERRE)
 121 : **      IF (IERR.NE.0) RETURN
 121 :         CALL CHASUP(IPMODE,IPCH_Z,IPCHSO,IOK,1)
 122 :         IF (IERR.NE.0 .OR. IOK.NE.0) THEN
 122 :           CALL ERREUR(21)
 123 :           RETURN
 124 :         ENDIF
 125 :       ELSE
 126 : C 2.2 - Sources constantes (FLOTTANT) sur un MAILLAGE
 127 : C       Sources mises sous forme d'un CHPOINT
 128 :         IF (IPGEOM.NE.0) THEN
 129 :           IF (jCOQue.EQ.NSOU) THEN
 130 :             DO i=1,3
 130 :               CALL ECRREE(S1)
 130 :               CALL ECRCHA(LICOM(i))
 131 :             ENDDO
 131 :             CALL ECRENT(3)
 132 : C*        ELSE IF (jMASSi.EQ.NSOU.OR.jBARRe.EQ.NSOU) THEN
 133 :           ELSE
 133 :             CALL ECRREE(S1)
 133 :             CALL ECRCHA('SCAL')
 133 :             CALL ECRENT(1)
 134 :           ENDIF
 134 :           CALL ECROBJ('MAILLAGE',IPGEOM)
 134 :           CALL MANUCH
 135 :           IF (IERR.NE.0) RETURN
 135 :           CALL LIROBJ('CHPOINT',IPCH_Z,1,IOK)
 136 :           IF (IERR.NE.0) RETURN
 137 : C 2.3 - Sources sous forme d'un CHPOINT
 138 : C*      ELSE IF (IPCHPO.NE.0) THEN
 139 :         ELSE
 140 :           IPCH_Z=IPCHPO
 141 :         ENDIF
 142 : C       Changement en MCHAML aux noeuds du modele
 142 :         CALL CHAME1(0,IPMODE,IPCH_Z,'VOLUMIQUE',IPCHSO,1)
 143 :       ENDIF
 144 : 
 145 : C  3 - CHANGEMENT DU SUPPORT DU MCHAML DE CARACTERISTIQUES S'IL EXISTE
 146 : C =====================================================================
 147 : C= Transport des points de Gauss aux noeuds si necessaire
 148 :       IPCARB=IPCARA
 149 :       IF (IPCARA.NE.0) THEN
 149 :         CALL REDUAF(IPCARA,IPMODE,ICHP_Z,0,IOK,KERRE)
 149 :         IF (IOK.NE.1) CALL ERREUR(KERRE)
 150 :         IF (IERR.NE.0) RETURN
 150 :         CALL CHASUP(IPMODE,ICHP_Z,IPCARB,IOK,1)
 151 :         IF (IERR.NE.0 .OR. IOK.NE.0) THEN
 151 :           CALL ERREUR(21)
 152 :           RETURN
 153 :         ENDIF
 154 :       ENDIF
 155 : 
 156 : C  3 - CALCUL DES FLUX EQUIVALENTS AUX SOURCES VOLUMIQUES
 157 : C ========================================================
 158 : C  3.1 - Cas des elements MASSIFS (1D,2D,3D)
 159 : C =====
 160 :       IF (jMASSi.EQ.NSOU) THEN
 160 :         CALL CHAMAS(IPMODE,IPCHSO,IPCARB,MOCOMP, IPCHAL)
 161 : C =====
 162 : C  3.2 - Cas des elements de COQUE
 163 : C =====
 164 :       ELSE IF (jCOQue.EQ.NSOU) THEN
 164 :         CALL CHACOQ(IPMODE,IPCHSO,IPCARB,IPCHAL)
 165 : C =====
 166 : C  3.3 - Cas des elements BARREs
 167 : C =====
 168 : C*    ELSE IF (jBARRe.EQ.NSOU) THEN
 169 :       ELSE
 169 :         CALL CHABAT(IPMODE,IPCHSO,IPCARB,MOCOMP, IPCHAL)
 170 :       ENDIF
 171 : 
 172 :       RETURN
 173 :       END
 174 : 
 175 :  
 176 :  

© Cast3M 2003 - All rights reserved.
Disclaimer