The TELEMAC-MASCARET system  trunk
um1x.f
Go to the documentation of this file.
1 ! ***************
2  SUBROUTINE um1x
3 ! ***************
4 !
5  &(x,d,s)
6 !
7 !***********************************************************************
8 ! BIEF V6P1 21/08/2010
9 !***********************************************************************
10 !
11 !brief END OF THE OPERATIONS FOR DIAGONAL PRECONDITIONING
12 !+ WITH THE CONDENSED MATRIX (OR ANY SIMILAR OPERATION).
13 !code
14 !+ -1 PRIME
15 !+ OPERATION X = U X
16 !+
17 !+ EXAMPLE OF A BLOCK OF 4:
18 !+
19 !+ ( I D12 )
20 !+ ( )
21 !+ U = ( )
22 !+ ( )
23 !+ ( 0 I )
24 !+ PRIME PRIME PRIME
25 !+ ( I -D12 ) ( X1 ) ( X1 - D12 X2 )
26 !+ -1 PRIME ( ) ( ) ( )
27 !+ U X = ( ) ( ) = ( )
28 !+ ( ) ( PRIME ) ( )
29 !+ ( 0 I ) ( X2 ) ( X2 )
30 !
31 !history J.M. HERVOUET (LNH)
32 !+ 23/12/94
33 !+ V5P1
34 !+
35 !
36 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
37 !+ 13/07/2010
38 !+ V6P0
39 !+ Translation of French comments within the FORTRAN sources into
40 !+ English comments
41 !
42 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
43 !+ 21/08/2010
44 !+ V6P0
45 !+ Creation of DOXYGEN tags for automated documentation and
46 !+ cross-referencing of the FORTRAN sources
47 !
48 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
49 !| D |<--| BLOCK OF DIAGONAL MATRICES
50 !| S |-->| 2 : BLOCK WITH 4 MATRICES
51 !| | | 3 : BLOCK WITH 9 MATRICES
52 !| X |<->| X AND X' (IN SITU TRANSFORMATION)
53 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54 !
55  USE bief, ex_um1x => um1x
56 !
58  IMPLICIT NONE
59 !
60 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
61 !
62 ! STRUCTURES OF VECTORS OR BLOCKS OF VECTORS
63 !
64  INTEGER, INTENT(IN) :: S
65  TYPE(bief_obj), INTENT(INOUT) :: X
66  TYPE(bief_obj), INTENT(IN) :: D
67 !
68 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
69 !
70 ! BLOCKS OF 4 MATRICES:
71 !
72  IF(s.EQ.2) THEN
73 !
74 ! BLOCKS OF 4 MATRICES:
75 !
76  CALL um1x04(x%ADR(1)%P,x%ADR(2)%P,d%ADR(3)%P)
77 !
78  ELSEIF(s.EQ.3) THEN
79 !
80 ! BLOCKS OF 9 MATRICES:
81 !
82  CALL um1x09(x%ADR(1)%P,x%ADR(2)%P,x%ADR(3)%P,
83  & d%ADR(4)%P,d%ADR(5)%P,d%ADR(7)%P)
84 !
85  ELSE
86 !
87 !-----------------------------------------------------------------------
88 !
89 ! ERROR
90 !
91  WRITE(lu,200) s
92 200 FORMAT(1x,'UM1X (BIEF) : UNEXPECTED S :',1i6)
93  CALL plante(1)
94  stop
95 !
96  ENDIF
97 !
98 !-----------------------------------------------------------------------
99 ! -1
100  RETURN
101  END
subroutine um1x(X, D, S)
Definition: um1x.f:7
subroutine um1x09(X1, X2, X3, D12, D13, D23)
Definition: um1x09.f:7
subroutine um1x04(X1, X2, D12)
Definition: um1x04.f:7
Definition: bief.f:3