The TELEMAC-MASCARET system  trunk
point_postel3d.f
Go to the documentation of this file.
1 ! *************************
2  SUBROUTINE point_postel3d
3 ! *************************
4 !
5 !***********************************************************************
6 ! POSTEL3D VERSION 5.1 01/09/99 T. DENOT (LNH) 01 30 87 74 89
7 ! FORTRAN90
8 !
9 !history Y AUDOUIN (LNHE)
10 !+ 25/05/2015
11 !+ V7P0
12 !+ Modification to comply with the hermes module
13 !
14 !***********************************************************************
15 !
16  USE bief
19 !
21  IMPLICIT NONE
22 !
23 !
24 !***********************************************************************
25 !
26  INTEGER CFG(2),NGEO
27  ngeo=pos_files(posgeo)%LU
28 !
29 !-----------------------------------------------------------------------
30 !
31  WRITE(lu,21)
32  21 FORMAT(1x,/,1x,'POINT_TELEMAC3D: MEMORY ALLOCATION',/)
33 !
34 !-----------------------------------------------------------------------
35 ! discretisation types are declared here
36 !
37  ielm0 = 10*(ielmh/10) ! FOR TELEMAC2D
38  ielm1 = ielm0 + 1 ! FOR TELEMAC2D
39 !
40 ! Telemac3D discretisation types: 3D, 2D horizontal boundary,
41 ! 2D vertical boundary
42 !
43  ielm3 = 41 ! TELEMAC3D PRISMS
44  ielm2h = 11 ! PRISM TRIANGULAR BOTTOM AND SURFACE
45  ielm2v = 21 ! PRISM QUADRILATERAL LATERAL BOUNDARIES
46 !
47  ielmx=max(ielmu,ielm2h,ielmh) ! IT WILL BE MAX. DISCR. IN 2D
48 !
49  cfg(1) = 1
50  cfg(2) = 1
51 !
52 !=======================================================================
53 !
54 ! *********************
55 ! * MESH - GEOMETRY *
56 ! *********************
57 !
58 ! TWO meshes are allocated: (1) 2D base mesh, (2) 3D sigma-mesh
59 !
60 ! allocation of the 2D mesh structure for Telemac2D
61 ! discretisation ielmh given in lecdon
62 ! ielmx = ielmu if quasi-bubble element required, otherwise ielmh
63 !
64  equa = 'NO_EQUATION_IS_GIVEN'
65 !
66  CALL almesh(mesh2d,'MESH2D',ielmx,spheri,cfg,
67  & pos_files(posgeo)%FMT,ngeo,
68  & equa,0,nplan=1)
69 !
70 ! aliases for certain components of the 2D mesh structure
71 !
72  x2 => mesh2d%X
73  y2 => mesh2d%Y
74  z2 => mesh2d%Z
75  xnebor2 => mesh2d%XNEBOR
76  ynebor2 => mesh2d%YNEBOR
77  xsgbor2 => mesh2d%XSGBOR
78  ysgbor2 => mesh2d%YSGBOR
79  ikle2 => mesh2d%IKLE
80  nbor2 => mesh2d%NBOR ! PREV. SIMPLY NBOR
81 !
82 !
83  nelem2 => mesh2d%NELEM
84  nelmax2 => mesh2d%NELMAX ! PREVIOUSLY NELMA2 (ADAPTIVITY OUTLOOK)
85  nptfr2 => mesh2d%NPTFR ! PREVIOUSLY SIMPLY NPTFR
86  nptfrx2 => mesh2d%NPTFRX
87  dim2 => mesh2d%DIM1
88  typelm2 => mesh2d%TYPELM
89  npoin2 => mesh2d%NPOIN
90  npmax2 => mesh2d%NPMAX
91  mxptvs2 => mesh2d%MXPTVS
92  mxelvs2 => mesh2d%MXELVS
93 !
94 !-----------------------------------------------------------------------
95 ! ALLOCATION OF THE 3D MESH STRUCTURE (EQUA=EMPTY) (READ AGAIN?)
96 !
97  equa = 'NO_EQUATION_IS_GIVEN'
98 !
99  CALL almesh(mesh3d,'MESH3D',ielm3,spheri,cfg,
100  & pos_files(posgeo)%FMT,ngeo,
101  & equa,0,nplan=nplan)
102 !
103 ! alias for certain components of the 3D mesh structure
104 ! they are defined in declarations
105 !
106  x => mesh3d%X%R ! REAL VALUE!!!
107  y => mesh3d%Y%R
108  z => mesh3d%Z%R
109  x3 => mesh3d%X ! POINTERS
110  y3 => mesh3d%Y
111  z3 => mesh3d%Z
112  xnebor3 => mesh3d%XNEBOR
113  ynebor3 => mesh3d%YNEBOR
114  znebor3 => mesh3d%ZNEBOR
115  xsgbor3 => mesh3d%XSGBOR
116  ysgbor3 => mesh3d%YSGBOR
117  zsgbor3 => mesh3d%ZSGBOR
118  ikle3 => mesh3d%IKLE
119  nbor3 => mesh3d%NBOR
120 !
121  nelem3 => mesh3d%NELEM
122  nelmax3 => mesh3d%NELMAX ! PREVIOUSLY NELMA3 (ADAPTIVITY?)
123  neleb => mesh3d%NELEB
124  nelebx => mesh3d%NELEBX
125  nptfr3 => mesh3d%NPTFR
126  nptfrx3 => mesh3d%NPTFRX
127  dim3 => mesh3d%DIM1
128  typelm3 => mesh3d%TYPELM
129  npoin3 => mesh3d%NPOIN
130  npmax3 => mesh3d%NPMAX
131  mxptvs3 => mesh3d%MXPTVS
132  mxelvs3 => mesh3d%MXELVS
133 !
134 !
135  WRITE(lu,32)
138 !
139  32 FORMAT(/,' 2D MESH',/,
140  & ' -------',//,
141  & ' 2D ELEMENT TYPE : ',i8,/,
142  & ' NUMBER OF 2D NODES : ',i8,/,
143  & ' NUMBER OF 2D ELEMENTS : ',i8,/,
144  & ' NUMBER OF 2D BOUNDARY NODES : ',i8,///,
145  & ' 3D MESH',/,
146  & ' -------',//,
147  & ' 3D ELEMENT TYPE : ',i8,/,
148  & ' NUMBER OF 3D NODES : ',i8,/,
149  & ' NUMBER OF 3D ELEMENTS : ',i8,/,
150  & ' NUMBER OF LEVELS : ',i8,/,
151  & ' NUMBER OF BOUNDARY ELEMENTS : ',i8,/,
152  & ' TOTAL NUMBER OF BOUNDARY NODES : ',i8,/,
153  & ' INCLUDING LATERAL BOUNDARIES : ',i8,/,
154  & ' SURFACE : ',i8,/,
155  & ' BOTTOM : ',i8,/)
156 !
157 !
158 ! DEFINITION DES POINTEURS
159 !
160  CALL bief_allvec(1, u, 'U ', ielm3, 1,1,mesh3d)
161  CALL bief_allvec(1, v, 'V ', ielm3, 1,1,mesh3d)
162  CALL bief_allvec(1, w, 'W ', ielm3, 1,1,mesh3d)
163 !
164  CALL allblo(tab,'TAB ')
165  IF (nva3.GT.4) THEN
166  CALL bief_allvec_in_block(tab,nva3-4,1,'TAB ',ielm3,
167  & 1,1,mesh3d)
168  ENDIF
169 !
170 !=======================================================================
171 !
172 ! IMPRESSIONS :
173 !
174  WRITE(lu,23)
175 23 FORMAT(1x,///,21x,'*************************************',/,
176  &21x, '* END OF MEMORY ORGANIZATION: *',/,
177  &21x, '*************************************',/)
178 !
179 !-----------------------------------------------------------------------
180 !
181  RETURN
182  END
double precision, dimension(:), pointer x
type(bief_obj), pointer y3
type(bief_obj), pointer xnebor2
type(bief_obj), pointer ynebor2
type(bief_obj), pointer xsgbor2
type(bief_obj), target w
double precision, dimension(:), pointer y
subroutine allblo(BLO, NOM)
Definition: allblo.f:7
type(bief_obj), target u
type(bief_obj), pointer ynebor3
type(bief_file), dimension(100) pos_files
subroutine bief_allvec(NAT, VEC, NOM, IELM, DIM2, STATUT, MESH)
Definition: bief_allvec.f:7
subroutine bief_allvec_in_block(BLO, N, NAT, NOMGEN, IELM, NDIM, STATUT, MESH)
type(bief_obj), pointer y2
type(bief_obj), pointer z3
type(bief_obj), pointer ikle3
type(bief_obj), target tab
type(bief_obj), pointer xsgbor3
type(bief_obj), pointer nbor2
type(bief_obj), pointer x3
double precision, dimension(:), pointer z
type(bief_obj), pointer ikle2
type(bief_obj), pointer ysgbor2
type(bief_obj), pointer x2
type(bief_obj), pointer xnebor3
type(bief_obj), target v
type(bief_obj), pointer zsgbor3
subroutine point_postel3d
Definition: point_postel3d.f:4
subroutine almesh(MESH, NOM, IELM, SPHERI, CFG, FFORMAT, NFIC, EQUA, REFINE, NPLAN, NPMAX, NPTFRX, NELMAX, PROJECTION, LATI0, LONGI0, CONVERGENCE, RLEVEL)
Definition: almesh.f:8
type(bief_obj), pointer znebor3
type(bief_obj), pointer nbor3
type(bief_obj), pointer ysgbor3
type(bief_obj), pointer z2
Definition: bief.f:3