The TELEMAC-MASCARET system  trunk
chgdis.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE chgdis
3 ! *****************
4 !
5  &(x,oldelt,newelt,mesh)
6 !
7 !***********************************************************************
8 ! BIEF V6P1 16/03/2011
9 !***********************************************************************
10 !
11 !brief CHANGES THE DISCRETISATION OF A VECTOR.
12 !
13 !history J-M HERVOUET (LNH)
14 !+ 13/02/2008
15 !+ V5P9
16 !+
17 !
18 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
19 !+ 13/07/2010
20 !+ V6P0
21 !+ Translation of French comments within the FORTRAN sources into
22 !+ English comments
23 !
24 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
25 !+ 21/08/2010
26 !+ V6P0
27 !+ Creation of DOXYGEN tags for automated documentation and
28 !+ cross-referencing of the FORTRAN sources
29 !
30 !history J-M HERVOUET (LNHE)
31 !+ 16/03/2011
32 !+ V6P1
33 !+ SEQUENCE: X%DIM1 = NEWDIM1
34 !+ X%ELM = NEWELT
35 !+ MOVED AT THE END, CHGDIS MAY BE CALLED WITH X%ELM BEING OLDELT
36 !+ THEN IT MAKES OLDELT=NEWELT WHEREAS OLDELT WAS INTENT(IN) AND
37 !+ SHOULD NOT BE CHANGED BEFORE TESTS ON IT.
38 !
39 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40 !| MESH |-->| MESH STRUCTURE
41 !| NEWELT |-->| NEW TYPE FOR X
42 !| OLDELT |-->| OLD TYPE OF X
43 !| X |<--| VECTOR TO BE MODIFIED
44 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45 !
46  USE bief, ex_chgdis => chgdis
47 !
49  IMPLICIT NONE
50 !
51 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
52 !
53  TYPE(bief_obj), INTENT(INOUT) :: X
54  INTEGER, INTENT(IN) :: NEWELT
55  INTEGER, INTENT(INOUT) :: OLDELT
56  TYPE(bief_mesh), INTENT(IN) :: MESH
57 !
58 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
59 !
60  INTEGER NEWDIM1
61 !
62 !-----------------------------------------------------------------------
63 !
64  newdim1 = bief_nbpts(newelt,mesh)
65 !
66  IF(newdim1.GT.x%MAXDIM1) THEN
67  WRITE(lu,201) x%NAME
68 201 FORMAT(1x,'CHGDIS (BIEF) : EXTENSION IMPOSSIBLE FOR ',a6)
69  CALL plante(1)
70  stop
71  ENDIF
72 !
73 !-----------------------------------------------------------------------
74 !
75  IF(oldelt.EQ.11.AND.newelt.EQ.12) THEN
76 !
77  CALL cg1112(x%R,newdim1,x%DIM2,
78  & mesh%IKLE%I,mesh%NELEM,mesh%NELMAX)
79 !
80  ELSEIF(oldelt.EQ.11.AND.newelt.EQ.13) THEN
81 !
82  CALL cg1113(x%R,newdim1,x%DIM2,
83  & mesh%IKLE%I,mesh%NELEM,mesh%NELMAX)
84 !
85  ELSEIF((oldelt.EQ.12.OR.oldelt.EQ.13).AND.newelt.EQ.11) THEN
86 !
87 ! DOES NOTHING (QUASI-BUBBLE OR QUADRATIC VALUES JUST LOST)
88 !
89  ELSE
90 !
91  WRITE(lu,11) oldelt,newelt
92 11 FORMAT(1x,'CHGDIS: CASE NOT IMPLEMENTED:',i6,' ',i6)
93  WRITE(lu,*) 'STRUCTURE X = ',x%NAME
94  CALL plante(1)
95  stop
96 !
97  ENDIF
98 !
99  x%DIM1 = newdim1
100 ! THIS MAY BE A HIDDEN MODIFICATION OF OLDELT, IF X%ELM IS SENT AS
101 ! OLDELT, HENCE THE INTENT(INOUT) FOR OLDELT.
102  x%ELM = newelt
103 !
104 !-----------------------------------------------------------------------
105 !
106  RETURN
107  END
integer function bief_nbpts(IELM, MESH)
Definition: bief_nbpts.f:7
subroutine chgdis(X, OLDELT, NEWELT, MESH)
Definition: chgdis.f:7
subroutine cg1112(X, DIM1, DIM2, IKLE, NELEM, NELMAX)
Definition: cg1112.f:7
Definition: bief.f:3
subroutine cg1113(X, DIM1, DIM2, IKLE, NELEM, NELMAX)
Definition: cg1113.f:7