Download khprm.eso

Back to the list

   1 : C KHPRM     SOURCE    CHAT      05/01/13    00:56:27     5004           
   2 :       SUBROUTINE KHPRM(X,Y,Z,PG,NPG,X1,Y1,X2,Y2,Z1,Z2)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8 (A-H,O-Z)                                                 
   5 : C************************************************************************       
   6 : C     CE SOUS PROGRAMME CALCULE LES POINTS D'INTEGRATION POUR UN                
   7 : C     PRISME MACRO
   8 : C                                                                               
   9 : C   |X1  o
  10 : C   |Y2  |\
  11 : C        | \
  12 : C        |  \
  13 : C        |   \
  14 : C        |    \
  15 : C        |     \
  16 : C |X1    |      \   |(X1+X2)/2
  17 : C |Y1+Y2 x       x  |(Y1+Y2)/2
  18 : C |----- |        \
  19 : C |  2   |         \
  20 : C        |          \
  21 : C        |      cas 3 pts d'integrations sur le triangle
  22 : C        |            \
  23 : C        |             \
  24 : C        |              \
  25 : C  |X1   o_______x_______o   |X2
  26 : C  |Y1                       |Y1
  27 : C               |(X1+X2)/2
  28 : C               |Y1
  29 : C                                                                               
  30 : C                                                                               
  31 : C                                                                               
  32 : C                                                                               
  33 : C                                                                               
  34 : C************************************************************************       
  35 :       DIMENSION PG(NPG)                                                         
  36 :       REAL*8 X(NPG),Y(NPG),Z(NPG),U(5),H(5)
  37 : C***                                                                            
  38 :                                                                                 
  39 :                                                                                 
  40 :       IF(NPG.EQ.2)THEN
  41 : C                                                                               
  42 :       NG=1
  43 :       X(1)=1.D0/3.D0*(X2-X1)
  44 :       Y(1)=1.D0/3.D0*(Y2-Y1)
  45 :       X(2)=X(1)
  46 :       Y(2)=Y(1)
  47 :       GO TO 30                                                                  
  48 :       ENDIF                                                                     
  49 : C                                                                               
  50 :       IF(NPG.EQ.6)THEN                                                          
  51 :       NG=2
  52 :       X(1)=X1
  53 :       Y(1)=(Y1+Y2)/2.D0
  54 :       X(3)=(X1+X2)/2.D0
  55 :       Y(3)=Y1
  56 :       X(5)=(X1+X2)/2.D0
  57 :       Y(5)=(Y1+Y2)/2.D0
  58 :       X(2)=X(1)
  59 :       Y(2)=Y(1)
  60 :       X(4)=X(3)
  61 :       Y(4)=Y(3)
  62 :       X(6)=X(5)
  63 :       Y(6)=Y(5)
  64 :       GO TO 30                                                                  
  65 :       ENDIF                                                                     
  66 :                                                                                 
  67 :       WRITE(6,*)' SUB CALHPR : NPG=',NPG                                        
  68 :       WRITE(6,*)' NOMBRE DE POINTS D''INTEGRATION INCORECTE POUR UN ',          
  69 :      & 'PRISME'                                                                 
  69 :       CALL ARRET(0)                                                             
  70 :                                                                                 
  71 :  30   CONTINUE                                                                  
  72 : C                                                                               
  72 :       CALL CALUHG(U,H,NG)
  72 :       CALL CALG1(Z1,Z2,NG,H,U,Z,PG)
  73 :       IF(NPG.NE.6) RETURN                                                       
  74 :       PG(3)=PG(1)
  75 :       PG(4)=PG(2)
  76 :       PG(5)=PG(1)
  77 :       PG(6)=PG(2)
  78 :       Z(3)=Z(1)
  79 :       Z(4)=Z(2)
  80 :       Z(5)=Z(1)
  81 :       Z(6)=Z(2)
  82 :       DO 21 L=1,NPG                                                             
  83 :       PG(L)=PG(L)/12.D0
  84 :  21   CONTINUE                                                                  
  85 : C     SPG=0
  86 : C     DO 22 L=1,NPG
  87 : C     SPG=SPG+PG(L)
  88 : C22   CONTINUE
  89 : C     WRITE(6,1002)SPG
  90 : C     WRITE(6,1002)H
  91 : C     WRITE(6,1002)U
  92 : C     WRITE(6,1002)Z
  93 : C1002 FORMAT(10(1X,1PD11.4))
  94 :       RETURN
  95 :       END                                                                       
  96 :  
  97 :  
  98 :  
  99 :  

© Cast3M 2003 - All rights reserved.
Disclaimer