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