The TELEMAC-MASCARET system  trunk
declarations_postel3d.f
Go to the documentation of this file.
1 ! ******************************
3 ! ******************************
4 !
5 !***********************************************************************
6 ! POSTEL3D VERSION 6.0
7 !***********************************************************************
8 !=======================================================================
9 ! Telemac-3D best version number
10 ! fortran95 version march 1999 Jacek A. Jankowski pinxit
11 !=======================================================================
12 !
13 ! declaration of the global data structure in Telemac-3D
14 !
15  USE bief_def
16 !
17 ! note: this module is organised in 10 parts
18 !
19 ! (1) vectors (will be declared as bief_obj structures)
20 ! (2) matrices (will be declared as bief_obj structures)
21 ! (3) blocks (will be declared as bief_obj structures)
22 ! (4) integers
23 ! (5) logical values
24 ! (6) reals
25 ! (7) strings
26 ! (8) slvcfg structures
27 ! (9) mesh structure
28 ! (10) aliases
29 !
30 !-----------------------------------------------------------------------
31 ! (1) vectors (real and integer)
32 !-----------------------------------------------------------------------
33 !
34 ! 3D velocity components
35 !
36  TYPE(bief_obj), TARGET :: u, v, w
37 !
38 !-----------------------------------------------------------------------
39 ! (2) matrices
40 !-----------------------------------------------------------------------
41 ! none
42 !-----------------------------------------------------------------------
43 ! (3) blocks
44 !-----------------------------------------------------------------------
45 !
46 !
47  TYPE(bief_obj), TARGET :: tab
48 !
49 !
50 ! 2D output compatibility - output variables organised in blocks
51 !th pour bientot, avec le nouveau format
52 !th type(bief_obj), target :: varsor, varcl
53 !
54 !-----------------------------------------------------------------------
55 ! (4) integers
56 !-----------------------------------------------------------------------
57 ! key words and parameters
58 !
59 ! maximum de variables de sortie
60  INTEGER, PARAMETER :: maxvar = 100
61 !
62 ! previous common mitint: integer steering parameters
63 !
64  INTEGER nplan , ntrac , ntrpa , nvar(2), nva3
65  INTEGER nr3d , nenre
66 !
67  INTEGER ielm3, ielm2h, ielm2v
68  INTEGER ielm0, ielmh, ielmu, ielm1, ielmx
69  INTEGER sorg3d
70  INTEGER im,jm,nplint
72  INTEGER nplref(9),nseg(9)
73 !
74 ! nombre max de coupes
75  INTEGER, PARAMETER :: maxcou = 9
76 ! nombre max de points pour les coupes verticales
77  INTEGER, PARAMETER :: maxpts = 50
78 
79 !
80 !-----------------------------------------------------------------------
81 ! (5) logical values
82 !-----------------------------------------------------------------------
83 !
84  LOGICAL sigmag
85  LOGICAL spheri
86  LOGICAL varsub
87 !
88 !-----------------------------------------------------------------------
89 ! (6) reals
90 !-----------------------------------------------------------------------
91 !
92 ! previous common mitrea, real steering parameters plus new ones
93 !
94  DOUBLE PRECISION hmin, cotint
95 !
96 !th a voir si on met le parametre
97 !th en dur pour l'instant
98 ! double precision href(maxcou),distor(maxcou)
99 ! double precision x2dv(maxpts,maxcou),y2dv(maxpts,maxcou)
100  DOUBLE PRECISION href(9),distor(9)
101 !th double precision zstar(5)
102  DOUBLE PRECISION x2dv(50,9),y2dv(50,9)
103 !
104 !-----------------------------------------------------------------------
105 ! (7) strings
106 !-----------------------------------------------------------------------
107 !
108 !
109 !
110  CHARACTER(LEN=72) titcas, sort3d, sort2d, varimp
111 !
112  CHARACTER(LEN=20) equa
113  CHARACTER(LEN=32) varcla(10), texte(maxvar), textpr(maxvar)
114  CHARACTER(LEN=32) textlu(100)
115 !
116 !
117 !-----------------------------------------------------------------------
118 ! (8) slvcfg structures
119 !-----------------------------------------------------------------------
120 ! none
121 !-----------------------------------------------------------------------
122 ! (9) mesh structure(s)
123 !-----------------------------------------------------------------------
124 ! two separate meshes, 2D as usual and 3D with sigma-mesh specific
125 ! features, see almesh.f
126 !
127  TYPE(bief_mesh) :: mesh2d, mesh3d
128 !
129 !-----------------------------------------------------------------------
130 ! (10) aliases
131 !-----------------------------------------------------------------------
132 ! declaration of pointers for aliases
133 ! targets are allocated and pointed to in POINT_POSTEL3D.
134 !
135 ! useful pointers for often used components in 2d and 3D mesh structures
136 !
137 ! x,y,z node coordinates: base mesh and 3D sigma mesh
138 !
139  TYPE(bief_obj), POINTER :: x2, y2, z2, x3, y3, z3
140 !
141 !th surement plein de choses a virer
142 !th
143  TYPE(bief_obj), POINTER :: xnebor2, ynebor2
144  TYPE(bief_obj), POINTER :: xnebor3, ynebor3, znebor3
145 !
146 ! 2D and 3D lateral boundary normal vectors defined
147 ! per boundary segment (2D) or boundary element (3D)
148 !
149  TYPE(bief_obj), POINTER :: xsgbor2, ysgbor2
150  TYPE(bief_obj), POINTER :: xsgbor3, ysgbor3, zsgbor3
151 !
152 ! connectivity tables 2D and 3D
153 ! (element number and local node number) --> global node number
154 !
155  TYPE(bief_obj), POINTER :: ikle2, ikle3
156 !
157 ! tables connecting (node boundary number) --> global node number
158 !
159  TYPE(bief_obj), POINTER :: nbor2, nbor3
160 !
161 ! real field pointers for node coordinates
162 !
163  DOUBLE PRECISION, DIMENSION(:), POINTER :: x,y,z
164  ! COORDINATES OFFSET
165  INTEGER x_orig,y_orig
166 !
167 ! a number of extremely useful integers describing the mesh structure
168 ! see almesh.f and point_telemac3d.f
169 !
170  INTEGER, POINTER :: nelem2, nelem3
171 !
172  INTEGER, POINTER :: nelmax2
173  INTEGER, POINTER :: nelmax3 ! PREVIOUSLY NELMA3
174 !
175  INTEGER, POINTER :: nptfr2 ! PREVIOUSLY SIMPLY NPTFR
176  INTEGER, POINTER :: nptfr3
177  INTEGER, POINTER :: neleb, nelebx
178 !
179  INTEGER, POINTER :: nptfrx2, nptfrx3
180  INTEGER, POINTER :: dim2, dim3
181  INTEGER, POINTER :: typelm2, typelm3
182  INTEGER, POINTER :: npoin2, npoin3
183  INTEGER, POINTER :: npmax2, npmax3
184  INTEGER, POINTER :: mxptvs2, mxptvs3
185  INTEGER, POINTER :: mxelvs2, mxelvs3
186 !
187 ! NEW FILE FORMATS
188 !
189  TYPE(bief_file) :: pos_files(100)
191 !
192 !-----------------------------------------------------------------------
193 !
194  SAVE
195 !
196  END MODULE declarations_postel3d
double precision, dimension(:), pointer x
type(bief_obj), pointer y3
type(bief_obj), pointer xnebor2
type(bief_obj), pointer ynebor2
integer, dimension(9) nplref
type(bief_obj), pointer xsgbor2
type(bief_obj), target w
double precision, dimension(9) href
double precision, dimension(:), pointer y
character(len=32), dimension(maxvar) textpr
type(bief_obj), target u
type(bief_obj), pointer ynebor3
type(bief_file), dimension(100) pos_files
character(len=32), dimension(maxvar) texte
integer, dimension(9) nseg
integer, parameter maxcou
type(bief_obj), pointer y2
type(bief_obj), pointer z3
double precision, dimension(50, 9) x2dv
type(bief_obj), pointer ikle3
type(bief_obj), target tab
character(len=32), dimension(10) varcla
type(bief_obj), pointer xsgbor3
type(bief_obj), pointer nbor2
type(bief_obj), pointer x3
character(len=32), dimension(100) textlu
double precision, dimension(:), pointer z
type(bief_obj), pointer ikle2
type(bief_obj), pointer ysgbor2
integer, parameter maxvar
type(bief_obj), pointer x2
integer, dimension(2) nvar
type(bief_obj), pointer xnebor3
type(bief_obj), target v
type(bief_obj), pointer zsgbor3
type(bief_obj), pointer znebor3
type(bief_obj), pointer nbor3
type(bief_obj), pointer ysgbor3
integer, parameter maxpts
type(bief_obj), pointer z2
double precision, dimension(50, 9) y2dv
double precision, dimension(9) distor