Download famo22.eso

Back to the list

   1 : C FAMO22    SOURCE    CHAT      11/03/16    21:22:01     6902           
   2 :       SUBROUTINE FAMO22(MELE,IPMAIL,MINTE,NBPTEL,
   3 :      1     IVAMAT,IVACAR,NMATT,NCARR,
   4 :      2     CRIGI,CMASS)
   5 : ***********************************************************************
   6 : *     CALCUL DES COMPOSANTES DE LA RIGIDITE (HOOK) ELASTIQUE
   7 : *     CALCUL DES COMPOSANTES DE LA MATRICE (HOOK) DE MASSE
   8 : *     .... AU SIGNE PRES
   9 : *     BOUCLE SUR LES SS-ZONES DU MODELE DE SECTION
  10 : **********************************************************************
  11 : * ENTREES :
  12 : *
  13 : * MELE    = NUMERO  ELEMENT FINI
  14 : * IPMAIL = POINTEUR DU MAILLAGE
  15 : * NBPTEL =NOMBRE DE POINTS PAR ELEMENT
  16 : * IVAMAT =POINTEUR SUR UN SEGMENT MPTVAL DE MATERIAU
  17 : * IVACAR =POINTEUR SUR UN SEGMENT MPTVAL DE CARACT. GEOMETRIQUES
  18 : * NVARI  =NOMBRE DE COMPOSANTES DE VARIABLES INTERNES
  19 : * NMATT  =NOMBRE DE COMPOSNATES DE PROPRIETES DE MATERIAU
  20 : * NCARR  =NOMBRE DE COMPOSNATES DE CARACTERISTIQUES GEOMETRIQUES
  21 : *
  22 : * SORTIES :
  23 : * CRIGI(12) RIGIDITE SUR LA FIBRE MOYENNE
  24 : * CMASS(12) MASSE SUR LA FIBRE MOYENNE
  25 : *
  26 : *  D'APRES FRIGI2 DC 98
  27 : ************************************************************************
  28 :       IMPLICIT INTEGER(I-N)
  29 :       IMPLICIT REAL*8(A-H,O-Z)
  30 : *
  31 : -INC CCOPTIO
  32 : -INC SMCHAML
  33 : -INC SMELEME
  34 : -INC SMCOORD
  35 : -INC SMMODEL
  36 : -INC SMINTE
  37 : -INC CCHAMP
  38 : *
  39 :       SEGMENT MPTVAL
  40 :         INTEGER IPOS(NS)    ,NSOF(NS)
  41 :         INTEGER      IVAL(NCOSOU)
  42 :         CHARACTER*16 TYVAL(NCOSOU)
  43 :       ENDSEGMENT
  44 : *
  45 :       SEGMENT WRK0
  46 :        REAL*8 XMAT(NCXMAT),XCAR(NCXCAR)
  47 :       ENDSEGMENT
  48 : *
  49 :       SEGMENT WRK2
  50 :         REAL*8 XE(3,NBBB),SHP(6,NBBB)
  51 :       ENDSEGMENT
  52 : *
  53 :       DIMENSION CRIGI(12),CMASS(12)
  54 : *
  55 :       MFR =NUMMFR(MELE)
  56 :       MELEME=IPMAIL
  57 :       NBNN=NUM(/1)
  58 :       NBELEM=NUM(/2)
  59 : *
  60 : *    SEGMENT D'INTEGRATION
  61 : *
  62 : C*    SEGACT,MINTE           <- ACTIF EN E/S
  63 : *
  64 : *    INITIALISATION DES SEGMENTS DE TRAVAIL
  65 : *
  66 :       NCXMAT=NMATT
  67 :       NCXCAR=NCARR
  68 :       NBBB=NBNN
  69 :       SEGINI WRK0,WRK2
  70 : *
  71 : *       BOUCLE SUR LES ELEMENTS
  72 : *
  73 :       DO 1000 IB=1,NBELEM
  74 : *
  75 : *       ON CHERCHE  LES COORDONNEES DES NOEUDS DE L ELEMENT IB
  76 : *
  76 :          CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  77 : *
  78 : *       BOUCLE SUR LES POINTS DE GAUSS
  79 : *
  80 :          DO 1100 IGAU=1,NBPTEL
  81 : *
  82 : *       ON CHERCHE LA POSITION DU POINT DE LA SECTION (X->Y) (Y->Z)
  83 : *
  84 :            YY=0.D0
  85 :            DO IE1=1,NBNN
  86 :              CGAUSS=SHPTOT(1,IE1,IGAU)
  87 :              YY=YY+XE(1,IE1)*CGAUSS
  88 :            END DO
  89 :            YY2=YY*YY
  90 : *
  91 : *       ON REMPLIT LES SHP ET ON CALCUL LE JACOBIEN
  92 : *
  93 :            DO IE2=1,NBNN
  94 :              DO IE1=1,6
  95 :                SHP(IE1,IE2)=SHPTOT(IE1,IE2,IGAU)
  96 :              END DO
  97 :            END DO
  97 : C PPf      CALL JACOBI(XE,SHP,2,NBNN,DJAC)
  98 : *
  99 : *     ON RECUPERE LES CONSTANTES DU MATERIAU
 100 : *
 101 :            MPTVAL=IVAMAT
 102 :            DO IC=1,NMATT
 103 :                  MELVAL=IVAL(IC)
 104 :                  IF(IC.LT.3)THEN
 105 :                    IIC=IC
 106 :                  ELSEIF(IC.LT.(NMATT-2))THEN
 107 :                    IIC=IC+3
 108 :                  ELSEIF(IC.LE.(NMATT))THEN
 109 :                    IIC=5+IC-NMATT
 110 :                  ELSE
 111 :                  ENDIF
 112 :                  IF(MELVAL.NE.0)THEN
 113 :                     IF(TYVAL(IC)(1:8).NE.'POINTEUR')THEN
 114 :                        IBMN=MIN(IB,VELCHE(/2))
 115 :                       IGMN=MIN(IGAU,VELCHE(/1))
 116 :                        XMAT(IIC)=VELCHE(IGMN,IBMN)
 117 :                     ELSE
 118 :                       IBMN=MIN(IB,IELCHE(/2))
 119 :                      IGMN=MIN(IGAU,IELCHE(/1))
 120 :                       XMAT(IIC)=IELCHE(IGMN,IBMN)
 121 :                     ENDIF
 122 :                  ELSE
 123 :                     XMAT(IIC)=0.D0
 124 :                     IF(TYVAL(IC)(1:8).EQ.'POINTEUR') THEN
 125 :                        XMAT(IIC)=0
 126 :                     END IF
 127 :                  ENDIF
 128 :            END DO
 129 : *
 130 : *     ON RECUPERE LES CARACTERISTIQUES GEOMETRIQUES
 131 : *
 132 :            MPTVAL=IVACAR
 133 :            DO IC=1,NCARR
 134 :               MELVAL=IVAL(IC)
 135 :               IBMN=MIN(IB,VELCHE(/2))
 136 :               IGMN=MIN(IGAU,VELCHE(/1))
 137 :               XCAR(IC)=VELCHE(IGMN,IBMN)
 138 :            END DO
 139 : C+PPf
 140 : C
 141 : C     TRAITEMENT PARTICULIER DES ELEMENTS SEGS(166) ET POJS(167)
 142 : C
 143 :            IF(MELE.EQ.167)THEN
 144 :              DJAC=XCAR(2)
 145 :            ELSEIF(MELE.EQ.166)THEN
 146 : C+DC on utilise le cas joi3
 146 :              CALL JACOBI(XE,SHP,86,NBNN,DJAC)
 147 :              DJAC=DJAC*XCAR(2)
 148 :            ELSE
 148 :              CALL JACOBI(XE,SHP,2,NBNN,DJAC)
 149 :            ENDIF
 150 : C+PPf
 151 : *
 152 : *     CONTRIBUTION A CRIGI
 153 : *
 154 :            PGAUSS=POIGAU(IGAU)*ABS(DJAC)
 155 : *
 156 :            YOUNG=XMAT(5)
 157 :            GAMMA=XMAT(5)/(2.*(1.+XMAT(2)))
 158 :            ALPH1=XCAR(1)
 159 :            CRIGI( 1)=CRIGI( 1)+YOUNG*PGAUSS
 160 :            CRIGI( 2)=CRIGI( 2)+YOUNG*YY*PGAUSS
 161 :            CRIGI( 3)=CRIGI( 3)+YOUNG*YY2*PGAUSS
 162 : *
 163 :            CRIGI( 4)=CRIGI( 4)+ALPH1*GAMMA*PGAUSS
 164 : *
 165 : *     CONTRIBUTION A CMASS
 166 : *
 167 :            RHO=XMAT(3)
 168 : C
 169 :            CMASS( 1)=CMASS( 1)+RHO*PGAUSS
 170 :            CMASS( 2)=CMASS( 2)+RHO*YY*PGAUSS
 171 :            CMASS( 3)=CMASS( 3)+RHO*YY2*PGAUSS
 172 : *
 173 :            CMASS( 4)=CMASS( 4)+RHO*PGAUSS
 174 : C
 175 : C    FIN DE LA BOUCLE SUR LES POINTS DE GAUSS
 176 : C
 177 : 1100     CONTINUE
 178 : C
 179 : C     FIN DE LA BOUCLE SUR LES ELEMENTS
 180 : C
 181 : 1000  CONTINUE
 182 : *
 183 : C*    SEGDES,MINTE           <- ACTIF EN E/S (NON MODIFIE)
 184 :       SEGSUP WRK0,WRK2
 185 : *
 186 :       RETURN
 187 :       END
 188 : 
 189 :  
 190 :  

© Cast3M 2003 - All rights reserved.
Disclaimer