Download trj702.eso

Back to the list

   1 : C TRJ702    SOURCE    CHAT      05/01/13    03:48:21     5004           
   2 :       SUBROUTINE TRJ702(XNOEU,X,G,IER)
   3 : C                                                                               
   4 : C                                                                               
   5 : C                                                                               
   6 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC          
   7 : C                                                                               
   8 : C     CALCUL DES COORDONNEES DE REFERENCES DANS UN TRI7                         
   9 : C     XNOEU COORDONNEES DES SOMMETS                                             
  10 : C     X                 REELLES                                                 
  11 : C     G                 REFERENCES                                              
  12 : C                                                                               
  13 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC         
  14 : C                                                                               
  15 : C                                                                               
  16 :       IMPLICIT INTEGER(I-N)
  17 :       IMPLICIT REAL*8 ( A-H,O-Z)                                                
  18 :                                                                                 
  19 :       DIMENSION XNOEU(2,7),X(2),XN(7),G(2),DX(2),DG(2)                          
  20 :       DIMENSION Y(2),D1XN(7),D2XN(7),A(2,2),B(2,2)                              
  21 : -INC CCOPTIO
  22 : C                                                                               
  23 : C                                                                               
  24 : C     IDIM=2
  25 :       NOEL=7                                                                    
  26 : C                                                                               
  27 : C                                                                               
  28 :       G(1)=1.D0/3.D0                                                                
  29 :       G(2)=1.D0/3.D0                                                                
  30 : C                                                                               
  31 :       N1=15                                                                     
  32 :       DO 10 K=1,N1                                                              
  33 : C                                                                               
  34 :       XN(1)=1.D0-3.D0*G(1)-3.D0*G(2)+2.D0*G(1)*G(1)+
  35 :      *            7.D0*G(1)*G(2)+2.D0*G(2)*G(2)
  36 :      *        -3.D0*G(1)*G(2)*(G(1)+G(2))
  37 :       XN(2)= 4.D0*G(1)*(1.D0-G(1)-4.D0*G(2)+3.D0*G(2)*(G(1)+G(2)))                      
  38 :       XN(3)=G(1)*(-1.D0+2.D0*G(1)+3.D0*G(2)-3.D0*G(2)*(G(1)+G(2)))                      
  39 :       XN(4)=4.D0*G(1)*G(2)*(-2.D0+3.D0*(G(1)+G(2)))                                   
  40 :       XN(5)=G(2)*(-1.D0+3.D0*G(1)+2.D0*G(2)-3.D0*G(1)*(G(1)+G(2)))                      
  41 :       XN(6)=4.D0*G(2)*(1.D0-4.D0*G(1)-G(2)+3.D0*G(1)*(G(1)+G(2)))                       
  42 :       XN(7)=27.D0*G(2)*G(1)*(1.D0-G(1)-G(2))                                        
  43 : C     WRITE(6,*)' XN ',XN(1),XN(2),XN(3),XN(4),XN(5),XN(6),XN(7)                
  44 : C                                                                               
  45 :       Y(1)=0.D0
  46 :       Y(2)=0.D0
  47 :       DO 11 I =1,NOEL                                                           
  48 :       Y(1)=Y(1)+XN(I)*XNOEU(1,I)                                                
  49 :       Y(2)=Y(2)+XN(I)*XNOEU(2,I)                                                
  50 :   11  CONTINUE                                                                  
  51 : C     WRITE(6,*)' X1 ',X1,' Y1 ',Y1                                             
  52 : C                                                                               
  53 :       DX(1)=X(1)-Y(1)
  54 :       DX(2)=X(2)-Y(2)
  55 :       D1XN(1)=-3.D0+4.D0*G(1)+7.D0*G(2)-6.D0*G(1)*G(2)-3.D0*G(2)*G(2)                     
  56 :       D1XN(2)=4.D0*(1.D0-2.D0*G(1)-4.D0*G(2)+
  57 :      *  6.D0*G(1)*G(2)+3.D0*G(2)*G(2))
  58 :       D1XN(3)=-1.D0+4.D0*G(1)+3.D0*G(2)-6.D0*G(1)*G(2)-3.D0*G(2)*G(2)                     
  59 :       D1XN(4)=4.D0*G(2)*(-2.D0+6.D0*G(1)+3.D0*G(2))                                     
  60 :       D1XN(5)=3.D0*G(2)*(1.D0-2.D0*G(1)-G(2))                                         
  61 :       D1XN(6)=4.D0*G(2)*(-4.D0+6.D0*G(1)+3.D0*G(2))                                     
  62 :       D1XN(7)=27.D0*G(2)*(1.D0-2.D0*G(1)-G(2))                                        
  63 : C                                                                               
  64 :       D2XN(1)=-3.D0+4.D0*G(2)+7.D0*G(1)-3.D0*G(1)*G(1)-6.D0*G(1)*G(2)                     
  65 :       D2XN(2)=4.D0*G(1)*(-4.D0+3.D0*G(1)+6.D0*G(2))                                     
  66 :       D2XN(3)=3.D0*G(1)*(1.D0-G(1)-2.D0*G(2))                                         
  67 :       D2XN(4)=4.D0*G(1)*(-2.D0+3.D0*G(1)+6.D0*G(2))                                     
  68 :       D2XN(5)=-1.D0+3.D0*G(1)+4.D0*G(2)-3.D0*G(1)*G(1)-6.D0*G(1)*G(2)                     
  69 :       D2XN(6)=4.D0*(1.D0-4.D0*G(1)-2.D0*G(2)+
  70 :      *     3.D0*G(1)*G(1)+6.D0*G(1)*G(2))
  71 :       D2XN(7)=27.D0*G(1)*(1.D0-G(1)-2.D0*G(2))                                        
  72 : C                                                                               
  73 :       A(1,1)=0.D0
  74 :       A(1,2)=0.D0
  75 :       A(2,1)=0.D0
  76 :       A(2,2)=0.D0
  77 : C                                                                               
  78 :       DO 4 I=1,NOEL                                                             
  79 :       A(1,1)=D1XN(I)*XNOEU(1,I)+A(1,1)                                          
  80 :       A(1,2)=D1XN(I)*XNOEU(2,I)+A(1,2)                                          
  81 :       A(2,1)=D2XN(I)*XNOEU(1,I)+A(2,1)                                          
  82 :       A(2,2)=D2XN(I)*XNOEU(2,I)+A(2,2)                                          
  83 :    4  CONTINUE                                                                  
  84 : C                                                                               
  85 :       DEL=A(1,1)*A(2,2)-A(2,1)*A(1,2)                                           
  86 :       B(1,1)=1.D0/DEL*A(2,2)                                                      
  87 :       B(2,2)=1.D0/DEL*A(1,1)                                                      
  88 :       B(1,2)=-1.D0/DEL*A(2,1)                                                     
  89 :       B(2,1)=-1.D0/DEL*A(1,2)                                                     
  90 : C                                                                               
  91 :       DG(1)=B(1,1)*DX(1)+B(1,2)*DX(2)                                           
  92 :       DG(2)=B(2,1)*DX(1)+B(2,2)*DX(2)                                           
  93 : C                                                                               
  94 :       G(1)=DG(1)+G(1)                                                           
  95 :       G(2)=DG(2)+G(2)                                                           
  96 : C                                                                               
  97 :       DA1=ABS(DG(1))                                                            
  98 :       DA2=ABS(DG(2))                                                            
  99 :       IF(DA1.LE.0.0001.AND.DA2.LE.0.0001)GO TO 51
 100 :       A(1,1)=0.D0
 101 : C                                                                               
 102 :   10  CONTINUE                                                                  
 103 : C                                                                               
 104 : C     IF(K.GE.N1)WRITE(6,101)X(1),X(2),DA1,DA2
 105 :       MOTERR(1:8)='TRJ702  '
 106 :       REAERR(1)=X(1)
 107 :       REAERR(2)=X(2)
 108 :       REAERR(3)=0.
 108 : C     CALL ERREUR(-300)
 109 :       IER=-300
 110 :   51  CONTINUE                                                                  
 111 : C                                                                               
 112 : C     G(1)=XG1                                                                  
 113 : C     G(2)=YG1                                                                  
 114 : C                                                                               
 115 :       RETURN                                                                    
 116 :  101  FORMAT(//,3X,' PB DE CONVERGENCE TRJ702 AU POINT SITUE EN '
 117 :      *,2(1PE12.5),/,3X,' CONVERGENCE RELATIVE ',2(1PE12.5))
 118 : C                                                                               
 119 :       END                                                                       
 120 :  
 121 :  

© Cast3M 2003 - All rights reserved.
Disclaimer