The TELEMAC-MASCARET system  trunk
appdots.f
Go to the documentation of this file.
1 ! ******************
2  SUBROUTINE appdots
3 ! ******************
4 !
5  &( x , mesh )
6 !
7 !***********************************************************************
8 ! BIEF V6P2 11/05/2012
9 !***********************************************************************
10 !
11 !brief Assemble and Prints P_DOTS of a vector which is not assembled.
12 ! This is for debugging parallelism and applies e.g. to
13 ! diagonals and right-hand sides of linear systems
14 ! P_DOTS is the dot product of a vector in parallel.
15 ! Only the master processor (IPID=0) prints the result
16 !
17 !history J-M HERVOUET (LNHE)
18 !+ 11/05/2012
19 !+ V6P2
20 !+
21 !
22 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23 !| X |-->| THE VECTOR
24 !| MESH |-->| THE MESH STRUCTURE
25 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26 !
27  USE bief
28 !
30  IMPLICIT NONE
31 !
32 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
33 !
34  TYPE(bief_obj), INTENT(IN) :: X
35  TYPE(bief_mesh), INTENT(INOUT) :: MESH
36 !
37 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
38 !
39  DOUBLE PRECISION RESULT
40 !
41 !-----------------------------------------------------------------------
42 !
43  CALL os('X=Y ',x=mesh%T,y=x)
44 !
45  IF(ncsize.GT.1) CALL parcom(mesh%T,2,mesh)
46 !
47  result=p_dots(mesh%T,mesh%T,mesh)
48 !
49  IF(ipid.EQ.0) THEN
50  WRITE(lu,*) x%NAME,' DOTS=',result
51  ENDIF
52 !
53 !-----------------------------------------------------------------------
54 !
55  RETURN
56  END
subroutine appdots(X, MESH)
Definition: appdots.f:7
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
Definition: os.f:7
subroutine parcom(X, ICOM, MESH)
Definition: parcom.f:7
double precision function p_dots(X, Y, MESH)
Definition: p_dots.f:7
Definition: bief.f:3