Download gtemrd.eso

Back to the list

   1 : C GTEMRD    SOURCE    CHAT      05/01/13    00:21:53     5004           
   2 : 
   3 : C-----------------------------------------------------------------------
   4 : C   ENTREES
   5 : C     XEL(3,NBNO)=COORDONNEES LOCALES DE L ELEMENT
   6 : C     SHP(6,NBNO)=DERIVEES PAR RAPPORT A LA GEOMETRIE DE REFERENCE
   7 : C     JDIM=DIMENSION
   8 : C     NBNO=NOMBRE DE NOEUDS
   9 : C   SORTIES
  10 : C     DJAC =JACOBIEN
  11 : C-----------------------------------------------------------------------
  12 :       SUBROUTINE GTEMRD (XEL,SHP,JDIM,NBNO,DJAC)
  13 : 
  14 :       IMPLICIT INTEGER(I-N)
  15 :       IMPLICIT REAL*8 (A-H,O-Z)
  16 : 
  17 : -INC CCOPTIO
  18 : 
  19 :       DIMENSION XEL(3,*),SHP(6,*)
  20 : 
  21 : C  CAS 1 DIMENSION
  22 :       IF (JDIM.EQ.1) THEN
  23 :         IF (IDIM.EQ.1) THEN
  24 :           dXdQsi=0.
  25 :           DO i=1,NBNO
  26 :             dXdQsi=dXdQsi+SHP(2,i)*XEL(1,i)
  27 :           ENDDO
  28 :           DJAC=ABS(dXdQsi)
  29 :         ELSE IF (IDIM.EQ.2) THEN
  30 :           dXdQsi=0.
  31 :           dYdQsi=0.
  32 :           DO i=1,NBNO
  33 :             dXdQsi=dXdQsi+SHP(2,i)*XEL(1,i)
  34 :             dYdQsi=dYdQsi+SHP(2,i)*XEL(2,i)
  35 :           ENDDO
  36 :           DJAC=SQRT(dXdQsi*dXdQsi+dYdQsi*dYdQsi)
  37 :         ELSE IF (IDIM.EQ.3) THEN
  38 :           dXdQsi=0.
  39 :           dYdQsi=0.
  40 :           dZdQsi=0.
  41 :           DO i=1,NBNO
  42 :             dXdQsi=dXdQsi+SHP(2,i)*XEL(1,i)
  43 :             dYdQsi=dYdQsi+SHP(2,i)*XEL(2,i)
  44 :             dZdQsi=dZdQsi+SHP(2,i)*XEL(3,i)
  45 :           ENDDO
  46 :           DJAC=SQRT(dXdQsi*dXdQsi+dYdQsi*dYdQsi+dZdQsi*dZdQsi)
  47 :         ENDIF
  48 : 
  49 : C  CAS 2 DIMENSIONS
  50 :       ELSE IF (JDIM.EQ.2) THEN
  51 :         dXdQsi=0.
  52 :         dYdQsi=0.
  53 :         dZdQsi=0.
  54 :         dXdEta=0.
  55 :         dYdEta=0.
  56 :         dZdEta=0.
  57 :         IF (IDIM.EQ.3) THEN
  58 :           DO i=1,NBNO
  59 :             dXdQsi=dXdQsi+SHP(2,i)*XEL(1,i)
  60 :             dXdEta=dXdEta+SHP(3,i)*XEL(1,i)
  61 :             dYdQsi=dYdQsi+SHP(2,i)*XEL(2,i)
  62 :             dYdEta=dYdEta+SHP(3,i)*XEL(2,i)
  63 :             dZdQsi=dZdQsi+SHP(2,i)*XEL(3,i)
  64 :             dZdEta=dZdEta+SHP(3,i)*XEL(3,i)
  65 :           ENDDO
  66 :           V1=dYdQsi*dZdEta-dZdQsi*dYdEta
  67 :           V2=dZdQsi*dXdEta-dXdQsi*dZdEta
  68 :           V3=dXdQsi*dYdEta-dYdQsi*dXdEta
  69 :           DJAC=SQRT(V1*V1+V2*V2+V3*V3)
  70 :         ELSE IF (IDIM.EQ.2) THEN
  71 :           DO i=1,NBNO
  72 :             dXdQsi=dXdQsi+SHP(2,i)*XEL(1,i)
  73 :             dXdEta=dXdEta+SHP(3,i)*XEL(1,i)
  74 :             dYdQsi=dYdQsi+SHP(2,i)*XEL(2,i)
  75 :             dYdEta=dYdEta+SHP(3,i)*XEL(2,i)
  76 :           ENDDO
  77 :           DJAC=ABS(dXdQsi*dYdEta-dXdEta*dYdQsi)
  78 :         ENDIF
  79 : 
  80 : C  CAS 3 DIMENSIONS
  81 :       ELSE IF (JDIM.EQ.3) THEN
  82 :         D11=0.
  83 :         D21=0.
  84 :         D31=0.
  85 :         D12=0.
  86 :         D22=0.
  87 :         D32=0.
  88 :         D13=0.
  89 :         D23=0.
  90 :         D33=0.
  91 :         DO i=1,NBNO
  92 :           D11=D11+SHP(2,i)*XEL(1,i)
  93 :           D21=D21+SHP(3,i)*XEL(1,i)
  94 :           D31=D31+SHP(4,i)*XEL(1,i)
  95 :           D12=D12+SHP(2,i)*XEL(2,i)
  96 :           D22=D22+SHP(3,i)*XEL(2,i)
  97 :           D32=D32+SHP(4,i)*XEL(2,i)
  98 :           D13=D13+SHP(2,i)*XEL(3,i)
  99 :           D23=D23+SHP(3,i)*XEL(3,i)
 100 :           D33=D33+SHP(4,i)*XEL(3,i)
 101 :         ENDDO
 102 :         DInv11=D22*D33-D23*D32
 103 :         DInv12=D32*D13-D12*D33
 104 :         DInv13=D12*D23-D22*D13
 105 :         DJAC=ABS(D11*DInv11+D21*DInv12+D31*DInv13)
 106 :       ENDIF
 107 : 
 108 :       RETURN
 109 :       END
 110 : 
 111 :  
 112 :  

© Cast3M 2003 - All rights reserved.
Disclaimer