The TELEMAC-MASCARET system  trunk
asmvec.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE asmvec
3 ! *****************
4 !
5  &(x, ikle,npoin,nelem,nelmax,ndp,w,init,lv)
6 !
7 !***********************************************************************
8 ! BIEF V6P1 21/08/2010
9 !***********************************************************************
10 !
11 !brief MULTIPLICATIVE ASSEMBLY FOR A VECTOR.
12 !
13 !warning THIS VECTOR IS INITIALISED TO 1 IF INIT = .TRUE.
14 !
15 !history J-M HERVOUET (LNH) ; F LEPEINTRE (LNH)
16 !+ 17/08/94
17 !+ V5P1
18 !+
19 !
20 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
21 !+ 13/07/2010
22 !+ V6P0
23 !+ Translation of French comments within the FORTRAN sources into
24 !+ English comments
25 !
26 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
27 !+ 21/08/2010
28 !+ V6P0
29 !+ Creation of DOXYGEN tags for automated documentation and
30 !+ cross-referencing of the FORTRAN sources
31 !
32 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33 !| IKLE |-->| CONNECTIVITY TABLE
34 !| INIT |-->| LOGICAL : IF TRUE X IS INITIALISED TO 0.
35 !| LV |-->| VECTOR LENGTH OF THE COMPUTER
36 !| NDP |-->| SECOND DIMENSION OF IKLE
37 !| NELEM |-->| NUMBER OF ELEMENTS IN THE MESH
38 !| NELMAX |-->| FIRST DIMENSION OF IKLE AND W.
39 !| NPOIN |-->| NUMBER OF POINTS IN X
40 !| W |-->| WORK ARRAY WITH A NON ASSEMBLED FORM OF THE
41 !| | | RESULT
42 !| | | W HAS DIMENSION NELMAX * NDP(IELM)
43 !| | | NDP IS THE NUMBER OF POINTS IN THE ELEMENT
44 !| X |<->| ASSEMBLED VECTOR
45 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
46 !
47  USE bief, ex_asmvec => asmvec
48 !
50  IMPLICIT NONE
51 !
52 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
53 !
54  INTEGER , INTENT(IN) :: NELMAX,NPOIN,NELEM,NDP,LV
55  DOUBLE PRECISION, INTENT(INOUT) :: X(npoin)
56  INTEGER , INTENT(IN) :: IKLE(nelmax,ndp)
57  DOUBLE PRECISION, INTENT(IN) :: W(nelmax,ndp)
58  LOGICAL , INTENT(IN) :: INIT
59 !
60 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
61 !
62  INTEGER IDP
63 !
64 !-----------------------------------------------------------------------
65 ! INITIALISES VECTOR X TO 1 IF(INIT)
66 !-----------------------------------------------------------------------
67 !
68  IF(init) CALL ov('X=C ', x=x, c=1.d0, dim1=npoin)
69 !
70 !-----------------------------------------------------------------------
71 ! ASSEMBLES, CONTRIBUTION OF LOCAL POINTS 1,... TO NDP
72 !-----------------------------------------------------------------------
73 !
74  DO idp = 1 , ndp
75 !
76  CALL asmve1(x, ikle(1,idp),w(1,idp),npoin,nelem,nelmax,lv)
77 !
78  ENDDO
79 !
80 !-----------------------------------------------------------------------
81 !
82  RETURN
83  END
subroutine ov(OP, X, Y, Z, C, DIM1)
Definition: ov.f:7
subroutine asmvec(X, IKLE, NPOIN, NELEM, NELMAX, NDP, W, INIT, LV)
Definition: asmvec.f:7
subroutine asmve1(X, IKLE, W, NPOIN, NELEM, NELMAX, LV)
Definition: asmve1.f:7
Definition: bief.f:3