Download racmas.eso

Back to the list

   1 : C RACMAS    SOURCE    CHAT      05/01/13    02:44:30     5004           
   2 :       SUBROUTINE RACMAS(NBPGAU,IFOUR,NIFOUR,IDIM,NBNN,XE,CFPI,WORK,
   3 :      1     POIGAU,SHPTOT,REL,LRE)
   4 : C=======================================================================
   5 : C     
   6 : C      CALCULE LA MATRICE MASSE DE L ELEMENT DE RACCORD
   7 : C       LIQUIDE MASSIF LINEAIRE   CAS BIDIMENSIONNEL
   8 : C      (INTEGRE LE PRODUIT XPI*U AVEC U DEPLACEMENT NORMAL A LA PAROI
   9 : C         DU SOLIDE)
  10 : C     
  11 : C      ROUTINE FORTRAN PUR
  12 : C     
  13 : C     JACQUELINE BROCHARD OCTOBRE 85
  14 : C=======================================================================
  15 : C      ENTREES
  16 : C         NBPGAU = NB DE PTS DE GAUSS
  17 : C         IFOUR  = IFOUR DE CCOPTIO
  18 : C         NBNN   = NB DE NOEUDS DE L ELEMENT DE RACCORD
  19 : C         XE(3,NBNN) = COORDONNEES LOCALES DE L ELEMENT
  20 : C         CFPI   = COEFFICIENT DE NORMALISATION SUR XPI
  21 : C         WORK(IDIM) = COMPOSANTES DE LA NORMALE SORTANTE AU FLUIDE
  22 : C         POIGAU(NBPGAU) = POIDS DE GAUSS
  23 : C         SHPTOT(6,NBNN,NBPGAU) = FONCTIONS DE FORME ET DERIVEES DE
  24 : C            L ELEMENT DE RACCORD
  25 : C      SORTIES
  26 : C         REL(LRE,LRE) = MATRICE DE MASSE
  27 : C=======================================================================
  28 :       IMPLICIT INTEGER(I-N)
  29 :       IMPLICIT REAL*8 (A-H,O-Z)
  30 : C    Include contenant quelques constantes dont XPI :
  31 : -INC CCREEL
  32 :       DIMENSION XE(3,1),WORK(IDIM),POIGAU(NBPGAU),SHPTOT(6,NBNN,1)
  33 :       DIMENSION REL(LRE,1)
  34 :       DATA EPSI/1.D-12/
  35 : C     
  36 : C     BOUCLE SUR LES NOEUDS LIQUIDE ET INTEGRATION NUMERIQUE
  37 : C     
  38 :       NBNNL=NBNN/2
  39 :       DO 100 NL=1,NBNNL
  40 :          DO 80 IGAU=1,NBPGAU
  41 : C     
  42 : C     CALCUL DU RAYON ET DES COMPOSANTES DU VECTEUR NORMAL A LA PAROI
  43 : C     
  44 :             R=XZERO
  45 :             ALFA=XZERO
  46 :             BETA=XZERO
  47 :             ID=NBNNL+1
  48 :             DO 20 J=ID,NBNN
  49 :                JJ=J-NBNNL
  50 :                R=R+XE(1,J)*SHPTOT(1,JJ,IGAU)
  51 :                ALFA=ALFA-SHPTOT(2,JJ,IGAU)*XE(2,J)
  52 :                BETA=BETA+SHPTOT(2,JJ,IGAU)*XE(1,J)
  53 :  20         CONTINUE
  54 :             IF(IFOUR.EQ.0.OR.(IFOUR.EQ.1.AND.NIFOUR.EQ.0)) THEN
  55 :                R=R*2*XPI
  56 :             ELSEIF(IFOUR.EQ.1.AND.NIFOUR.NE.0) THEN
  57 :                R=R*XPI
  58 :             ELSE
  59 :                R=1.D0
  60 :             ENDIF
  61 : C     
  62 : C     ON COMPARE L ORIENTATION DE LA NORMALE SORTANTE AU FLUIDE
  63 : C       A CELLE DE LA PAROI
  64 : C     
  65 :             PSCAL=ALFA*WORK(1)+BETA*WORK(2)
  66 :             IF (ABS(PSCAL).LT.EPSI) GOTO 777
  67 :             SENS=PSCAL/ABS(PSCAL)
  68 : C     
  69 : C     ON REMPLIT LA MATRICE
  70 : C     
  71 :             IF(IFOUR.LT.1) NCP=2
  72 :             IF(IFOUR.EQ.1) NCP=3
  73 :             DO 30 J=ID,NBNN
  74 :                JJ=J-NBNNL
  75 :                IL=2*NL
  76 :                IC1=2*NBNNL+(J-ID)*NCP+1
  77 :                IC2=IC1+1
  78 :                REL(IL,IC1)=REL(IL,IC1)-SENS*CFPI*SHPTOT(1,NL,IGAU)
  79 :      1              *POIGAU(IGAU)*R*ALFA*SHPTOT(1,JJ,IGAU)
  80 :                REL(IL,IC2)=REL(IL,IC2)-SENS*CFPI*SHPTOT(1,NL,IGAU)
  81 :      1              *POIGAU(IGAU)*R*BETA*SHPTOT(1,JJ,IGAU)
  82 :  30         CONTINUE
  83 :  80      CONTINUE
  84 : C     
  85 : C     LE COUPLAGE LIQUIDE-MASSIF 2D LIE LES NOEUDS
  86 : C     (1,NBNN)  (2,NBNN-1) ETC , ON INVERSE DONC LES TERMES
  87 : C     DE LA MATRICE
  88 : C     
  89 :          IL=2*NL
  90 :          DO 35 I=1,NCP
  91 :             IB=2*NBNNL+I
  92 :             ELT=REL(IL,IB)
  93 :             JB=2*NBNNL+(NBNNL-1)*NCP+I
  94 :             REL(IL,IB)=REL(IL,JB)
  95 :             REL(IL,JB)=ELT
  96 :  35      CONTINUE
  97 : C     
  98 : C     SYMETRISATION
  99 : C     
 100 :          DO 40 J=ID,NBNN
 101 :             IL=2*NL
 102 :             IC1=2*NBNNL+(J-ID)*NCP+1
 103 :             IC2=IC1+1
 104 :             REL(IC1,IL)=REL(IL,IC1)
 105 :             REL(IC2,IL)=REL(IL,IC2)
 106 :  40      CONTINUE
 107 :  100  CONTINUE
 108 :       GOTO 666
 109 : C     
 110 : C     ERREUR    LE VECTEUR PERMETTANT D ORIENTER L ELEMENT DE RACCORD
 111 : C     EST NUL OU PARALLELE A LA FRONTIERE DU FLUIDE
 112 : C     
 112 :  777  CALL ERREUR(246)
 113 :  666  CONTINUE
 114 :       RETURN
 115 :       END
 116 : 
 117 : 
 118 : 
 119 :  
 120 :  
 121 :  

© Cast3M 2003 - All rights reserved.
Disclaimer