C TSHAPE SOURCE CHAT 12/06/07 21:16:15 7389 C======================================================================= C= T S H A P E = C= ----------- = C= = C= Fonction : = C= ---------- = C= Calcul des fonctions de forme et de leurs derivees soit aux noeuds = C= soit aux points de Gauss d'un element fini MASSIF a integration = C= numerique (branchement vers les sous-programmes adequats). = C= = C= Parametres : (E)=Entree (S)=Sortie = C= ------------ = C= NEF (E) Numero de l'ELEMENT FINI dans NOMTP (cf. CCHAMP) = C= POINTS (E) Chaine de caracteres indiquant si l'on souhaite les = C= valeurs aux noeuds (='NOEUD') ou aux points de Gauss = C= (='GAUSS') de l'element fini considere = C= IPINTE (S) Pointeur sur le segment MINTE = C= = C= Remarque : Il s'agit des derivees par rapport aux coordonnees de = C= ---------- l'element de reference (Eta,Qsi,Dzeta). = C= = C= Denis ROBERT, le 6 janvier 1988. P. DOWLATYARI, mars 1992 = C======================================================================= SUBROUTINE TSHAPE (NEF,POINTS,IPINTE) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC CCOPTIO CHARACTER*(*) POINTS C 1 - Verification : Les valeurs ne peuvent etre donnees qu'aux C ==================== noeuds ou aux points d'integration (Gauss). IF (POINTS(1:5).NE.'GAUSS'.AND.POINTS(1:5).NE.'NOEUD') THEN CALL ERREUR(19) RETURN ENDIF C 2 - Appel a la procedure suivant le type de l'ELEMENT FINI C ============================================================ C 2.1 - Elements SEG2 RAC2 COQ2 BARRe T1D2 C ===== IF (NEF.EQ.2.OR.NEF.EQ.12.OR.NEF.EQ.44.OR.NEF.EQ.46.OR. . NEF.EQ.191.or.nef.eq.269) THEN CALL TSEG2F(POINTS,IPINTE) C ===== C 2.2 - Elements SEG3 RAC3 T1D3 C ===== ELSE IF (NEF.EQ.3.OR.NEF.EQ.13.OR.NEF.EQ.192.or.nef.eq.270) THEN CALL TSEG3(POINTS,IPINTE) C ===== C 2.3 - Elements TRI3 LIA3 COQ3 C ===== ELSE IF (NEF.EQ.4.OR.NEF.EQ.18.OR.NEF.EQ.27) THEN CALL TTRI3F(POINTS,IPINTE) C ===== C 2.4 - Elements TRI6 LIA6 C ===== ELSE IF (NEF.EQ.6.OR.NEF.EQ.20) THEN CALL TTRI6(POINTS,IPINTE) C ===== C 2.5 - Elements QUA4 LIA4 C ===== ELSE IF (NEF.EQ.8.OR.NEF.EQ.19) THEN CALL TQUA4(POINTS,IPINTE) C ===== C 2.6 - Elements QUA8 LIA8 C ===== ELSE IF (NEF.EQ.10.OR.NEF.EQ.21) THEN CALL TQUA8(POINTS,IPINTE) C ===== C 2.7 - Element CUB8 C ===== ELSE IF (NEF.EQ.14) THEN CALL TCUB8(POINTS,IPINTE) C ===== C 2.8 - Element CU20 C ===== ELSE IF (NEF.EQ.15) THEN CALL TCU20(POINTS,IPINTE) C ===== C 2.9 - Element PRI6 C ===== ELSE IF (NEF.EQ.16) THEN CALL TPRI6(POINTS,IPINTE) C ====== C 2.10 - Element PR15 C ====== ELSE IF (NEF.EQ.17) THEN CALL TPR15(POINTS,IPINTE) C ====== C 2.11 - Element TET4 C ====== ELSE IF (NEF.EQ.23) THEN CALL TTET4F(POINTS,IPINTE) C ====== C 2.12 - Element TE10 C ====== ELSE IF (NEF.EQ.24) THEN CALL TTE10(POINTS,IPINTE) C ====== C 2.13 - Element PYR5 C ====== ELSE IF (NEF.EQ.25) THEN CALL TPYR5(POINTS,IPINTE) C ====== C 2.14 - Element PY13 C ====== ELSE IF (NEF.EQ.26) THEN CALL TPY13(POINTS,IPINTE) C ====== C 2.15 - Element COQ4 C ====== ELSE IF (NEF.EQ.49) THEN CALL TCOQ4(POINTS,IPINTE) C ====== C 2.16 - Element COQ8 C ====== ELSE IF (NEF.EQ.41) THEN CALL TCOQ8(POINTS,IPINTE) C ====== C 2.17 - Element COQ6 C ====== ELSE IF (NEF.EQ.56) THEN CALL TCOQ6(POINTS,IPINTE) C ====== C 2.18 - Element POI1 C ====== ELSE IF ((NEF.EQ.45).OR.(NEF.EQ.1)) THEN CALL TPOI1(POINTS,IPINTE) C ====== C 2.19 - ERREUR : Element fini non implemente C ====== ELSE CALL ERREUR(19) ENDIF RETURN END