C CORIO3 SOURCE BP208322 15/06/22 21:16:46 8543 SUBROUTINE CORIO3(IPMAIL,NDDL,LRE,NBPGAU,IPMINT, &MELE,MFR,IVAMAT,IVACAR,NMATT,IPMATR,VROT,NUMLIS,IIPDPG) *---------------------------------------------------------------------* * __________________________________________________ * * | | * * | calcul de la matrice de couplage gyroscopique | * * |________________________________________________| * * * * massif * * * *---------------------------------------------------------------------* * * * entrees : * * ________ * * * * ipmail pointeur sur un segment meleme * * nddl nombre de degre de liberte /noeud * * lre nombre de ddl dans la matrice de masse * * nbpgau nombre de point d'integration pour la masse * * ipmint pointeur sur un segment minte * * ipmin1 pointeur sur un segment minte (aux noeuds) * * mele numero de l'element fini * * mfr numero de la formulation * * * ivamat pointeur sur un segment mptval pour le materiau ou * * pour une matrice de hooke * * ivacar pointeur sur un segment mptval pour les * * caracteristiques * * nmatt nombre de composante de materiau (imat=1) * * vrot vecteur vitesse de rotation * * * * sorties : * * ________ * * * * ipmatr pointeur sur la matrice de couplage gyroscopique * * de la sous-zone * * * * Didier COMBESCURE mars 2003 * *---------------------------------------------------------------------* IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC CCREEL -INC SMRIGID -INC SMCHAML -INC SMELEME -INC SMCOORD -INC SMINTE -INC SMMODEL c SEGMENT WRK1 REAL*8 REL(LRE,LRE),XE(3,NBBB) ENDSEGMENT c SEGMENT WRK2 REAL*8 SHPWRK(6,NBNO),BGENE(NDDL,LRE) ENDSEGMENT c SEGMENT WRK5 REAL*8 BLX(NDDL,LRE),BLY(NDDL,LRE),BLZ(NDDL,LRE) REAL*8 BLT(NDDL,LRE) ENDSEGMENT c SEGMENT MVELCH REAL*8 VALMAT(NV1) ENDSEGMENT c SEGMENT MPTVAL INTEGER IPOS(NS),NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT c DIMENSION VROT(*) * MELEME=IPMAIL c* SEGACT,MELEME NBNN=NUM(/1) NBELEM=NUM(/2) * NV1=NMATT SEGINI,MVELCH * xMATRI=IPMATR c* SEGACT,xMATRI C* NLIGRP=LRE C* NLIGRD=LRE XDPGE=0.D0 YDPGE=0.D0 * NHRM=NIFOUR * MINTE=IPMINT c* SEGACT,MINTE c_______________________________________________________________________ c c numero des etiquettes : c etiquettes de 1 a 98 pour traitement specifique a l element c dans la zone specifique a chaque element commencant par : c 5 continue c element 5 etiquettes 1005 2005 3005 4005 ... c 44 continue c element 44 etiquettes 1044 2044 3044 4044 ... c_______________________________________________________________________ c * CABL SEG2 SEG3 TRI3 TRI4 TRI6 TRI7 QUA4 QUA5 QUA8 QUA9 GOTO ( 99, 99, 99, 21, 99, 21, 99, 21, 99, 21, 99 * RAC2 RAC3 CUB8 CU20 PRI6 PR15 LIA3 LIA4 LIA6 LIA8 MULT & , 99, 99, 11, 11, 11, 11, 99, 99, 99, 99, 99 * TET4 TE10 PYR5 PY13 COQ3 DKT POUT LISP FAC3 FAC4 FAC6 & , 11, 11, 11, 11, 99, 99, 99, 99, 99, 99, 99 * FAC8 LTR3 LQU4 LCU8 LPR6 LTE4 LPY5 COQ8 TUYA TUFI COQ2 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * POI1 BARR RACO LSU2 COQ4 LISM COF3 RES2 LSU3 LSU4 LICO & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * COQ6 CVS2 CVS3 CVT3 CVT6 CVQ4 CVQ8 THP5 TH13 THP6 TH15 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * THC8 TH20 ICT3 ICQ4 ICT6 ICQ8 ICC8 ICT4 ICP6 IC20 IC10 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * IC15 TRIP QUAP CUBP TETP PRIP TIMO JOI2 JOI3 JOT3 JOI4 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * JOI6 JOI8 LISC TRIH DST LIC4 CERC TUYO LSE2 LITU HYT3 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * HYQ4 HYT4 HYP6 HYC8 TRIS QUAS POIS FOR3 JOP3 JOP6 JOP8 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * POL3 POL4 POL5 POL6 POL7 POL8 POL9 PO10 PO11 PO12 PO13 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * PO14 BAR3 BAEX LIA2 QUAH CUBH ROT3 SEF2 TRF3 QUF4 CUF8 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * PRF6 TEF4 PYF5 MSE3 MTR6 MQU9 MC27 MP18 MT10 MP14 SEF3 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * TRF7 QUF9 CF27 PF21 TF15 PF19 SEG6 TR21 QU36 C216 P126 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * TE56 PY91 TRH6 & , 99, 99, 99),MELE c_______________________________________________________________________ c c secteur de calcul pour les elements massifs c_______________________________________________________________________ c 11 CONTINUE DIM3=1.D0 NBNO=NBNN NBBB=NBNN SEGINI WRK1,WRK2 DO 1005 IB=1,NBELEM c c on cherche les coordonnees des noeuds de l element ib c CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE) CALL ZERO (REL,LRE,LRE) c c boucle sur les points de gauss c ISDJC=0 DO 1004 IGAU=1,NBPGAU * CALL NMATST(IGAU,MELE,MFR,NBNN,LRE,IFOUR,NIFOUR,NDDL, 1 DIM3,XE,SHPTOT,SHPWRK,BGENE,DJAC,XDPGE,YDPGE) IF(DJAC.LT.0.) ISDJC=ISDJC+1 IF (DJAC.EQ.0.) THEN INTERR(1)= IB CALL ERREUR(259) GOTO 9011 ENDIF DJAC=ABS(DJAC)*POIGAU(IGAU) MPTVAL=IVAMAT IF (IVAL(1).NE.0) THEN MELVAL=IVAL(1) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) VALMAT(1)=VELCHE(IGMN,IBMN) ELSE VALMAT(1)=0.D0 ENDIF DJAC=DJAC*VALMAT(1) CALL NTNST(BGENE,DJAC,LRE,NDDL,REL) C 1004 CONTINUE C C+DC On bouscule la matrice de masse C IF (ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) THEN INTERR(1)=IB CALL ERREUR(195) GOTO 9011 ENDIF c c remplissage de xmatri c CALL MTOGYR(LRE,NDDL,REL,VROT,RE(1,1,ib)) C 1005 CONTINUE 9011 CONTINUE SEGSUP WRK1,WRK2 GOTO 510 C c_______________________________________________________________________ c c secteur de calcul pour les elements 2D en mode de Fourier c_______________________________________________________________________ c 21 CONTINUE DIM3=1.D0 NBNO=NBNN NBBB=NBNN SEGINI WRK1,WRK2 DO 2005 IB=1,NBELEM c c on cherche les coordonnees des noeuds de l element ib c CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE) CALL ZERO (REL,LRE,LRE) c c boucle sur les points de gauss c ISDJC=0 DO 2004 IGAU=1,NBPGAU * CALL NMATST(IGAU,MELE,MFR,NBNN,LRE/2,IFOUR,NIFOUR,NDDL/2, 1 DIM3,XE,SHPTOT,SHPWRK,BGENE,DJAC,XDPGE,YDPGE) IF(DJAC.LT.0.) ISDJC=ISDJC+1 IF(DJAC.EQ.0.) THEN INTERR(1)= IB CALL ERREUR(259) GOTO 9021 ENDIF DJAC=ABS(DJAC)*POIGAU(IGAU) MPTVAL=IVAMAT IF (IVAL(1).NE.0) THEN MELVAL=IVAL(1) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) VALMAT(1)=VELCHE(IGMN,IBMN) ELSE VALMAT(1)=0.D0 ENDIF DJAC=DJAC*VALMAT(1) CALL NTNST(BGENE,DJAC,LRE/2,NDDL/2,REL) C 2004 CONTINUE C IF (ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) THEN INTERR(1)=IB CALL ERREUR(195) GOTO 9021 ENDIF c c remplissage de xmatri c IF (NUMLIS.EQ.1) THEN CALL MTOGY2(LRE/2,NDDL/2,REL,VROT,RE(1,1,ib)) ELSE CALL MTOGYF(LRE/2,NDDL/2,REL,VROT,RE(1,1,ib)) ENDIF C 2005 CONTINUE 9021 CONTINUE SEGSUP WRK1,WRK2 GOTO 510 c_______________________________________________________________________ * 99 CONTINUE MOTERR(1:4)=NOMTP(MELE) MOTERR(5:12)='CORIO3' CALL ERREUR(86) * 510 CONTINUE SEGSUP,MVELCH RETURN END