The TELEMAC-MASCARET system  trunk
ksupg.f
Go to the documentation of this file.
1 ! ****************
2  SUBROUTINE ksupg
3 ! ****************
4 !
5  &(kx,ky,xmul,u,v,mesh)
6 !
7 !***********************************************************************
8 ! BIEF V6P1 21/08/2010
9 !***********************************************************************
10 !
11 !brief COMPUTES A VECTOR, USED BY THE METHOD:
12 !+ STREAMLINE UPWIND PETROV GALERKIN (SUPG)
13 !+ WITH AN OFF-CENTERING OF 1.
14 !code
15 !+ DX U
16 !+ KX = -----------
17 !+ 2 NORM(U)
18 !+
19 !+ DY V
20 !+ KY = -----------
21 !+ 2 NORM(U)
22 !
23 !history J-M HERVOUET (LNH)
24 !+ 08/12/94
25 !+ V5P6
26 !+
27 !
28 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
29 !+ 13/07/2010
30 !+ V6P0
31 !+ Translation of French comments within the FORTRAN sources into
32 !+ English comments
33 !
34 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
35 !+ 21/08/2010
36 !+ V6P0
37 !+ Creation of DOXYGEN tags for automated documentation and
38 !+ cross-referencing of the FORTRAN sources
39 !
40 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
41 !| KX |-->| FIRST COMPONENT OF RESULTING VECTOR
42 !| KY |-->| SECOND COMPONENT OF RESULTING VECTOR
43 !| MESH |-->| MESH STRUCTURE
44 !| U |-->| FIRST COMPONENT OF VELOCITY
45 !| V |-->| SECOND COMPONENT OF VELOCITY
46 !| XMUL |-->| MULTIPLICATION COEFICIENT
47 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
48 !
49  USE bief, ex_ksupg => ksupg
50 !
52  IMPLICIT NONE
53 !
54  TYPE(bief_mesh), INTENT(IN) :: MESH
55 !
56  TYPE(bief_obj), INTENT(INOUT) :: KX,KY
57  TYPE(bief_obj), INTENT(IN) :: U,V
58 !
59  DOUBLE PRECISION, INTENT(IN) :: XMUL
60 !
61 !-----------------------------------------------------------------------
62 !
63  IF(u%ELM.EQ.11.OR.u%ELM.EQ.12.OR.u%ELM.EQ.13) THEN
64 !
65  CALL kspg11(kx%R,ky%R,mesh%XEL%R,mesh%YEL%R,u%R,v%R,
66  & mesh%IKLE%I,mesh%NELEM,mesh%NELMAX,xmul)
67 !
68 ! ELEMENT NOT IMPLEMENTED: ERROR
69 !
70  ELSE
71  WRITE(lu,101) u%ELM
72 101 FORMAT(1x,'KSUPG (BIEF): U%ELM = ',1i6,' ELEMENT NOT AVAILABLE')
73  CALL plante(1)
74  stop
75  ENDIF
76 !
77 !-----------------------------------------------------------------------
78 !
79  RETURN
80  END
subroutine kspg11(KX, KY, XEL, YEL, U, V, IKLE, NELEM, NELMAX, XMUL)
Definition: kspg11.f:7
subroutine ksupg(KX, KY, XMUL, U, V, MESH)
Definition: ksupg.f:7
Definition: bief.f:3