The TELEMAC-MASCARET system  trunk
corrsl.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE corrsl
3 ! *****************
4 !
5  &(newsl,oldsl,zf,mesh)
6 !
7 !***********************************************************************
8 ! BIEF V7P0 21/08/2010
9 !***********************************************************************
10 !
11 !brief CORRECTS THE FREE SURFACE COMPUTATION BY ELEMENTS
12 !+ TO TAKE ACCOUNT OF THE TIDAL FLATS.
13 !
14 !history J-M JANIN (LNH) ; J-M HERVOUET (LNH)
15 !+ 27/11/92
16 !+ V5P1
17 !+
18 !
19 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
20 !+ 13/07/2010
21 !+ V6P0
22 !+ Translation of French comments within the FORTRAN sources into
23 !+ English comments
24 !
25 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
26 !+ 21/08/2010
27 !+ V6P0
28 !+ Creation of DOXYGEN tags for automated documentation and
29 !+ cross-referencing of the FORTRAN sources
30 !
31 !history J-M HERVOUET (EDF LAB, LNHE)
32 !+ 12/05/2014
33 !+ V7P0
34 !+ Discontinuous elements better treated: new types 15, 16 and 17 for
35 !+ discontinuous linear, quasi-bubble, and quadratic, rather than
36 !+ using component DIMDISC=11, 12 or 13.
37 !
38 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
39 !| MESH |-->| MESH STRUCTURE
40 !| NEWSL |<->| MODIFIED FREE SURFACE, GIVEN PER ELEMENT
41 !| OLDSL |-->| ORIGINAL FREE SURFACE
42 !| ZF |-->| BATHYMETRY
43 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44 !
45  USE bief, ex_corrsl => corrsl
46 !
48  IMPLICIT NONE
49 !
50 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
51 !
52  TYPE(bief_obj) , INTENT(INOUT) :: NEWSL
53  TYPE(bief_obj) , INTENT(IN) :: OLDSL,ZF
54  TYPE(bief_mesh), INTENT(IN) :: MESH
55 !
56 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
57 !
58  INTEGER NELEM,NELMAX,IELM
59 !
60 !-----------------------------------------------------------------------
61 !
62  nelem = mesh%NELEM
63  nelmax= mesh%NELMAX
64 !
65  ielm=oldsl%ELM
66 !
67 !-----------------------------------------------------------------------
68 !
69  IF(ielm.EQ.11) THEN
70 !
71  CALL crsl11(newsl%R,oldsl%R,zf%R,mesh%IKLE%I,nelem,nelmax)
72 !
73 !-----------------------------------------------------------------------
74 !
75  ELSEIF(ielm.EQ.12) THEN
76 !
77  CALL crsl12(newsl%R,oldsl%R,zf%R,mesh%IKLE%I,nelem,nelmax)
78 !
79 !-----------------------------------------------------------------------
80 !
81  ELSE
82 !
83  WRITE(lu,11) ielm
84 11 FORMAT(1x,'CORRSL: UNKNOWN DISCRETIZATION :',i6)
85  CALL plante(1)
86  stop
87 !
88  ENDIF
89 !
90 !-----------------------------------------------------------------------
91 !
92  RETURN
93  END
subroutine corrsl(NEWSL, OLDSL, ZF, MESH)
Definition: corrsl.f:7
subroutine crsl11(NEWSL, OLDSL, ZF, IKLE, NELEM, NELMAX)
Definition: crsl11.f:7
subroutine crsl12(NEWSL, OLDSL, ZF, IKLE, NELEM, NELMAX)
Definition: crsl12.f:7
Definition: bief.f:3