Download calhpr.eso

Back to the list

   1 : C CALHPR    SOURCE    CHAT      05/01/12    21:46:12     5004           
   2 :       SUBROUTINE CALHPR(X,Y,Z,PG,NPG)                                           
   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                                                                    
   8 : C***********************************************************************
   9 : C VERSION    : ????
  10 : C HISTORIQUE : 20/12/99: gounand
  11 : C    Modification du placement des points de Gauss (cas NPG=6)
  12 : C    sur le triangle de base du prisme (avant, ils étaient sur les
  13 : C    faces) 
  14 : C
  15 : C HISTORIQUE :
  16 : C HISTORIQUE :
  17 : C***********************************************************************
  18 : C                                                                               
  19 : C************************************************************************       
  20 :       DIMENSION PG(NPG)                                                         
  21 :       REAL*8 X(NPG),Y(NPG),Z(NPG),U(5),H(5)
  22 : C     DATA R2/1.414213562/
  23 : C***                                                                            
  24 :       R2=SQRT(2.D0)
  25 :                                                                                 
  26 :                                                                                 
  27 :                                                                                 
  28 :       IF(NPG.EQ.1.OR.NPG.EQ.2)THEN                                              
  29 : C                                                                               
  30 :       NG=NPG
  31 :       X(1)=1.D0/3.D0*R2                                                         
  32 :       Y(1)=1.D0/3.D0*R2                                                         
  33 :       X(2)=1.D0/3.D0*R2                                                         
  34 :       Y(2)=1.D0/3.D0*R2                                                         
  35 :       GO TO 30                                                                  
  36 :       ENDIF                                                                     
  37 : C                                                                               
  38 :       IF(NPG.EQ.6)THEN                                                          
  39 :       NG=2
  40 :       X(1)=R2/6.D0
  41 :       Y(1)=R2/6.D0
  42 :       X(2)=2.D0*R2/3.D0
  43 :       Y(2)=R2/6.D0
  44 :       X(3)=R2/6.D0
  45 :       Y(3)=2.D0*R2/3.D0
  46 :       X(4)=X(1)                                                                 
  47 :       Y(4)=Y(1)                                                                 
  48 :       X(5)=X(2)                                                                 
  49 :       Y(5)=Y(2)                                                                 
  50 :       X(6)=X(3)                                                                 
  51 :       Y(6)=Y(3)                                                                 
  52 :       GO TO 30                                                                  
  53 :       ENDIF                                                                     
  54 :                                                                                 
  55 :       WRITE(6,*)' SUB CALHPR : NPG=',NPG                                        
  56 :       WRITE(6,*)' NOMBRE DE POINTS D''INTEGRATION INCORECTE POUR UN ',          
  57 :      & 'PRISME'                                                                 
  57 :       CALL ARRET(0)                                                             
  58 :                                                                                 
  59 :  30   CONTINUE                                                                  
  60 : C                                                                               
  60 :       CALL CALUHG(U,H,NG)
  61 :       A=0.D0                                                                    
  62 :       B=1.D0                                                                    
  62 :       CALL CALG1(A,B,NG,H,U,Z,PG)
  63 :       IF(NPG.NE.6) RETURN                                                       
  64 :       PG(3)=PG(1)
  65 :       PG(4)=PG(2)
  66 :       PG(5)=PG(1)
  67 :       PG(6)=PG(2)
  68 :       Z(3)=Z(1)
  69 :       Z(4)=Z(2)
  70 :       Z(5)=Z(1)
  71 :       Z(6)=Z(2)
  72 :       DO 21 L=1,NPG                                                             
  73 :       PG(L)=PG(L)/3.D0                                                          
  74 :  21   CONTINUE                                                                  
  75 : C     SPG=0
  76 : C     DO 22 L=1,NPG
  77 : C     SPG=SPG+PG(L)
  78 : C22   CONTINUE
  79 : C     WRITE(6,1002)SPG
  80 : C     WRITE(6,1002)H
  81 : C     WRITE(6,1002)U
  82 : C     WRITE(6,1002)Z
  83 : C1002 FORMAT(10(1X,1PD11.4))
  84 :       RETURN
  85 :       END                                                                       
  86 :  
  87 :  
  88 :  
  89 :  

© Cast3M 2003 - All rights reserved.
Disclaimer