1 : C TCOND5 SOURCE CHAT 05/01/13 03:34:19 5004 2 : 3 : C======================================================================= 4 : C= T C O N D 5 = 5 : C= ----------- = 6 : C= = 7 : C= Fonction : = 8 : C= ---------- = 9 : C= Calcul, au point de Gauss (iGau) considere, du jacobien (DJAC), = 10 : C= des fonctions de forme et de leurs derivees (SHP), de la matrice = 11 : C= gradient des fonctions de forme (derivation par rapport aux coor- = 12 : C= donnees reelles x,y,z ou r,theta,z) = 13 : C= = 14 : C= Parametres : (E)=Entree (S)=Sortie = 15 : C= ------------ = 16 : C= iGau (E) Numero du point de Gauss considere = 17 : C= NBNN (E) Nombre de NOEUDS de l'element = 18 : C= NDIM (E) Nombre de lignes de la matrice GRADIENT = 19 : C= XE (E) COORDONNEES des noeuds de l'element (repere GLOBAL) = 20 : C= SHPTOT (E) Fonctions de FORME et leurs DERIVEES par rapport aux = 21 : C= coordonnees de REFERENCE (Qsi,Eta,Dzeta) = 22 : C= SHP (S) Fonctions de FORME et leurs DERIVEES par rapport aux = 23 : C= coordonnees REELLES (X,Y,Z) = 24 : C= GRAD (S) Matrice GRADIENT par rapport aux coordonnees REELLES = 25 : C= DJAC (S) JACOBIEN au point de Gauss considere = 26 : C= = 27 : C= Denis ROBERT, le 7 janvier 1988. = 28 : C======================================================================= 29 : 30 : SUBROUTINE TCOND5 (iGau,NBNN,NDIM,XE,SHPTOT,SHP,GRAD,DJAC) 31 : 32 : IMPLICIT INTEGER(I-N) 33 : IMPLICIT REAL*8 (A-H,O-Z) 34 : 35 : -INC CCOPTIO 36 : -INC CCREEL 37 : 38 : C= Quelques constantes (2.Pi et 4.Pi) 39 : PARAMETER (X2Pi=6.283185307179586476925286766559D0) 40 : PARAMETER (X4Pi=12.566370614359172953850573533118D0) 41 : 42 : REAL*8 XE(3,*),SHPTOT(6,NBNN,*),SHP(6,*),GRAD(NDIM,*) 43 : 44 : C ==================== 45 : C 1 - Initialisation 46 : C ==================== 46 : C*OF CALL ZERO(GRAD,NDIM,NBNN) 47 : 48 : C ============================================ 49 : C 2 - Cas des elements MASSIFS 2D PLAN ou 3D 50 : C ============================================ 51 : IF (IFOMOD.EQ.-1.OR.IFOMOD.EQ.2) THEN 52 : iFin=IDIM+1 53 : DO j=1,NBNN 54 : DO i=1,iFin 55 : SHP(i,j)=SHPTOT(i,j,iGau) 56 : ENDDO 57 : ENDDO 57 : CALL JACOBI(XE,SHP,IDIM,NBNN,DJAC) 58 : DO j=1,NBNN 59 : DO i=1,NDIM 60 : GRAD(i,j)=SHP(i+1,j) 61 : ENDDO 62 : ENDDO 63 : C ================================================ 64 : C 3 - Cas des elements MASSIFS 2D AXISYMETRIQUES 65 : C ================================================ 66 : ELSE IF (IFOMOD.EQ.0) THEN 67 : DO j=1,NBNN 68 : SHP(1,j)=SHPTOT(1,j,iGau) 69 : SHP(2,j)=SHPTOT(2,j,iGau) 70 : SHP(3,j)=SHPTOT(3,j,iGau) 71 : ENDDO 71 : CALL JACOBI(XE,SHP,IDIM,NBNN,DJAC) 71 : CALL DISTRR(XE,SHP,NBNN,RR) 72 : DJAC=X2Pi*DJAC*RR 73 : DO j=1,NBNN 74 : GRAD(1,j)=SHP(2,j) 75 : GRAD(2,j)=SHP(3,j) 76 : ENDDO 77 : C ============================================== 78 : C 4 - Cas des elements MASSIFS en mode FOURIER 79 : C ============================================== 80 : ELSE IF (IFOMOD.EQ.1) THEN 81 : DO j=1,NBNN 82 : SHP(1,j)=SHPTOT(1,j,iGau) 83 : SHP(2,j)=SHPTOT(2,j,iGau) 84 : SHP(3,j)=SHPTOT(3,j,iGau) 85 : ENDDO 85 : CALL JACOBI(XE,SHP,IDIM,NBNN,DJAC) 85 : CALL DISTRR(XE,SHP,NBNN,RR) 86 : IF (NIFOUR.EQ.0) THEN 87 : DJAC=X2Pi*DJAC*RR 88 : ELSE 89 : DJAC=XPi*DJAC*RR 90 : ENDIF 91 : DNN=NIFOUR/RR 92 : DO j=1,NBNN 93 : GRAD(1,j)=SHP(2,j) 94 : GRAD(2,j)=DNN*SHP(1,j) 95 : GRAD(3,j)=SHP(3,j) 96 : ENDDO 97 : C ================================= 98 : C 5 - Cas des elements MASSIFS 1D 99 : C ================================= 100 : ELSE IF (IFOMOD.EQ.3.OR.IFOMOD.EQ.4.OR.IFOMOD.EQ.5) THEN 101 : DO j=1,NBNN 102 : SHP(1,j)=SHPTOT(1,j,iGau) 103 : SHP(2,j)=SHPTOT(2,j,iGau) 104 : ENDDO 104 : CALL JACOBI(XE,SHP,IDIM,NBNN,DJAC) 105 : C= Traitement des modes axisymetriques et spherique 1D 106 : IF (IFOMOD.EQ.4) THEN 106 : CALL DISTRR(XE,SHP,NBNN,RR) 107 : DJAC=X2Pi*DJAC*RR 108 : ELSE IF (IFOMOD.EQ.5) THEN 108 : CALL DISTRR(XE,SHP,NBNN,RR) 109 : DJAC=X4Pi*DJAC*RR*RR 110 : ENDIF 111 : DO j=1,NBNN 112 : GRAD(1,j)=SHP(2,j) 113 : ENDDO 114 : ENDIF 115 : 116 : RETURN 117 : END 118 : 119 : 120 :
© Cast3M 2003 - All rights reserved.
Disclaimer