donoeu
C DONOEU SOURCE CB215821 19/08/20 21:16:44 10287 C======================================================================= C C CALCULE LES COORDONNEES REDUITES ET LES POIDS C D'INTEGRATION CORRESPONDANTS C IELE = NUMEROTATION DES ELEMENTS DANS NOMS(32) C (VOIR CCGEO..ME) C MELE = NUMERO DE L'ELEMENT FINI C NBSH = NOMBRE DE FONCTIONS D'INTERPOLATION C NNO = NOMBRE DE NOEUDS DE L'ELEMENT NOMS(IELE) C QSI(NNO) ETA(NNO) DZE(NNO) = COORDONNEES REDUITES C C POI(NBG) = POIDS DE L'INTEGRATION C C A D VOLUME DE L'ELEMENT DE BASE C FOIS CONTRIBUTION DU NOEUD C C IRET = 1 OU 0 SUIVANT QUE IELE IMPLEMENTE OU PAS C C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC CCREEL -INC SMINTE C C QUELQUES CONSTANTES EN VRAC C DATA UNDEMI,UNQUAR,UN/.5D0,0.25D0,1.D0/ DATA UNDOU/.8333333333333333D-1/ DATA UNTIER/.33333333333333333D0/ DATA DEUTIE/.66666666666666666D0/ DATA UNSIX/.166666666666666666D0/ C NBPGAU=NNO NBNO=NBSH SEGINI MINTE IPT=MINTE IRET=1 DO 100 I=1,NNO QSIGAU(I)=XZERO ETAGAU(I)=XZERO DZEGAU(I)=XZERO POIGAU(I)=XZERO 100 CONTINUE * * PETIT DEBRANCHEMENT POUR ELEMENT TUYO * IF(MELE.EQ.96) GO TO 96 C C 66 INDIQUE QUE L ELEMENT N EST PAS ENCORE IMPLEMENTE C DANS CE CAS IRET EST MIS A XZERO C C P1 S2 S3 T3 T4 T6 T7 Q4 Q5 Q8 Q9 R2 R3 C8 C20 P6 P15 GOTO ( 1, 2, 3, 4, 5, 6, 7, 8, 8,10,10, 2,13,14, 15,16, 17, C L3 L4 L6 L8 MU T4 T10 P5 P13 ATT SUP RP3 LP6 LP8 1 4, 8,66,66,66,23, 24,25, 26, 66, 66, 3, 6, 10, C POLY CU27 PR21 TE15 PY19 2 32,15, 17, 24, 26),IELE C 66 IRET=0 IPT=0 GOTO 666 C C ELEMENT POI1 C 1 CONTINUE POIGAU(1)=UN GOTO 666 C C ELEMENT LIGNE 2 NOEUDS LONGUEUR=2 C 2 CONTINUE QSIGAU(1)=-UN QSIGAU(2)= UN POIGAU(1)= UN POIGAU(2)= UN GOTO 666 C C ELEMENT LIGNE 3 NOEUDS LONGUEUR=2 C 3 CONTINUE QSIGAU(1)=-UN QSIGAU(3)= UN POIGAU(1)= DEUTIE POIGAU(2)= DEUTIE POIGAU(3)= DEUTIE GOTO 666 C C ELEMENT TRIANGLE 3 NOEUDS SURFACE=1/2 C 4 CONTINUE QSIGAU(2)=UN ETAGAU(3)=UN POIGAU(1)=UNSIX POIGAU(2)=UNSIX POIGAU(3)=UNSIX GOTO 666 C C ELEMENT TRIANGLE 4 NOEUDS SURFACE =1/2 C 5 CONTINUE QSIGAU(2)=UN ETAGAU(3)=UN QSIGAU(4)=UNTIER ETAGAU(4)=UNTIER POIGAU(1)=1.D0/8.D0 POIGAU(2)=POIGAU(1) POIGAU(3)=POIGAU(1) POIGAU(4)=POIGAU(1) GOTO 666 C C TRIANGLE 6 NOEUDS SURFACE = 1/2 C 6 CONTINUE QSIGAU(2)=UNDEMI QSIGAU(3)=UN QSIGAU(4)=UNDEMI ETAGAU(4)=UNDEMI ETAGAU(5)=UN ETAGAU(6)=UNDEMI DO 61 IA=1,6 POIGAU(IA)=UNDOU 61 CONTINUE GOTO 666 C C TRIANGLE 7 NOEUDS SURFACE=1/2 C 7 CONTINUE QSIGAU(2)=UNDEMI QSIGAU(3)=UN QSIGAU(4)=UNDEMI ETAGAU(4)=UNDEMI ETAGAU(5)=UN ETAGAU(6)=UNDEMI QSIGAU(7)=UNTIER ETAGAU(7)=UNTIER UN14=1.D0/14.D0 DO 71 IA=1,7 POIGAU(IA)=UN14 71 CONTINUE GOTO 666 C C ELEMENT CARRE 4 OU 5 NOEUDS SURFACE =4 C 8 CONTINUE QSIGAU(1)=-UN QSIGAU(2)= UN QSIGAU(3)= UN QSIGAU(4)=-UN ETAGAU(1)=-UN ETAGAU(2)=-UN ETAGAU(3)= UN ETAGAU(4)= UN UN4=UN IF(NNO.EQ.5) UN4=.8D0 DO 81 IA=1,NNO POIGAU(IA)=UN4 81 CONTINUE GOTO 666 C C CARRE 8 OU 9 NOEUDS SURFACE=4 C 10 CONTINUE QSIGAU(1)=-UN QSIGAU(3)= UN QSIGAU(4)= UN QSIGAU(5)= UN QSIGAU(7)=-UN QSIGAU(8)=-UN ETAGAU(1)=-UN ETAGAU(2)=-UN ETAGAU(3)=-UN ETAGAU(5)= UN ETAGAU(6)= UN ETAGAU(7)= UN UN2=UNDEMI IF(NNO.EQ.9) UN2=4.D0/9.D0 DO 11 IA=1,NNO POIGAU(IA)=UN2 11 CONTINUE GOTO 666 C C ELEMENT RACCORD 2 SURFACE=0 ( DEBRANCHE ! ) C VOIR 2 CONTINUE C C 12 CONTINUE C QSIGAU(1)=-UN C QSIGAU(2)= UN C QSIGAU(3)= UN C QSIGAU(4)=-UN C ETAGAU(1)=-UN C ETAGAU(2)=-UN C ETAGAU(3)= UN C ETAGAU(4)= UN C POIGAU(1)= UN C POIGAU(2)= UN C POIGAU(3)= UN C POIGAU(4)= UN C GOTO 666 C C ELEMENT RACCORD 3 SURFACE=0 C 13 CONTINUE QSIGAU(1)=-UN QSIGAU(2)= XZERO QSIGAU(3)= UN QSIGAU(4)= UN QSIGAU(5)= XZERO QSIGAU(6)=-UN C ETAGAU(1)=-UN ETAGAU(2)=-UN ETAGAU(3)=-UN ETAGAU(4)= UN ETAGAU(5)= UN ETAGAU(6)= UN C POIGAU(1)= UN POIGAU(2)= UN POIGAU(3)= UN POIGAU(4)= UN POIGAU(5)= UN POIGAU(6)= UN GOTO 666 C C ELEMENT CUBE VOLUME=8 8 NOEUDS C 14 CONTINUE QSIGAU(1)=-UN QSIGAU(2)= UN QSIGAU(3)= UN QSIGAU(4)=-UN QSIGAU(5)=-UN QSIGAU(6)= UN QSIGAU(7)= UN QSIGAU(8)=-UN ETAGAU(1)=-UN ETAGAU(2)=-UN ETAGAU(3)= UN ETAGAU(4)= UN ETAGAU(5)=-UN ETAGAU(6)=-UN ETAGAU(7)= UN ETAGAU(8)= UN DO 141 IA=1,4 DZEGAU(IA )=-UN DZEGAU(IA+4)= UN POIGAU(IA )= UN POIGAU(IA+4)= UN 141 CONTINUE GOTO 666 C C CUBE A 20 ou 27 NOEUDS VOLUME=8 C 15 CONTINUE DO 151 IA=3,5 QSIGAU(IA )= UN QSIGAU(IA+12)= UN 151 CONTINUE QSIGAU(10)= UN QSIGAU(11)= UN QSIGAU( 9)=-UN QSIGAU(12)=-UN QSIGAU( 1)=-UN QSIGAU( 8)=-UN QSIGAU( 7)=-UN QSIGAU(13)=-UN QSIGAU(20)=-UN QSIGAU(19)=-UN DO 152 IA=1,8 DZEGAU(IA )=-UN DZEGAU(IA+12)= UN 152 CONTINUE DO 153 IA=1,3 ETAGAU(IA )=-UN ETAGAU(IA+4 )= UN ETAGAU(IA+12)=-UN ETAGAU(IA+16)= UN 153 CONTINUE ETAGAU( 9)=-UN ETAGAU(10)=-UN ETAGAU(11)= UN ETAGAU(12)= UN * IF (NNO.EQ.27) THEN QSIGAU(21)=QSIGAU(2) ETAGAU(21)=ETAGAU(2) QSIGAU(22)=QSIGAU(4) ETAGAU(22)=ETAGAU(4) QSIGAU(23)=QSIGAU(6) ETAGAU(23)=ETAGAU(6) QSIGAU(24)=QSIGAU(8) ETAGAU(24)=ETAGAU(8) DZEGAU(25)=-UN DZEGAU(26)=UN * le 27eme noeud est l'origine ENDIF * XPOGA=.4D0 IF (NNO.EQ.27) XPOGA=8.D0/27.D0 DO 154 IA=1,NNO POIGAU(IA)=XPOGA 154 CONTINUE GOTO 666 C C ELEMENT PRISME VOLUME=1 6 NOEUDS C 16 CONTINUE QSIGAU(2)= UN ETAGAU(3)= UN DZEGAU(1)=-UN DZEGAU(2)=-UN DZEGAU(3)=-UN QSIGAU(5)= UN ETAGAU(6)= UN DZEGAU(4)= UN DZEGAU(5)= UN DZEGAU(6)= UN DO 161 IA=1,6 POIGAU(IA)=UNSIX 161 CONTINUE GOTO 666 C C PRISME A 15 NOEUDS VOLUME=1 C 17 CONTINUE DO 171 IA=1,6 DZEGAU(IA )=-UN DZEGAU(IA+9)= UN 171 CONTINUE QSIGAU(8) =UN ETAGAU(9) =UN QSIGAU(2) =UNDEMI QSIGAU(4) =UNDEMI QSIGAU(11) =UNDEMI QSIGAU(13) =UNDEMI QSIGAU(3) =UN QSIGAU(8) =UN QSIGAU(12) =UN ETAGAU(4) =UNDEMI ETAGAU(6) =UNDEMI ETAGAU(13) =UNDEMI ETAGAU(15) =UNDEMI ETAGAU(5) =UN ETAGAU(9) =UN ETAGAU(14) =UN IF (NNO.EQ.21) THEN QSIGAU(16)=QSIGAU(2) ETAGAU(16)=ETAGAU(2) QSIGAU(17)=QSIGAU(4) ETAGAU(17)=ETAGAU(4) QSIGAU(18)=QSIGAU(6) ETAGAU(18)=ETAGAU(6) * DO IA=19,21 QSIGAU(IA)=UNTIER ETAGAU(IA)=UNTIER ENDDO DZEGAU(19)=-UN DZEGAU(20)= UN ENDIF UN15=1.D0/15.D0 IF (NNO.EQ.21) UN15=1.D0/21.D0 DO 172 IA=1,NNO POIGAU(IA)=UN15 172 CONTINUE GOTO 666 C C ELEMENT LIAISON 3 VOLUME=0 C 18 CONTINUE QSIGAU(2)= UN ETAGAU(3)= UN DZEGAU(1)=-UN DZEGAU(2)=-UN DZEGAU(3)=-UN QSIGAU(5)= UN ETAGAU(6)= UN DZEGAU(4)= UN DZEGAU(5)= UN DZEGAU(6)= UN DO 181 IA=1,6 POIGAU(IA)=UNSIX 181 CONTINUE GOTO 666 C C ELEMENT LIAISON 4 VOLUME=0 C C 19 CONTINUE C QSIGAU(1)=-UN C QSIGAU(2)= UN C QSIGAU(3)= UN C QSIGAU(4)=-UN C QSIGAU(5)=-UN C QSIGAU(6)= UN C QSIGAU(7)= UN C QSIGAU(8)=-UN C ETAGAU(1)=-UN C ETAGAU(2)=-UN C ETAGAU(3)= UN C ETAGAU(4)= UN C ETAGAU(5)=-UN C ETAGAU(6)=-UN C ETAGAU(7)= UN C ETAGAU(8)= UN C DO 191 IA=1,4 C DZEGAU(IA )=-UN C DZEGAU(IA+4)= UN C POIGAU(IA )= UN C POIGAU(IA+4)= UN C 191 CONTINUE C GOTO 666 C C ELEMENT TETRAEDRE VOLUME=1/3 4 NOEUDS C 23 CONTINUE QSIGAU(2)=UN ETAGAU(3)=UN DZEGAU(4)=UN POIGAU(1)=UNDOU POIGAU(2)=UNDOU POIGAU(3)=UNDOU POIGAU(4)=UNDOU GOTO 666 C C ELEMENT TETRAEDRE VOLUME =1/3 10 ou 15 NOEUDS C 24 CONTINUE QSIGAU(2)=UNDEMI QSIGAU(4)=UNDEMI QSIGAU(8)=UNDEMI ETAGAU(4)=UNDEMI ETAGAU(6)=UNDEMI ETAGAU(9)=UNDEMI DZEGAU(7)=UNDEMI DZEGAU(8)=UNDEMI DZEGAU(9)=UNDEMI QSIGAU(3)=UN ETAGAU(5)=UN DZEGAU(10)=UN * IF (NNO.EQ.15) THEN QSIGAU(11)=UNTIER ETAGAU(11)=UNTIER QSIGAU(12)=UNTIER DZEGAU(12)=UNTIER QSIGAU(13)=UNTIER ETAGAU(13)=UNTIER DZEGAU(13)=UNTIER ETAGAU(14)=UNTIER DZEGAU(14)=UNTIER * QSIGAU(15)=UNQUAR ETAGAU(15)=UNQUAR DZEGAU(15)=UNQUAR ENDIF * UN30=1.D0/30.D0 IF (NNO.EQ.15) UN30=1.D0/45.D0 DO 241 IA=1,NNO POIGAU(IA)=UN30 241 CONTINUE GOTO 666 C C ELEMENT PYRAMIDE VOLUME=2/3 5 NOEUDS C 25 CONTINUE QSIGAU(1)= UN QSIGAU(2)= XZERO QSIGAU(3)=-UN QSIGAU(4)= XZERO ETAGAU(1)= XZERO ETAGAU(2)= UN ETAGAU(3)= XZERO ETAGAU(4)=-UN DZEGAU(5)= UN UN215 =2.D0/15.D0 DO 251 IA=1,5 POIGAU(IA)=UN215 251 CONTINUE GOTO 666 C C ELEMENT PYRAMIDE 13 NOEUDS VOLUME =2/3 C 26 CONTINUE QSIGAU(1)= UN QSIGAU(2)= UNDEMI QSIGAU(3)= XZERO QSIGAU(4)=-UNDEMI QSIGAU(5)=-UN QSIGAU(6)=-UNDEMI QSIGAU(7)= XZERO QSIGAU(8)= UNDEMI QSIGAU(9)= UNDEMI QSIGAU(10)= XZERO QSIGAU(11)=-UNDEMI QSIGAU(12)= XZERO QSIGAU(13)= XZERO ETAGAU(1)= XZERO ETAGAU(2)= UNDEMI ETAGAU(3)= UN ETAGAU(4)= UNDEMI ETAGAU(5)= XZERO ETAGAU(6)=-UNDEMI ETAGAU(7)=-UN ETAGAU(8)=-UNDEMI ETAGAU(9)= XZERO ETAGAU(10)= UNDEMI ETAGAU(11)= XZERO ETAGAU(12)=-UNDEMI ETAGAU(13)= XZERO DO 261 IA=9,12 DZEGAU(IA)=UNDEMI 261 CONTINUE DZEGAU(13)=UN * IF (NNO.EQ.19) THEN * 14 a l'origine QSIGAU(15)=QSIGAU(2) ETAGAU(15)=ETAGAU(2) QSIGAU(16)=QSIGAU(4) ETAGAU(16)=ETAGAU(4) QSIGAU(17)=QSIGAU(6) ETAGAU(17)=ETAGAU(6) QSIGAU(18)=QSIGAU(8) ETAGAU(18)=ETAGAU(8) DO IA=15,18 DZEGAU(IA)=UNDEMI ENDDO DZEGAU(19)=UNQUAR ENDIF * UN239=2.D0/39.D0 IF (NNO.EQ.19) UN239=2.D0/57.D0 DO 262 IA=1,NNO POIGAU(IA)=UN239 262 CONTINUE GOTO 666 C C POLYGONE A N COTES SURFACE = N * COS(XPI/N) * SIN(XPI/N) C 32 CONTINUE C DO 325 IA = 1, NNO C C C 325 CONTINUE GOTO 666 C 96 CONTINUE C C ELEMENT TUYO LONGUEUR = 2 C NTETA= NNO/2 DO 961 IN=1,NTETA QSIGAU(IN)=-UN QSIGAU(IN+NTETA)= UN 961 CONTINUE * DTETA=2.D0*XPI/DBLE(NTETA) DO 962 IN=1,NTETA 962 CONTINUE GOTO 666 * 666 CONTINUE C C MISE A UN DES POIDS DES POINTS C DO 200 IA=1,NNO POIGAU(IA)=UN 200 CONTINUE IF(IRET.EQ.0) SEGSUP MINTE END
© Cast3M 2003 - Tous droits réservés.
Mentions légales