as3_4141_s.f

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

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