as3_1313_q.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\as3_1313_q.f
00002 !
00095                      SUBROUTINE AS3_1313_Q
00096 !                    *********************
00097 !
00098      &(XM,NSEG1,XMT,DIM1XMT,DIM2XMT,STOXMT,NELMAX,NELEM,ELTSEG,ORISEG)
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       INTEGER         , INTENT(IN)    :: ORISEG(NELMAX,15)
00132       DOUBLE PRECISION, INTENT(IN)    :: XMT(DIM1XMT,DIM2XMT)
00133       DOUBLE PRECISION, INTENT(INOUT) :: XM(NSEG1,2)
00134 !
00135 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00136 !
00137       INTEGER ISEG,IELEM
00138 !
00139 !-----------------------------------------------------------------------
00140 !
00141 !     INITIALISES
00142 !
00143       DO ISEG = 1 , NSEG1
00144         XM(ISEG,1) = 0.D0
00145         XM(ISEG,2) = 0.D0
00146       ENDDO
00147 !
00148 !-----------------------------------------------------------------------
00149 !
00150       IF(STOXMT.EQ.1) THEN
00151 !
00152 !     ASSEMBLES
00153 !
00154       DO IELEM = 1,NELEM
00155 !
00156 !         SEGMENT 01 (TERMS 1-2 AND 2-1)
00157           XM(ELTSEG(IELEM,01),ORISEG(IELEM,01))
00158      &  = XM(ELTSEG(IELEM,01),ORISEG(IELEM,01))   + XMT(IELEM,01)
00159           XM(ELTSEG(IELEM,01),3-ORISEG(IELEM,01))
00160      &  = XM(ELTSEG(IELEM,01),3-ORISEG(IELEM,01)) + XMT(IELEM,16)
00161 !
00162 !         SEGMENT 02 (TERMS 2-3 AND 3-2)
00163           XM(ELTSEG(IELEM,02),ORISEG(IELEM,02))
00164      &  = XM(ELTSEG(IELEM,02),ORISEG(IELEM,02))   + XMT(IELEM,06)
00165           XM(ELTSEG(IELEM,02),3-ORISEG(IELEM,02))
00166      &  = XM(ELTSEG(IELEM,02),3-ORISEG(IELEM,02)) + XMT(IELEM,21)
00167 !
00168 !         SEGMENT 03 (TERMS 3-1 AND 1-3)
00169           XM(ELTSEG(IELEM,03),ORISEG(IELEM,03))
00170      &  = XM(ELTSEG(IELEM,03),ORISEG(IELEM,03))   + XMT(IELEM,17)
00171           XM(ELTSEG(IELEM,03),3-ORISEG(IELEM,03))
00172      &  = XM(ELTSEG(IELEM,03),3-ORISEG(IELEM,03)) + XMT(IELEM,02)
00173 !
00174 !         SEGMENT 04 (TERMS 1-4 AND 4-1)
00175           XM(ELTSEG(IELEM,04),1)=XM(ELTSEG(IELEM,04),1)+XMT(IELEM,03)
00176           XM(ELTSEG(IELEM,04),2)=XM(ELTSEG(IELEM,04),2)+XMT(IELEM,18)
00177 !
00178 !         SEGMENT 05 (TERMS 2-5 AND 5-2)
00179           XM(ELTSEG(IELEM,05),1)=XM(ELTSEG(IELEM,05),1)+XMT(IELEM,08)
00180           XM(ELTSEG(IELEM,05),2)=XM(ELTSEG(IELEM,05),2)+XMT(IELEM,23)
00181 !
00182 !         SEGMENT 06 (TERMS 3-6 AND 6-3)
00183           XM(ELTSEG(IELEM,06),1)=XM(ELTSEG(IELEM,06),1)+XMT(IELEM,12)
00184           XM(ELTSEG(IELEM,06),2)=XM(ELTSEG(IELEM,06),2)+XMT(IELEM,27)
00185 !
00186 !         SEGMENT 7 (TERMS 2-4 AND 4-2)
00187           XM(ELTSEG(IELEM,07),1)=XM(ELTSEG(IELEM,07),1)+XMT(IELEM,07)
00188           XM(ELTSEG(IELEM,07),2)=XM(ELTSEG(IELEM,07),2)+XMT(IELEM,22)
00189 !
00190 !         SEGMENT 8 (TERMS 3-5 AND 5-3)
00191           XM(ELTSEG(IELEM,08),1)=XM(ELTSEG(IELEM,08),1)+XMT(IELEM,11)
00192           XM(ELTSEG(IELEM,08),2)=XM(ELTSEG(IELEM,08),2)+XMT(IELEM,26)
00193 !
00194 !         SEGMENT 9 (TERMS 1-6 AND 6-1)
00195           XM(ELTSEG(IELEM,09),1)=XM(ELTSEG(IELEM,09),1)+XMT(IELEM,05)
00196           XM(ELTSEG(IELEM,09),2)=XM(ELTSEG(IELEM,09),2)+XMT(IELEM,20)
00197 !
00198 !         SEGMENT 10 (TERMS 1-5 AND 5-1)
00199           XM(ELTSEG(IELEM,10),1)=XM(ELTSEG(IELEM,10),1)+XMT(IELEM,04)
00200           XM(ELTSEG(IELEM,10),2)=XM(ELTSEG(IELEM,10),2)+XMT(IELEM,19)
00201 !
00202 !         SEGMENT 11 (TERMS 2-6 AND 6-2)
00203           XM(ELTSEG(IELEM,11),1)=XM(ELTSEG(IELEM,11),1)+XMT(IELEM,09)
00204           XM(ELTSEG(IELEM,11),2)=XM(ELTSEG(IELEM,11),2)+XMT(IELEM,24)
00205 !
00206 !         SEGMENT 12 (TERMS 3-4 AND 4-3)
00207           XM(ELTSEG(IELEM,12),1)=XM(ELTSEG(IELEM,12),1)+XMT(IELEM,10)
00208           XM(ELTSEG(IELEM,12),2)=XM(ELTSEG(IELEM,12),2)+XMT(IELEM,25)
00209 !
00210 !         SEGMENT 13 (TERMS 4-5 AND 5-4)
00211           XM(ELTSEG(IELEM,13),1)=XM(ELTSEG(IELEM,13),1)+XMT(IELEM,13)
00212           XM(ELTSEG(IELEM,13),2)=XM(ELTSEG(IELEM,13),2)+XMT(IELEM,28)
00213 !
00214 !         SEGMENT 14 (TERMS 5-6 AND 6-5)
00215           XM(ELTSEG(IELEM,14),1)=XM(ELTSEG(IELEM,14),1)+XMT(IELEM,15)
00216           XM(ELTSEG(IELEM,14),2)=XM(ELTSEG(IELEM,14),2)+XMT(IELEM,30)
00217 !
00218 !         SEGMENT 15 (TERMS 6-4 AND 4-6)
00219           XM(ELTSEG(IELEM,15),1)=XM(ELTSEG(IELEM,15),1)+XMT(IELEM,29)
00220           XM(ELTSEG(IELEM,15),2)=XM(ELTSEG(IELEM,15),2)+XMT(IELEM,14)
00221 !
00222       ENDDO
00223 !
00224 !-----------------------------------------------------------------------
00225 !
00226       ELSEIF(STOXMT.EQ.2) THEN
00227 !
00228 !     ASSEMBLES
00229 !
00230       DO IELEM = 1,NELEM
00231 !
00232 !         SEGMENT 01 (TERMS 1-2 AND 2-1)
00233           XM(ELTSEG(IELEM,01),ORISEG(IELEM,01))
00234      &  = XM(ELTSEG(IELEM,01),ORISEG(IELEM,01))   + XMT(01,IELEM)
00235           XM(ELTSEG(IELEM,01),3-ORISEG(IELEM,01))
00236      &  = XM(ELTSEG(IELEM,01),3-ORISEG(IELEM,01)) + XMT(16,IELEM)
00237 !
00238 !         SEGMENT 02 (TERMS 2-3 AND 3-2)
00239           XM(ELTSEG(IELEM,02),ORISEG(IELEM,02))
00240      &  = XM(ELTSEG(IELEM,02),ORISEG(IELEM,02))   + XMT(06,IELEM)
00241           XM(ELTSEG(IELEM,02),3-ORISEG(IELEM,02))
00242      &  = XM(ELTSEG(IELEM,02),3-ORISEG(IELEM,02)) + XMT(21,IELEM)
00243 !
00244 !         SEGMENT 03 (TERMS 3-1 AND 1-3)
00245           XM(ELTSEG(IELEM,03),ORISEG(IELEM,03))
00246      &  = XM(ELTSEG(IELEM,03),ORISEG(IELEM,03))   + XMT(17,IELEM)
00247           XM(ELTSEG(IELEM,03),3-ORISEG(IELEM,03))
00248      &  = XM(ELTSEG(IELEM,03),3-ORISEG(IELEM,03)) + XMT(02,IELEM)
00249 !
00250 !         SEGMENT 04 (TERMS 1-4 AND 4-1)
00251           XM(ELTSEG(IELEM,04),1)=XM(ELTSEG(IELEM,04),1)+XMT(03,IELEM)
00252           XM(ELTSEG(IELEM,04),2)=XM(ELTSEG(IELEM,04),2)+XMT(18,IELEM)
00253 !
00254 !         SEGMENT 05 (TERMS 2-5 AND 5-2)
00255           XM(ELTSEG(IELEM,05),1)=XM(ELTSEG(IELEM,05),1)+XMT(08,IELEM)
00256           XM(ELTSEG(IELEM,05),2)=XM(ELTSEG(IELEM,05),2)+XMT(23,IELEM)
00257 !
00258 !         SEGMENT 06 (TERMS 3-6 AND 6-3)
00259           XM(ELTSEG(IELEM,06),1)=XM(ELTSEG(IELEM,06),1)+XMT(12,IELEM)
00260           XM(ELTSEG(IELEM,06),2)=XM(ELTSEG(IELEM,06),2)+XMT(27,IELEM)
00261 !
00262 !         SEGMENT 7 (TERMS 2-4 AND 4-2)
00263           XM(ELTSEG(IELEM,07),1)=XM(ELTSEG(IELEM,07),1)+XMT(07,IELEM)
00264           XM(ELTSEG(IELEM,07),2)=XM(ELTSEG(IELEM,07),2)+XMT(22,IELEM)
00265 !
00266 !         SEGMENT 8 (TERMS 3-5 AND 5-3)
00267           XM(ELTSEG(IELEM,08),1)=XM(ELTSEG(IELEM,08),1)+XMT(11,IELEM)
00268           XM(ELTSEG(IELEM,08),2)=XM(ELTSEG(IELEM,08),2)+XMT(26,IELEM)
00269 !
00270 !         SEGMENT 9 (TERMS 1-6 AND 6-1)
00271           XM(ELTSEG(IELEM,09),1)=XM(ELTSEG(IELEM,09),1)+XMT(05,IELEM)
00272           XM(ELTSEG(IELEM,09),2)=XM(ELTSEG(IELEM,09),2)+XMT(20,IELEM)
00273 !
00274 !         SEGMENT 10 (TERMS 1-5 AND 5-1)
00275           XM(ELTSEG(IELEM,10),1)=XM(ELTSEG(IELEM,10),1)+XMT(04,IELEM)
00276           XM(ELTSEG(IELEM,10),2)=XM(ELTSEG(IELEM,10),2)+XMT(19,IELEM)
00277 !
00278 !         SEGMENT 11 (TERMS 2-6 AND 6-2)
00279           XM(ELTSEG(IELEM,11),1)=XM(ELTSEG(IELEM,11),1)+XMT(09,IELEM)
00280           XM(ELTSEG(IELEM,11),2)=XM(ELTSEG(IELEM,11),2)+XMT(24,IELEM)
00281 !
00282 !         SEGMENT 12 (TERMS 3-4 AND 4-3)
00283           XM(ELTSEG(IELEM,12),1)=XM(ELTSEG(IELEM,12),1)+XMT(10,IELEM)
00284           XM(ELTSEG(IELEM,12),2)=XM(ELTSEG(IELEM,12),2)+XMT(25,IELEM)
00285 !
00286 !         SEGMENT 13 (TERMS 4-5 AND 5-4)
00287           XM(ELTSEG(IELEM,13),1)=XM(ELTSEG(IELEM,13),1)+XMT(13,IELEM)
00288           XM(ELTSEG(IELEM,13),2)=XM(ELTSEG(IELEM,13),2)+XMT(28,IELEM)
00289 !
00290 !         SEGMENT 14 (TERMS 5-6 AND 6-5)
00291           XM(ELTSEG(IELEM,14),1)=XM(ELTSEG(IELEM,14),1)+XMT(15,IELEM)
00292           XM(ELTSEG(IELEM,14),2)=XM(ELTSEG(IELEM,14),2)+XMT(30,IELEM)
00293 !
00294 !         SEGMENT 15 (TERMS 6-4 AND 4-6)
00295           XM(ELTSEG(IELEM,15),1)=XM(ELTSEG(IELEM,15),1)+XMT(29,IELEM)
00296           XM(ELTSEG(IELEM,15),2)=XM(ELTSEG(IELEM,15),2)+XMT(14,IELEM)
00297 !
00298       ENDDO
00299 !
00300 !-----------------------------------------------------------------------
00301 !
00302       ELSE
00303         IF(LNG.EQ.1) THEN
00304           WRITE(LU,*) 'AS3_1313_Q : STOCKAGE DE XMT INCONNU : ',STOXMT
00305         ENDIF
00306         IF(LNG.EQ.2) THEN
00307           WRITE(LU,*) 'AS3_1313_Q: UNKNOWN STORAGE OF XMT : ',STOXMT
00308         ENDIF
00309         CALL PLANTE(1)
00310         STOP
00311       ENDIF
00312 !
00313 !-----------------------------------------------------------------------
00314 !
00315       RETURN
00316       END

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