Download pb503.eso

Back to the list

   1 : C PB503     SOURCE    MAGN      10/05/19    21:15:11     6676           
   2 :       SUBROUTINE PB503(XREF,X,Y,Z,PG,FN,GR,FM,GM,ND,NP,MP,NPG,NOM2)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8 (A-H,O-Z)
   5 : C*********************************************************************
   6 : C                           PYRAMIDE
   7 : C   CALCUL DES FONCTIONS DE FORME ET DIVERS POINTS D'INTEGRATION
   8 : C                VALEURS F(P)
   9 : C                          Z      Y                            XREF
  10 : C                          |     /                     P1 | 1.  0.  0.
  11 : C                          1.   1.                        |
  12 : C                          |   /                       P2 | 0.  1.  0.
  13 : C                          |  /                           |
  14 : C                          | /                         P3 |-1.  0.  0.
  15 : C                          |/                             |
  16 : C   ----------(-1.)--------|-------------1.-------->X  P4 | 0. -1.  0.
  17 : C                         /                               |
  18 : C                        /                             P5 | 0.  0.  1.
  19 : C                       /
  20 : C                      /
  21 : C                    -1.
  22 : C*********************************************************************
  23 :       CHARACTER*4 NOM2
  24 :       REAL*8 XREF(ND,NP),X(NPG),Y(NPG),Z(NPG)
  25 :       DIMENSION FN(NP,NPG),GR(ND,NP,NPG),PG(NPG)
  26 :       DIMENSION FM(MP,NPG),GM(ND,MP,NPG)
  27 :       REAL*8 A,B,C,D,U(5),H(5)
  28 :       REAL*8 CO,AL,BE,DIV
  29 : 
  30 : C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  31 :       XZERO=0.0D0
  32 : 
  33 :       XREF(1,1)=1.D0
  34 :       XREF(2,1)=0.D0
  35 :       XREF(3,1)=0.D0
  36 : 
  37 :       XREF(1,2)=0.D0
  38 :       XREF(2,2)=1.D0
  39 :       XREF(3,2)=0.D0
  40 : 
  41 :       XREF(1,3)=-1.D0
  42 :       XREF(2,3)=0.D0
  43 :       XREF(3,3)=0.D0
  44 : 
  45 :       XREF(1,4)=0.D0
  46 :       XREF(2,4)=-1.D0
  47 :       XREF(3,4)=0.D0
  48 : 
  49 :       XREF(1,5)=0.D0
  50 :       XREF(2,5)=0.D0
  51 :       XREF(3,5)=1.D0
  52 : 
  53 : C Verification des coordonnées
  54 :       IF(.FALSE.)THEN
  55 : C      IF(.TRUE.)THEN
  56 :       DO 11 L=1,NP
  57 :       X(L)=XREF(1,L)
  58 :       Y(L)=XREF(2,L)
  59 :       Z(L)=XREF(3,L)
  60 :  11   CONTINUE
  61 : 
  62 :       DO 12 L=1,NP
  63 :       DZEM = 1.D0 - Z(L) + 1.D-10
  64 :       DZEM4= (1.0D0 - Z(L))*4.0D0 + 1.D-10
  65 :       AUX  = X(L)+Y(L)+Z(L)-1.0D0
  66 :       AUX1 =-X(L)+Y(L)+Z(L)-1.0D0
  67 :       AUX2 =-X(L)-Y(L)+Z(L)-1.0D0
  68 :       AUX3 = X(L)-Y(L)+Z(L)-1.0D0
  69 : C
  70 :       FN(1,L)=AUX1*AUX2/DZEM4
  71 :       FN(2,L)=AUX2*AUX3/DZEM4
  72 :       FN(3,L)=AUX*AUX3/DZEM4
  73 :       FN(4,L)=AUX*AUX1/DZEM4
  74 :       FN(5,L)=Z(L)
  75 :       write(6,1033)L,FN(1,L),FN(2,L),FN(3,L),FN(4,L),FN(5,L)
  76 :  12   CONTINUE
  77 :  1033 FORMAT(1X,I4,' FN',10(1X,1PD11.4))
  78 :       ENDIF
  79 : C Fin Vérification
  80 : 
  81 :       IF(NPG.EQ.1)THEN
  82 :       X(1)=0.D0
  83 :       Y(1)=0.D0
  84 :       Z(1)=0.25D0
  85 :       PG(1)=2.D0/3.D0
  86 :       ENDIF
  87 :       IF(NPG.EQ.5)THEN
  88 :       AUX=0.5D0
  89 :       H1 = 0.1531754163448146D0
  90 :       H2 = 0.6372983346207416D0
  91 :       PO=2.D0 / 15.D0
  92 : C
  93 :       X(1)=AUX
  94 :       Y(1)=XZERO
  95 :       Z(1)=H1
  96 :       PG(1)=PO
  97 : C
  98 :       X(2)=XZERO
  99 :       Y(2)=-AUX
 100 :       Z(2)=H1
 101 :       PG(2)=PO
 102 : C
 103 :       X(3)=AUX
 104 :       Y(3)=XZERO
 105 :       Z(3)=H1
 106 :       PG(3)=PO
 107 : C
 108 :       X(4)=XZERO
 109 :       Y(4)=-AUX
 110 :       Z(4)=H1
 111 :       PG(4)=PO
 112 : C
 113 :       X(5)=XZERO
 114 :       Y(5)=XZERO
 115 :       Z(5)=H2
 116 :       PG(5)=PO
 117 : C
 118 :       ENDIF
 119 :       DO 1 L=1,NPG
 120 :       DZEM = 1.D0 - Z(L)
 121 :       DZEM4= (1.0D0 - Z(L))*4.0D0
 122 :       AUX  = X(L)+Y(L)+Z(L)-1.0D0
 123 :       AUX1 =-X(L)+Y(L)+Z(L)-1.0D0
 124 :       AUX2 =-X(L)-Y(L)+Z(L)-1.0D0
 125 :       AUX3 = X(L)-Y(L)+Z(L)-1.0D0
 126 : C
 127 :       FN(1,L)=AUX1*AUX2/DZEM4
 128 :       FN(2,L)=AUX2*AUX3/DZEM4
 129 :       FN(3,L)=AUX*AUX3/DZEM4
 130 :       FN(4,L)=AUX*AUX1/DZEM4
 131 :       FN(5,L)=Z(L)
 132 : C
 133 :       GR(1,1,L)=(-AUX1-AUX2)/DZEM4
 134 :       GR(2,1,L)=( AUX2-AUX1)/DZEM4
 135 :       GR(3,1,L)=(AUX1+AUX2+AUX1*AUX2/DZEM)/DZEM4
 136 : C
 137 :       GR(1,2,L)=( AUX2-AUX3)/DZEM4
 138 :       GR(2,2,L)=(-AUX2-AUX3)/DZEM4
 139 :       GR(3,2,L)=(AUX2+AUX3+AUX2*AUX3/DZEM)/DZEM4
 140 : C
 141 :       GR(1,3,L)=( AUX +AUX3)/DZEM4
 142 :       GR(2,3,L)=( AUX3-AUX )/DZEM4
 143 :       GR(3,3,L)=(AUX3+AUX +AUX3*AUX /DZEM)/DZEM4
 144 : C
 145 :       GR(1,4,L)=( AUX1-AUX )/DZEM4
 146 :       GR(2,4,L)=( AUX +AUX1)/DZEM4
 147 :       GR(3,4,L)=( AUX+AUX1+ AUX*AUX1/DZEM)/DZEM4
 148 : C
 149 :       GR(1,5,L)=XZERO
 150 :       GR(2,5,L)=XZERO
 151 :       GR(3,5,L)=1.0D0
 152 : C
 153 : 
 154 :       IF(NOM2.EQ.'P1P1')THEN
 155 :       FM(1,L)=FN(1,L)
 156 :       FM(2,L)=FN(2,L)
 157 :       FM(3,L)=FN(3,L)
 158 :       FM(4,L)=FN(4,L)
 159 :       FM(5,L)=FN(5,L)
 160 : C
 161 :       GM(1,1,L)=(-AUX1-AUX2)/DZEM4
 162 :       GM(2,1,L)=( AUX2-AUX1)/DZEM4
 163 :       GM(3,1,L)=(AUX1+AUX2+AUX1*AUX2/DZEM)/DZEM4
 164 : C
 165 :       GM(1,2,L)=( AUX2-AUX3)/DZEM4
 166 :       GM(2,2,L)=(-AUX2-AUX3)/DZEM4
 167 :       GM(3,2,L)=(AUX2+AUX3+AUX2*AUX3/DZEM)/DZEM4
 168 : C
 169 :       GM(1,3,L)=( AUX +AUX3)/DZEM4
 170 :       GM(2,3,L)=( AUX3-AUX )/DZEM4
 171 :       GM(3,3,L)=(AUX3+AUX +AUX3*AUX /DZEM)/DZEM4
 172 : C
 173 :       GM(1,4,L)=( AUX1-AUX )/DZEM4
 174 :       GM(2,4,L)=( AUX +AUX1)/DZEM4
 175 :       GM(3,4,L)=( AUX+AUX1+ AUX*AUX1/DZEM)/DZEM4
 176 : C
 177 :       GM(1,5,L)=XZERO
 178 :       GM(2,5,L)=XZERO
 179 :       GM(3,5,L)=1.0D0
 180 : C
 181 :       ELSE
 182 :       FM(1,L)=1.D0
 183 :       GM(1,1,L)=0.D0
 184 :       GM(2,1,L)=0.D0
 185 :       GM(3,1,L)=0.D0
 186 :       ENDIF
 187 :  1    CONTINUE
 188 : 
 189 : C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 190 : C     WRITE(6,100)
 191 : C     WRITE(6,101)
 192 : C     WRITE(6,1002)FN
 193 : C     WRITE(6,1002)GR
 194 : C     WRITE(6,101)
 195 :       RETURN
 196 :  1003 FORMAT(1X,' FN',10(1X,1PD11.4))
 197 :  1002 FORMAT(1X,'  GR',3(1X,1PD11.4))
 198 :  1001 FORMAT(20(1X,I5))
 199 :  100  FORMAT(1H1)
 200 :  101  FORMAT(1X,'... SUB PB503 ... FN,GR,FOM,GM ',9(10H..........)/)
 201 :       END
 202 :  
 203 :  
 204 :  
 205 :  
 206 :  

© Cast3M 2003 - All rights reserved.
Disclaimer