The TELEMAC-MASCARET system  trunk
bief_dim2_ext.f
Go to the documentation of this file.
1 ! ******************************
2  INTEGER FUNCTION bief_dim2_ext
3 ! ******************************
4 !
5  &(ielm1,ielm2,sto,typext,mesh)
6 !
7 !***********************************************************************
8 ! BIEF V6P1 21/08/2010
9 !***********************************************************************
10 !
11 !brief GIVES THE SECOND DIMENSION OF A MATRICE'S EXTRA-DIAGONAL
12 !+ TERMS.
13 !
14 !history J-M HERVOUET (LNH)
15 !+ 12/12/94
16 !+ V5P1
17 !+
18 !
19 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
20 !+ 13/07/2010
21 !+ V6P0
22 !+ Translation of French comments within the FORTRAN sources into
23 !+ English comments
24 !
25 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
26 !+ 21/08/2010
27 !+ V6P0
28 !+ Creation of DOXYGEN tags for automated documentation and
29 !+ cross-referencing of the FORTRAN sources
30 !
31 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32 !| IELM1 |-->| TYPE OF LINE ELEMENT
33 !| IELM2 |-->| TYPE OF COLUMN ELEMENT
34 !| MESH |-->| MESH STRUCTURE
35 !| STO |-->| TYPE OF STORAGE
36 !| TYPEXT |-->| TYPE OF OFF-DIAGONAL TERMS
37 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
38 !
39  USE bief, ex_bief_dim2_ext => bief_dim2_ext
40 !
42  IMPLICIT NONE
43 !
44 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
45 !
46  INTEGER , INTENT(IN) :: IELM1,IELM2,STO
47  CHARACTER(LEN=1), INTENT(IN) :: TYPEXT
48  TYPE(bief_mesh) , INTENT(IN) :: MESH
49 !
50 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
51 !
52  INTEGER NDIM
53 !
54 !-----------------------------------------------------------------------
55 !
56  IF(typext.EQ.'0') THEN
57 !
58  bief_dim2_ext = 1
59 !
60  ELSEIF(sto.EQ.1) THEN
61 !
62 ! NDIM IS HERE THE SECOND DIMENSION OF VECTOR
63  ndim = bief_nbpel(ielm1,mesh)*bief_nbpel(ielm2,mesh)
64  & - min(bief_nbpel(ielm1,mesh),bief_nbpel(ielm2,mesh))
65 ! SYMMETRICAL MATRIX
66  IF(ielm1.EQ.ielm2.AND.typext.EQ.'S') THEN
67  ndim = ndim / 2
68  ENDIF
69  bief_dim2_ext = ndim
70 !
71  ELSEIF(sto.EQ.3) THEN
72 !
73 ! ASSEMBLED EBE STORAGE OR EDGE BASED
74  bief_dim2_ext = 1
75 !
76  ELSE
77 !
78  WRITE(lu,101) sto
79 101 FORMAT(1x,'BIEF_DIM2_EXT : UNKNOWN TYPE OF STORAGE: ',1i6)
80  CALL plante(1)
81  stop
82 !
83  ENDIF
84 !
85 !-----------------------------------------------------------------------
86 !
87  RETURN
88  END
integer function bief_nbpel(IELM, MESH)
Definition: bief_nbpel.f:7
integer function bief_dim2_ext(IELM1, IELM2, STO, TYPEXT, MESH)
Definition: bief_dim2_ext.f:7
Definition: bief.f:3