Download fluma2.eso

Back to the list

   1 : C FLUMA2    SOURCE    PV        09/03/12    21:22:50     6325           
   2 :       SUBROUTINE FLUMA2(IPFLOD,IPGEOM,IPINTE,NUMPOI,IPFLEQ)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8(A-H,O-Z)
   5 : ************************************************************************
   6 : *
   7 : *                             F L U M A 2
   8 : *                             -----------
   9 : *
  10 : * FONCTION:
  11 : * ---------
  12 : *     CALCUL DES FLUX NODAUX EQUIVALENTS
  13 : *     MODE BIDIMENSIONNEL OU MODE AXISYMETRIQUE
  14 : *
  15 : * MODULES UTILISES:
  16 : * -----------------
  17 : *
  18 : -INC CCOPTIO
  19 : -INC CCREEL
  20 : -INC SMCHAML
  21 : -INC SMELEME
  22 : -INC SMINTE
  23 : -INC SMCOORD
  24 : *
  25 : * PARAMETRES:   (E)=ENTREE   (S)=SORTIE   (+ = CONTENU DANS UN COMMUN)
  26 : * -----------
  27 : *
  28 : *     IPFLOD  (E)  POINTEUR SUR UN SEGMENT MELVAL CONTENANT LES
  29 : *                  FLUX NODAUX
  30 : *     IPGEOM  (E)  POINTEUR SUR UN OBJET MAILLAGE ELEMENTAIRE
  31 : *                  DE L'ENVELOPPE
  32 : *     IPINTE  (E)  POINTEUR SUR UN SEGMENT MINTE CONTENANT LES
  33 : *                  CARACTERISTIQUES D'INTEGRATION DES FACES
  34 : *    +IDIM    (E)  VOIR CCOPTIO
  35 : *    +XZERO   (E)  VOIR CCREEL
  36 : *    +XPETIT  (E)  VOIR CCREEL
  37 : *    +XPI     (E)  VOIR CCREEL
  38 : *     NUMPOI  (E)  REFERENCE LA DIRECTION DU FLUX DANS LE REPERE GLOBAL
  39 : *                  = -1 LORSQUE LE FLUX EST NORMAL A LA FACE
  40 : *                  MIS A 1 POUR LA SYNTAXE 3 (FLUX D UN VECTEUR)
  41 : *     IPFLEQ  (S)  POINTEUR SUR UN SEGMENT MELVAL CONTENANT LES
  42 : *                  FLUX NODAUX EQUIVALENTS
  43 : *
  44 :       INTEGER NUMPOI
  45 : *
  46 : * VARIABLES:
  47 : * ----------
  48 : *
  49 : *     XE(3,NBPTEL)  =  CORDONNEES DES ELEMENTS DANS LE REPERE GLOBAL
  50 : *     FACE          =  FACE DE L'ELEMENT
  51 : *     COSDIR        =  COSINUS DIRECTEUR DE L'INCLINAISON DU FLUX
  52 : *
  53 :       SEGMENT,MMAT1
  54 :          REAL*8 XE(3,NBPTEL),SHP(6,NBPTEL)
  55 :       ENDSEGMENT
  56 : *
  57 : * CONSTANTES:
  58 : * -----------
  59 : *
  60 :       PARAMETER ( O1=1.D0 )
  61 :       PARAMETER ( O2=2.D0 )
  62 : *
  63 : * AUTEUR, DATE DE CREATION:
  64 : * -------------------------
  65 : *
  66 : *     DENIS ROBERT,LE 2 FEVRIER 1988.
  67 : *
  68 : * LANGAGE:
  69 : * --------
  70 : *
  71 : *     ESOPE + FORTRAN77
  72 : *
  73 : ************************************************************************
  74 : *
  75 : *     ON RECUPERE LES VALEURS NODALES DU FLUX
  76 : *
  77 :       IF(NUMPOI.NE.1) THEN
  78 :       MELVA1=IPFLOD
  79 :       SEGACT,MELVA1
  80 :       NBPTE1=MELVA1.VELCHE(/1)
  81 :       NEL1=MELVA1.VELCHE(/2)
  82 :       ELSE
  83 :       MCHAM1=IPFLOD
  84 :       SEGACT,MCHAM1
  85 :       MELVA1=MCHAM1.IELVAL(1)
  86 :       MELVA2=MCHAM1.IELVAL(2)
  87 :       MELVA3=MCHAM1.IELVAL(3)
  88 :       MELVA4=MCHAM1.IELVAL(4)
  89 :       SEGACT MELVA1,MELVA2,MELVA3,MELVA4
  90 :       NBPTE1 = MELVA1.VELCHE(/1)
  91 :       NEL1 =  MELVA1.VELCHE(/2)
  92 :       SEGDES MCHAM1
  93 :       ENDIF
  94 : *
  95 : *     ON RECUPERE LES CARACTERISTIQUES D'INTEGRATION DES FACES
  96 : *
  97 :       MINTE=IPINTE
  98 :       SEGACT,MINTE
  99 :       NBPGAU=POIGAU(/1)
 100 : *
 101 : *     ON RECUPERE UN DES MAILLAGES ELEMENTAIRES DE L'ENVELOPPE
 102 : *
 103 :       MELEME=IPGEOM
 104 :       SEGACT,MELEME
 105 :       NBPTEL=NUM(/1)
 106 :       NEL=NUM(/2)
 107 : *
 108 : *     MELVAL QUI CONTIENDRA LES FLUX NODAUX EQUIVALENTS
 109 : *
 110 :       N1PTEL=NBPTEL
 111 :       N1EL=NEL
 112 :       N2PTEL=0
 113 :       N2EL=0
 114 :       SEGINI,MELVAL
 115 :       IPFLEQ=MELVAL
 116 :       SEGINI,MMAT1
 117 : *
 118 : *     CAS D'UN FLUX INCLINE PAR RAPPORT A LA NORMALE A LA FACE
 119 : *
 120 :       COSDIR=O1
 121 :       IF ((NUMPOI.NE.-1).AND.(NUMPOI.NE.1))  THEN
 122 : *
 123 : *        ON RECUPERE LES COORDONNEES DU VECTEUR DIRECTION
 124 : *
 124 :          CALL EXCOO1(NUMPOI,XDIR,YDIR,ZDIR,DENS)
 125 : *
 126 : *        ON PROJETTE LA DIRECTION DANS LE PLAN (OX|OY)
 127 : *
 128 :          DNORME=SQRT(XDIR**2+YDIR**2)
 129 :          IF (DNORME.LT.XPETIT) THEN
 130 : *
 131 : *           ERREUR DANS LA DONNEE DE LA DIRECTION DU FLUX
 132 : *
 132 :             CALL ERREUR(417)
 133 :             RETURN
 134 :          ENDIF
 135 :          XDIRNO=XDIR/DNORME
 136 :          YDIRNO=YDIR/DNORME
 137 :          COSDIR=O2
 138 :       ENDIF
 139 : *
 140 : *     BOUCLE SUR LES ELEMENTS
 141 : *
 142 :       DO 10 IEL=1,NEL
 143 : *
 144 : *        ON CHERCHE LES COORDONNEES DES ELEMENTS DANS LE REPERE GLOBAL
 145 : *
 145 :          CALL DOXE(XCOOR,IDIM,NBPTEL,NUM,IEL,XE)
 146 : 
 147 : *
 148 : *        BOUCLES SUR LES POINTS DE GAUSS
 149 : *
 150 :          DO 40 IGAU=1,NBPGAU
 151 :             AXIS=O1
 152 : *
 153 : *           CONTRIBUTION DE LA FACE AU POINT DE GAUSS
 154 : *
 155 :             DLX=XZERO
 156 :             DLY=XZERO
 157 :             DO 30 INOE=1,NBPTEL
 158 :                DLX=DLX+SHPTOT(2,INOE,IGAU)*XE(1,INOE)
 159 :                DLY=DLY+SHPTOT(2,INOE,IGAU)*XE(2,INOE)
 160 :  30            CONTINUE
 161 : *           END DO
 162 :             FACE=SQRT(DLX**2+DLY**2)
 163 : *
 164 : *           SI ON A UN FLUX INCLINE,CALCUL DU COSINUS DIRECTEUR
 165 :             DIRNOR=COSDIR
 166 :             IF ((COSDIR.NE.O1).AND.(NUMPOI.NE.1)) THEN
 167 :                DIRNOR=ABS(YDIRNO*(DLX/FACE)-XDIRNO*(DLY/FACE))
 168 :             ENDIF
 169 :             IF (IFOMOD.EQ.0) THEN
 170 : *
 171 : *              CAS DES ELEMENTS AXISYMETRIQUES
 172 : *
 173 :                DO 41 NP=1,NBPTEL
 174 :                   SHP(1,NP)=SHPTOT(1,NP,IGAU)
 175 :                   SHP(2,NP)=SHPTOT(2,NP,IGAU)
 176 :                   SHP(3,NP)=SHPTOT(3,NP,IGAU)
 177 :  41               CONTINUE
 178 : *              END DO
 178 :                CALL DISTRR(XE,SHP,NBPTEL,RR)
 179 :                AXIS=O2*XPI*RR
 180 :              ENDIF
 181 :             IEMIN = MIN(IEL,NEL1)
 182 :             IGMN = MIN(IGAU,NBPTE1)
 183 : 
 184 :             IF (NUMPOI.EQ.1) THEN
 185 : C  on oriente la vraie normale suivant la pseudo
 186 :            S1 = MELVA3.VELCHE(IGMN,IEMIN)
 187 :            S2 = MELVA4.VELCHE(IGMN,IEMIN)
 188 :            amul = 1.D0
 189 :            ps = -S1*dly+S2*dlx
 190 :            if(ps.lt.0) amul = -1.D0
 191 :            dlx= dlx*amul
 192 :            dly= dly*amul
 193 :             T1 = POIGAU(IGAU)*(MELVA2.VELCHE(IGMN,IEMIN)*DLX
 194 :      1       -MELVA1.VELCHE(IGMN,IEMIN)*DLY)*AXIS
 195 : 
 196 :              ELSE
 197 :                  T1 =POIGAU(IGAU)*AXIS*DIRNOR*FACE*
 198 :      1           MELVA1.VELCHE(IGMN,IEMIN)
 199 :              ENDIF
 200 :             DO 50 J=1,NBPTEL
 201 :             VELCHE(J,IEL) =  VELCHE(J,IEL) + SHPTOT(1,J,IGAU)*T1
 202 :  50         CONTINUE
 203 : 
 204 : *           END DO
 205 :  40         CONTINUE
 206 : *        END DO
 207 : 
 208 : *        END DO
 209 :  10      CONTINUE
 210 : *     END DO
 211 :       SEGSUP,MMAT1
 212 :       SEGDES,MELEME,MELVA1,MINTE
 213 :       SEGDES,MELVAL
 214 :       IF(NUMPOI.EQ.1) THEN
 215 :       SEGDES MELVA2,MELVA3,MELVA4
 216 :       ENDIF
 217 : *
 218 :       END
 219 : 
 220 : 
 221 : 
 222 : 
 223 : 
 224 : 
 225 :  
 226 :  
 227 :  
 228 :  
 229 :  

© Cast3M 2003 - All rights reserved.
Disclaimer