The TELEMAC-MASCARET system  trunk
decv11.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE decv11
3 ! *****************
4 !
5  &(teta,sl,zf,ikle,nelem,nelmax)
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 !history J-M HERVOUET (LNHE)
40 !+ 12/06/2012
41 !+ V6P2
42 !+ Optimisation
43 !
44 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45 !| IKLE |-->| CONNECTIVITY TABLE
46 !| NELEM |-->| NUMBER OF ELEMENTS IN THE MESH
47 !| NELMAX |-->| MAXIMUM NUMBER OF ELEMENTS IN THE MESH
48 !| SL |-->| FREE SURFACE
49 !| TETA |<--| STATES IF AN ELEMENT IS DRY OR NOT
50 !| ZF |-->| BOTTOM ELEVATION
51 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 !
54  IMPLICIT NONE
55 !
56 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
57 !
58  INTEGER , INTENT(IN) :: NELEM,NELMAX
59  INTEGER , INTENT(IN) :: IKLE(nelmax,*)
60  DOUBLE PRECISION, INTENT(OUT) :: TETA(nelem)
61  DOUBLE PRECISION, INTENT(IN) :: SL(*),ZF(*)
62 !
63 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
64 !
65  INTEGER IELEM
66 !
67  DOUBLE PRECISION SL1,SL2,SL3,ZF1,ZF2,ZF3
68 !
69  INTRINSIC max,min
70 !
71 !-----------------------------------------------------------------------
72 !
73  DO ielem = 1 , nelem
74 !
75  sl1 = sl(ikle(ielem,1))
76  sl2 = sl(ikle(ielem,2))
77  sl3 = sl(ikle(ielem,3))
78 !
79  zf1 = zf(ikle(ielem,1))
80  zf2 = zf(ikle(ielem,2))
81  zf3 = zf(ikle(ielem,3))
82 !
83  IF(max(zf1,zf2,zf3).GT.min(sl1,sl2,sl3)) THEN
84  teta(ielem) = 0.d0
85  ELSE
86  teta(ielem) = 1.d0
87  ENDIF
88 !
89  ENDDO
90 !
91 !-----------------------------------------------------------------------
92 !
93  RETURN
94  END
subroutine decv11(TETA, SL, ZF, IKLE, NELEM, NELMAX)
Definition: decv11.f:7
double precision function sl(I, N)
Definition: sl.f:7