as3_3131_s.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\as3_3131_s.f
00002 !
00046                      SUBROUTINE AS3_3131_S
00047 !                    *********************
00048 !
00049      &(XM,NSEG,XMT,DIM1XMT,DIM2XMT,STOXMT,NELMAX,NELEM,
00050      & ELTSEG1,ELTSEG2,ELTSEG3,ELTSEG4,ELTSEG5,ELTSEG6)
00051 !
00052 !***********************************************************************
00053 ! BIEF   V6P2                                   21/08/2010
00054 !***********************************************************************
00055 !
00056 !
00057 !
00058 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00059 !| DIM1XMT        |-->| FIRST DIMENSION OF XMT
00060 !| DIM2XMT        |-->| SECOND DIMENSION OF XMT
00061 !| ELTSEG1        |-->| FIRST SEGMENT OF A TRIANGLE
00062 !| ELTSEG2        |-->| SECOND SEGMENT OF A TRIANGLE
00063 !| ELTSEG3        |-->| THIRD SEGMENT OF A TRIANGLE
00064 !| ELTSEG4        |-->| FOURTH SEGMENT OF A QUADRATIC TRIANGLE
00065 !| ELTSEG5        |-->| FIFTH SEGMENT OF A QUADRATIC TRIANGLE
00066 !| ELTSEG6        |-->| SIXTH SEGMENT OF A QUADRATIC TRIANGLE
00067 !| NELEM          |-->| NUMBER OF ELEMENTS IN THE MESH
00068 !| NELMAX         |-->| FIRST DIMENSION OF IKLE AND W.
00069 !| NSEG           |-->| NUMBER OF SEGMENTS
00070 !| STOXMT         |-->| STORAGE MODE OF XMT
00071 !| XM             |<--| ASSEMBLED OFF-DIAGONAL TERMS XA12,23,31
00072 !| XMT            |-->| ELEMENT BY ELEMENT STORAGE OF MATRIX
00073 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00074 !
00075       IMPLICIT NONE
00076       INTEGER LNG,LU
00077       COMMON/INFO/LNG,LU
00078 !
00079 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00080 !
00081       INTEGER         , INTENT(IN)    :: NELMAX,NELEM,NSEG
00082       INTEGER         , INTENT(IN)    :: DIM1XMT,DIM2XMT,STOXMT
00083       INTEGER         , INTENT(IN)    :: ELTSEG1(NELMAX),ELTSEG2(NELMAX)
00084       INTEGER         , INTENT(IN)    :: ELTSEG3(NELMAX),ELTSEG4(NELMAX)
00085       INTEGER         , INTENT(IN)    :: ELTSEG5(NELMAX),ELTSEG6(NELMAX)
00086       DOUBLE PRECISION, INTENT(INOUT) :: XMT(DIM1XMT,DIM2XMT)
00087       DOUBLE PRECISION, INTENT(INOUT) :: XM(NSEG)
00088 !
00089 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00090 !
00091       INTEGER ISEG,IELEM
00092 !
00093 !-----------------------------------------------------------------------
00094 !
00095 !  INITIALISES
00096 !
00097       DO ISEG = 1 , NSEG
00098         XM(ISEG) = 0.D0
00099       ENDDO
00100 !
00101 !-----------------------------------------------------------------------
00102 !
00103       IF(STOXMT.EQ.1) THEN
00104 !
00105 !     ASSEMBLES
00106 !
00107       DO IELEM = 1,NELEM
00108 !       TERM 12
00109         XM(ELTSEG1(IELEM)) = XM(ELTSEG1(IELEM)) + XMT(IELEM,1)
00110 !       TERM 23
00111         XM(ELTSEG2(IELEM)) = XM(ELTSEG2(IELEM)) + XMT(IELEM,4)
00112 !       TERM 31
00113         XM(ELTSEG3(IELEM)) = XM(ELTSEG3(IELEM)) + XMT(IELEM,2)
00114 !       TERM 14
00115         XM(ELTSEG4(IELEM)) = XM(ELTSEG4(IELEM)) + XMT(IELEM,3)
00116 !       TERM 24
00117         XM(ELTSEG5(IELEM)) = XM(ELTSEG5(IELEM)) + XMT(IELEM,5)
00118 !       TERM 34
00119         XM(ELTSEG6(IELEM)) = XM(ELTSEG6(IELEM)) + XMT(IELEM,6)
00120       ENDDO
00121 !
00122 !-----------------------------------------------------------------------
00123 !
00124       ELSEIF(STOXMT.EQ.2) THEN
00125 !
00126 !     ASSEMBLES
00127 !
00128       DO IELEM = 1,NELEM
00129 !       TERM 12
00130         XM(ELTSEG1(IELEM)) = XM(ELTSEG1(IELEM)) + XMT(1,IELEM)
00131 !       TERM 23
00132         XM(ELTSEG2(IELEM)) = XM(ELTSEG2(IELEM)) + XMT(4,IELEM)
00133 !       TERM 31
00134         XM(ELTSEG3(IELEM)) = XM(ELTSEG3(IELEM)) + XMT(2,IELEM)
00135 !       TERM 14
00136         XM(ELTSEG4(IELEM)) = XM(ELTSEG4(IELEM)) + XMT(3,IELEM)
00137 !       TERM 24
00138         XM(ELTSEG5(IELEM)) = XM(ELTSEG5(IELEM)) + XMT(5,IELEM)
00139 !       TERM 34
00140         XM(ELTSEG6(IELEM)) = XM(ELTSEG6(IELEM)) + XMT(6,IELEM)
00141       ENDDO
00142 !
00143 !-----------------------------------------------------------------------
00144 !
00145       ELSE
00146         IF(LNG.EQ.1) THEN
00147           WRITE(LU,*) 'AS3_3131_S : STOCKAGE DE XMT INCONNU : ',STOXMT
00148         ENDIF
00149         IF(LNG.EQ.2) THEN
00150           WRITE(LU,*) 'AS3_3131_S: UNKNOWN STORAGE OF XMT : ',STOXMT
00151         ENDIF
00152         CALL PLANTE(1)
00153         STOP
00154       ENDIF
00155 !
00156 !-----------------------------------------------------------------------
00157 !
00158       RETURN
00159       END

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