mt02cc.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\mt02cc.f
00002 !
00059                      SUBROUTINE MT02CC
00060 !                    *****************
00061 !
00062      &( A11 , A12 , A13 , A14 , A15, A16,
00063      &        A22 , A23 , A24 , A25, A26,
00064      &              A33 , A34 , A35, A36,
00065      &                    A44 , A45, A46,
00066      &                          A55, A56,
00067      &                               A66,
00068      &  XMUL,SU,U,XEL,YEL,SURFAC,IKLE1,IKLE2,IKLE3,NELEM,NELMAX)
00069 !
00070 !***********************************************************************
00071 ! BIEF   V6P1                                   21/08/2010
00072 !***********************************************************************
00073 !
00074 !
00075 !
00076 !
00077 !
00078 !
00079 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00080 !| A11            |<--| ELEMENTS OF MATRIX
00081 !| A12            |<--| ELEMENTS OF MATRIX
00082 !| A13            |<--| ELEMENTS OF MATRIX
00083 !| A14            |<--| ELEMENTS OF MATRIX
00084 !| A15            |<--| ELEMENTS OF MATRIX
00085 !| A16            |<--| ELEMENTS OF MATRIX
00086 !| A22            |<--| ELEMENTS OF MATRIX
00087 !| A23            |<--| ELEMENTS OF MATRIX
00088 !| A24            |<--| ELEMENTS OF MATRIX
00089 !| A25            |<--| ELEMENTS OF MATRIX
00090 !| A26            |<--| ELEMENTS OF MATRIX
00091 !| A33            |<--| ELEMENTS OF MATRIX
00092 !| A34            |<--| ELEMENTS OF MATRIX
00093 !| A35            |<--| ELEMENTS OF MATRIX
00094 !| A36            |<--| ELEMENTS OF MATRIX
00095 !| A44            |<--| ELEMENTS OF MATRIX
00096 !| A45            |<--| ELEMENTS OF MATRIX
00097 !| A46            |<--| ELEMENTS OF MATRIX
00098 !| FORMUL         |-->| FORMULA DESCRIBING THE MATRIX
00099 !| IKLE1          |-->| FIRST POINTS OF TRIANGLES
00100 !| IKLE2          |-->| SECOND POINTS OF TRIANGLES
00101 !| IKLE3          |-->| THIRD POINTS OF TRIANGLES
00102 !| NELEM          |-->| NUMBER OF ELEMENTS
00103 !| NELMAX         |-->| MAXIMUM NUMBER OF ELEMENTS
00104 !| SU             |-->| BIEF_OBJ STRUCTURE OF U
00105 !| SURFAC         |-->| AREA OF TRIANGLES
00106 !| SV             |-->| BIEF_OBJ STRUCTURE OF V
00107 !| U              |-->| FUNCTION U USED IN THE FORMULA
00108 !| V              |-->| FUNCTION V USED IN THE FORMULA
00109 !| XEL            |-->| ABSCISSAE OF POINTS IN THE MESH, PER ELEMENT
00110 !| YEL            |-->| ORDINATES OF POINTS IN THE MESH, PER ELEMENT
00111 !| XMUL           |-->| MULTIPLICATION FACTOR
00112 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00113 !
00114       USE BIEF!, EX_MT02CC => MT02CC
00115 !
00116       IMPLICIT NONE
00117       INTEGER LNG,LU
00118       COMMON/INFO/LNG,LU
00119 !
00120 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00121 !
00122       INTEGER, INTENT(IN) :: NELEM,NELMAX
00123       INTEGER, INTENT(IN) :: IKLE1(NELMAX),IKLE2(NELMAX),IKLE3(NELMAX)
00124       DOUBLE PRECISION, INTENT(INOUT) :: A11(*),A12(*),A13(*)
00125       DOUBLE PRECISION, INTENT(INOUT) :: A14(*),A15(*),A16(*)
00126       DOUBLE PRECISION, INTENT(INOUT) :: A22(*),A23(*)
00127       DOUBLE PRECISION, INTENT(INOUT) :: A24(*),A25(*),A26(*)
00128       DOUBLE PRECISION, INTENT(INOUT) :: A33(*),A34(*)
00129       DOUBLE PRECISION, INTENT(INOUT) :: A35(*),A36(*)
00130       DOUBLE PRECISION, INTENT(INOUT) :: A44(*),A45(*),A46(*)
00131       DOUBLE PRECISION, INTENT(INOUT) :: A55(*),A56(*)
00132       DOUBLE PRECISION, INTENT(INOUT) :: A66(*)
00133       DOUBLE PRECISION, INTENT(IN)    :: XMUL,U(*)
00134 !     STRUCTURE OF U
00135       TYPE(BIEF_OBJ), INTENT(IN)      :: SU
00136 !
00137       DOUBLE PRECISION, INTENT(IN)    :: XEL(NELMAX,3),YEL(NELMAX,3)
00138       DOUBLE PRECISION, INTENT(IN)    :: SURFAC(NELMAX)
00139 !
00140 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00141 !
00142 !     DECLARATIONS SPECIFIC TO THIS SUBROUTINE
00143 !
00144       INTEGER IELMNU,IELEM,ISO,IAD2,IAD3
00145 !
00146       DOUBLE PRECISION X2,X3,Y2,Y3,AUX1,AUX2,AUX3,AUX4
00147       DOUBLE PRECISION NUX1,NUX2,NUX3
00148       DOUBLE PRECISION NUY1,NUY2,NUY3
00149       DOUBLE PRECISION NUZ1,NUZ2,NUZ3
00150 !
00151 !=======================================================================
00152 !
00153 !     EXTRACTS THE TYPE OF ELEMENT FOR VISCOSITY
00154 !
00155       IELMNU = SU%ELM
00156       ISO = SU%DIM2
00157 !
00158 !     IF(IELMNU.EQ.10.AND.ISO.EQ.1) THEN
00159 !
00160 !-----------------------------------------------------------------------
00161 !
00162 !  P0 DISCRETISATION FOR VISCOSITY:
00163 !
00164 !-----------------------------------------------------------------------
00165 !
00166       IF(IELMNU.EQ.11.AND.ISO.EQ.1) THEN
00167 !
00168 !-----------------------------------------------------------------------
00169 !
00170 !  P1 DISCRETISATION FOR ISOTROPIC VISCOSITY:
00171 !
00172       DO IELEM = 1 , NELEM
00173 !
00174 !   INITIALISES THE GEOMETRICAL VARIABLES
00175 !
00176         X2  =  XEL(IELEM,2)
00177         X3  =  XEL(IELEM,3)
00178 !
00179         Y2  =  YEL(IELEM,2)
00180         Y3  =  YEL(IELEM,3)
00181 !
00182         NUX1 = U(IKLE1(IELEM))
00183         NUX2 = U(IKLE2(IELEM))
00184         NUX3 = U(IKLE3(IELEM))
00185 !
00186         AUX1 = XMUL/(60.D0*SURFAC(IELEM))
00187         AUX2 = 3.D0 * AUX1
00188         AUX3 = 4.D0 * AUX1
00189         AUX4 = 8.D0 * AUX1
00190 !
00191 !  EXTRADIAGONAL TERMS
00192 !
00193         A12(IELEM)= -(-Y3**2+Y3*Y2-X3**2+X3*X2) *
00194      &               (2.D0*NUX1+2.D0*NUX2+NUX3) * AUX1
00195 !
00196         A13(IELEM)=  (-Y3*Y2+Y2**2-X3*X2+X2**2) *
00197      &               (2.D0*NUX1+NUX2+2.D0*NUX3) * AUX1
00198 !
00199         A14(IELEM)= ((-11.D0*NUX1-4.D0*NUX3-5.D0*NUX2) * (Y3**2+X3**2)
00200      &            +  (3.D0*NUX1-NUX3-2.D0*NUX2       ) * (Y2**2+X2**2)
00201      &            +  (8.D0*NUX1+7.D0*NUX2+5.D0*NUX3  ) * (X3*X2+Y3*Y2))
00202      &            *  AUX1
00203 !
00204         A15(IELEM)=-((3.D0*NUX1-2.D0*NUX3-NUX2       ) * (Y3**2+X3**2)
00205      &            +  (3.D0*NUX1-NUX3-2.D0*NUX2       ) * (Y2**2+X2**2)
00206      &            +  (-6.D0*NUX1+3.D0*NUX2+3.D0*NUX3 ) * (X3*X2+Y3*Y2))
00207      &            *  AUX1
00208 !
00209         A16(IELEM)=-((-3.D0*NUX1+2.D0*NUX3+NUX2      ) * (Y3**2+X3**2)
00210      &            +  (11.D0*NUX1+5.D0*NUX3+4.D0*NUX2 ) * (Y2**2+X2**2)
00211      &            +  (-8.D0*NUX1-5.D0*NUX2-7.D0*NUX3 ) * (X3*X2+Y3*Y2))
00212      &            *  AUX1
00213 !
00214         A23(IELEM)=  (Y3*Y2+X3*X2) * (NUX1+2.D0*NUX3+2.D0*NUX2) * AUX1
00215 !
00216         A24(IELEM)= ((-5.D0*NUX1-4.D0*NUX3-11.D0*NUX2) * (Y3**2+X3**2)
00217      &            +  (3.D0*NUX1+14.D0*NUX2+3.D0*NUX3 ) * (X3*X2+Y3*Y2))
00218      &            *  AUX1
00219 !
00220         A25(IELEM)=-((NUX1+2.D0*NUX3-3.D0*NUX2       ) * (Y3**2+X3**2)
00221      &            +  (3.D0*NUX1+3.D0*NUX3+14.D0*NUX2 ) * (Y3*Y2+X3*X2))
00222      &            *   AUX1
00223 !
00224         A26(IELEM)= ((NUX1+2.D0*NUX3-3.D0*NUX2       ) * (Y3**2+X3**2)
00225      &            +  (NUX1-NUX3)                       * (X3*X2+Y3*Y2))
00226      &            *  AUX1
00227 !
00228         A34(IELEM)= ((NUX1-3.D0*NUX3+2.D0*NUX2      ) * (Y2**2+X2**2)
00229      &            +  (NUX1-NUX2)                      * (X3*X2+Y3*Y2))
00230      &            *  AUX1
00231 !
00232         A35(IELEM)=-((NUX1-3.D0*NUX3+2.D0*NUX2      ) * (Y2**2+X2**2)
00233      &            +  (3.D0*NUX1+3.D0*NUX2+14.D0*NUX3) * (X3*X2+Y3*Y2))
00234      &            *  AUX1
00235 !
00236         A36(IELEM)=-((5.D0*NUX1+11.D0*NUX3+4.D0*NUX2) * (Y2**2+X2**2)
00237      &            +  (-3.D0*(NUX1+NUX2)-14.D0*NUX3  ) * (X3*X2+Y3*Y2))
00238      &            *  AUX1
00239 !
00240         A45(IELEM)=-((-NUX1+NUX2                    ) * (Y3**2+X3**2)
00241      &            +  (-NUX1-6.D0*NUX2-3.D0*NUX3     ) * (X3*X2+Y3*Y2)
00242      &            +  (6.D0*NUX2+2.D0*NUX1+2.D0*NUX3 ) * (Y2**2+X2**2))
00243      &            *  AUX3
00244 !
00245         A46(IELEM)=-((NUX1-NUX2                     ) * (Y3**2+X3**2)
00246      &            +  (NUX1-NUX3                     ) * (Y2**2+X2**2)
00247      &            +  (4.D0*NUX1+3.D0*NUX2+3.D0*NUX3 ) * (X3*X2+Y3*Y2))
00248      &            *  AUX3
00249 !
00250         A56(IELEM)= ((-2.D0*NUX1-2.D0*NUX2-6.D0*NUX3) * (Y3**2+X3**2)
00251      &            +  (NUX1-NUX3                     ) * (Y2**2+X2**2)
00252      &            +  (NUX1+3.D0*NUX2+6.D0*NUX3      ) * (X3*X2+Y3*Y2))
00253      &            *  AUX3
00254 !
00255 !    DIAGONAL TERMS
00256 !
00257         A11(IELEM)= ((Y3-Y2)**2+(X3-X2)**2)
00258      &            * (3.D0*NUX1+NUX2+NUX3) * AUX2
00259 !
00260         A22(IELEM)=  (Y3**2+X3**2) * (NUX1+3.D0*NUX2+NUX3) * AUX2
00261 !
00262         A33(IELEM)=  (Y2**2+X2**2) * (NUX1+NUX2+3.D0*NUX3) * AUX2
00263 !
00264         A44(IELEM)=  ((2.D0*NUX1+NUX3+2.D0*NUX2) * (Y3**2+X3**2)
00265      &            +   (NUX1+NUX3+3.D0*NUX2     ) * (Y2**2+X2**2)
00266      &            +   (-4.D0*NUX2-NUX3         ) * (X3*X2+Y3*Y2))
00267      &            *   AUX4
00268 !
00269         A55(IELEM)=  ((NUX1+NUX2+3.D0*NUX3     ) * (Y3**2+X3**2)
00270      &            +   (NUX1+NUX3+3.D0*NUX2     ) * (Y2**2+X2**2)
00271      &            +  (-NUX1-2.D0*NUX2-2.D0*NUX3) * (X3*X2+Y3*Y2))
00272      &            *   AUX4
00273 !
00274         A66(IELEM) = ((NUX1+3.D0*NUX3+NUX2      ) * (Y3**2+X3**2)
00275      &             +  (2.D0*NUX1+2.D0*NUX3+NUX2 ) * (Y2**2+X2**2)
00276      &             +  (-NUX2-4.D0*NUX3          ) * (X3*X2+Y3*Y2))
00277      &             *  AUX4
00278 !
00279       ENDDO ! IELEM
00280 !
00281 !-----------------------------------------------------------------------
00282 !
00283       ELSEIF(IELMNU.EQ.11.AND.ISO.EQ.3) THEN
00284 !
00285 !-----------------------------------------------------------------------
00286 !
00287 !  P1 DISCRETISATION FOR NONISOTROPIC VISCOSITY:
00288 !
00289       IAD2 = SU%MAXDIM1
00290       IAD3 = 2*IAD2
00291       DO IELEM = 1 , NELEM
00292 !
00293 !   INITIALISES THE GEOMETRICAL VARIABLES
00294 !
00295         X2  =  XEL(IELEM,2)
00296         X3  =  XEL(IELEM,3)
00297 !
00298         Y2  =  YEL(IELEM,2)
00299         Y3  =  YEL(IELEM,3)
00300 !
00301         NUX1 = U(IKLE1(IELEM))
00302         NUX2 = U(IKLE2(IELEM))
00303         NUX3 = U(IKLE3(IELEM))
00304         NUY1 = U(IKLE1(IELEM) + IAD2)
00305         NUY2 = U(IKLE2(IELEM) + IAD2)
00306         NUY3 = U(IKLE3(IELEM) + IAD2)
00307         NUZ1 = U(IKLE1(IELEM) + IAD3)
00308         NUZ2 = U(IKLE2(IELEM) + IAD3)
00309         NUZ3 = U(IKLE3(IELEM) + IAD3)
00310 !
00311         AUX1 = XMUL/(60.D0 * SURFAC(IELEM))
00312         AUX2 = 4.D0 * AUX1
00313         AUX3 = 3.D0 * AUX1
00314 !
00315 !  EXTRADIAGONAL TERMS
00316 !
00317       A12(IELEM) =
00318      &   ((NUY3+2.D0*NUY1+2.D0*NUY2) * (X3**2-X3*X2           ) +
00319      &    (NUZ3+2.D0*NUZ1+2.D0*NUZ2) * (Y2*X3+Y3*X2-2.D0*Y3*X3) +
00320      &    (NUX3+2.D0*NUX2+2.D0*NUX1) * (Y3**2-Y3*Y2           ) ) * AUX1
00321 !
00322       A13(IELEM) =
00323      &   ((2.D0*NUY1+2.D0*NUY3+NUY2) * (X2**2-X3*X2           ) +
00324      &    (2.D0*NUZ1+2.D0*NUZ3+NUZ2) * (Y3*X2+Y2*X3-2.D0*Y2*X2) +
00325      &    (2.D0*NUX1+NUX2+2.D0*NUX3) * (Y2**2-Y3*Y2           ) ) * AUX1
00326 !
00327       A14(IELEM) =
00328      &  -((- 3.D0*NUX1+ 2.D0*NUX2+      NUX3) * Y2**2         +
00329      &    (- 8.D0*NUX1- 7.D0*NUX2- 5.D0*NUX3) * Y3*Y2         +
00330      &    ( 11.D0*NUX1+ 5.D0*NUX2+ 4.D0*NUX3) * Y3**2         +
00331      &    (- 3.D0*NUY1+ 2.D0*NUY2+      NUY3) * X2**2         +
00332      &    (- 8.D0*NUY1- 7.D0*NUY2- 5.D0*NUY3) * X3*X2         +
00333      &    ( 11.D0*NUY1+ 5.D0*NUY2+ 4.D0*NUY3) * X3**2         +
00334      &    (  6.D0*NUZ1- 4.D0*NUZ2- 2.D0*NUZ3) * Y2*X2         +
00335      &    (  8.D0*NUZ1+ 7.D0*NUZ2+ 5.D0*NUZ3) * (Y3*X2+Y2*X3) +
00336      &    (-22.D0*NUZ1-10.D0*NUZ2- 8.D0*NUZ3) * Y3*X3         ) * AUX1
00337 !
00338       A15(IELEM) =
00339      &  -((  3.D0*NUX1- 2.D0*NUX2-      NUX3) * Y2**2         +
00340      &    (- 6.D0*NUX1+ 3.D0*NUX2+ 3.D0*NUX3) * Y3*Y2         +
00341      &    (  3.D0*NUX1-      NUX2- 2.D0*NUX3) * Y3**2         +
00342      &    (  3.D0*NUY1- 2.D0*NUY2-      NUY3) * X2**2         +
00343      &    (- 6.D0*NUY1+ 3.D0*NUY2+ 3.D0*NUY3) * X3*X2         +
00344      &    (  3.D0*NUY1-      NUY2- 2.D0*NUY3) * X3**2         +
00345      &    (- 6.D0*NUZ1+ 4.D0*NUZ2+ 2.D0*NUZ3) * Y2*X2         +
00346      &    (  6.D0*NUZ1- 3.D0*NUZ2- 3.D0*NUZ3) * (Y3*X2+Y2*X3) +
00347      &    (- 6.D0*NUZ1+ 2.D0*NUZ2+ 4.D0*NUZ3) * Y3*X3         ) * AUX1
00348 !
00349       A16(IELEM) =
00350      &   ((-11.D0*NUX1- 4.D0*NUX2- 5.D0*NUX3) * Y2**2         +
00351      &    (  8.D0*NUX1+ 5.D0*NUX2+ 7.D0*NUX3) * Y3*Y2         +
00352      &    (  3.D0*NUX1-      NUX2- 2.D0*NUX3) * Y3**2         +
00353      &    (-11.D0*NUY1- 4.D0*NUY2- 5.D0*NUY3) * X2**2         +
00354      &    (+ 8.D0*NUY1+ 5.D0*NUY2+ 7.D0*NUY3) * X3*X2         +
00355      &    (  3.D0*NUY1-      NUY2- 2.D0*NUY3) * X3**2         +
00356      &    ( 22.D0*NUZ1+ 8.D0*NUZ2+10.D0*NUZ3) * Y2*X2         +
00357      &    (- 8.D0*NUZ1- 5.D0*NUZ2- 7.D0*NUZ3) * (Y3*X2+Y2*X3) +
00358      &    (- 6.D0*NUZ1+ 2.D0*NUZ2+ 4.D0*NUZ3) * Y3*X3         ) * AUX1
00359 !
00360       A23(IELEM) =
00361      &   (( NUY1+2.D0*NUY2+2.D0*NUY3) * X3*X2                 +
00362      &    (-NUZ1-2.D0*NUZ2-2.D0*NUZ3) * (Y3*X2+Y2*X3)         +
00363      &    ( NUX1+2.D0*NUX2+2.D0*NUX3) * Y3*Y2                 ) * AUX1
00364 !
00365       A24(IELEM) =
00366      &  -((- 3.D0*NUX1-14.D0*NUX2- 3.D0*NUX3) * Y3*Y2         +
00367      &    (  5.D0*NUX1+11.D0*NUX2+ 4.D0*NUX3) * Y3**2         +
00368      &    (- 3.D0*NUY1-14.D0*NUY2- 3.D0*NUY3) * X3*X2         +
00369      &    (  5.D0*NUY1+11.D0*NUY2+ 4.D0*NUY3) * X3**2         +
00370      &    (  3.D0*NUZ1+14.D0*NUZ2+ 3.D0*NUZ3) * (Y3*X2+Y2*X3) +
00371      &    (-10.D0*NUZ1-22.D0*NUZ2- 8.D0*NUZ3) * Y3*X3         ) * AUX1
00372 !
00373       A25(IELEM) =
00374      &  -((  3.D0*NUX1+14.D0*NUX2+ 3.D0*NUX3) * Y3*Y2         +
00375      &    (       NUX1- 3.D0*NUX2+ 2.D0*NUX3) * Y3**2         +
00376      &    (  3.D0*NUY1+14.D0*NUY2+ 3.D0*NUY3) * X3*X2         +
00377      &    (       NUY1- 3.D0*NUY2+ 2.D0*NUY3) * X3**2         +
00378      &    (- 3.D0*NUZ1-14.D0*NUZ2- 3.D0*NUZ3) * (Y3*X2+Y2*X3) +
00379      &    (- 2.D0*NUZ1+ 6.D0*NUZ2- 4.D0*NUZ3) * Y3*X3         ) * AUX1
00380 !
00381       A26(IELEM) =
00382      &   (( NUX1-NUX3) * Y3*Y2 + (-NUY3+NUY1) * X3*X2 +
00383      &    ( NUZ3-NUZ1) * (Y3*X2+X3*Y2)                +
00384      &    (2.D0*NUY3+NUY1-3.D0*NUY2) * X3**2          +
00385      &    (6.D0*NUZ2-4.D0*NUZ3-2.D0*NUZ1) * Y3*X3     +
00386      &    (2.D0*NUX3-3.D0*NUX2+     NUX1) * Y3**2     ) * AUX1
00387 !
00388       A34(IELEM) =
00389      &   ((      NUY1-3.D0*NUY3+2.D0*NUY2)  * X2**2 +
00390      &    (-2.D0*NUZ1+6.D0*NUZ3-4.D0*NUZ2)  * Y2*X2 +
00391      &    (      NUX1+2.D0*NUX2-3.D0*NUX3)  * Y2**2 +
00392      &    (NUY1-NUY2) * X3*X2 + (NUX1-NUX2) * Y3*Y2 +
00393      &    (NUZ2-NUZ1) * (Y3*X2+Y2*X3)               )*AUX1
00394 !
00395       A35(IELEM) =
00396      &  -((       NUX1+ 2.D0*NUX2- 3.D0*NUX3) * Y2**2         +
00397      &    (  3.D0*NUX1+ 3.D0*NUX2+14.D0*NUX3) * Y3*Y2         +
00398      &    (       NUY1+ 2.D0*NUY2- 3.D0*NUY3) * X2**2         +
00399      &    (  3.D0*NUY1+ 3.D0*NUY2+14.D0*NUY3) * X3*X2         +
00400      &    (- 3.D0*NUZ1- 3.D0*NUZ2-14.D0*NUZ3) * (Y3*X2+Y2*X3) +
00401      &    (- 2.D0*NUZ1- 4.D0*NUZ2+ 6.D0*NUZ3) * Y2*X2         ) * AUX1
00402 !
00403       A36(IELEM) =
00404      &   ((- 5.D0*NUX1- 4.D0*NUX2-11.D0*NUX3) * Y2**2         +
00405      &    (  3.D0*NUX1+3.D0*NUX2+ 14.D0*NUX3) * Y3*Y2         +
00406      &    (- 5.D0*NUY1- 4.D0*NUY2-11.D0*NUY3) * X2**2         +
00407      &    (  3.D0*NUY1+ 3.D0*NUY2+14.D0*NUY3) * X3*X2         +
00408      &    ( 10.D0*NUZ1+ 8.D0*NUZ2+22.D0*NUZ3) * Y2*X2         +
00409      &    (- 3.D0*NUZ1- 3.D0*NUZ2-14.D0*NUZ3) * (Y3*X2+Y2*X3) ) * AUX1
00410 !
00411       A45(IELEM) =
00412      &   ((- 2.D0*NUY1- 6.D0*NUY2- 2.D0*NUY3) * X2**2         +
00413      &    (       NUY1+ 6.D0*NUY2+ 3.D0*NUY3) * X3*X2         +
00414      &    (  4.D0*NUZ1+12.D0*NUZ2+ 4.D0*NUZ3) * Y2*X2         +
00415      &    (-      NUZ1- 6.D0*NUZ2- 3.D0*NUZ3) * (Y3*X2+Y2*X3) +
00416      &    (NUY1-NUY2)*X3**2 + (NUX1-NUX2)*Y3**2               +
00417      &    (- 2.D0*NUZ1+ 2.D0*NUZ2           ) * Y3*X3         +
00418      &    (- 2.D0*NUX1- 2.D0*NUX3- 6.D0*NUX2) * Y2**2         +
00419      &    (  6.D0*NUX2+ 3.D0*NUX3+      NUX1) * Y3*Y2         ) * AUX2
00420 !
00421       A46(IELEM) =
00422      &  -((-NUY3+NUY1)*X2**2 + (NUX1-NUX2) * Y3**2            +
00423      &    ( NUX1-NUX3)*Y2**2 + (NUY1-NUY2) * X3**2            +
00424      &    (  4.D0*NUY1+ 3.D0*NUY3+ 3.D0*NUY2) * X3*X2         +
00425      &    (  2.D0*NUZ3- 2.D0*NUZ1           ) * Y2*X2         +
00426      &    ( -3.D0*NUZ3- 4.D0*NUZ1- 3.D0*NUZ2) * (Y3*X2+Y2*X3) +
00427      &    (- 2.D0*NUZ1+ 2.D0*NUZ2           ) * Y3*X3         +
00428      &    (  3.D0*NUX2+ 4.D0*NUX1+ 3.D0*NUX3) * Y3*Y2         ) * AUX2
00429 !
00430       A56(IELEM) =
00431      &  -(( NUY3-NUY1)*X2**2 + (NUX3-NUX1) * Y2**2            +
00432      &    (- 3.D0*NUY2- 6.D0*NUY3-      NUY1) * X3*X2         +
00433      &    (  2.D0*NUZ1- 2.D0*NUZ3           ) * Y2*X2         +
00434      &    (  3.D0*NUZ2+      NUZ1+ 6.D0*NUZ3) * (Y3*X2+Y2*X3) +
00435      &    (  6.D0*NUY3+ 2.D0*NUY1+ 2.D0*NUY2) * X3**2         +
00436      &    (-12.D0*NUZ3- 4.D0*NUZ2- 4.D0*NUZ1) * Y3*X3         +
00437      &    (- 6.D0*NUX3- 3.D0*NUX2-      NUX1) * Y3*Y2         +
00438      &    (  2.D0*NUX2+ 2.D0*NUX1+ 6.D0*NUX3) * Y3**2         ) * AUX2
00439 !
00440 !   THE DIAGONAL TERMS ARE OBTAINED BY MEANS OF THE
00441 !   MAGIC SQUARE OR BY DIRECT COMPUTATION:
00442 !
00443       A11(IELEM) = - A12(IELEM) - A13(IELEM) - A14(IELEM)
00444      &             - A15(IELEM) - A16(IELEM)
00445       A22(IELEM) = ((NUY1+NUY3+3.D0*NUY2) * X3**2            +
00446      &              (-6.D0*NUZ2-2.D0*NUZ1-2.D0*NUZ3) * Y3*X3 +
00447      &              (NUX3+NUX1+3.D0*NUX2) * Y3**2            ) * AUX3
00448       A33(IELEM) = ((NUY1+3.D0*NUY3+NUY2) * X2**2            +
00449      &              (-6.D0*NUZ3-2.D0*NUZ1-2.D0*NUZ2) * Y2*X2 +
00450      &              ( 3.D0*NUX3+NUX1+NUX2          ) * Y2**2 ) * AUX3
00451       A44(IELEM) = - A14(IELEM) - A24(IELEM) - A34(IELEM)
00452      &             - A45(IELEM) - A46(IELEM)
00453       A55(IELEM) = - A15(IELEM) - A25(IELEM) - A35(IELEM)
00454      &             - A45(IELEM) - A56(IELEM)
00455       A66(IELEM) = - A16(IELEM) - A26(IELEM) - A36(IELEM)
00456      &             - A46(IELEM) - A56(IELEM)
00457 !
00458       ENDDO ! IELEM
00459 !
00460 !-----------------------------------------------------------------------
00461 !
00462       ELSE
00463 !
00464         IF (LNG.EQ.1) WRITE(LU,10) IELMNU,ISO
00465         IF (LNG.EQ.2) WRITE(LU,11) IELMNU,ISO
00466 10    FORMAT(1X,'MT02CC (BIEF) :TYPE DE VISCOSITE NON PREVU: ',2I6)
00467 11    FORMAT(1X,'MT02CC (BIEF) :TYPE OF VISCOSITY NOT AVAILABLE: ',2I6)
00468         CALL PLANTE(1)
00469         STOP
00470 !
00471       ENDIF
00472 !
00473 !-----------------------------------------------------------------------
00474 !
00475       RETURN
00476       END

Generated on Fri Aug 31 2013 18:12:58 by S.E.Bourban (HRW) using doxygen 1.7.0