as3_1313_s.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\as3_1313_s.f
00002 !
00095                      SUBROUTINE AS3_1313_S
00096 !                    *********************
00097 !
00098      &(XM,NSEG1,XMT,DIM1XMT,DIM2XMT,STOXMT,NELMAX,NELEM,ELTSEG)
00099 !
00100 !***********************************************************************
00101 ! BIEF   V6P1                                   21/08/2010
00102 !***********************************************************************
00103 !
00104 !
00105 !
00106 !
00107 !
00108 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00109 !| DIM1XMT        |-->| FIRST DIMENSION OF XMT
00110 !| DIM2XMT        |-->| SECOND DIMENSION OF XMT
00111 !| ELTSEG         |-->| SEGMENTS OF A TRIANGLE
00112 !| NELEM          |-->| NUMBER OF ELEMENTS IN THE MESH
00113 !| NELMAX         |-->| FIRST DIMENSION OF IKLE AND W.
00114 !| NSEG1          |-->| NUMBER OF SEGMENTS
00115 !| ORISEG         |-->| ORIENTATION OF SEGMENTS
00116 !| STOXMT         |-->| STORAGE OF XMT 1: (NELMAX,*)
00117 !|                |   |                2: (*,NELMAX)
00118 !| XM             |<--| ASSEMBLED OFF-DIAGONAL TERMS XA12,23,31
00119 !| XMT            |-->| ELEMENT BY ELEMENT STORAGE OF MATRIX
00120 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00121 !
00122       IMPLICIT NONE
00123       INTEGER LNG,LU
00124       COMMON/INFO/LNG,LU
00125 !
00126 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00127 !
00128       INTEGER         , INTENT(IN)    :: NELMAX,NELEM,NSEG1
00129       INTEGER         , INTENT(IN)    :: DIM1XMT,DIM2XMT,STOXMT
00130       INTEGER         , INTENT(IN)    :: ELTSEG(NELMAX,15)
00131       DOUBLE PRECISION, INTENT(IN)    :: XMT(DIM1XMT,DIM2XMT)
00132       DOUBLE PRECISION, INTENT(INOUT) :: XM(NSEG1)
00133 !
00134 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00135 !
00136       INTEGER ISEG,IELEM
00137 !
00138 !-----------------------------------------------------------------------
00139 !
00140 !  INITIALISES
00141 !
00142       DO ISEG = 1 , NSEG1
00143         XM(ISEG) = 0.D0
00144       ENDDO
00145 !
00146 !-----------------------------------------------------------------------
00147 !
00148 !  ASSEMBLES
00149 !
00150 !-----------------------------------------------------------------------
00151 !
00152       IF(STOXMT.EQ.1) THEN
00153 !
00154       DO IELEM = 1,NELEM
00155 !
00156           XM(ELTSEG(IELEM,01))=XM(ELTSEG(IELEM,01))+XMT(IELEM,01)
00157           XM(ELTSEG(IELEM,02))=XM(ELTSEG(IELEM,02))+XMT(IELEM,06)
00158           XM(ELTSEG(IELEM,03))=XM(ELTSEG(IELEM,03))+XMT(IELEM,02)
00159           XM(ELTSEG(IELEM,04))=XM(ELTSEG(IELEM,04))+XMT(IELEM,03)
00160           XM(ELTSEG(IELEM,05))=XM(ELTSEG(IELEM,05))+XMT(IELEM,08)
00161           XM(ELTSEG(IELEM,06))=XM(ELTSEG(IELEM,06))+XMT(IELEM,12)
00162           XM(ELTSEG(IELEM,07))=XM(ELTSEG(IELEM,07))+XMT(IELEM,07)
00163           XM(ELTSEG(IELEM,08))=XM(ELTSEG(IELEM,08))+XMT(IELEM,11)
00164           XM(ELTSEG(IELEM,09))=XM(ELTSEG(IELEM,09))+XMT(IELEM,05)
00165           XM(ELTSEG(IELEM,10))=XM(ELTSEG(IELEM,10))+XMT(IELEM,04)
00166           XM(ELTSEG(IELEM,11))=XM(ELTSEG(IELEM,11))+XMT(IELEM,09)
00167           XM(ELTSEG(IELEM,12))=XM(ELTSEG(IELEM,12))+XMT(IELEM,10)
00168           XM(ELTSEG(IELEM,13))=XM(ELTSEG(IELEM,13))+XMT(IELEM,13)
00169           XM(ELTSEG(IELEM,14))=XM(ELTSEG(IELEM,14))+XMT(IELEM,15)
00170           XM(ELTSEG(IELEM,15))=XM(ELTSEG(IELEM,15))+XMT(IELEM,14)
00171 !
00172       ENDDO
00173 !
00174       ELSEIF(STOXMT.EQ.2) THEN
00175 !
00176       DO IELEM = 1,NELEM
00177 !
00178           XM(ELTSEG(IELEM,01))=XM(ELTSEG(IELEM,01))+XMT(01,IELEM)
00179           XM(ELTSEG(IELEM,02))=XM(ELTSEG(IELEM,02))+XMT(06,IELEM)
00180           XM(ELTSEG(IELEM,03))=XM(ELTSEG(IELEM,03))+XMT(02,IELEM)
00181           XM(ELTSEG(IELEM,04))=XM(ELTSEG(IELEM,04))+XMT(03,IELEM)
00182           XM(ELTSEG(IELEM,05))=XM(ELTSEG(IELEM,05))+XMT(08,IELEM)
00183           XM(ELTSEG(IELEM,06))=XM(ELTSEG(IELEM,06))+XMT(12,IELEM)
00184           XM(ELTSEG(IELEM,07))=XM(ELTSEG(IELEM,07))+XMT(07,IELEM)
00185           XM(ELTSEG(IELEM,08))=XM(ELTSEG(IELEM,08))+XMT(11,IELEM)
00186           XM(ELTSEG(IELEM,09))=XM(ELTSEG(IELEM,09))+XMT(05,IELEM)
00187           XM(ELTSEG(IELEM,10))=XM(ELTSEG(IELEM,10))+XMT(04,IELEM)
00188           XM(ELTSEG(IELEM,11))=XM(ELTSEG(IELEM,11))+XMT(09,IELEM)
00189           XM(ELTSEG(IELEM,12))=XM(ELTSEG(IELEM,12))+XMT(10,IELEM)
00190           XM(ELTSEG(IELEM,13))=XM(ELTSEG(IELEM,13))+XMT(13,IELEM)
00191           XM(ELTSEG(IELEM,14))=XM(ELTSEG(IELEM,14))+XMT(15,IELEM)
00192           XM(ELTSEG(IELEM,15))=XM(ELTSEG(IELEM,15))+XMT(14,IELEM)
00193 !
00194       ENDDO
00195 !
00196       ELSE
00197         IF(LNG.EQ.1) THEN
00198           WRITE(LU,*) 'AS3_1313_S : STOCKAGE DE XMT INCONNU : ',STOXMT
00199         ENDIF
00200         IF(LNG.EQ.2) THEN
00201           WRITE(LU,*) 'AS3_1313_S: UNKNOWN STORAGE OF XMT : ',STOXMT
00202         ENDIF
00203         CALL PLANTE(1)
00204         STOP
00205       ENDIF
00206 !
00207 !-----------------------------------------------------------------------
00208 !
00209       RETURN
00210       END

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