Download trjsau.eso

Back to the list

   1 : C TRJSAU    SOURCE    CHAT      05/01/13    03:51:09     5004           
   2 :       SUBROUTINE TRJSAU(XARI,XDEP,UELEM,DTINT,IDIM,ITYEL)
   3 : C                                                                               
   4 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
   5 : C     FORMULAIRE DES TRAJECTOIRES POUR LES SAUTS CONVECTIFS                                                                          
   6 : C        DANS UNE MAILLE (  calcul analytique formulation EFMH)
   7 : C
   8 : C   ENTREES
   9 : C     XDEP POSITION INITIALE                                                    
  10 : C     UELEM FLUX AUX FACES                                                                                          
  11 : C     IDIM DIMENSION DE L ESPACE                                                
  12 : C     ITYEL TYPE DE L ELEMENT                                                   
  13 : C     DTINT DUREE DU SAUT
  14 : C   SORTIES
  15 : C     XARI POSITION APRES LE SAUT
  16 : C     LTEST INDIQUE SI ON SORT DU TRIANGLE                                            
  17 : C                
  18 : C   TYPES D ELEMENTS CONSIDERES
  19 : C         TRI3  QUA4  CUB8 PRI6 TET
  20 : C         4     8     14   16    23
  21 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC       
  22 : C
  23 :       IMPLICIT INTEGER(I-N)
  24 :       IMPLICIT REAL*8 (A-H,O-Z)
  25 : C
  26 :       DIMENSION XARI(3),XDEP(3),X(3),Y(3),UELEM(6),XY(4)
  27 : C  
  28 : C
  29 : 
  30 : C                                                                               
  31 : C***  QUADRANGLE       QUA4 QUA9             3
  32 : C                                           *****
  33 : C                                           *   *
  34 : C                                 FACES  4  *   * 2
  35 : C                                           *****
  36 : C                                             1
  37 :        IF(ITYEL.EQ.8)THEN
  38 : C
  39 :        Q=MAX(ABS(UELEM(1)),ABS(UELEM(2)),ABS(UELEM(3)),ABS(UELEM(4)))
  40 : C       LES FLUX OPPOSES NE SE COMPENSENT PAS
  41 : C
  42 :      
  43 :         X(1)=UELEM(2)+UELEM(4)
  44 :         X(2)=UELEM(3)+UELEM(1)
  45 :         Y(1)=UELEM(2)-UELEM(4)
  46 :         Y(2)=UELEM(3)-UELEM(1)
  47 : C    
  48 :         IF(ABS(X(1))/Q.GT.1D-10)THEN
  49 : c           write(6,*) 'coucou1'
  50 :               DO 8 I2=1,IDIM
  51 :               XARI(I2)=(XDEP(I2)*EXP(25.D-2*X(I2)*DTINT))-
  52 :      *             ((Y(I2)/X(I2))*(1-EXP(25.D-2*X(I2)*DTINT)))
  53 :  8         CONTINUE
  54 :         ELSE
  55 : C
  56 : C         LES FLUX OPPOSES SE COMPENSENT
  57 : C
  58 :            DO 2 I3=1,IDIM  
  59 :               XARI(I3)=XDEP(I3)+(25.D-2*Y(I3)*DTINT)
  60 :  2         CONTINUE
  61 :         ENDIF
  62 : 
  63 : C***   CUBE      CUB8
  64 : C
  65 : C       LES FLUX OPPOSES NE SE COMPENSENT PAS
  66 : C
  67 :       ELSEIF(ITYEL.EQ.14)THEN                                                                            
  68 :          Q=MAX(ABS(UELEM(1)),ABS(UELEM(2)),ABS(UELEM(3)),
  69 :      *        ABS(UELEM(4)),ABS(UELEM(5)),ABS(UELEM(6)))
  70 :         X(1)=125.D-3*(UELEM(4)+UELEM(6))
  71 :         X(2)=125.D-3*(UELEM(3)+UELEM(5))
  72 :         X(3)=125.D-3*(UELEM(2)+UELEM(1))
  73 : C
  74 :         Y(1)=125.D-3*(UELEM(6)-UELEM(4))
  75 :         Y(2)=125.D-3*(UELEM(3)-UELEM(5))
  76 :         Y(3)=125.D-3*(UELEM(1)-UELEM(2))
  77 : C
  78 :         IF(ABS(X(1))/Q.GT.1.D-11)THEN
  79 :            IF(ABS(X(2))/Q.GT.1.D-11)THEN 
  80 :                IF(ABS(X(3))/Q.GT.1.D-11)THEN
  81 :      
  82 :                   DO 3 I4=1,IDIM
  83 :                      XARI(I4)=(XDEP(I4)*EXP(125.D-3*X(I4)*DTINT))+
  84 :      *                    ((Y(I4)/X(I4))*(1-EXP(125.D-3*X(I4)*DTINT)))
  85 :  3                CONTINUE
  86 : C
  87 : C                SI  L'EQUATION SUIVANT Z DIFFERE
  88 : C
  89 :                ELSE
  90 :                   XARI(1)=(XDEP(1)*EXP(125.D-3*X(1)*DTINT))+
  91 :      *                 ((Y(1)/X(1))*(1-EXP(125.D-3*X(1)*DTINT)))
  92 :                   XARI(2)=(XDEP(2)*EXP(125.D-3*X(2)*DTINT))+
  93 :      *                 ((Y(2)/X(2))*(1-EXP(125.D-3*X(2)*DTINT)))
  94 :                   XARI(3)=XDEP(3)-(Y(3)*DTINT) 
  95 : C
  96 : C                SI  L'EQUATION SUIVANT Y DIFFERE
  97 : C
  98 :                ENDIF
  99 :             ELSE
 100 :                XARI(1)=(XDEP(1)*EXP(125.D-3*X(1)*DTINT))+
 101 :      *              ((Y(1)/X(1))*(1-EXP(125.D-3*X(1)*DTINT)))
 102 :                XARI(3)=(XDEP(3)*EXP(125.D-3*X(3)*DTINT))+
 103 :      *              ((Y(3)/X(3))*(1-EXP(125.D-3*X(3)*DTINT)))
 104 :                XARI(2)=XDEP(2)-(Y(2)*DTINT)
 105 : C
 106 : C                SI  L'EQUATION SUIVANT X DIFFERE
 107 : C
 108 :             ENDIF
 109 :          ELSE
 110 :             IF(ABS(X(2))/Q.GT.1.D-11)THEN
 111 :                XARI(3)=(XDEP(3)*EXP(125.D-3*X(3)*DTINT))+
 112 :      *              ((Y(3)/X(3))*(1-EXP(125.D-3*X(3)*DTINT)))
 113 :                XARI(2)=(XDEP(2)*EXP(125.D-3*X(2)*DTINT))+
 114 :      *              ((Y(2)/X(2))*(1-EXP(125.D-3*X(2)*DTINT)))
 115 :                XARI(1)=XDEP(1)-(Y(1)*DTINT)
 116 : C     
 117 : C                    TOUS LES FLUX SE COMPENSENT
 118 :             ELSE
 119 :                DO 4 I5=1,IDIM        
 120 :                   XARI(I5)=XDEP(I5)-(Y(I5)*DTINT)
 121 :  4             CONTINUE
 122 :                
 123 :             ENDIF
 124 :          ENDIF
 125 : 
 126 : CC
 127 : CC                                                                               
 128 : CC***  PRISME    PRI6
 129 : CC                                                                               
 130 :       ELSEIF(ITYEL.EQ.16)THEN
 131 : C
 132 :          Q=MAX(ABS(UELEM(1)),ABS(UELEM(2)),ABS(UELEM(3)),
 133 :      *        ABS(UELEM(4)),ABS(UELEM(5)))
 134 :          VAR=(UELEM(3)+UELEM(4)+UELEM(5))/2.D0
 135 : 
 136 : C               SI LES FLUX NE SE COMPENSENT PAS
 137 : C
 138 :          IDIM=3
 139 :          VAR=(UELEM(3)+UELEM(4)+UELEM(5))
 140 :          X(1)=UELEM(5)
 141 :          X(2)=UELEM(3)
 142 :          X(3)=(UELEM(2)-UELEM(1))
 143 : C     
 144 :          IF(ABS(VAR)/Q.GT.1.D-10)THEN
 145 :          XARI(1)=(XDEP(1)*EXP(5.D-1*VAR*DTINT))+((X(1)/VAR)*
 146 :      *                 (1.D0-EXP(5.D-1*VAR*DTINT)))
 147 :          XARI(2)=(XDEP(2)*EXP(5.D-1*VAR*DTINT))+((X(2)/VAR)*
 148 :      *                 (1.D0-EXP(5.D-1*VAR*DTINT)))
 149 :          XARI(3)=(XDEP(3)*EXP(-1.D0*VAR*DTINT))+((X(3)/VAR)*
 150 :      *                 (1.D0-EXP(-1.D0*VAR*DTINT)))      
 151 : C       
 152 :          ELSE
 153 : C
 154 : C                  SI LES FLUX SE COMPENSENT
 155 : C
 156 :             XARI(1)=XDEP(1)-(5.D-1*X(1)*DTINT)
 157 :             XARI(2)=XDEP(2)-(5.D-1*X(2)*DTINT)
 158 :             XARI(3)=XDEP(3)+(X(3)*DTINT)
 159 : C 
 160 :          ENDIF
 161 : 
 162 :                                 
 163 :       ENDIF
 164 :       END                                                                       
 165 :  
 166 :  

© Cast3M 2003 - All rights reserved.
Disclaimer