bief_dim1_ext.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\bief_dim1_ext.f
00002 !
00060                      INTEGER FUNCTION BIEF_DIM1_EXT
00061 !                    ******************************
00062 !
00063      &(IELM1,IELM2,STO,TYPEXT,MESH)
00064 !
00065 !***********************************************************************
00066 ! BIEF   V6P1                                   21/08/2010
00067 !***********************************************************************
00068 !
00069 !
00070 !
00071 !
00072 !
00073 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00074 !| IELM1          |-->| TYPE OF LINE ELEMENT
00075 !| IELM2          |-->| TYPE OF COLUMN ELEMENT
00076 !| MESH           |-->| MESH STRUCTURE
00077 !| STO            |-->| TYPE OF STORAGE
00078 !| TYPEXT         |-->| TYPE OF OFF-DIAGONAL TERMS
00079 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00080 !
00081       USE BIEF, EX_BIEF_DIM1_EXT => BIEF_DIM1_EXT
00082 !
00083       IMPLICIT NONE
00084       INTEGER LNG,LU
00085       COMMON/INFO/LNG,LU
00086 !
00087 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00088 !
00089       INTEGER         , INTENT(IN) :: IELM1,IELM2,STO
00090       CHARACTER(LEN=1), INTENT(IN) :: TYPEXT
00091       TYPE(BIEF_MESH) , INTENT(IN) :: MESH
00092 !
00093 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00094 !
00095       INTEGER IELMX,N
00096 !
00097 !-----------------------------------------------------------------------
00098 !
00099       IELMX = 10*(IELM1/10)
00100 !
00101       IF(TYPEXT.EQ.'0') THEN
00102 !
00103 !       NOT 0 TO ENABLE BOUND CHECKING
00104         BIEF_DIM1_EXT = 1
00105 !
00106       ELSEIF(STO.EQ.1) THEN
00107 !
00108 !       CLASSICAL EBE STORAGE
00109 !
00110         BIEF_DIM1_EXT =BIEF_NBMPTS(IELMX,MESH)
00111 !
00112       ELSEIF(STO.EQ.3) THEN
00113 !
00114 !       EDGE-BASED STORAGE
00115 !
00116         IF(TYPEXT.EQ.'S') THEN
00117           BIEF_DIM1_EXT=BIEF_NBSEG(IELM1,MESH)
00118         ELSE
00119           BIEF_DIM1_EXT=BIEF_NBSEG(IELM1,MESH)+BIEF_NBSEG(IELM2,MESH)
00120           N=MAX(BIEF_NBPEL(IELM1,MESH),BIEF_NBPEL(IELM2,MESH))
00121      &     -MIN(BIEF_NBPEL(IELM1,MESH),BIEF_NBPEL(IELM2,MESH))
00122           IF(N.GE.2) THEN
00123 !           SOME SEGMENTS LINK ONLY E.G. QUADRATIC POINTS AND
00124 !           WILL NOT BE CONSIDERED IN A RECTANGULAR MATRIX
00125 !           THIS IS THE CASE WITH 3 SEGMENTS IN QUADRATIC TRIANGLE
00126             BIEF_DIM1_EXT=BIEF_DIM1_EXT
00127      &                   -N*(N-1)*BIEF_NBMPTS(IELMX,MESH)/2
00128           ENDIF
00129         ENDIF
00130 !
00131       ELSE
00132 !
00133         IF(LNG.EQ.1) WRITE(LU,100) STO
00134         IF(LNG.EQ.2) WRITE(LU,101) STO
00135 100     FORMAT(1X,'BIEF_DIM1_EXT : STOCKAGE NON PREVU : ',1I6)
00136 101     FORMAT(1X,'BIEF_DIM1_EXT : UNKNOWN TYPE OF STORAGE: ',1I6)
00137         CALL PLANTE(1)
00138         STOP
00139 !
00140       ENDIF
00141 !
00142 !-----------------------------------------------------------------------
00143 !
00144       RETURN
00145       END

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