mt13ca.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\mt13ca.f
00002 !
00070                      SUBROUTINE MT13CA
00071 !                    *****************
00072 !
00073      &(  A11 , A12 , A13 ,
00074      &   A21 , A22 , A23 ,
00075      &   A31 , A32 , A33 ,
00076      &   A41 , A42 , A43 ,
00077      &   A51 , A52 , A53 ,
00078      &   A61 , A62 , A63 ,
00079      &   XMUL,XEL,YEL,NELEM,NELMAX,ICOORD)
00080 !
00081 !***********************************************************************
00082 ! BIEF   V6P2                                   21/08/2010
00083 !***********************************************************************
00084 !
00085 !
00086 !
00087 !
00088 !
00089 !
00090 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00091 !| A11            |<--| ELEMENTS OF MATRIX
00092 !| ...            |<--| ELEMENTS OF MATRIX
00093 !| A63            |<--| ELEMENTS OF MATRIX
00094 !| ICOORD         |-->| 1: DERIVATIVE ALONG X, 2: ALONG Y
00095 !| NELEM          |-->| NUMBER OF ELEMENTS
00096 !| NELMAX         |-->| MAXIMUM NUMBER OF ELEMENTS
00097 !| XEL            |-->| ABSCISSAE OF POINTS IN THE MESH, PER ELEMENT
00098 !| YEL            |-->| ORDINATES OF POINTS IN THE MESH, PER ELEMENT
00099 !| XMUL           |-->| MULTIPLICATION FACTOR
00100 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00101 !
00102       USE BIEF!, EX_MT13CA => MT13CA
00103 !
00104       IMPLICIT NONE
00105       INTEGER LNG,LU
00106       COMMON/INFO/LNG,LU
00107 !
00108 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00109 !
00110       INTEGER, INTENT(IN) :: NELEM,NELMAX,ICOORD
00111 !
00112       DOUBLE PRECISION, INTENT(INOUT) :: A11(*),A12(*),A13(*)
00113       DOUBLE PRECISION, INTENT(INOUT) :: A21(*),A22(*),A23(*)
00114       DOUBLE PRECISION, INTENT(INOUT) :: A31(*),A32(*),A33(*)
00115       DOUBLE PRECISION, INTENT(INOUT) :: A41(*),A42(*),A43(*)
00116       DOUBLE PRECISION, INTENT(INOUT) :: A51(*),A52(*),A53(*)
00117       DOUBLE PRECISION, INTENT(INOUT) :: A61(*),A62(*),A63(*)
00118 !
00119       DOUBLE PRECISION, INTENT(IN) :: XMUL
00120 !
00121       DOUBLE PRECISION, INTENT(IN) :: XEL(NELMAX,3),YEL(NELMAX,3)
00122 !
00123 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00124 !
00125       INTEGER IELEM
00126       DOUBLE PRECISION X2,X3,Y2,Y3
00127       DOUBLE PRECISION XSUR6
00128 !
00129 !-----------------------------------------------------------------------
00130 !
00131       XSUR6 = XMUL/6.D0
00132 !
00133 !================================
00134 !  DERIVATIVE WRT X  =
00135 !================================
00136 !
00137         IF(ICOORD.EQ.1) THEN
00138 !
00139 !   LOOP ON THE ELEMENTS
00140 !
00141         DO IELEM = 1 , NELEM
00142 !
00143 !   INITIALISES THE GEOMETRICAL VARIABLES
00144 !
00145         Y2 = YEL(IELEM,2)
00146         Y3 = YEL(IELEM,3)
00147 !
00148 !   EXTRADIAGONAL TERMS
00149 !
00150         A12(IELEM) = 0.D0
00151         A13(IELEM) = 0.D0
00152         A21(IELEM) = 0.D0
00153         A23(IELEM) = 0.D0
00154         A31(IELEM) = 0.D0
00155         A32(IELEM) = 0.D0
00156         A42(IELEM) =   Y3*XSUR6
00157         A43(IELEM) = - Y2*XSUR6
00158         A41(IELEM) = - A42(IELEM) - A43(IELEM)
00159         A51(IELEM) =   A41(IELEM)
00160         A52(IELEM) =   A42(IELEM)
00161         A53(IELEM) =   A43(IELEM)
00162         A61(IELEM) =   A41(IELEM)
00163         A62(IELEM) =   A42(IELEM)
00164         A63(IELEM) =   A43(IELEM)
00165 !
00166 !   DIAGONAL TERMS
00167 !
00168         A11(IELEM) = 0.D0
00169         A22(IELEM) = 0.D0
00170         A33(IELEM) = 0.D0
00171 !
00172       ENDDO ! IELEM
00173 !
00174         ELSEIF(ICOORD.EQ.2) THEN
00175 !
00176 !================================
00177 !  DERIVATIVE WRT Y  =
00178 !================================
00179 !
00180         DO IELEM = 1 , NELEM
00181 !
00182 !   INITIALISES THE GEOMETRICAL VARIABLES
00183 !
00184         X2  =  XEL(IELEM,2)
00185         X3  =  XEL(IELEM,3)
00186 !
00187 !   EXTRADIAGONAL TERMS
00188 !
00189         A12(IELEM) = 0.D0
00190         A13(IELEM) = 0.D0
00191         A21(IELEM) = 0.D0
00192         A23(IELEM) = 0.D0
00193         A31(IELEM) = 0.D0
00194         A32(IELEM) = 0.D0
00195         A42(IELEM) = - X3*XSUR6
00196         A43(IELEM) =   X2*XSUR6
00197         A41(IELEM) = - A42(IELEM) - A43(IELEM)
00198         A51(IELEM) =   A41(IELEM)
00199         A52(IELEM) =   A42(IELEM)
00200         A53(IELEM) =   A43(IELEM)
00201         A61(IELEM) =   A41(IELEM)
00202         A62(IELEM) =   A42(IELEM)
00203         A63(IELEM) =   A43(IELEM)
00204 !
00205 !   DIAGONAL TERMS
00206 !
00207         A11(IELEM) = 0.D0
00208         A22(IELEM) = 0.D0
00209         A33(IELEM) = 0.D0
00210 !
00211         ENDDO ! IELEM
00212 !
00213         ELSE
00214 !
00215           IF (LNG.EQ.1) WRITE(LU,200) ICOORD
00216           IF (LNG.EQ.2) WRITE(LU,201) ICOORD
00217           CALL PLANTE(1)
00218 !
00219         ENDIF
00220 !
00221 200     FORMAT(1X,'MT13CA (BIEF) : COMPOSANTE IMPOSSIBLE ',
00222      &         1I6,' VERIFIER ICOORD')
00223 201     FORMAT(1X,'MT13CA (BIEF) : IMPOSSIBLE COMPONENT ',
00224      &         1I6,' CHECK ICOORD')
00225 !
00226 !-----------------------------------------------------------------------
00227 !
00228       RETURN
00229       END

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