The TELEMAC-MASCARET system  trunk
decvrt.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE decvrt
3 ! *****************
4 !
5  &(teta,sl,zf,mesh)
6 !
7 !***********************************************************************
8 ! BIEF V6P1 21/08/2010
9 !***********************************************************************
10 !
11 !brief IDENTIFIES TIDAL FLATS.
12 !+
13 !+ DRYING ELEMENT : TETA = 0,
14 !+
15 !+ NORMAL ELEMENT : TETA = 1.
16 !+
17 !+ THE CRITERION FOR DRYING ELEMENTS IS THAT OF
18 !+ J.-M. JANIN : BOTTOM ELEVATION OF A POINT IN AN
19 !+ ELEMENT BEING HIGHER THAN THE FREE SURFACE
20 !+ ELEVATION OF ANOTHER.
21 !
22 !history J-M HERVOUET (LNH)
23 !+ 09/12/94
24 !+ V5P1
25 !+
26 !
27 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
28 !+ 13/07/2010
29 !+ V6P0
30 !+ Translation of French comments within the FORTRAN sources into
31 !+ English comments
32 !
33 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
34 !+ 21/08/2010
35 !+ V6P0
36 !+ Creation of DOXYGEN tags for automated documentation and
37 !+ cross-referencing of the FORTRAN sources
38 !
39 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40 !| MESH |-->| MESH STRUCTURE
41 !| SL |-->| FREE SURFACE
42 !| TETA |<--| STATES IF AN ELEMENT IS DRY OR NOT
43 !| ZF |-->| BOTTOM ELEVATION
44 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45 !
46  USE bief, ex_decvrt => decvrt
47 !
49  IMPLICIT NONE
50 !
51 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
52 !
53  TYPE(bief_obj) , INTENT(INOUT) :: TETA
54  TYPE(bief_obj) , INTENT(IN) :: SL,ZF
55  TYPE(bief_mesh), INTENT(IN) :: MESH
56 !
57 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
58 !
59  INTEGER NELEM,NELMAX,IELMS,IELMZ
60 !
61 !-----------------------------------------------------------------------
62 !
63  ielms=sl%ELM
64  ielmz=zf%ELM
65 !
66 !-----------------------------------------------------------------------
67 !
68 ! DEPLOYS THE MESH STRUCTURE
69 !
70  nelem = mesh%NELEM
71  nelmax= mesh%NELMAX
72 !
73 !-----------------------------------------------------------------------
74 !
75  IF(ielms.EQ.11.AND.ielmz.EQ.11) THEN
76 !
77  CALL decv11(teta%R,sl%R,zf%R,mesh%IKLE%I,nelem,nelmax)
78 !
79  ELSEIF((ielms.EQ.21.AND.ielmz.EQ.21).OR.
80  & (ielms.EQ.12.AND.ielmz.EQ.12) ) THEN
81 !
82  CALL decv21(teta%R,sl%R,zf%R,mesh%IKLE%I,nelem,nelmax)
83 !
84  ELSE
85 !
86  WRITE(lu,11) ielms,ielmz
87 11 FORMAT(1x,'DECVRT : DISCRETIZATION NOT IMPLEMENTED:',i6,' ',i6)
88  CALL plante(1)
89  stop
90 !
91  ENDIF
92 !
93 !-----------------------------------------------------------------------
94 !
95  RETURN
96  END
subroutine decv21(TETA, SL, ZF, IKLE, NELEM, NELMAX)
Definition: decv21.f:7
subroutine decv11(TETA, SL, ZF, IKLE, NELEM, NELMAX)
Definition: decv11.f:7
double precision function sl(I, N)
Definition: sl.f:7
subroutine decvrt(TETA, SL, ZF, MESH)
Definition: decvrt.f:7
Definition: bief.f:3