The TELEMAC-MASCARET system  trunk
point_telemac3d.f
Go to the documentation of this file.
1 ! **************************
2  SUBROUTINE point_telemac3d
3 ! **************************
4 !
5 !
6 !***********************************************************************
7 ! TELEMAC3D V8P2
8 !***********************************************************************
9 !
10 !brief ALLOCATES TELEMAC3D STRUCTURES.
11 !
12 !history JACEK A. JANKOWSKI PINXIT
13 !+ **/03/1999
14 !+
15 !+ FORTRAN 95 VERSION
16 !
17 !history J-M HERVOUET (LNHE)
18 !+ 19/10/2009
19 !+ V6P0
20 !+
21 !
22 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
23 !+ 13/07/2010
24 !+ V6P0
25 !+ Translation of French comments within the FORTRAN sources into
26 !+ English comments
27 !
28 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
29 !+ 21/08/2010
30 !+ V6P0
31 !+ Creation of DOXYGEN tags for automated documentation and
32 !+ cross-referencing of the FORTRAN sources
33 !
34 !history J-M HERVOUET (LNHE)
35 !+ 02/04/2012
36 !+ V6P2
37 !+ New variables for graphic printouts added, for a clean restart.
38 !
39 !history J-M HERVOUET (EDF R&D, LNHE)
40 !+ 18/06/2013
41 !+ V6P3
42 !+ Size of IT1,2,3,4 modified in case of weak characteristics.
43 !
44 !history C. VILLARET & T. BENSON & D. KELLY (HR-WALLINGFORD)
45 !+ 27/02/2014
46 !+ V7P0
47 !+ New developments in sediment merged on 25/02/2014.
48 !
49 !history J-M HERVOUET (EDF R&D, LNHE)
50 !+ 14/05/2014
51 !+ V7P0
52 !+ ZCONV and ZFLATS now declared as type 15, discontinuous linear.
53 !
54 !history G. ANTOINE (EDF LAB, LNHE)
55 !+ 19/09/2014
56 !+ V7P0
57 !+ Adding variables for mixed sediment, see IF(S3D_MIXTE).
58 !
59 !history J-M HERVOUET (EDF LAB, LNHE)
60 !+ 28/07/2015
61 !+ V7P1
62 !+ Adding aliases and 2D private arrays.
63 !
64 !history A. JOLY (EDF LAB, LNHE)
65 !+ 27/08/2015
66 !+ V7P1
67 !+ Imposed flowrates on the bed.
68 !
69 !history J-M HERVOUET (EDF LAB, LNHE)
70 !+ 24/03/2016
71 !+ V7P2
72 !+ Adding ZN.
73 !
74 !history J-M HERVOUET (EDF LAB, LNHE)
75 !+ 22/08/2016
76 !+ V7P2
77 !+ Adding TB2, a block of work arrays for the LIPS advection scheme.
78 !
79 !history C.-T. PHAM (EDF, LNHE)
80 !+ 01/03/2017
81 !+ V7P2
82 !+ Allowing k-epsilon model on a direction and not on the other.
83 !
84 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
85 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
86 !
87  USE bief
90  USE meteo_telemac !, ONLY: WINDX,WINDY,PATMOS,TAIR,POINT_METEO
92 !
94  IMPLICIT NONE
95 !
96 !-----------------------------------------------------------------------
97 !
98  INTEGER CFG(2),CFG2D(2),CFGMURD(2),CFGBOR2D(2),CFGMURD_TF(2)
99  INTEGER ITRAC,ITAB,IELM,IELV,IELH,STATUT,NTR,I,NSEG,SIZ,K
100  LOGICAL YESWEAK,YESLIPS
101  CHARACTER(LEN=1) TYPDIA, TYPEXT
102 !
103 !-----------------------------------------------------------------------
104 !
105  IF(listin) THEN
106  WRITE(lu,21)
107  ENDIF
108  21 FORMAT(1x,/,1x,'POINT_TELEMAC3D: MEMORY ALLOCATION',/)
109 !
110 !-----------------------------------------------------------------------
111 !
112 ! WILL THERE BE WEAK CHARACTERISTICS?
113 !
114  yesweak=.false.
115  IF(optcha.GT.1) THEN
116  IF(schcvi.EQ.adv_car) yesweak=.true.
117  IF(schcke.EQ.adv_car) yesweak=.true.
118  DO itrac=1,ntrac
119  IF(schcta(itrac).EQ.adv_car) yesweak=.true.
120  ENDDO
121  ENDIF
122 !
123 !-----------------------------------------------------------------------
124 !
125 ! WILL THERE BE A LIPS SCHEME?
126 !
127  yeslips=.false.
128 ! LOOKING AT VELOCITIES
129  IF((schcvi.EQ.adv_nsc.OR.schcvi.EQ.adv_psi).AND.
130  & optadv_vi.EQ.4) THEN
131  yeslips=.true.
132  ENDIF
133 ! LOOKING AT K-EPSILON
134  IF((schcke.EQ.adv_nsc.OR.schcke.EQ.adv_psi).AND.
135  & optadv_ke.EQ.4) THEN
136  yeslips=.true.
137  ENDIF
138 ! LOOKING AT TRACERS
139  IF(ntrac.GT.0) THEN
140  DO itrac=1,ntrac
141  IF((schcta(itrac).EQ.adv_nsc.OR.schcta(itrac).EQ.adv_psi).AND.
142  & optadv_tr(itrac).EQ.4) THEN
143  yeslips=.true.
144  ENDIF
145  ENDDO
146  ENDIF
147 !
148 !-----------------------------------------------------------------------
149 ! DECLARES DISCRETISATION TYPES HERE
150 !
151  ielm0 = 10*(ielmh/10) ! FOR TELEMAC2D
152  ielm1 = ielbor(ielmh,1) ! BOUNDARY DISCRET. FOR TELEMAC2D
153 !
154 ! IELMU IS 12, WHEN QUASI-BUBBLE FREE SURFACE REQUIRED (IN LECDON)
155 ! IF NOT, IELMU=IELMH
156 !
157  ielmx=max(ielmu,ielm2h,ielmh) ! IT WILL BE MAX. DISCR. IN 2D
158 !
159 ! STORAGE TYPE AND MATRIX-VECTOR PRODUCT TYPE
160 !
161  cfg(1) = optass
162  cfg(2) = produc ! PRODUC=1 HARD IN LECDON
163  cfg2d(1) = optass2d
164  cfg2d(2) = produc ! PRODUC=1 HARD IN LECDON
165 ! MURD MATRIX WITH EDGE-BASED STORAGE FOR TIDAL FLATS
166  cfgmurd_tf(1)=3
167  cfgmurd_tf(2)=1
168 ! NORMAL MURD MATRIX WITH EBE STORAGE BECAUSE (SEE MURD3D.F) PSI
169 ! SCHEME IS DONE IN EBE STORAGE
170  cfgmurd(1)=1
171  cfgmurd(2)=1
172 !
173  cfgbor2d(1)=1
174  cfgbor2d(2)=1
175 !
176 !=======================================================================
177 !
178 ! *********************
179 ! * MESH - GEOMETRY *
180 ! *********************
181 !
182 ! TWO MESHES ARE ALLOCATED: (1) 2D BASE MESH, (2) 3D SIGMA-MESH
183 !
184 ! ALLOCATES THE 2D MESH STRUCTURE FOR TELEMAC2D
185 ! DISCRETISATION IELMH GIVEN IN LECDON
186 ! IELMX = IELMU IF QUASI-BUBBLE ELEMENT REQUIRED, OTHERWISE IELMH
187 !
188  equa = 'NO_EQUATION_IS_GIVEN'
189 !
190  CALL almesh(mesh2d,'MESH2D',ielmx,spheri,cfg2d,
191  & t3d_files(t3dgeo)%FMT,
192  & t3d_files(t3dgeo)%LU,equa,0,nplan=1,
193  & projection=protyp,lati0=latit,longi0=longit)
194  nseg=mesh2d%NSEG
195 !
196 ! ALIASES FOR CERTAIN COMPONENTS OF THE 2D MESH STRUCTURE
197 !
198  x2 => mesh2d%X
199  y2 => mesh2d%Y
200 !
201  surfa2 => mesh2d%SURFAC
202  xnebor2 => mesh2d%XNEBOR
203  ynebor2 => mesh2d%YNEBOR
204  xsgbor2 => mesh2d%XSGBOR
205  ysgbor2 => mesh2d%YSGBOR
206  ikle2 => mesh2d%IKLE
207  nbor2 => mesh2d%NBOR ! PREVIOUSLY SIMPLY NBOR
208 !
209  nelem2 => mesh2d%NELEM
210  nelmax2 => mesh2d%NELMAX ! PREVIOUSLY NELMA2 (ADAPTIVITY OUTLOOK)
211  nptfr2 => mesh2d%NPTFR ! PREVIOUSLY SIMPLY NPTFR
212  nptfrx2 => mesh2d%NPTFRX
213  dim2 => mesh2d%DIM1
214  typelm2 => mesh2d%TYPELM
215  npoin2 => mesh2d%NPOIN
216  npmax2 => mesh2d%NPMAX
217  mxptvs2 => mesh2d%MXPTVS
218  mxelvs2 => mesh2d%MXELVS
219  lv => mesh2d%LV ! MESH-CHECKED? 2D=3D FOR SIGMA MESH
220 !
221 !-----------------------------------------------------------------------
222 ! ALLOCATES THE 3D MESH STRUCTURE (EQUA=EMPTY) (READ AGAIN?)
223 !
224  equa = 'NO_EQUATION_IS_GIVEN'
225 !
226  CALL almesh(mesh3d,'MESH3D',ielm3,spheri,cfg,
227  & t3d_files(t3dgeo)%FMT,
228  & t3d_files(t3dgeo)%LU,equa,0,nplan=nplan,
229  & projection=protyp,lati0=latit,longi0=longit)
230 !
231 ! ALIAS FOR CERTAIN COMPONENTS OF THE 3D MESH STRUCTURE
232 ! THEY ARE DEFINED IN DECLARATIONS
233 !
234  x => mesh3d%X%R
235  y => mesh3d%Y%R
236  z => mesh3d%Z%R
237  x3 => mesh3d%X ! POINTERS
238  y3 => mesh3d%Y
239  z3 => mesh3d%Z
240  surfa3 => mesh3d%SURFAC
241  xsgbor3 => mesh3d%XSGBOR
242  ysgbor3 => mesh3d%YSGBOR
243  zsgbor3 => mesh3d%ZSGBOR
244  ikle3 => mesh3d%IKLE
245  nbor3 => mesh3d%NBOR
246 !
247  w1 => mesh3d%W
248 !
249  nelem3 => mesh3d%NELEM
250  nelmax3 => mesh3d%NELMAX ! PREVIOUSLY NELMA3 (ADAPTIVITY?)
251  neleb => mesh3d%NELEB
252  nelebx => mesh3d%NELEBX
253  nptfr3 => mesh3d%NPTFR
254  nptfrx3 => mesh3d%NPTFRX
255  dim3 => mesh3d%DIM1
256  typelm3 => mesh3d%TYPELM
257  npoin3 => mesh3d%NPOIN
258  npmax3 => mesh3d%NPMAX
259  mxptvs3 => mesh3d%MXPTVS
260  mxelvs3 => mesh3d%MXELVS
261 !
262 !-----------------------------------------------------------------------
263 ! VARIOUS MESH PARAMETER FIX
264 !
265  netage = nplan - 1
266 !
267 ! NUMBER OF ADVECTED VARIABLES (3 FOR VELOCITY, 2 FOR K-EPSILON
268 ! THEN TRACERS)
269  nvbil = 5 + ntrac
270 !
271  IF (listin) THEN
272  WRITE(lu,32)
275  ENDIF
276 !
277  32 FORMAT(/,' 2D MESH',/,
278  & ' -------',//,
279  & ' 2D ELEMENT TYPE : ',i8,/,
280  & ' NUMBER OF 2D NODES : ',i8,/,
281  & ' NUMBER OF 2D ELEMENTS : ',i8,/,
282  & ' NUMBER OF 2D BOUNDARY NODES : ',i8,///,
283  & ' 3D MESH',/,
284  & ' -------',//,
285  & ' 3D ELEMENT TYPE : ',i8,/,
286  & ' NUMBER OF 3D NODES : ',i8,/,
287  & ' NUMBER OF 3D ELEMENTS : ',i8,/,
288  & ' NUMBER OF LEVELS : ',i8,/,
289  & ' NUMBER OF BOUNDARY ELEMENTS : ',i8,/,
290  & ' TOTAL NUMBER OF BOUNDARY NODES : ',i8,/,
291  & ' INCLUDING LATERAL BOUNDARIES : ',i8,/,
292  & ' SURFACE : ',i8,/,
293  & ' BOTTOM : ',i8,/)
294 !
295 !-----------------------------------------------------------------------
296 ! FIELDS CONNECTED STRONGLY WITH GEOMETRY AND MESH
297 ! REAL
298 !
299  CALL bief_allvec(1, zprop, 'ZPROP ', ielm3 , 1, 1,mesh3d)
300 ! USED ONLY WITH SUPG ADVECTION
301  CALL bief_allvec(1, zt , 'ZT ', ielm3 , 1, 1,mesh3d)
302 ! USED ONLY WITH DISTRIBUTIVE SCHEMES WITH UPWIND OF DERIVATIVE
303 ! IN TIME
304  CALL bief_allvec(1, zn , 'ZN ', ielm3 , 1, 1,mesh3d)
305 !
306  CALL allblo(gradzf, 'GRADZF')
307 ! 23/11/2010 NOW GRADZF CONTAINS GRADIENTS OF ALL PLANES
308  CALL bief_allvec_in_block(gradzf,2,1,'GRAZF ',ielm3 ,1,1,mesh3d)
309 !
310  CALL allblo(gradzs, 'GRADZS')
311  CALL bief_allvec_in_block(gradzs,2,1,'GRAZS ',ielm2h,1,1,mesh2d)
312  CALL allblo(gradzn, 'GRADZN')
313  CALL bief_allvec_in_block(gradzn,2,1,'GRAZN ',ielm2h,1,1,mesh2d)
314 !
315  CALL bief_allvec(1, dssudt, 'DSSUDT', ielm2h, 1, 1,mesh2d)
316 !
317 ! DESCRIBES THE MESH ON THE VERTICAL
318 !
319  CALL bief_allvec(1, zstar , 'ZSTAR ' , nplan ,1,0,mesh3d)
320  CALL bief_allvec(1, zplane , 'ZPLANE' , nplan ,1,0,mesh3d)
321  CALL bief_allvec(1, zchar , 'ZCHAR ' , nplan ,1,0,mesh3d)
322  CALL bief_allvec(2, transf_plane, 'TRAPLA' , nplan ,1,0,mesh3d)
323 !
324 ! MESH AND GEOMETRY, INTEGERS
325 !
326  CALL bief_allvec(2,lihbor, 'LIHBOR', ielm1,1,1,mesh2d)
327  CALL bief_allvec(2,numliq, 'NUMLIQ', ielm2v,1,1,mesh3d)
328  CALL bief_allvec(2,numliq_elm, 'NLQELM',10*(ielm2v/10),1,1,mesh3d)
329  CALL bief_allvec(2,boundary_colour ,'BNDCOL',ielm1,1,1,mesh2d)
330  CALL bief_allvec(2,limpro, 'LIMPRO', ielm1,6,1,mesh2d)
331 !
332 ! OPEN BED BOUNDARIES VARIABLES
333 !
334  IF(bedbou)THEN
335  CALL bief_allvec(2,nliqbed, 'NLIQBE', ielm2h, 1, 1,mesh2d)
336  CALL bief_allvec(1,bedflu , 'BEDFLU', ielm2h, 1, 1,mesh2d)
337  DO i=1,nbedflo
338  nliqbed%I(i)=0
339  ENDDO
340  ELSE
341  CALL bief_allvec(2,nliqbed, 'NLIQBE', 0 , 1, 0,mesh2d)
342  CALL bief_allvec(1,bedflu , 'BEDFLU', 0 , 1, 0,mesh2d)
343  ENDIF
344 !
345 !-----------------------------------------------------------------------
346 !
347 ! BLOCK OF BOUNDARY CONDITIONS MASKS FOR PROPAGATION
348 !
349 ! BLOCK OF 9 VECTORS FOR MASKING (2D AND 3D)
350 !
351  CALL allblo(mask , 'MASK ')
352  CALL bief_allvec_in_block(mask,9,1,'MASK ',ielm1,1,1,mesh2d)
353  CALL allblo(mask_3d, 'MASK3D')
354  CALL bief_allvec_in_block(mask_3d,9,1,'MSK3D ',
355  & 10*(ielm2v/10),1,1,mesh3d)
356 !
357 ! MASKING
358 !
359  IF (msk.OR.(optban.EQ.1.AND.nonhyd)) THEN
360  CALL bief_allvec(1, maskel, 'MASKEL',10*(ielm3/10),1,1,mesh3d)
361  CALL bief_allvec(1, maskpt, 'MASKPT', ielm3, 1,1,mesh3d)
362  ELSE
363  CALL bief_allvec(1, maskel, 'MASKEL', 0, 1, 0,mesh3d)
364  CALL bief_allvec(1, maskpt, 'MASKPT', 0, 1, 0,mesh3d)
365  ENDIF
366 !
367 ! MASKS FOR LATERAL BOUNDARY ELEMENTS...
368 !
369 ! USED WHEN ELEMENTS ARE MASKED
370  CALL bief_allvec(1, maskbr, 'MASKBR',10*(ielm2v/10), 1, 1,mesh3d)
371 ! USED AS WORK ARRAY IN DEBIMP_3D
372  CALL bief_allvec(1, masktr, 'MASKTR',10*(ielm2v/10), 1, 1,mesh3d)
373 !
374 !=======================================================================
375 ! ********************
376 ! * VARIABLES *
377 ! ********************
378 !
379 !-----------------------------------------------------------------------
380 ! HORIZONTAL VELOCITY (U,V)
381 !
382 ! U AND V VELOCITY COMPONENTS
383 !
384  CALL bief_allvec(1, un, 'UN ',ielm3, 1,1,mesh3d)
385  CALL bief_allvec(1, vn, 'VN ',ielm3, 1,1,mesh3d)
386  CALL bief_allvec(1, uc, 'UC ',ielm3, 1,1,mesh3d)
387  CALL bief_allvec(1, vc, 'VC ',ielm3, 1,1,mesh3d)
388  CALL bief_allvec(1, ud, 'UD ',ielm3, 1,1,mesh3d)
389  CALL bief_allvec(1, vd, 'VD ',ielm3, 1,1,mesh3d)
390  CALL bief_allvec(1, u, 'U ',ielm3, 1,2,mesh3d)
391  CALL bief_allvec(1, v, 'V ',ielm3, 1,2,mesh3d)
392  CALL bief_allvec(1, s0u, 'S0U ',ielm3, 1,1,mesh3d)
393  CALL bief_allvec(1, s0v, 'S0V ',ielm3, 1,1,mesh3d)
394  CALL bief_allvec(1, s1u, 'S1U ',ielm3, 1,1,mesh3d)
395  CALL bief_allvec(1, s1v, 'S1V ',ielm3, 1,1,mesh3d)
396  CALL bief_allvec(1, smu, 'SMU ',ielm3, 1,1,mesh3d)
397  CALL bief_allvec(1, smv, 'SMV ',ielm3, 1,1,mesh3d)
398  CALL bief_allvec(1, uborf, 'UBORF ',ielm2h, 1,1,mesh2d)
399  CALL bief_allvec(1, vborf, 'VBORF ',ielm2h, 1,1,mesh2d)
400  CALL bief_allvec(1, uborl, 'UBORL ',ielm2v, 1,1,mesh3d)
401  CALL bief_allvec(1, vborl, 'VBORL ',ielm2v, 1,1,mesh3d)
402  CALL bief_allvec(1, ubors, 'UBORS ',ielm2h, 1,1,mesh2d)
403  CALL bief_allvec(1, vbors, 'VBORS ',ielm2h, 1,1,mesh2d)
404  CALL bief_allvec(1, auborf, 'AUBORF',ielm2h, 1,1,mesh2d)
405  CALL bief_allvec(1, avborf, 'AVBORF',ielm2h, 1,1,mesh2d)
406  CALL bief_allvec(1, auborl, 'AUBORL',ielm2v, 1,1,mesh3d)
407  CALL bief_allvec(1, uetcal, 'UETCAL',ielm2v, 1,1,mesh3d)
408  CALL bief_allvec(1, avborl, 'AVBORL',ielm2v, 1,1,mesh3d)
409  CALL bief_allvec(1, aubors, 'AUBORS',ielm2h, 1,1,mesh2d)
410  CALL bief_allvec(1, avbors, 'AVBORS',ielm2h, 1,1,mesh2d)
411  CALL bief_allvec(1, buborf, 'BUBORF',ielm2h, 1,1,mesh2d)
412  CALL bief_allvec(1, buborl, 'BUBORL',ielm2v, 1,1,mesh3d)
413  CALL bief_allvec(1, bubors, 'BUBORS',ielm2h, 1,1,mesh2d)
414  CALL bief_allvec(1, bvborf, 'BVBORF',ielm2h, 1,1,mesh2d)
415  CALL bief_allvec(1, bvborl, 'BVBORL',ielm2v, 1,1,mesh3d)
416  CALL bief_allvec(1, bvbors, 'BVBORS',ielm2h, 1,1,mesh2d)
417  CALL bief_allvec(1, uborsave, 'UBSAVE',ielm2v, 1,1,mesh3d)
418  CALL bief_allvec(1, vborsave, 'VBSAVE',ielm2v, 1,1,mesh3d)
419  CALL bief_allvec(1, wborsave, 'WBSAVE',ielm2v, 1,1,mesh3d)
420  CALL bief_allvec(1, wdist , 'WDIST ',ielm2h, 1,1,mesh2d)
421  CALL bief_allvec(1, strain, 'STRAIN',ielm3, 1,1,mesh3d)
422  CALL bief_allvec(1, rotan , 'ROTAN ',ielm3, 1,1,mesh3d)
423 !
424  IF(tidaltype.EQ.0) THEN
425  CALL bief_allvec(1,hbtide ,'HBTIDE',0,1,0,mesh2d)
426  CALL bief_allvec(1,ubtide ,'UBTIDE',0,1,0,mesh2d)
427  CALL bief_allvec(1,vbtide ,'VBTIDE',0,1,0,mesh2d)
428  CALL bief_allvec(2,numtide,'NUMTID',0,1,0,mesh2d)
429  ELSE
430  CALL bief_allvec(1,hbtide ,'HBTIDE',ielm1 ,1,1,mesh2d)
431  CALL bief_allvec(1,ubtide ,'UBTIDE',ielm1 ,1,1,mesh2d)
432  CALL bief_allvec(1,vbtide ,'VBTIDE',ielm1 ,1,1,mesh2d)
433  CALL bief_allvec(2,numtide,'NUMTID',ielm1 ,1,1,mesh2d)
434  ENDIF
435 !
436 ! FRICTION VELOCITY **2 ON THE BOTTOM
437 !
438  CALL bief_allvec(1, uetcar, 'UETCAR', ielm2h, 1,1,mesh2d)
439 !
440 ! PLANE ON THE BOTTOM (THE FIRST ONE WITH A REAL ELEMENT HEIGHT ABOVE)
441 !
442  CALL bief_allvec(2, ipbot, 'IPBOT ', ielm2h, 1,1,mesh2d)
443 !
444 ! BOUNDARY CONDITION TYPES/
445 ! ATTRIBUTES FOR THE HORIZONTAL VELOCITY COMPONENTS
446 !
447  CALL bief_allvec(2, liubof, 'LIUBOF', ielm2h, 1,1,mesh2d)
448 ! LIUBOL, LIVBOL, LIWBOL, LIEBOL, LIKBOL, LITABL:
449 ! VALUES SAVED IN SECOND DIMENSION BECAUSE ADVECTION SCHEMES (CVDF3D)
450 ! MAY CHANGE THE VALUES
451  CALL bief_allvec(2, liubol, 'LIUBOL', ielm2v, 2,1,mesh3d)
452  CALL bief_allvec(2, liubos, 'LIUBOS', ielm2h, 1,1,mesh2d)
453 !
454  CALL bief_allvec(2, livbof, 'LIVBOF', ielm2h, 1,1,mesh2d)
455  CALL bief_allvec(2, livbol, 'LIVBOL', ielm2v, 2,1,mesh3d)
456  CALL bief_allvec(2, livbos, 'LIVBOS', ielm2h, 1,1,mesh2d)
457 !
458 ! BOUNDARY CONDITION SAVED WHEN THOMPSON CONDITIONS USED
459 !
460  IF(thomfr) THEN
461  CALL bief_allvec(2,lihbor_user, 'HB_USE',ielm1 ,1,1,mesh2d)
462  CALL bief_allvec(2,liubol_user, 'UB_USE',ielm2v,1,1,mesh3d)
463  CALL bief_allvec(2,livbol_user, 'UV_USE',ielm2v,1,1,mesh3d)
464  ENDIF
465 !
466 !-----------------------------------------------------------------------
467 ! W VERTICAL VELOCITY COMPONENT (REAL VALUES)
468 ! TREATED DIFFERENTLY DEPENDING ON THE (NON)HYDROSTATIC OPTION
469 !
470  IF (nonhyd) THEN
471  CALL bief_allvec(1, wn, 'WN ', ielm3, 1, 1,mesh3d)
472  CALL bief_allvec(1, wc, 'WC ', ielm3, 1, 1,mesh3d)
473  CALL bief_allvec(1, wd, 'WD ', ielm3, 1, 1,mesh3d)
474  CALL bief_allvec(1, wconv , 'WCONV ', ielm3, 1, 1,mesh3d)
475  ELSE ! DUMMIES
476  CALL bief_allvec(1, wn, 'WN ', 0, 1, 0,mesh3d)
477  CALL bief_allvec(1, wc, 'WC ', 0, 1, 0,mesh3d)
478  CALL bief_allvec(1, wd, 'WD ', 0, 1, 0,mesh3d)
479  CALL bief_allvec(1, wconv , 'WCONV ', 0, 1, 0,mesh3d)
480  ENDIF
481  CALL bief_allvec(1, w, 'W ', ielm3, 1, 1,mesh3d)
482  IF (nonhyd) THEN
483  CALL bief_allvec(1, s0w, 'S0W ', ielm3, 1, 1,mesh3d)
484  CALL bief_allvec(1, s1w, 'S1W ', ielm3, 1, 1,mesh3d)
485  ELSE ! DUMMIES
486  CALL bief_allvec(1, s0w, 'S0W ', 0, 1, 0,mesh3d)
487  CALL bief_allvec(1, s1w, 'S1W ', 0, 1, 0,mesh3d)
488  ENDIF
489  CALL bief_allvec(1, wborf, 'WBORF ', ielm2h, 1, 1,mesh2d)
490  CALL bief_allvec(1, wborl, 'WBORL ', ielm2v, 1, 1,mesh3d)
491  CALL bief_allvec(1, wbors, 'WBORS ', ielm2h, 1, 1,mesh2d)
492  IF (nonhyd) THEN
493  CALL bief_allvec(1, awborf, 'AWBORF', ielm2h, 1, 1,mesh2d)
494  CALL bief_allvec(1, awborl, 'AWBORL', ielm2v, 1, 1,mesh3d)
495  CALL bief_allvec(1, awbors, 'AWBORS', ielm2h, 1, 1,mesh2d)
496  CALL bief_allvec(1, bwborf, 'BWBORF', ielm2h, 1, 1,mesh2d)
497  CALL bief_allvec(1, bwborl, 'BWBORL', ielm2v, 1, 1,mesh3d)
498  CALL bief_allvec(1, bwbors, 'BWBORS', ielm2h, 1, 1,mesh2d)
499  ELSE ! DUMMIES
500  CALL bief_allvec(1, awborf, 'AWBORF', 0, 1, 0,mesh2d)
501  CALL bief_allvec(1, awborl, 'AWBORL', 0, 1, 0,mesh3d)
502  CALL bief_allvec(1, awbors, 'AWBORS', 0, 1, 0,mesh2d)
503  CALL bief_allvec(1, bwborf, 'BWBORF', 0, 1, 0,mesh2d)
504  CALL bief_allvec(1, bwborl, 'BWBORL', 0, 1, 0,mesh3d)
505  CALL bief_allvec(1, bwbors, 'BWBORS', 0, 1, 0,mesh2d)
506  ENDIF
507 !
508  CALL bief_allvec(2, liwbof, 'LIWBOF', ielm2h, 1, 1,mesh2d)
509  CALL bief_allvec(2, liwbol, 'LIWBOL', ielm2v, 2, 1,mesh3d)
510  CALL bief_allvec(2, liwbos, 'LIWBOS', ielm2h, 1, 1,mesh2d)
511 !
512 ! SIGMA-TRANSFORMED VALUES / NO BLOCK
513 !
514  CALL bief_allvec(1,ws,'WS ',ielm3,1,1,mesh3d)
515 !
516 ! VECTOR OF SIZE NUMBER OF POINTS IN THE ELEMENT * NELEM
517 !
518  CALL bief_allvec(1,wel,'WEL ',10*(ielm3/10),
520 !
521 !=======================================================================
522 ! HYDRODYNAMIC PRESSURE SPECIFIC FOR THE NON-HYDROSTATIC OPTION
523 !
524  IF (nonhyd) THEN
525  CALL bief_allvec(1, dp, 'DP ', ielm3, 1, 2,mesh3d)
526  CALL bief_allvec(1, dpn, 'DPN ', ielm3, 1, 1,mesh3d)
527  CALL bief_allvec(1, ph, 'PH ', ielm3, 1, 1,mesh3d)
528  CALL bief_allvec(1, pborf, 'PBORF ', ielm2h, 1, 1,mesh2d)
529  CALL bief_allvec(1, pborl, 'PBORL ', ielm2v, 1, 1,mesh3d)
530  CALL bief_allvec(1, pbors, 'PBORS ', ielm2h, 1, 1,mesh2d)
531  CALL bief_allvec(2, lipbof, 'LIPBOF', ielm2h, 1, 1,mesh2d)
532  CALL bief_allvec(2, lipbol, 'LIPBOL', ielm2v, 1, 1,mesh3d)
533  CALL bief_allvec(2, lipbos, 'LIPBOS', ielm2h, 1, 1,mesh2d)
534  ELSE
535  CALL bief_allvec(1, dp, 'DP ', 0, 1, 0,mesh3d)
536  CALL bief_allvec(1, dpn, 'DPN ', 0, 1, 0,mesh3d)
537  CALL bief_allvec(1, ph, 'PH ', 0, 1, 0,mesh3d)
538  CALL bief_allvec(1, pborf, 'PBORF ', 0, 1, 0,mesh2d)
539  CALL bief_allvec(1, pborl, 'PBORL ', 0, 1, 0,mesh3d)
540  CALL bief_allvec(1, pbors, 'PBORS ', 0, 1, 0,mesh2d)
541  CALL bief_allvec(2, lipbof, 'LIPBOF', 0, 1, 0,mesh2d)
542  CALL bief_allvec(2, lipbol, 'LIPBOL', 0, 1, 0,mesh3d)
543  CALL bief_allvec(2, lipbos, 'LIPBOS', 0, 1, 0,mesh2d)
544  ENDIF
545 !
546 !=======================================================================
547 !
548  CALL allblo(trn ,'TRN ')
549  CALL allblo(tac ,'TAC ')
550  CALL allblo(ta ,'TA ')
551  CALL allblo(s0ta ,'S0TA ')
552  CALL allblo(s1ta ,'S1TA ')
553  CALL allblo(taborf ,'TABORF')
554  CALL allblo(taborl ,'TABORL')
555  CALL allblo(tabors ,'TABORS')
556  CALL allblo(atabof ,'ATABOF')
557  CALL allblo(atabol ,'ATABOL')
558  CALL allblo(atabos ,'ATABOS')
559  CALL allblo(btabof ,'BTABOF')
560  CALL allblo(btabol ,'BTABOL')
561  CALL allblo(btabos ,'BTABOS')
562  CALL allblo(litabf ,'LITABF')
563  CALL allblo(litabl ,'LITABL')
564  CALL allblo(litabs ,'LITABS')
565  CALL allblo(trborsave,'TBSAVE')
566  CALL allblo(ta_sce ,'TA_SCE')
567  CALL allblo(wchu ,'WCHU ')
568 !
569  IF(ntrac.NE.0) THEN
570  ielm = ielm3
571  ielh = ielm2h
572  ielv = ielm2v
573  statut = 1
574  ELSE
575  ielm = 0
576  ielh = 0
577  ielv = 0
578  statut = 0
579  ENDIF
580 !
581 ! GENERIC NAMES SHORTENED IN ORDER TO PROVIDE THE AUTOMATIC
582 ! NUMBERING MECHANISM!
583 !
584 ! MAX(NTRAC,1) BELOW : TO HAVE AT LEAST ONE ARRAY, EVEN EMPTY
585 ! TO PUT IN THE CALL TO CONLIM
586 ! AND CALL TO TEL4DEL
587 !
589  & 1, 'TRN ', ielm, 1, statut,mesh3d)
591  & 1, 'TAC ', ielm, 1, statut,mesh3d)
592  CALL bief_allvec_in_block(ta, max(ntrac,1),
593  & 1, 'TA ', ielm, 1, statut,mesh3d)
595  & 1, 'S0TA ', ielm, 1, statut,mesh3d)
597  & 1, 'S1TA ', ielm, 1, statut,mesh3d)
599  & 1, 'TABF ', ielh, 1, statut,mesh2d)
600  CALL bief_allvec_in_block(taborl, max(ntrac,1) ,
601  & 1, 'TABL ', ielv, 1, statut,mesh3d)
603  & 1, 'TABS ', ielh, 1, statut,mesh2d)
605  & 1, 'ATAF ', ielh, 1, statut,mesh2d)
606  CALL bief_allvec_in_block(atabol, max(ntrac,1),
607  & 1, 'ATAL ', ielv, 1, statut,mesh3d)
609  & 1, 'ATAS ', ielh, 1, statut,mesh2d)
611  & 1, 'BTAF ', ielh, 1, statut,mesh2d)
612  CALL bief_allvec_in_block(btabol, max(ntrac,1),
613  & 1, 'BTAL ', ielv, 1, statut,mesh3d)
615  & 1, 'BTAS ', ielh, 1, statut,mesh2d)
617  & 2, 'LTAF ', ielh, 1, statut,mesh2d)
618  CALL bief_allvec_in_block(litabl, max(ntrac,1) ,
619  & 2, 'LTAL ', ielv, 2, statut,mesh3d)
621  & 2, 'LTAS ', ielh, 1, statut,mesh2d)
623  & 1, 'TBSA ', ielv, 1, statut,mesh3d)
625  & 1, 'TSCE ', nsce, 1, 0 ,mesh3d)
626 ! SIZE NSCE ALWAYS
627  CALL bief_allvec_in_block(wchu, max(ntrac,1),
628  & 1, 'WCHU ', ielm, 1, statut,mesh3d)
629 !
630 !=======================================================================
631 ! K-EPSILON MODEL
632 !
633  IF(iturbv.EQ.3.OR.iturbh.EQ.3.OR.iturbv.EQ.7.OR.iturbh.EQ.7) THEN
634  ielm = ielm3
635  ielh = ielm2h
636  ielv = ielm2v
637  statut = 1
638  ELSE
639  ielm = 0
640  ielh = 0
641  ielv = 0
642  statut = 0
643  ENDIF
644 !
645  CALL bief_allvec(1, akn, 'AKN ',ielm,1, statut,mesh3d )
646  CALL bief_allvec(1, akc, 'AKC ',ielm,1, statut,mesh3d )
647  CALL bief_allvec(1, s0ak, 'S0AK ',ielm,1, statut,mesh3d )
648  CALL bief_allvec(1, s1ak, 'S1AK ',ielm,1, statut,mesh3d )
649 !
650  CALL bief_allvec(1, epn, 'EPN ',ielm,1, statut,mesh3d )
651  CALL bief_allvec(1, epc, 'EPC ',ielm,1, statut,mesh3d )
652  CALL bief_allvec(1, s0ep, 'S0EP ',ielm,1, statut,mesh3d )
653  CALL bief_allvec(1, s1ep, 'S1EP ',ielm,1, statut,mesh3d )
654 !
655  CALL bief_allvec(1, kborf, 'KBORF ',ielh,1, statut,mesh2d )
656  CALL bief_allvec(1, kborl, 'KBORL ',ielv,1, statut,mesh3d )
657  CALL bief_allvec(1, kborsave, 'KBSAVE',ielv,1, statut,mesh3d )
658  CALL bief_allvec(1, kbors, 'KBORS ',ielh,1, statut,mesh2d )
659 !
660  CALL bief_allvec(1, eborf, 'EBORF ',ielh,1, statut,mesh2d )
661  CALL bief_allvec(1, eborl, 'EBORL ',ielv,1, statut,mesh3d )
662  CALL bief_allvec(1, eborsave, 'EBSAVE',ielv,1, statut,mesh3d )
663  CALL bief_allvec(1, ebors, 'EBORS ',ielh,1, statut,mesh2d )
664 !
665  CALL bief_allvec(1, akborf, 'AKBORF', ielh, 1, statut,mesh2d )
666  CALL bief_allvec(1, akborl, 'AKBORL', ielv, 1, statut,mesh3d )
667  CALL bief_allvec(1, akbors, 'AKBORS', ielh, 1, statut,mesh2d )
668 !
669  CALL bief_allvec(1, aeborf, 'AEBORF', ielh, 1, statut,mesh2d )
670  CALL bief_allvec(1, aeborl, 'AEBORL', ielv, 1, statut,mesh3d )
671  CALL bief_allvec(1, aebors, 'AEBORS', ielh, 1, statut,mesh2d )
672 !
673  CALL bief_allvec(1, bkborf, 'BKBORF', ielh, 1, statut,mesh2d )
674  CALL bief_allvec(1, bkborl, 'BKBORL', ielv, 1, statut,mesh3d )
675  CALL bief_allvec(1, bkbors, 'BKBORS', ielh, 1, statut,mesh2d )
676 !
677  CALL bief_allvec(1, beborf, 'BEBORF', ielh, 1, statut,mesh2d )
678  CALL bief_allvec(1, beborl, 'BEBORL', ielv, 1, statut,mesh3d )
679  CALL bief_allvec(1, bebors, 'BEBORS', ielh, 1, statut,mesh2d )
680 !
681  CALL bief_allvec(2, likbof, 'LIKBOF', ielh, 1, statut,mesh2d )
682  CALL bief_allvec(2, likbol, 'LIKBOL', ielv, 2, statut,mesh3d )
683  CALL bief_allvec(2, likbos, 'LIKBOS', ielh, 1, statut,mesh2d )
684 !
685  CALL bief_allvec(2, liebof, 'LIEBOF', ielh, 1, statut,mesh2d )
686  CALL bief_allvec(2, liebol, 'LIEBOL', ielv, 2, statut,mesh3d )
687  CALL bief_allvec(2, liebos, 'LIEBOS', ielh, 1, statut,mesh2d )
688 !
689  IF( iturbv.EQ.3.OR.iturbh.EQ.3.OR.iturbv.EQ.7.OR.iturbh.EQ.7
690  & .OR.iturbv.EQ.5.OR.iturbh.EQ.5.OR.iturbv.EQ.9.OR.iturbh.EQ.9
691  & .OR.iturbv.EQ.6) THEN
692  ielm = ielm3
693  ielh = ielm2h
694  ielv = ielm2v
695  statut = 1
696  ELSE
697  ielm = 0
698  ielh = 0
699  ielv = 0
700  statut = 0
701  ENDIF
702 !
703 ! AK AND EP ARE USED WHEN WE RECONSTRUCT KINETIC ENERGY AND
704 ! DISSIPATION WITH THE SPALART TURBULENT VISCOSITY OR GOTM
705 !
706  CALL bief_allvec(1, ak, 'AK ',ielm,1, statut,mesh3d )
707  CALL bief_allvec(1, ep, 'EP ',ielm,1, statut,mesh3d )
708 !
709  IF(iturbv.EQ.5.OR.iturbh.EQ.5.OR.iturbv.EQ.9.OR.iturbh.EQ.9
710  & .OR.iturbv.EQ.6) THEN
711  ielm = ielm3
712  ielh = ielm2h
713  ielv = ielm2v
714  statut = 1
715  ELSE
716  ielm = 0
717  ielh = 0
718  ielv = 0
719  statut = 0
720  ENDIF
721 !
722  CALL bief_allvec(1, nun, 'NUN ',ielm,1, statut,mesh3d )
723  CALL bief_allvec(1, nuc, 'NUC ',ielm,1, statut,mesh3d )
724  CALL bief_allvec(1, nu, 'NU ',ielm,1, statut,mesh3d )
725  CALL bief_allvec(1, s0nu, 'S0NU ',ielm,1, statut,mesh3d )
726  CALL bief_allvec(1, s1nu, 'S1NU ',ielm,1, statut,mesh3d )
727 !
728  CALL bief_allvec(1, nuborf, 'NUBORF',ielh,1, statut,mesh2d )
729  CALL bief_allvec(1, nuborl, 'NUBORL',ielv,1, statut,mesh3d )
730  CALL bief_allvec(1, nubors, 'NUBORS',ielh,1, statut,mesh2d )
731  CALL bief_allvec(1, nuborsave,'NBSAVE',ielv,1, statut,mesh3d )
732 
733  CALL bief_allvec(1, anuborf, 'ANUBORF',ielh,1, statut,mesh2d )
734  CALL bief_allvec(1, anuborl, 'ANUBORL',ielv,1, statut,mesh3d )
735  CALL bief_allvec(1, anubors, 'ANUBORS',ielh,1, statut,mesh2d )
736 
737  CALL bief_allvec(1, bnuborf, 'BNUBORF',ielh,1, statut,mesh2d )
738  CALL bief_allvec(1, bnuborl, 'BNUBORL',ielv,1, statut,mesh3d )
739  CALL bief_allvec(1, bnubors, 'BNUBORS',ielh,1, statut,mesh2d )
740 !
741  CALL bief_allvec(2, linubof, 'LINUBOF', ielh, 1, statut,mesh2d )
742  CALL bief_allvec(2, linubol, 'LINUBOL', ielv, 2, statut,mesh3d )
743  CALL bief_allvec(2, linubos, 'LINUBOS', ielh, 1, statut,mesh2d )
744 !
745 !=======================================================================
746 !
747 ! *******************
748 ! * OTHER VARIABLES *
749 ! *******************
750 !
751 ! VARIOUS VELOCITY COMPONENTS 3D, 2D, BOUNDARY CONDITION VALUES
752 !
753  CALL bief_allvec(1, u2d, 'U2D ', ielmu, 1, 1,mesh2d)
754  CALL bief_allvec(1, un2d, 'UN2D ', ielmu, 1, 1,mesh2d)
755  CALL bief_allvec(1, fu, 'FU ', ielmu, 1, 1,mesh2d)
756  CALL bief_allvec(1, v2d, 'V2D ', ielmu, 1, 1,mesh2d)
757  CALL bief_allvec(1, vn2d, 'VN2D ', ielmu, 1, 1,mesh2d)
758  CALL bief_allvec(1, fv, 'FV ', ielmu, 1, 1,mesh2d)
759 ! DIMENSION 2 : SEE IN LECLIM, USED IN BORD3D
760  CALL bief_allvec(1, ubor2d, 'UBOR2D', ielm1, 2, 1,mesh2d)
761  CALL bief_allvec(1, vbor2d, 'VBOR2D', ielm1, 2, 1,mesh2d)
762 !
763  CALL bief_allvec(1, flbor , 'FLBOR ', ielm1, 1, 1,mesh2d)
764  CALL bief_allvec(1, flblim, 'FLBLIM', ielm1, 1, 1,mesh2d)
765 !
766  CALL bief_allvec(1, uconv , 'UCONV ', ielm3, 1, 1,mesh3d)
767  CALL bief_allvec(1, vconv , 'VCONV ', ielm3, 1, 1,mesh3d)
768  CALL bief_allvec(1, vconvc, 'VCONVC', ielm3, 1, 1,mesh3d)
769  CALL bief_allvec(1, uconvc, 'UCONVC', ielm3, 1, 1,mesh3d)
770  CALL bief_allvec(1, wsconv, 'WSCONV', ielm3, 1, 1,mesh3d)
771  CALL bief_allvec(1, dm1 , 'DM1 ', ielm3, 1, 1,mesh3d)
772 !
773 !-----------------------------------------------------------------------
774 ! WATER DEPTH AND VARIABLES DERIVED FROM IT,
775 ! PRINCIPALLY T2D DISCRETISATION OF DEPTH IELMH = IELM2H
776 !
777  CALL bief_allvec(1, h, 'H ', ielmh, 1, 1,mesh2d)
778  CALL bief_allvec(1, hn, 'HN ', ielmh, 1, 1,mesh2d)
779  CALL bief_allvec(1, hprop, 'HPROP ', ielmh, 1, 1,mesh2d)
780  CALL bief_allvec(1, nuwave, 'NUWAVE', 10 , 1, 1,mesh2d)
781  CALL bief_allvec(1, hbor, 'HBOR ', ielm1, 1, 1,mesh2d)
782  CALL bief_allvec(1, dh, 'DH ', ielmh, 1, 2,mesh2d)
783  CALL bief_allvec(1, smh, 'SMH ', ielmh, 1, 1,mesh2d)
784 !
785  IF(rain) THEN
786  CALL bief_allvec(1,pluie,'PLUIE ',ielmh,1,2,mesh2d)
787  IF(ncsize.GT.1) THEN
788  CALL bief_allvec(1,parapluie,'PARAPL',ielmh,1,2,mesh2d)
789  ELSE
790  CALL bief_allvec(1,parapluie,'PARAPL',0 ,1,0,mesh2d)
791  DEALLOCATE(parapluie%R)
792  parapluie%R=>pluie%R
793  ENDIF
794  ELSE
795  CALL bief_allvec(1,pluie ,'PLUIE ',0 ,1,0,mesh2d)
796  CALL bief_allvec(1,parapluie,'PARAPL',0 ,1,0,mesh2d)
797  ENDIF
798 !
799  IF(sorg2d(35)) THEN
800  CALL bief_allvec(1,maxz,'MAXZ ',ielmh,1,1 ,mesh2d)
801  ELSE
802  CALL bief_allvec(1,maxz,'MAXZ ',0 ,1,0 ,mesh2d)
803  ENDIF
804  IF(sorg2d(36)) THEN
805  CALL bief_allvec(1,tmaxz,'TMAXZ ',ielmh,1,1 ,mesh2d)
806  ELSE
807  CALL bief_allvec(1,tmaxz,'TMAXZ ',0 ,1,0 ,mesh2d)
808  ENDIF
809 !
810 !-----------------------------------------------------------------------
811 !
812  IF(courou.OR.inclus(coupling,'TOMAWAC')) THEN
813  CALL bief_allvec(1,fxh,'FXH ',ielmu,1,1,mesh2d)
814  CALL bief_allvec(1,fyh,'FYH ',ielmu,1,1,mesh2d)
815  ELSE
816  CALL bief_allvec(1,fxh,'FXH ',0 ,1,0,mesh2d)
817  CALL bief_allvec(1,fyh,'FYH ',0 ,1,0,mesh2d)
818  ENDIF
819 !
820 ! VARIABLES TRANSMITTED FROM TOMAWAC TO SISYPHE OR GAIA
821 !
822  IF(inclus(coupling,'TOMAWAC')) THEN
823  CALL bief_allvec(1,dirmoy,'DIRMOY',ielmh,1,1,mesh2d)
824  CALL bief_allvec(1,hm0 ,'HM0 ',ielmh,1,1,mesh2d)
825  CALL bief_allvec(1,tpr5 ,'TPR5 ',ielmh,1,1,mesh2d)
826  CALL bief_allvec(1,orbvel,'ORBVEL',ielmh,1,1,mesh2d)
827  ELSE
828  CALL bief_allvec(1,dirmoy,'DIRMOY',0 ,1,0,mesh2d)
829  CALL bief_allvec(1,hm0 ,'HM0 ',0 ,1,0,mesh2d)
830  CALL bief_allvec(1,tpr5 ,'TPR5 ',0 ,1,0,mesh2d)
831  CALL bief_allvec(1,orbvel,'ORBVEL',0 ,1,0,mesh2d)
832  ENDIF
833 !
834 !-----------------------------------------------------------------------
835 ! NUMERICAL VARIABLES
836 !
837  CALL bief_allvec(1, volu , 'VOLU ', ielm3 , 1, 1,mesh3d)
838  CALL bief_allvec(1, volun , 'VOLUN ', ielm3 , 1, 1,mesh3d)
839  CALL bief_allvec(1, volu3d, 'VOLU3D', ielm3 , 1, 1,mesh3d)
840  IF(ncsize.GT.1) THEN
841  CALL bief_allvec(1,volupar,'VOLUPA',ielm3,1,1,mesh3d)
842  CALL bief_allvec(1,volunpar,'VLNPAR',ielm3,1,1,mesh3d)
843  CALL bief_allvec(1,volu3dpar,'VLTDPA',ielm3,1,1,mesh3d)
844  ELSE
845  CALL bief_allvec(1,volupar,'VOLUPA',0 ,1,0,mesh3d)
846  DEALLOCATE(volupar%R)
847  volupar%R=>volu%R
848  CALL bief_allvec(1,volunpar,'VLNPAR',0 ,1,0,mesh3d)
849  DEALLOCATE(volunpar%R)
850  volunpar%R=>volun%R
851  CALL bief_allvec(1,volu3dpar,'VLTDPA',0 ,1,0,mesh3d)
852  DEALLOCATE(volu3dpar%R)
853  volu3dpar%R=>volu3d%R
854  ENDIF
855  CALL bief_allvec(1, volut , 'VOLUT ', ielm3 , 1, 1,mesh3d)
856  CALL bief_allvec(1, volu2d, 'VOLU2D', ielm2h, 1, 1,mesh2d)
857  CALL bief_allvec(1, v2dpar, 'V2DPAR', ielm2h, 1, 1,mesh2d)
858  CALL bief_allvec(1, unsv2d, 'UNSV2D', ielm2h, 1, 1,mesh2d)
859  CALL bief_allvec(1, unsv3d, 'UNSV3D', ielm3 , 1, 1,mesh3d)
860 !
861  CALL bief_allvec(1, fluint, 'FLUINT', ielm3 , 1, 1,mesh3d)
862  CALL bief_allvec(1, fluext, 'FLUEXT', ielm3 , 1, 1,mesh3d)
863  IF(ncsize.GT.1) THEN
864  CALL bief_allvec(1,fluextpar,'FLXTPA',ielm3,1,1,mesh3d)
865  ELSE
866  CALL bief_allvec(1,fluextpar,'FLXTPA',1 ,1,0,mesh3d)
867  DEALLOCATE(fluextpar%R)
868  fluextpar%R=>fluext%R
869  ENDIF
870  CALL bief_allvec(1, flint2, 'FLINT2', ielm2h, 1, 1,mesh2d)
871 !
872 !-----------------------------------------------------------------------
873 ! PHYSICAL VARIABLES
874 !
875 ! (COMPONENTS OF VISCOSITY AS SEPARATE VECTORS ARE REQUIRED!)
876 !
877  CALL allblo(viscvi, 'VISCVI')
878  CALL allblo(viscnu, 'VISCNU')
879  CALL bief_allvec_in_block(viscvi,3,1,'VISC ',ielm3,1,2,mesh3d)
880  CALL bief_allvec_in_block(viscnu,3,1,'VISCN ',ielm3,1,2,mesh3d)
881 !
882 ! ADDRESSING IS AWKWARD, E.G. REAL PART OF THE DIFFUSIVITY STRUCTURE
883 ! OF THE THIRD TRACER IN THE Y-DIRECTION IS VISCTA%ADR(3)%P%ADR(2)%P%R
884 ! DEAR ME!
885 !
886  CALL allblo(viscta, 'VISCTA')
887  IF(ntrac.GT.0) THEN
888  CALL allblo_in_block(viscta, ntrac, 'VBTA ')
889  DO itrac = 1,ntrac
890  CALL bief_allvec_in_block ( viscta%ADR(itrac)%P, 3 , 1,
891  & 'VITA ',ielm3,1,2,mesh3d)
892  ENDDO
893  ENDIF
894 !
895  CALL bief_allvec(1, rotat, 'ROTAT ', ielm3, 1, 1,mesh3d)
896 !
897  CALL bief_allvec(1, deltar, 'DELTAR', ielm3, 1, 1,mesh3d)
898  CALL bief_allvec(1, rho , 'RHO ', ielm3, 1, 1,mesh3d)
899  IF(iturbv.EQ.6) THEN
900  CALL bief_allvec(1, rhopot, 'RHOPOT', ielm3,1, 1,mesh3d)
901  ELSE
902  CALL bief_allvec(1, rhopot, 'RHOPOT', 0,1,0,mesh3d)
903  ENDIF
904  CALL bief_allvec(1, ri, 'RI ', ielm3, 1, 1,mesh3d)
905 !
906  CALL bief_allvec(1, rugof, 'RUGOF ', ielmu , 1, 1,mesh2d)
907  CALL bief_allvec(1, rugol, 'RUGOL ', ielm2v, 1, 1,mesh3d)
908  CALL bief_allvec(1, cf , 'CF ', ielmu , 1, 1,mesh2d)
909 !
910 ! WINDX, WINDY, PATMOS NOW ALLOCATED IN METEO_TELEMAC
911 !
912 ! CALL ALLBLO(WIND, 'WIND ')
913 ! IF (VENT.OR.INCLUS(COUPLING,'WAQTEL')) THEN
914 ! CALL BIEF_ALLVEC_IN_BLOCK(WIND, 2, 1,'WIND ',IELM2H,1,1,MESH2D)
915 ! ELSE
916 ! CALL BIEF_ALLVEC_IN_BLOCK(WIND, 2, 1,'WIND ',0,1,0,MESH2D)
917 ! ENDIF
918 !
919  IF( (inclus(coupling,'WAQTEL') ).AND.
920  & (13*int(waqprocess/13).EQ.waqprocess) ) THEN
921  CALL bief_allvec(1, windspd, 'WNDSPD', ielm2h, 1,1,mesh2d)
922  CALL bief_allvec(1, rho4aed2, 'RHOAED', ielm3, 1,1,mesh3d)
923  CALL bief_allvec(1, temp4aed2, 'TEMPAE', ielm3, 1,1,mesh3d)
924  CALL bief_allvec(1, sali4aed2, 'SALIAE', ielm3, 1,1,mesh3d)
925  CALL bief_allvec(1, thick4aed2, 'THICKA', ielm3, 1,1,mesh3d)
926  CALL bief_allvec(2, benth4aed2, 'BENTHA', ielm2h, 1,1,mesh2d)
927  ELSE
928  CALL bief_allvec(1, windspd, 'WNDSPD', 0,1,0,mesh2d)
929  CALL bief_allvec(1, rho4aed2, 'RHOAED', 0,1,0,mesh3d)
930  CALL bief_allvec(1, temp4aed2, 'TEMPAE', 0,1,0,mesh3d)
931  CALL bief_allvec(1, sali4aed2, 'SALIAE', 0,1,0,mesh3d)
932  CALL bief_allvec(1, thick4aed2, 'THICKA', 0,1,0,mesh3d)
933  CALL bief_allvec(2, benth4aed2, 'BENTHA', 0,1,0,mesh2d)
934  ENDIF
935 !
936 ! IF (ATMOS) THEN
937 ! CALL BIEF_ALLVEC(1, PATMOS, 'PATMOS', IELM2H, 1,1,MESH2D)
938 ! ELSE
939 ! CALL BIEF_ALLVEC(1, PATMOS, 'PATMOS', 0, 1,0,MESH2D)
940 ! ENDIF
941 !
942 !-----------------------------------------------------------------------
943 ! VARIABLES USED IN MASS BALANCE
944 ! THEY WILL CORRESPOND TO THE NUMBERING OF ADVECTED VARIABLES
945 !
946  CALL bief_allvec(1, masini, 'MASINI', nvbil,1, 0,mesh3d)
947  CALL bief_allvec(1, masse, 'MASSE ', nvbil,1, 0,mesh3d)
948  CALL bief_allvec(1, massen, 'MASSEN', nvbil,1, 0,mesh3d)
949  CALL bief_allvec(1, flucum, 'FLUCUM', nvbil,1, 0,mesh3d)
950  CALL bief_allvec(1, flux, 'FLUX ', nvbil,1, 0,mesh3d)
951  CALL bief_allvec(1, fluxb, 'FLUXB ', nvbil,maxfro+nsce+1,
952  & 0,mesh3d)
953 !
954 ! BOTTOM AS GIVEN FROM THE GEOMETRY FILE
955 !
956  CALL bief_allvec(1, zf, 'ZF ', ielm2h, 1, 1,mesh2d)
957 !
958 ! BOTTOM GEOMETRY PER 2D-ELEMENT FOR TIDAL FLATS TREATMENT
959 !
960  IF(msk) THEN
961  CALL bief_allvec(1, zfe, 'ZFE ', 10, 1, 1,mesh2d)
962  ELSE
963  CALL bief_allvec(1, zfe, 'ZFE ', 0, 1, 0,mesh2d)
964  ENDIF
965 !
966 ! 3D ARRAY TO STORE DH AND HN
967 !
968  CALL bief_allvec(1, dhhn, 'DHHN ', ielm3, 1, 1,mesh3d)
969 !
970 !-----------------------------------------------------------------------
971 ! DROGUES (FLOATS ...EHM, TRACERS...)
972 !
973  CALL bief_allvec(1, xflot , 'XFLOT ', nflot_max,1, 0,mesh3d)
974  CALL bief_allvec(1, yflot , 'YFLOT ', nflot_max,1, 0,mesh3d)
975  CALL bief_allvec(1, zflot , 'ZFLOT ', nflot_max,1, 0,mesh3d)
976  CALL bief_allvec(1, shpflo, 'SHPFLO', 3*nflot_max,1, 0,mesh3d)
977  CALL bief_allvec(1, shzflo, 'SHZFLO', nflot_max,1, 0,mesh3d)
978 !
979  CALL bief_allvec(2, tagflo, 'TAGFLO', nflot_max,1, 0,mesh3d)
980  CALL bief_allvec(2, clsflo, 'CLSFLO', nflot_max,1, 0,mesh3d)
981  CALL bief_allvec(2, eltflo, 'ELTFLO', nflot_max,1, 0,mesh3d)
982  CALL bief_allvec(2, etaflo, 'ETAFLO', nflot_max,1, 0,mesh3d)
983 !
984 !-----------------------------------------------------------------------
985 !
986 ! VALUES AT SOURCES OF ADVECTED VARIABLES U,V,W,AK AND EP
987 ! ALL ARE ALLOCATED, EVEN IF NOT USED
988 !
989  CALL bief_allvec(1,u_sce ,'U_SCE ',nsce,1,0,mesh3d)
990  CALL bief_allvec(1,v_sce ,'V_SCE ',nsce,1,0,mesh3d)
991  CALL bief_allvec(1,w_sce ,'W_SCE ',nsce,1,0,mesh3d)
992  CALL bief_allvec(1,ak_sce,'AK_SCE',nsce,1,0,mesh3d)
993  CALL bief_allvec(1,ep_sce,'EP_SCE',nsce,1,0,mesh3d)
994  CALL bief_allvec(1,nu_sce,'NU_SCE',nsce,1,0,mesh3d)
995 !
996 ! COPYING USCE, VSCE AND WSCE INTO U_SCE, V_SCE AND W_SCE
997 ! PROVISIONNALY CANCELLING AK_SCE AND EP_SCE
998 !
999  IF(nsce.GT.0) THEN
1000  DO i=1,nsce
1001  u_sce%R(i) =usce(i)
1002  v_sce%R(i) =vsce(i)
1003  w_sce%R(i) =wsce(i)
1004  ak_sce%R(i)=0.d0
1005  ep_sce%R(i)=0.d0
1006  nu_sce%R(i)=0.d0
1007  ENDDO
1008  ENDIF
1009 !
1010 !-----------------------------------------------------------------------
1011 !
1012 ! VARIOUS TABLES, AS W1, ITRAV3 , PRIVE
1013 ! W1 ALLOCATED BY ALMESH
1014 !
1015  CALL allblo (prive,'PRIVE ')
1016  CALL bief_allvec_in_block(prive,max(4,npriv),
1017  & 1,'PRIV ',ielm3,1,2,mesh3d)
1018 ! ALIASES
1019  prive1=>prive%ADR(1)%P
1020  prive2=>prive%ADR(2)%P
1021  prive3=>prive%ADR(3)%P
1022  prive4=>prive%ADR(4)%P
1023 !
1024  CALL allblo (prive2d,'PRIVE2')
1025  CALL bief_allvec_in_block(prive2d,max(4,npriv2d),
1026  & 1,'PRI2 ',ielm2h,1,2,mesh2d)
1027 ! ALIASES
1028  prive2d1=>prive2d%ADR(1)%P
1029  prive2d2=>prive2d%ADR(2)%P
1030  prive2d3=>prive2d%ADR(3)%P
1031  prive2d4=>prive2d%ADR(4)%P
1032 !
1033 ! INTEGER WORK FIELDS
1034 !
1035  CALL allblo(itrav3,'ITRAV3')
1036  siz=bief_nbmpts(ielm3,mesh3d)
1037 ! 40 OR 50
1038  IF(yesweak) siz=max(siz,bief_nbmpts(10*(ielm3/10),mesh3d)*ngauss)
1039  CALL bief_allvec_in_block(itrav3,4,2,'ITR3V ',siz,1,0,mesh3d)
1040 !
1041 ! POINTERS TO 4 INTEGER WORK FIELDS
1042 !
1043  it1 => itrav3%ADR(1)%P
1044  it2 => itrav3%ADR(2)%P
1045  it3 => itrav3%ADR(3)%P
1046  it4 => itrav3%ADR(4)%P
1047 !
1048 ! BLOCKS OF ADVECTED VARIABLES AND VARIOUS BIEF_OBJ STRUCTURES
1049 ! BUILT FOR A COLLECTIVE ADVECTION
1050 !
1051  CALL allblo(bl_fc ,'BL_FC ')
1052  CALL addblo(bl_fc,uc)
1053  CALL addblo(bl_fc,vc)
1054  CALL addblo(bl_fc,wc)
1055  CALL addblo(bl_fc,akc)
1056  CALL addblo(bl_fc,epc)
1057  CALL addblo(bl_fc,nuc)
1058 !
1059  CALL allblo(bl_fn ,'BL_FN ')
1060 ! ADVECTION OF VELOCITIES IS DONE FOR THE NEXT TIME-STEP
1061  CALL addblo(bl_fn,u)
1062  CALL addblo(bl_fn,v)
1063  CALL addblo(bl_fn,w)
1064  CALL addblo(bl_fn,akn)
1065  CALL addblo(bl_fn,epn)
1066  CALL addblo(bl_fn,nun)
1067 !
1068  CALL allblo(bl_s0f,'BL_S0F')
1069  CALL addblo(bl_s0f,s0u)
1070  CALL addblo(bl_s0f,s0v)
1071  CALL addblo(bl_s0f,s0w)
1072  CALL addblo(bl_s0f,s0ak)
1073  CALL addblo(bl_s0f,s0ep)
1074  CALL addblo(bl_s0f,s0nu)
1075 !
1076  CALL allblo(bl_fsc,'BL_FSC')
1077  CALL addblo(bl_fsc,u_sce)
1078  CALL addblo(bl_fsc,v_sce)
1079  CALL addblo(bl_fsc,w_sce)
1080  CALL addblo(bl_fsc,ak_sce)
1081  CALL addblo(bl_fsc,ep_sce)
1082  CALL addblo(bl_fsc,nu_sce)
1083 !
1084  CALL allblo(bl_bol,'BL_BOL')
1085  CALL addblo(bl_bol,liubol)
1086  CALL addblo(bl_bol,livbol)
1087  CALL addblo(bl_bol,liwbol)
1088  CALL addblo(bl_bol,likbol)
1089  CALL addblo(bl_bol,liebol)
1090  CALL addblo(bl_bol,linubol)
1091 !
1092  CALL allblo(bl_borl,'BL_BOR')
1093  CALL addblo(bl_borl,uborl)
1094  CALL addblo(bl_borl,vborl)
1095  CALL addblo(bl_borl,wborl)
1096  CALL addblo(bl_borl,akborl)
1097  CALL addblo(bl_borl,eborl)
1098  CALL addblo(bl_borl,nuborl)
1099 !
1100  IF(ntrac.GT.0) THEN
1101  DO itrac=1,ntrac
1102  CALL addblo(bl_fc , tac%ADR(itrac)%P)
1103  CALL addblo(bl_fn , trn%ADR(itrac)%P)
1104  CALL addblo(bl_s0f, s0ta%ADR(itrac)%P)
1105  CALL addblo(bl_fsc, ta_sce%ADR(itrac)%P)
1106  CALL addblo(bl_bol, litabl%ADR(itrac)%P)
1107  CALL addblo(bl_borl,taborl%ADR(itrac)%P)
1108  ENDDO
1109  ENDIF
1110 !
1111 ! BLOCKS OF ADVECTED VARIABLES WITH CHARACTERISTICS
1112 ! MODULE STREAMLINE MUST BE CHANGED TO DEAL WITH A
1113 ! LIST IN A BLOCK AS DONE ABOVE
1114 !
1115  CALL allblo(fc3d, 'FC3D ')
1116  CALL allblo(fn3d, 'FN3D ')
1117 ! ADVECTION OF VELOCITIES IS DONE FOR THE NEXT STEP
1118 ! SO HERE U AND NOT UN
1119  IF(schcvi.EQ.adv_car) THEN
1120  CALL addblo(fn3d,u )
1121  CALL addblo(fc3d,uc)
1122  CALL addblo(fn3d,v )
1123  CALL addblo(fc3d,vc)
1124  IF(nonhyd) THEN
1125  CALL addblo(fn3d,w )
1126  CALL addblo(fc3d,wc)
1127  ENDIF
1128  ENDIF
1129  IF(schcke.EQ.adv_car.AND.(iturbh.EQ.3.OR.
1130  & iturbh.EQ.7.OR.
1131  & iturbv.EQ.3.OR.
1132  & iturbv.EQ.7)) THEN
1133  CALL addblo(fn3d,akn)
1134  CALL addblo(fc3d,akc)
1135  CALL addblo(fn3d,epn)
1136  CALL addblo(fc3d,epc)
1137 ! FOR SPALART
1138  ELSEIF(schcke.EQ.adv_car.AND.(iturbv.EQ.5.OR.
1139  & iturbh.EQ.5.OR.
1140  & iturbv.EQ.9.OR.
1141  & iturbh.EQ.9)) THEN
1142  CALL addblo(fn3d,nun)
1143  CALL addblo(fc3d,nuc)
1144  ENDIF
1145  IF(ntrac.GT.0) THEN
1146  DO itrac=1,ntrac
1147  IF(schcta(itrac).EQ.adv_car) THEN
1148  CALL addblo(fn3d,trn%ADR(itrac)%P)
1149  CALL addblo(fc3d,tac%ADR(itrac)%P)
1150  ENDIF
1151  ENDDO
1152  ENDIF
1153 !
1154 !=======================================================================
1155 !
1156 ! *********************************
1157 ! * STRUCTURES FOR THE RESOLUTION *
1158 ! * OF LINEAR EQUATION SYSTEMS *
1159 ! * F I R S T *
1160 ! * M A T R I C E S *
1161 ! *********************************
1162 !
1163 ! BEWARE : 2D AND ESPECIALLY 3D MATRICES OCCUPY
1164 ! ====== A LARGE CHUNK OF MEMORY
1165 !
1166 !-----------------------------------------------------------------------
1167 ! 3D MATRICES
1168 !
1169 ! S.U.P.G.
1170 !
1171  typdia = '0'
1172  typext = '0'
1173  IF(n_adv(adv_sup).GT.0) THEN
1174  typdia = 'Q'
1175  typext = 'Q'
1176  ENDIF
1177  CALL bief_allmat(msupg,'SUPG ',
1178  & ielm3,ielm3,cfg,typdia,typext,mesh3d)
1179 !
1180 ! M.U.R.D.
1181 !
1182  typdia = '0'
1183  typext = '0'
1184  IF(n_adv(adv_nsc).GT.0.OR.n_adv(adv_psi).GT.0) THEN
1185  typdia = 'Q'
1186  typext = 'Q'
1187  ENDIF
1188  CALL bief_allmat(mmurd,'MURD ',
1189  & ielm3,ielm3,cfgmurd,typdia,typext,mesh3d)
1190 !
1191 ! M.U.R.D. (EDGE-BASED FOR TIDAL FLATS)
1192 !
1193  typdia = '0'
1194  typext = '0'
1195  IF(n_adv(adv_nsc_tf).GT.0) THEN
1196  typdia = 'Q'
1197  typext = 'Q'
1198  ENDIF
1199  CALL bief_allmat(murd_tf,'MURDTF',ielm3,ielm3,cfgmurd_tf,
1200  & typdia,typext,mesh3d)
1201 !
1202 ! DIFFUSION
1203 !
1204  typdia = 'Q'
1205  typext = 'S'
1206  CALL bief_allmat(mdiff,'DIFF ',
1207  & ielm3,ielm3,cfg,typdia,typext,mesh3d)
1208 !
1209 ! THE 3D WORK MATRICES (ALWAYS ALLOCATED AS NON SYMMETRICAL)
1210 ! SEE USE OF MTRA2%X IN WAVE_EQUATION
1211 !
1212  typdia = 'Q'
1213  typext = 'Q'
1214  CALL bief_allmat (mtra2, 'MTRA2 ',
1215  & ielm3, ielm3, cfg , typdia, typext,mesh3d)
1216  CALL bief_allmat (mtra1, 'MTRA1 ',
1217  & ielm3, ielm3, cfg , typdia, typext,mesh3d)
1218 !
1219 !-----------------------------------------------------------------------
1220 ! 3 2D MATRICES (IELM2H) - (EACH OF THEM ALLOCATED IN A
1221 ! SEPARATE BLOCK), ALL IN BLOCK MAT2D
1222 ! E.G. WORK MATRIX 3 IS: MAT2D%ADR(3)%P
1223 ! THEY ALL GET NAMED MAT2D...............
1224 !
1225  CALL allblo (mat2d, 'MAT2D ')
1226  CALL allblo_in_block(mat2d,3,'MAT2D ')
1227  DO itab = 1,3
1228  CALL bief_deallobj(mat2d%ADR(itab)%P)
1229  DEALLOCATE(mat2d%ADR(itab)%P)
1230  CALL first_all_biefobj(mat2d%ADR(itab)%P)
1231  CALL bief_allmat(mat2d%ADR(itab)%P, 'MAT2D ',
1232  & ielmu, ielmu, cfg2d, 'Q', 'Q',mesh2d)
1233  mat2d%ADR(itab)%P%FATHER='MAT2D '
1234  END DO
1235 !
1236 ! ANOTHER WORK MATRIX IS BUILT USING ALMESH FOR THE 2D MESH: MTRA2
1237 !
1238 ! BOUNDARY MATRIX FOR 2D
1239 !
1240  CALL bief_allmat(mbor2d, 'MBOR2D',
1241  & ielm1, ielm1, cfgbor2d, 'Q','Q',mesh2d)
1242 !
1243 ! 2D WORK MATRIX FOR IELMU.
1244 !
1245  CALL bief_allmat(matr2h,'MATR2H',ielmu ,ielmu ,cfg,'Q','Q',mesh2d)
1246 !
1247 !=======================================================================
1248 !
1249 ! *********************************
1250 ! * STRUCTURES FOR THE RESOLUTION *
1251 ! * OF LINEAR EQUATION SYSTEMS *
1252 ! * S E C O N D M E M B E R S *
1253 ! * V E C T O R S *
1254 ! *********************************
1255 !
1256 !-----------------------------------------------------------------------
1257 ! FOR 3D PART
1258 ! COMPUTES THE NUMBER OF 3D WORK FIELDS AS A FUNCTION OF
1259 ! SOLVER AND PRECONDITIONING TYPE AND NUMBER OF VARIABLES
1260 ! CVDF3D NEEDS AT LEAST 10.
1261  ntr = 10
1262 !
1263  IF(slvdvi%SLV.EQ.7) ntr = max(ntr,2+2*slvdvi%KRYLOV)
1264  IF(ntrac.GT.0) THEN
1265  DO itrac=1,ntrac
1266  IF(slvdta(itrac)%SLV.EQ.7) THEN
1267  ntr = max(ntr,2+2*slvdta(itrac)%KRYLOV)
1268  ENDIF
1269  ENDDO
1270  ENDIF
1271  IF (slvdke%SLV.EQ.7) ntr = max(ntr,2+2*slvdke%KRYLOV)
1272  IF (s3d_slvdse%SLV.EQ.7) ntr = max(ntr,2+2*s3d_slvdse%KRYLOV)
1273  IF (slvpoi%SLV.EQ.7) ntr = max(ntr,2+2*slvpoi%KRYLOV)
1274 ! NO MORE SLVPRJ
1275 ! IF (SLVPRJ%SLV.EQ.7) NTR = MAX(NTR,2+2*SLVPRJ%KRYLOV)
1276 !
1277  i = ntr
1278 !
1279  IF (3*(slvdvi%PRECON/3).EQ.slvdvi%PRECON .OR.
1280  & 3*(slvdke%PRECON/3).EQ.slvdke%PRECON .OR.
1281  & 3*(s3d_slvdse%PRECON/3).EQ.s3d_slvdse%PRECON .OR.
1282  & 3*(slvpoi%PRECON/3).EQ.slvpoi%PRECON) ntr = i+2
1283 !
1284  IF(ntrac.GT.0) THEN
1285  DO itrac=1,ntrac
1286  IF(3*(slvdta(itrac)%PRECON/3).EQ.slvdta(1)%PRECON) ntr = i+2
1287  ENDDO
1288  ENDIF
1289 !
1290  IF (iturbv.EQ.3.OR.iturbh.EQ.3) ntr = max(ntr,12)
1291  IF (iturbv.EQ.6) ntr = max(ntr,12)
1292  IF (iturbv.EQ.7.OR.iturbh.EQ.7) ntr = max(ntr,18)
1293 ! TRAV3 WILL BE USED IN BIEF_VALIDA WITH THIS SIZE
1294 ! SEE ALIRE3D IN TELEMAC3D.F AND VARSO3 IN POINT_TELEMAC3D.F
1295 ! ON 04/07/2012 ADR_TRAC=29
1296  ntr = max(ntr,adr_trac+ntrac-1)
1297 !
1298  CALL allblo(trav3, 'TRAV3 ')
1299  CALL bief_allvec_in_block(trav3,ntr,1,'TRAV ',ielm3,1,2,mesh3d)
1300 !
1301 ! ANOTHER SUCH BLOCK FOR THE LIPS SCHEME
1302 !
1303  CALL allblo(tb2, 'TB2 ')
1304  IF(yeslips) THEN
1305 ! 9 IS THE VALUE CORRESPONDING TO SOLVER 7=GMRES
1306  CALL bief_allvec_in_block(tb2,9,1,'TB2 ',ielm3,1,2,mesh3d)
1307  ELSE
1308  CALL bief_allvec_in_block(tb2,9,1,'TB2 ', 0,1,0,mesh3d)
1309  ENDIF
1310 !
1311 ! POINTERS TO 3D WORK VECTORS; FIRST 10 EXIST FOR SURE
1312 !
1313  t3_01 => trav3%ADR(01)%P
1314  t3_02 => trav3%ADR(02)%P
1315  t3_03 => trav3%ADR(03)%P
1316  t3_04 => trav3%ADR(04)%P
1317  t3_05 => trav3%ADR(05)%P
1318  t3_06 => trav3%ADR(06)%P
1319  t3_07 => trav3%ADR(07)%P
1320  t3_08 => trav3%ADR(08)%P
1321  t3_09 => trav3%ADR(09)%P
1322  t3_10 => trav3%ADR(10)%P
1323  t3_11 => trav3%ADR(11)%P
1324  t3_12 => trav3%ADR(12)%P
1325  t3_13 => trav3%ADR(13)%P
1326  t3_14 => trav3%ADR(14)%P
1327  t3_15 => trav3%ADR(15)%P
1328  t3_16 => trav3%ADR(16)%P
1329  t3_17 => trav3%ADR(17)%P
1330  t3_18 => trav3%ADR(18)%P
1331 !
1332 ! SECOND MEMBER 3D
1333 !
1334  CALL bief_allvec(1, sem3d, 'SEM3D ', ielm3, 1, 2,mesh3d)
1335 !
1336 ! RIGHT HAND SIDE OF CONTINUITY EQUATIONS IF SOURCES
1337 !
1338  CALL allblo(sources, 'SOURCE')
1339  i=nsce
1340  IF(ncsize.GT.1) i=2*nsce
1341  IF(nsce.GT.0) THEN
1342  IF(optsou.EQ.1) THEN
1343  CALL bief_allvec_in_block(sources,i,1,'SCE ',ielm3,
1344  & 1,1,mesh3d)
1345  ELSE IF(optsou.EQ.2) THEN
1346  i=1
1347  IF(ncsize.GT.1) i=2
1348  CALL bief_allvec_in_block(sources,i,1,'SCE ',ielm3,
1349  & 1,1,mesh3d)
1350  ENDIF
1351  ELSE
1352  CALL bief_allvec_in_block(sources,i,1,'SCE ',0 ,1,0,mesh3d)
1353  ENDIF
1354 !
1355 !-----------------------------------------------------------------------
1356 ! FOR 2D PART
1357 !
1358 ! COMPUTES THE NUMBER OF 2D WORK FIELDS AS A FUNCTION OF
1359 ! SOLVER AND PRECONDITIONING TYPE AND NUMBER OF VARIABLES
1360 ! FIRST 23 ALLOCATED FOR SURE...
1361 !
1362  ntr = 23
1363  IF (slvpro%SLV.EQ.7) ntr = max(ntr,6+6*slvpro%KRYLOV)
1364 ! NO MORE SLVW
1365 ! IF (SLVW%SLV.EQ.7) NTR = MAX(NTR,2+2*SLVW%KRYLOV)
1366 ! IF (3*(SLVPRO%PRECON/3) .EQ. SLVPRO%PRECON .OR.
1367 ! & 3*(SLVW%PRECON/3) .EQ. SLVW%PRECON ) NTR = NTR + 6
1368  IF (3*(slvpro%PRECON/3) .EQ. slvpro%PRECON) ntr = ntr + 6
1369 !
1370 ! SEE VARSOR BELOW
1371  ntr=max(ntr,adr_trav2+2*ntrac)
1372 !
1373  CALL allblo(trav2, 'TRAV2 ')
1374  CALL bief_allvec_in_block(trav2,ntr,1,'TR2D ',ielmu,1,2,mesh2d)
1375 !
1376 ! POINTERS TO FIRST 10 2D WORK VECTORS (21 EXIST FOR SURE)
1377 !
1378  t2_01 => trav2%ADR( 1)%P
1379  t2_02 => trav2%ADR( 2)%P
1380  t2_03 => trav2%ADR( 3)%P
1381  t2_04 => trav2%ADR( 4)%P
1382  t2_05 => trav2%ADR( 5)%P
1383  t2_06 => trav2%ADR( 6)%P
1384  t2_07 => trav2%ADR( 7)%P
1385  t2_08 => trav2%ADR( 8)%P
1386  t2_09 => trav2%ADR( 9)%P
1387  t2_10 => trav2%ADR(10)%P
1388  t2_11 => trav2%ADR(11)%P
1389  t2_12 => trav2%ADR(12)%P
1390  t2_13 => trav2%ADR(13)%P
1391  t2_14 => trav2%ADR(14)%P
1392  t2_15 => trav2%ADR(15)%P
1393  t2_16 => trav2%ADR(16)%P
1394  t2_17 => trav2%ADR(17)%P
1395  t2_18 => trav2%ADR(18)%P
1396  t2_19 => trav2%ADR(19)%P
1397  t2_20 => trav2%ADR(20)%P
1398  t2_21 => trav2%ADR(21)%P
1399  t2_22 => trav2%ADR(22)%P
1400  t2_23 => trav2%ADR(23)%P
1401 !
1402 ! SECOND MEMBERS BLOCK - 3 NEEDED
1403 !
1404  CALL allblo(sem2d,'SEM2D ')
1405  CALL bief_allvec_in_block(sem2d,3,1,'SEM2D ',ielmu,1,2,mesh2d)
1406 !
1407 ! WORK FIELDS WITH A DIMENSION OF THE MAX. 2D ELEMENT NUMBER
1408 ! IELM = 10
1409 !
1410  CALL bief_allvec(1, te1, 'TE1 ', 10, 1, 1,mesh2d)
1411  CALL bief_allvec(1, te2, 'TE2 ', 10, 1, 1,mesh2d)
1412  CALL bief_allvec(1, te3, 'TE3 ', 10, 1, 1,mesh2d)
1413 !
1414 ! PIECE-WISE LINEAR FREE SURFACE
1415 !
1416  CALL bief_allvec(1,zflats, 'ZFLATS', 15, 1, 1,mesh2d)
1417  CALL bief_allvec(1,zconv , 'ZCONV ', 15, 1, 1,mesh2d)
1418 !
1419 ! TWO COMPONENTS OF ZCONV HORIZONTAL GRADIENT
1420 !
1421  CALL bief_allvec(1,grazco, 'GRAZCO', 10, 2, 1,mesh2d)
1422 !
1423 ! DELWAQ FLOWS BETWEEN POINTS
1424 !
1425  CALL bief_allvec(1,flodel,'FLODEL',
1426  & nseg*nplan+netage*npoin2, 1, 0,mesh3d)
1427 ! FULL SIZE OF FLOPAR PROBABLY NOT USEFUL IF NOT PARALLEL MODE
1428  CALL bief_allvec(1,flopar,'FLOPAR',
1429  & nseg*nplan+netage*npoin2, 1, 0,mesh3d)
1430 ! LIMITATION OF 2D SEGMENT FLUXES
1431  CALL bief_allvec(1,flulim,'FLULIM',nseg,1,0,mesh3d)
1432 !
1433 !-----------------------------------------------------------------------
1434 ! ALLOCATES VOID STRUCTURE
1435 !
1436  CALL bief_allvec(1, svide, 'SVIDE ', 0, 1, 1,mesh3d)
1437 !
1438 !=======================================================================
1439 ! SEDIMENT
1440 ! IF CONSOLIDATION IS MODELLED USING THE MULTI-LAYER MODEL,
1441 ! THE MAXIMUM NUMBER OF PLANES DISCRETISING THE BED: S3D_NPFMAX
1442 ! EQUALS (S3D_NCOUCH+1) :
1443 !
1444 ! ALSO ALLOCATE 1DV BLOCK (NPLANx11) FOR SET_DIF WORK ARRAYS
1445 ! allocate trav1 for all cases (it might be used by gaia)
1446  CALL allblo (trav1,'TRAV1 ')
1447  CALL bief_allvec_in_block(trav1,11,1,'TRAV1 ',nplan,1,0,mesh3d)
1448  IF(s3d_sedi) THEN
1449  CALL bief_allvec(1, s3d_wchu, 'S3D_WCHU', ielm3, 1,1,
1450  & mesh3d)
1451  ELSE
1452  CALL bief_allvec(1, s3d_wchu, 'S3D_WCHU', 0 , 1,0,
1453  & mesh3d)
1454  ENDIF
1455 !
1456 ! use ncouch + 1 directly
1458 !
1459 ! CV IF((S3D_GIBSON.OR.S3D_TASSE).AND.S3D_SEDI) THEN
1460 ! IF(S3D_NCOUCH.GT.1) THEN
1461 ! CALL BIEF_ALLVEC(1,S3D_EPAI,'EPAI ',S3D_NCOUCH*NPOIN2,1,0,MESH3D)
1462 ! ELSE
1463 ! CALL BIEF_ALLVEC(1,S3D_EPAI,'EPAI ',0, 1,0,MESH3D)
1464 ! ENDIF
1465 !
1466  IF(s3d_tasse.AND.s3d_sedi) THEN
1467  CALL bief_allvec(1, s3d_ivide, 'IVIDE ', s3d_npfmax*npoin2,
1468  & 1,0,mesh3d)
1469  ELSE
1470  CALL bief_allvec(1, s3d_ivide, 'IVIDE ', 0,1,0,mesh3d)
1471  ENDIF
1472 !
1473  IF(s3d_tasse.AND.s3d_sedi) THEN
1474  CALL bief_allvec(1, s3d_temp, 'TEMP ', s3d_ncouch*npoin2,
1475  & 1,0,mesh3d)
1476  ELSE
1477  CALL bief_allvec(1, s3d_temp, 'TEMP ', 0,1,0,mesh3d)
1478  ENDIF
1479 !
1480  IF(s3d_sedi) THEN
1481  CALL bief_allvec(1, s3d_dmoy, 'DMOY ', ielm2h, 1, 1,mesh2d)
1482  CALL bief_allvec(1, s3d_cref, 'CREF ', ielm2h, 1, 1,mesh2d)
1483  CALL bief_allvec(1, zref, 'ZREF ', ielmu, 1, 1,mesh2d)
1484  CALL bief_allvec(1, s3d_hdep, 'HDEP ', ielm2h, 1, 1,mesh2d)
1485  CALL bief_allvec(1, s3d_fluer, 'FLUER ', ielm2h, 1, 1,mesh2d)
1486  CALL bief_allvec(1, s3d_pdepo, 'PDEPO ', ielm2h, 1, 1,mesh2d)
1487 ! CV ...
1488  CALL bief_allvec(1, s3d_fludp, 'FLUDP ', ielm2h, 1, 1,mesh2d)
1489  CALL bief_allvec(1, s3d_fludpt,'FLUDPT', ielm2h, 1, 1,mesh2d)
1490  CALL bief_allvec(1, s3d_zf_s, 'ZF_S ', ielm2h, 1, 1,mesh2d)
1491  CALL bief_allvec(1, s3d_esomt, 'ESOMT ', ielm2h, 1, 1,mesh2d)
1492 !
1493 !
1494 ! Pour modele multi multicouche
1495 ! ?
1496 ! IF(S3D_NCOUCH. GT.1) THEN
1497 ! CALL BIEF_ALLVEC(1, S3D_CONC, 'CONC ', S3D_NCOUCH, 1, 0,MESH2D)
1498 ! CALL BIEF_ALLVEC(1, S3D_TOCE, 'TOCE ', S3D_NCOUCH, 1, 0,MESH2D)
1499 ! ELSE
1500 ! CALL BIEF_ALLVEC(1, S3D_CONC, 'CONC ', 0, 1, 0,MESH2D)
1501 ! CALL BIEF_ALLVEC(1, S3D_TOCE, 'TOCE ', 0, 1, 0,MESH2D)
1502 ! ENDIF
1503 ! 7.0 Big change
1504 !
1505  ALLOCATE(s3d_conc(npoin2,s3d_ncouch))
1506  ALLOCATE(s3d_epai(npoin2,s3d_ncouch)) ! MUD BED LAYER THICKNESS
1507  ALLOCATE(s3d_toce(npoin2,s3d_ncouch)) ! CONCENTRATION OF MUD BED LAYER
1508 !
1509  CALL allblo(s3d_laytoce, 'LAYTOCE') ! LAYER BED SHEAR STRESS
1510  CALL bief_allvec_in_block(s3d_laytoce,s3d_ncouch,1,'LAYTOCE',
1511  & 0,1,0,mesh2d)
1512  DO k=1,s3d_ncouch
1513  s3d_laytoce%ADR(k)%P%R=>s3d_toce(1:npoin2,k)
1514  s3d_laytoce%ADR(k)%P%MAXDIM1=npoin2
1515  s3d_laytoce%ADR(k)%P%DIM1=npoin2
1516  ENDDO
1517 !
1518  CALL allblo(s3d_laythi, 'LAYTHI') ! LAYER BED THICKNESS
1519  CALL bief_allvec_in_block(s3d_laythi,s3d_ncouch,1,'LAYTHI',
1520  & 0,1,0,mesh2d)
1521  DO k=1,s3d_ncouch
1522  s3d_laythi%ADR(k)%P%R=>s3d_epai(1:npoin2,k)
1523  s3d_laythi%ADR(k)%P%MAXDIM1=npoin2
1524  s3d_laythi%ADR(k)%P%DIM1=npoin2
1525  ENDDO
1526 !...CV
1527  CALL bief_allvec(1, zr, 'ZR ', ielm2h, 1, 1,mesh2d)
1528  CALL bief_allvec(2, npf, 'NPF ', ielm2h, 1, 1,mesh2d)
1529  ELSE
1530  CALL bief_allvec(1, s3d_dmoy, 'DMOY ', 0, 1, 0,mesh2d)
1531  CALL bief_allvec(1, s3d_cref, 'CREF ', 0, 1, 0,mesh2d)
1532  CALL bief_allvec(1, zref, 'ZREF ', 0, 1, 0,mesh2d)
1533  CALL bief_allvec(1, s3d_hdep, 'HDEP ', 0, 1, 0,mesh2d)
1534  CALL bief_allvec(1, s3d_fluer, 'FLUER ', 0, 1, 0,mesh2d)
1535  CALL bief_allvec(1, s3d_pdepo, 'PDEPO ', 0, 1, 0,mesh2d)
1536  CALL bief_allvec(1, zr, 'ZR ', 0, 1, 0,mesh2d)
1537  CALL bief_allvec(2, npf, 'NPF ', 0, 1, 0,mesh2d)
1538  ENDIF
1539 !
1540 ! NEW VARIABLES FOR MIXED SEDIMENT
1541 !
1542  IF(s3d_mixte) THEN
1543  CALL bief_allvec(1,s3d_epaico,'EPAICO',ielm2h,1,1,mesh2d)
1544  CALL bief_allvec(1,s3d_epainco,'EPANCO',ielm2h,1,1,mesh2d)
1545  CALL bief_allvec(1,s3d_pvsco,'PVSCO ',ielm2h,1,1,mesh2d)
1546  CALL bief_allvec(1,s3d_pvsnco,'PVSNCO',ielm2h,1,1,mesh2d)
1547  CALL bief_allvec(1,s3d_fluerc,'FLUERC',ielm2h,1,1,mesh2d)
1548  CALL bief_allvec(1,s3d_fluernc,'FLUENC',ielm2h,1,1,mesh2d)
1549  CALL bief_allvec(1,s3d_fludptc,'FLUDTC',ielm2h,1,1,mesh2d)
1550  CALL bief_allvec(1,s3d_fludptnc,'FLUTNC',ielm2h,1,1,mesh2d)
1551  CALL bief_allvec(1,s3d_fludpc,'FLUDPC',ielm2h,1,1,mesh2d)
1552  CALL bief_allvec(1,s3d_fludpnc,'FLUPNC',ielm2h,1,1,mesh2d)
1553  CALL bief_allvec(1,s3d_wcs ,'WCS ',ielm3 ,1,1,mesh3d)
1554  ELSE
1555  CALL bief_allvec(1,s3d_epaico,'EPAICO',0 ,1,0,mesh2d)
1556  CALL bief_allvec(1,s3d_epainco,'EPANCO',0 ,1,0,mesh2d)
1557  CALL bief_allvec(1,s3d_pvsco,'PVSCO ',0 ,1,0,mesh2d)
1558  CALL bief_allvec(1,s3d_pvsnco,'PVSNCO',0 ,1,0,mesh2d)
1559  CALL bief_allvec(1,s3d_fluerc,'FLUERC',0 ,1,0,mesh2d)
1560  CALL bief_allvec(1,s3d_fluernc,'FLUENC',0 ,1,0,mesh2d)
1561  CALL bief_allvec(1,s3d_fludptc,'FLUDTC',0 ,1,0,mesh2d)
1562  CALL bief_allvec(1,s3d_fludptnc,'FLUTNC',0 ,1,0,mesh2d)
1563  CALL bief_allvec(1,s3d_fludpc,'FLUDPC',0 ,1,0,mesh2d)
1564  CALL bief_allvec(1,s3d_fludpnc,'FLUPNC',0 ,1,0,mesh2d)
1565  CALL bief_allvec(1,s3d_wcs ,'WCS ',0 ,1,0,mesh3d)
1566  ENDIF
1567 !
1568 !-----------------------------------------------------------------------
1569 !
1570 ! ARRAYS USED FOR TUBES/BRIDGES
1571 !
1572  IF(nbuse.GT.0) THEN
1573  CALL bief_allvec(1,altbus ,'ALTBUS ',nbuse,2,0,mesh3d)
1574  CALL bief_allvec(1,csbus ,'CSBUS ',nbuse,2,0,mesh3d)
1575  CALL bief_allvec(1,cebus ,'CEBUS ',nbuse,2,0,mesh3d)
1576  CALL bief_allvec(1,angbus ,'ANGBUS ',nbuse,2,0,mesh3d)
1577  CALL bief_allvec(1,lbus ,'LBUS ',nbuse,1,0,mesh3d)
1578  CALL bief_allvec(1,dbus ,'DBUS ',nbuse,1,0,mesh3d)
1579  CALL bief_allvec(1,lrgbus ,'LRGBUS ',nbuse,1,0,mesh3d)
1580  CALL bief_allvec(1,haubus ,'HAUBUS ',nbuse,2,0,mesh3d)
1581  CALL bief_allvec(1,secbus ,'SECBUS ',nbuse,1,0,mesh3d)
1582  CALL bief_allvec(2,clpbus ,'CLPBUS ',nbuse,1,0,mesh3d)
1583  CALL bief_allvec(1,cv ,'CV ',nbuse,1,0,mesh3d)
1584  CALL bief_allvec(1,c56 ,'C56 ',nbuse,1,0,mesh3d)
1585  CALL bief_allvec(1,cv5 ,'CV5 ',nbuse,1,0,mesh3d)
1586  CALL bief_allvec(1,c5 ,'C5 ',nbuse,1,0,mesh3d)
1587  CALL bief_allvec(1,ctrash ,'CTRASH ',nbuse,1,0,mesh3d)
1588  CALL bief_allvec(1,fricbus,'FRICBUS',nbuse,1,0,mesh3d)
1589  CALL bief_allvec(1,longbus,'LONGBUS',nbuse,1,0,mesh3d)
1590  CALL bief_allvec(2,circ ,'CIRC ',nbuse,1,0,mesh3d)
1591  CALL bief_allvec(1,delbus ,'DELBUS ',nbuse,2,0,mesh3d)
1592  CALL bief_allvec(2,aabus ,'AABUS ',nbuse,1,0,mesh3d)
1593  DO i=1, nbuse
1594  dbus%R(i)=0.d0
1595  secbus%R(i)=1.d0
1596  ENDDO
1597  CALL allblo(tbus ,'TBUS ')
1598  IF(ntrac.GT.0) THEN
1599  CALL bief_allvec_in_block(tbus,ntrac,1,'TBUS ',
1600  & nbuse,2,0,mesh3d)
1601  ELSE
1602  CALL bief_allvec_in_block(tbus,1 ,1,'TBUS ',
1603  & nbuse,2,0,mesh3d)
1604  ENDIF
1605  ELSE
1606  CALL bief_allvec(1,altbus ,'ALTBUS ',0,2,0,mesh3d)
1607  CALL bief_allvec(1,csbus ,'CSBUS ',0,2,0,mesh3d)
1608  CALL bief_allvec(1,cebus ,'CEBUS ',0,2,0,mesh3d)
1609  CALL bief_allvec(1,angbus ,'ANGBUS ',0,2,0,mesh3d)
1610  CALL bief_allvec(1,lbus ,'LBUS ',0,1,0,mesh3d)
1611  CALL bief_allvec(1,dbus ,'DBUS ',0,1,0,mesh3d)
1612  CALL bief_allvec(1,lrgbus ,'LRGBUS ',0,1,0,mesh3d)
1613  CALL bief_allvec(1,haubus ,'HAUBUS ',0,2,0,mesh3d)
1614  CALL bief_allvec(1,secbus ,'SECBUS ',0,1,0,mesh3d)
1615  CALL bief_allvec(2,clpbus ,'CLPBUS ',0,1,0,mesh3d)
1616  CALL bief_allvec(1,cv ,'CV ',0,1,0,mesh3d)
1617  CALL bief_allvec(1,c56 ,'C56 ',0,1,0,mesh3d)
1618  CALL bief_allvec(1,cv5 ,'CV5 ',0,1,0,mesh3d)
1619  CALL bief_allvec(1,c5 ,'C5 ',0,1,0,mesh3d)
1620  CALL bief_allvec(1,ctrash ,'CTRASH ',0,1,0,mesh3d)
1621  CALL bief_allvec(1,fricbus,'FRICBUS',0,1,0,mesh3d)
1622  CALL bief_allvec(1,longbus,'LONGBUS',0,1,0,mesh3d)
1623  CALL bief_allvec(2,circ ,'CIRC ',0,1,0,mesh3d)
1624  CALL bief_allvec(1,delbus ,'DELBUS ',0,2,0,mesh3d)
1625  CALL bief_allvec(2,aabus ,'AABUS ',0,1,0,mesh3d)
1626  CALL allblo(tbus ,'TBUS ')
1627  IF(ntrac.GT.0) THEN
1628  CALL bief_allvec_in_block(tbus,ntrac,1,'TBUS ',
1629  & 0,2,0,mesh3d)
1630  ELSE
1631  CALL bief_allvec_in_block(tbus,1 ,1,'TBUS ',
1632  & 0,2,0,mesh3d)
1633  ENDIF
1634  ENDIF
1635 !
1636 !-----------------------------------------------------------------------
1637 ! VARSOR BLOCK FOR 2D OUTPUT COMPATIBILITY
1638 !
1639  CALL allblo(varsor ,'VARSOR')
1640 !
1641  CALL addblo(varsor,u2d) ! U 01 VELOCITY ALONG X
1642  CALL addblo(varsor,v2d) ! V 02 VELOCITY ALONG Y
1643  CALL addblo(varsor,t2_10) ! C 03 WAVE CELERITY
1644  CALL addblo(varsor,h) ! H 04 DEPTH
1645  CALL addblo(varsor,t2_01) ! S 05 FREE SURFACE
1646  CALL addblo(varsor,zf) ! B 06 BOTTOM
1647  CALL addblo(varsor,t2_02) ! F 07 FROUDE NUMBER
1648  CALL addblo(varsor,t2_03) ! Q 08 Q SCALAR FLOW RATE
1649  CALL addblo(varsor,svide) ! T 09 NOT IMPLEMENTED
1650  CALL addblo(varsor,svide) ! D 10 NOT IMPLEMENTED
1651  CALL addblo(varsor,svide) ! E 11 NOT IMPLEMENTED
1652  CALL addblo(varsor,svide) ! K 12 NOT IMPLEMENTED
1653  CALL addblo(varsor,t2_04) ! I 13 HU
1654  CALL addblo(varsor,t2_05) ! J 14 HV
1655  CALL addblo(varsor,t2_06) ! M 15 SQRT(U**2+V**2)
1656  CALL addblo(varsor,windx) ! X 16 WIND COMPONENT X DIRECT
1657  CALL addblo(varsor,windy) ! Y 17 WIND COMPONENT Y DIRECT
1658  CALL addblo(varsor,patmos) ! P 18 ATMOSPHERIC PRESSURE
1659  CALL addblo(varsor,rugof) ! W 19 FRICTION COEFFICIENT
1660  CALL addblo(varsor,svide) !!! A 20
1661  CALL addblo(varsor,svide) !!! G 21
1662  CALL addblo(varsor,svide) !!! L 22
1663  CALL addblo(varsor,zr) ! RB 23 RIGID BED
1664  CALL addblo(varsor,s3d_hdep) ! HD 24 BED THICKNESS
1665  CALL addblo(varsor,s3d_fluer) ! EF 25 EROSION FLUX
1666  CALL addblo(varsor,s3d_fludp) ! DF 26 DEPOSITION FLUX
1667  CALL addblo(varsor,prive2d%ADR(1)%P)! 27 MNEMO PRIVE1
1668  CALL addblo(varsor,prive2d%ADR(2)%P)! 28 MNEMO PRIVE2
1669  CALL addblo(varsor,prive2d%ADR(3)%P)! 29 MNEMO PRIVE3
1670  CALL addblo(varsor,prive2d%ADR(4)%P)! 30 MNEMO PRIVE4
1671  CALL addblo(varsor,t2_07) ! US 31 FRICTION VELOCITY
1672  CALL addblo(varsor,t2_11) ! QS 32 SOLID DISCHARGE
1673  CALL addblo(varsor,t2_12) ! QS 33 SOLID DISCHARGE ALONG X
1674  CALL addblo(varsor,t2_13) ! QS 34 SOLID DISCHARGE ALONG Y
1675  CALL addblo(varsor,maxz) ! MAXZ 35 HIGH WATER MARK
1676  CALL addblo(varsor,tmaxz) ! TMAXZ 36 HIGH WATER TIME
1677  CALL addblo(varsor,s3d_esomt) ! S3D_ESOMT37 BED EVOLUTION DUE TO DUSPENSION
1678  CALL addblo(varsor,tair) ! TAIR 38 AIR TEMPERATURE
1679  CALL addblo(varsor,t2_14) ! USURF 39 VELOCITY ALONG X AT THE FREE SURFACE
1680  CALL addblo(varsor,t2_15) ! VSURF 40 VELOCITY ALONG Y AT THE FREE SURFACE
1681  CALL addblo(varsor,t2_16) ! WSURF 41 VELOCITY ALONG Z AT THE FREE SURFACE
1682  CALL addblo(varsor,t2_17) ! MSURF 42 VELOCITY MAGNITUDE AT THE FREE SURFACE
1683 
1684  IF(nvar_hyd.NE.varsor%N) THEN
1685  WRITE(lu,*) 'MESSAGE TO DEVELOPPERS:'
1686  WRITE(lu,*) 'NVAR_HYD DIFFERENT THAN VARSOR SIZE ',varsor%N
1687  WRITE(lu,*) 'IN POINT_TELEMAC3D'
1688  CALL plante(1)
1689  stop
1690  ENDIF
1691 !
1692 ! VARIABLES ADR_TRAC_2D TO ADR_TRAC_2D+NTRAC-1
1693 !
1694  IF(ntrac.GT.0) THEN
1695  DO i=1,ntrac
1696 ! SIZE OF TRAV2 MUST BE GREATER THAN ADR_TRAV2+2*NTRAC
1697  CALL addblo(varsor,trav2%ADR(adr_trav2+i)%P)
1698  ENDDO
1699  DO i=1,ntrac
1700  CALL addblo(varsor,trav2%ADR(adr_trav2+ntrac+i)%P)
1701  ENDDO
1702  ENDIF
1703 !
1704 ! S3D_LAYTHI: FROM ADR_TRAC_2D+NTRAC TO ADR_TRAC_2D+2*NTRAC+S3D_NCOUCH
1705 !
1706  IF(s3d_ncouch.GT.0.AND.s3d_sedi) THEN
1707  DO i=1,s3d_ncouch
1708  CALL addblo(varsor,s3d_laythi%ADR(i)%P)
1709  ENDDO
1710  ENDIF
1711 !
1712  CALL addblo(varsor,s3d_pvsco) ! ADR_TRAC_2D+2*NTRAC+S3D_NCOUCH
1713  CALL addblo(varsor,s3d_pvsnco) ! ADR_TRAC_2D+1+2*NTRAC+S3D_NCOUCH
1714 !
1715 !
1716 ! QUASI - OTHER VARIABLES, AN EMPTY BLOCK
1717 !
1718  CALL allblo(varcl,'VARCL ')
1719 !
1720 !-----------------------------------------------------------------------
1721 ! VARSOR BLOCK FOR 3D OUTPUT
1722 !
1723  CALL allblo(varso3 ,'VARSO3')
1724 ! 1
1725  CALL addblo(varso3,z3)
1726 ! 2
1727  CALL addblo(varso3,u)
1728 ! 3
1729  CALL addblo(varso3,v)
1730 ! 4
1731  CALL addblo(varso3,w)
1732 ! 5
1733  CALL addblo(varso3,viscvi%ADR(1)%P)
1734 ! 6
1735  CALL addblo(varso3,viscvi%ADR(2)%P)
1736 ! 7
1737  CALL addblo(varso3,viscvi%ADR(3)%P)
1738 ! 8
1739  CALL addblo(varso3,ak)
1740 ! 9
1741  CALL addblo(varso3,ep)
1742 ! 10
1743  CALL addblo(varso3,ri)
1744 ! 11
1745  CALL addblo(varso3,deltar)
1746 ! 12 : DYNAMIC PRESSURE
1747  CALL addblo(varso3,dp)
1748 ! 13 : HYDROSTATIC PRESSURE
1749  CALL addblo(varso3,ph)
1750 ! 14 : ADVECTION FIELD U
1751  CALL addblo(varso3,uconv)
1752 ! 15 : ADVECTION FIELD V
1753  CALL addblo(varso3,vconv)
1754 ! 16 : ADVECTION FIELD V
1755  CALL addblo(varso3,wconv)
1756 ! 17 : NOT USED !!!!!!!!!!!!!
1757  CALL addblo(varso3,volun)
1758 ! 18 : DM1
1759  CALL addblo(varso3,dm1)
1760 ! 19 : DH AND HN
1761  CALL addblo(varso3,dhhn)
1762 ! 20 : UCONVC
1763  CALL addblo(varso3,uconvc)
1764 ! 21 : VCONVC
1765  CALL addblo(varso3,vconvc)
1766 ! 22 : UD
1767  CALL addblo(varso3,ud)
1768 ! 23 : VD
1769  CALL addblo(varso3,vd)
1770 ! 24 : WD
1771  CALL addblo(varso3,wd)
1772 ! 25 : PRIVE 1
1773  CALL addblo(varso3,prive%ADR(1)%P)
1774 ! 26 : PRIVE 2
1775  CALL addblo(varso3,prive%ADR(2)%P)
1776 ! 27 : PRIVE 3
1777  CALL addblo(varso3,prive%ADR(3)%P)
1778 ! 28 : PRIVE 4
1779  CALL addblo(varso3,prive%ADR(4)%P)
1780 ! 29 : US
1781  CALL addblo(varso3,ustokes)
1782 ! 30 : VS
1783  CALL addblo(varso3,vstokes)
1784 ! 31 : WS
1785  CALL addblo(varso3,wstokes)
1786 !
1787 
1788 ! THE FOLLOWING ADDRESS FOR TRACERS IS ADR_TRAC = 32
1789 ! THIS NUMBER IS HARDCODED IN DECLARATIONS_TELEMAC3D
1790 !
1791  IF(nvar_t3d.NE.varso3%N) THEN
1792  WRITE(lu,*) 'MESSAGE TO DEVELOPPERS:'
1793  WRITE(lu,*) 'NVAR_T3D DIFFERENT THAN VARSO3 SIZE ',varso3%N
1794  WRITE(lu,*) 'IN POINT_TELEMAC3D'
1795  CALL plante(1)
1796  stop
1797  ENDIF
1798 !
1799 ! VARIABLES NUMBER "ADR_TRAC" TO "ADR_TRAC" + NTRAC - 1
1800 !
1801  IF(ntrac.GT.0) THEN
1802  DO i=1,ntrac
1803  CALL addblo(varso3,ta%ADR(i)%P)
1804  ENDDO
1805  ENDIF
1806 !
1807 ! VARIABLES NUMBER "ADR_TRAC" + NTRAC TO "ADR_TRAC" + 4*NTRAC - 1
1808 !
1809  IF(ntrac.GT.0) THEN
1810  DO i=1,ntrac
1811  CALL addblo(varso3,viscta%ADR(i)%P%ADR(1)%P)
1812  CALL addblo(varso3,viscta%ADR(i)%P%ADR(2)%P)
1813  CALL addblo(varso3,viscta%ADR(i)%P%ADR(3)%P)
1814  ENDDO
1815  ENDIF
1816 !
1817  IF(inclus(coupling,'TOMAWACT3D')) THEN
1818  CALL bief_allvec(1, wip, 'WIP ', ielmu, 1, 1,mesh2d)
1819  CALL bief_allvec(1, wipdx, 'WIPDX ', ielmu, 1, 1,mesh2d)
1820  CALL bief_allvec(1, wipdy, 'WIPDY ', ielmu, 1, 1,mesh2d)
1821  CALL bief_allvec(1, ustokes, 'USTOKE', ielm3, 1, 1,mesh3d)
1822  CALL bief_allvec(1, vstokes, 'VSTOKE', ielm3, 1, 1,mesh3d)
1823  CALL bief_allvec(1, wstokes, 'WSTOKE', ielm3, 1, 1,mesh3d)
1824  CALL bief_allvec(1, wst1, 'WST1 ', ielmu, 1, 1,mesh2d)
1825  CALL bief_allvec(1, wst2, 'WST2 ', ielm3, 1, 1,mesh3d)
1826  CALL bief_allvec(1, us2d, 'US2D ', ielmu, 1, 1,mesh2d)
1827  CALL bief_allvec(1, vs2d, 'VS2D ', ielmu, 1, 1,mesh2d)
1828  CALL bief_allvec(1, dus2d, 'DUS2D ', ielmh, 1, 2,mesh2d)
1829  CALL bief_allvec(1, dvs2d, 'DVS2D ', ielmh, 1, 2,mesh2d)
1830  CALL bief_allvec(1, dus2dx, 'DUS2DX', ielmh, 1, 2,mesh2d)
1831  CALL bief_allvec(1, dvs2dy, 'DVS2DY', ielmh, 1, 2,mesh2d)
1832  CALL bief_allvec(1, ustx, 'USTX ', ielm3, 1, 1,mesh3d)
1833  CALL bief_allvec(1, vsty, 'VSTY ', ielm3, 1, 1,mesh3d)
1834  CALL bief_allvec(1, fdx, 'FDX ', ielmu, 1, 1,mesh2d)
1835  CALL bief_allvec(1, fdy, 'FDY ', ielmu, 1, 1,mesh2d)
1836  CALL bief_allvec(1, fbx, 'FBX ', ielmu, 1, 1,mesh2d)
1837  CALL bief_allvec(1, fby, 'FBY ', ielmu, 1, 1,mesh2d)
1838  CALL bief_allvec(1, cfwc, 'CFWC ', ielmu, 1, 1,mesh2d)
1839  CALL bief_allvec(1, fdk, 'FDK ', ielm3, 1, 1,mesh3d)
1840  CALL bief_allvec(1, fwx, 'FWX ', ielmu, 1, 1,mesh2d)
1841  CALL bief_allvec(1, fwy, 'FWY ', ielmu, 1, 1,mesh2d)
1842  CALL bief_allvec(1, hborcli, 'HBORCL', ielm1, 1, 1,mesh2d)
1843  CALL bief_allvec(1, uborcli, 'UBORCL', ielm1, 1, 1,mesh2d)
1844  CALL bief_allvec(1, vborcli, 'VBORCL', ielm1, 1, 1,mesh2d)
1845  ELSE
1846  CALL bief_allvec(1, wip, 'WIP ', 0, 1, 0,mesh2d)
1847  CALL bief_allvec(1, wipdx, 'WIPDX ', 0, 1, 0,mesh2d)
1848  CALL bief_allvec(1, wipdy, 'WIPDY ', 0, 1, 0,mesh2d)
1849  CALL bief_allvec(1, ustokes, 'USTOKE', 0, 1, 0,mesh3d)
1850  CALL bief_allvec(1, vstokes, 'VSTOKE', 0, 1, 0,mesh3d)
1851  CALL bief_allvec(1, wstokes, 'WSTOKE', 0, 1, 0,mesh3d)
1852  CALL bief_allvec(1, wst1, 'WST1 ', 0, 1, 0,mesh2d)
1853  CALL bief_allvec(1, wst2, 'WST2 ', 0, 1, 0,mesh3d)
1854  CALL bief_allvec(1, us2d, 'US2D ', 0, 1, 0,mesh2d)
1855  CALL bief_allvec(1, vs2d, 'VS2D ', 0, 1, 0,mesh2d)
1856  CALL bief_allvec(1, dus2d, 'DUS2D ', 0, 1, 0,mesh2d)
1857  CALL bief_allvec(1, dvs2d, 'DVS2D ', 0, 1, 0,mesh2d)
1858  CALL bief_allvec(1, dus2dx, 'DUS2DX', 0, 1, 0,mesh2d)
1859  CALL bief_allvec(1, dvs2dy, 'DVS2DY', 0, 1, 0,mesh2d)
1860  CALL bief_allvec(1, ustx, 'USTX ', 0, 1, 0,mesh3d)
1861  CALL bief_allvec(1, vsty, 'VSTY ', 0, 1, 0,mesh3d)
1862  CALL bief_allvec(1, fdx, 'FDX ', 0, 1, 0,mesh2d)
1863  CALL bief_allvec(1, fdy, 'FDY ', 0, 1, 0,mesh2d)
1864  CALL bief_allvec(1, fbx, 'FBX ', 0, 1, 0,mesh2d)
1865  CALL bief_allvec(1, fby, 'FBY ', 0, 1, 0,mesh2d)
1866  CALL bief_allvec(1, cfwc, 'CFWC ', 0, 1, 0,mesh2d)
1867  CALL bief_allvec(1, fdk, 'FDK ', 0, 1, 0,mesh3d)
1868  CALL bief_allvec(1, fwx, 'FWX ', 0, 1, 0,mesh2d)
1869  CALL bief_allvec(1, fwy, 'FWY ', 0, 1, 0,mesh2d)
1870  CALL bief_allvec(1, hborcli, 'HBORCL', 0, 1, 0,mesh2d)
1871  CALL bief_allvec(1, uborcli, 'UBORCL', 0, 1, 0,mesh2d)
1872  CALL bief_allvec(1, vborcli, 'VBORCL', 0, 1, 0,mesh2d)
1873  ENDIF
1874 !
1875 ! METEO MODULE
1876 !
1878  & inclus(coupling,'WAQTEL'))
1879 !
1880 !-----------------------------------------------------------------------
1881 !
1882  IF(listin) THEN
1883  WRITE(lu,42)
1884  ENDIF
1885  42 FORMAT(1x,/,' END OF MEMORY ALLOCATION ',/)
1886 !
1887 !-----------------------------------------------------------------------
1888 !
1889  RETURN
1890  END
type(bief_obj), target us2d
type(bief_obj), target limpro
type(bief_obj), target eborl
type(bief_obj), target nuwave
type(bief_obj), target awbors
type(bief_obj), target volu
type(bief_obj), target v
type(bief_obj), target volu3dpar
type(bief_obj), target likbof
type(bief_obj), target s0ep
type(bief_obj), target zr
type(bief_obj), target mtra2
type(bief_obj), pointer prive1
type(bief_file), dimension(maxlu_t3d), target t3d_files
integer, parameter adv_nsc_tf
type(bief_obj), target zf
type(bief_obj), target viscta
type(bief_obj), target hborcli
type(bief_obj), target liwbos
type(bief_obj), pointer t3_08
type(bief_obj), target avborf
type(bief_obj), pointer t3_09
type(bief_obj), pointer it2
type(bief_obj), target hprop
type(bief_obj), target s0ak
integer, parameter adv_psi
type(bief_obj), target ta_sce
type(bief_obj), target flbor
type(bief_obj), pointer ysgbor2
type(bief_obj), target strain
type(bief_obj), target bebors
type(bief_obj), target, public windy
type(bief_obj), target lrgbus
type(bief_obj), target s3d_fludp
type(bief_obj), target buborf
type(bief_obj), target vbors
type(bief_obj), target mmurd
type(bief_obj), target ta
type(bief_obj), pointer t2_03
type(bief_obj), target fn3d
type(bief_obj), target vconvc
type(bief_obj), target ipbot
type(bief_obj), target uconvc
type(bief_obj), target numtide
type(bief_obj), target windspd
type(bief_obj), target dirmoy
type(bief_obj), target s3d_fludpnc
type(bief_obj), target zstar
type(bief_obj), target vstokes
type(bief_obj), target s3d_fluer
type(bief_obj), target haubus
type(bief_obj), target uetcal
type(bief_obj), target bl_s0f
type(bief_obj), target s3d_wchu
type(bief_obj), pointer t3_04
type(bief_obj), target fv
type(bief_obj), target uborl
type(bief_obj), target zprop
type(bief_obj), pointer t2_11
type(bief_obj), target s3d_fludptnc
type(bief_obj), target zt
type(bief_obj), target smh
type(slvcfg), dimension(:), allocatable slvdta
type(bief_obj), target pluie
integer, parameter adv_sup
type(bief_obj), target tagflo
type(bief_mesh), target mesh2d
type(bief_obj), target transf_plane
type(bief_obj), target s3d_laythi
type(bief_obj), pointer surfa3
type(bief_obj), target anuborf
type(bief_obj), target, public tair
Definition: meteo_telemac.f:44
type(bief_obj), pointer prive2d1
type(bief_obj), target bkborl
type(bief_obj), target liubol
type(bief_obj), target s3d_esomt
type(bief_obj), target smv
type(bief_obj), pointer ikle3
type(bief_obj), target tbus
type(bief_obj), pointer t2_10
type(bief_obj), pointer t3_07
type(bief_obj), target vbor2d
type(bief_obj), target bwborl
type(bief_obj), pointer t2_20
type(bief_obj), target akn
type(bief_obj), pointer prive2d4
type(bief_obj), target te1
integer function bief_nbpel(IELM, MESH)
Definition: bief_nbpel.f:7
type(bief_obj), target likbos
type(bief_obj), target dvs2d
type(bief_obj), target unsv3d
type(bief_obj), target rho
type(bief_obj), target fbx
type(bief_obj), target rugof
type(bief_obj), target ubor2d
type(bief_obj), target ep
type(bief_obj), target auborl
type(bief_obj), target wel
type(bief_obj), target rho4aed2
type(bief_obj), target dpn
subroutine allblo(BLO, NOM)
Definition: allblo.f:7
type(bief_obj), target nun
subroutine, public point_meteo(FILES, ATMFILEA, ATMFILEB, MESH, IELMT, AVENT, AATMOS, AWATER_QUALITY, AICE)
double precision, dimension(:,:), allocatable, target s3d_epai
type(bief_obj), target zflats
type(bief_obj), pointer t3_12
type(bief_obj), target kborf
type(bief_obj), target vs2d
type(bief_obj), target anubors
type(bief_obj), target lbus
type(bief_obj), target v2dpar
type(bief_obj), target tmaxz
type(bief_obj), target ctrash
type(bief_obj), target dm1
type(bief_obj), target zchar
type(bief_obj), target vn2d
type(bief_obj), target varso3
type(bief_obj), target liubol_user
type(bief_obj), pointer x2
type(bief_obj), target altbus
type(bief_obj), target prive
type(bief_obj), target aeborl
type(bief_obj), target itrav3
type(bief_obj), target lipbol
type(bief_obj), target atabos
type(bief_obj), target wborl
type(bief_obj), target litabf
type(bief_obj), target btabof
type(bief_obj), target bubors
type(bief_obj), target litabl
subroutine bief_deallobj(OBJ)
Definition: bief_deallobj.f:7
type(bief_obj), pointer t3_05
type(bief_obj), target kborsave
type(bief_obj), target un
type(bief_obj), target ubtide
type(bief_obj), target uetcar
type(bief_obj), target bkbors
subroutine bief_allvec(NAT, VEC, NOM, IELM, DIM2, STATUT, MESH)
Definition: bief_allvec.f:7
type(bief_obj), target matr2h
type(bief_obj), target s1u
type(bief_obj), target circ
type(bief_obj), target s0v
type(bief_obj), target eborsave
type(bief_obj), target uborsave
type(bief_obj), target liebof
type(bief_obj), target wst1
subroutine bief_allvec_in_block(BLO, N, NAT, NOMGEN, IELM, NDIM, STATUT, MESH)
type(bief_obj), target livbol_user
logical, dimension(maxvar) sorg2d
type(bief_obj), target cfwc
type(bief_obj), target volut
subroutine allblo_in_block(BLO, N, NOMGEN)
type(bief_obj), pointer t2_07
type(bief_obj), target ak_sce
type(bief_obj), target tpr5
type(bief_obj), target trn
type(bief_obj), target s1ta
type(bief_obj), target pbors
type(bief_obj), target akc
type(bief_obj), target fluint
subroutine point_telemac3d
type(bief_obj), target unsv2d
type(bief_obj), target fricbus
type(bief_obj), target wbors
type(bief_obj), target s3d_fludpc
type(bief_obj), target taborl
type(bief_obj), pointer prive2d2
type(bief_obj), target s1v
type(bief_obj), target wborsave
type(bief_obj), pointer xnebor2
type(bief_obj), target s3d_temp
type(bief_obj), target btabos
double precision, dimension(:), allocatable, target wsce
type(bief_obj), target maskel
type(bief_obj), target liubof
subroutine bief_allmat(MAT, NOM, IELM1, IELM2, CFG, TYPDIA, TYPEXT, MESH)
Definition: bief_allmat.f:7
type(bief_obj), target fyh
type(bief_obj), target trav1
type(bief_obj), pointer t3_06
type(bief_obj), target longbus
type(bief_obj), target s3d_laytoce
type(bief_obj), target yflot
type(bief_obj), target liwbol
type(bief_obj), target vc
type(bief_obj), target wconv
type(bief_obj), target flux
type(bief_obj), target s3d_pdepo
type(bief_obj), target awborf
type(bief_obj), target litabs
type(bief_obj), target tabors
type(bief_obj), pointer t3_10
type(bief_obj), target temp4aed2
type(bief_obj), pointer zsgbor3
integer, parameter adv_nsc
type(bief_obj), target lipbos
type(bief_obj), target massen
type(bief_obj), pointer prive3
type(bief_obj), target, public windx
type(bief_obj), target s0w
type(bief_obj), pointer t2_16
type(bief_obj), pointer surfa2
type(bief_obj), target s3d_hdep
type(bief_obj), target fdk
type(bief_obj), target fluextpar
type(bief_obj), pointer t3_13
type(bief_obj), target bwbors
type(bief_obj), target sem3d
type(bief_obj), pointer it1
type(bief_obj), target wipdx
type(bief_obj), target atabol
type(bief_obj), target masktr
type(bief_obj), target aeborf
type(bief_obj), target aubors
type(bief_obj), target te3
type(bief_obj), pointer t2_23
type(bief_obj), target maskbr
type(bief_obj), target uborf
type(bief_obj), pointer t2_19
type(bief_obj), target ubors
type(bief_obj), pointer t2_22
type(bief_obj), target s3d_cref
type(bief_obj), target nuborsave
type(bief_obj), target mtra1
type(bief_obj), target livbos
type(bief_obj), target bvbors
type(bief_obj), target s0nu
type(bief_obj), pointer t2_18
type(bief_obj), target masse
type(bief_obj), target vborl
type(bief_obj), target vborsave
type(bief_obj), pointer t3_14
type(bief_obj), target sali4aed2
type(bief_obj), target linubos
type(bief_obj), target livbof
type(bief_obj), target s3d_wcs
type(bief_obj), pointer xsgbor2
type(bief_obj), target s3d_dmoy
type(bief_obj), pointer t3_11
type(bief_obj), target mbor2d
type(bief_obj), target angbus
type(bief_obj), target mdiff
type(bief_obj), target npf
type(bief_obj), target ri
type(bief_obj), target v_sce
type(bief_obj), target s1nu
type(bief_obj), target eltflo
type(bief_obj), target s3d_pvsnco
type(bief_obj), pointer t3_18
type(bief_obj), target wip
type(bief_obj), target nuborf
type(bief_obj), target nliqbed
type(bief_obj), target trav3
type(bief_obj), target volunpar
type(bief_obj), pointer t2_04
integer function ielbor(IELM, I)
Definition: ielbor.f:7
type(bief_obj), target v2d
type(bief_obj), target delbus
type(bief_obj), target fluxb
type(bief_obj), target s3d_pvsco
type(bief_obj), target s3d_epainco
type(bief_obj), target ud
type(bief_obj), pointer t3_16
type(bief_obj), target clsflo
type(bief_obj), target awborl
type(bief_obj), target beborf
type(bief_obj), target ustokes
type(bief_obj), target volupar
type(bief_obj), target btabol
type(bief_obj), pointer ynebor2
type(bief_obj), target bl_bol
type(bief_obj), target hbor
type(bief_obj), target c5
type(bief_obj), target un2d
type(bief_obj), target masini
type(bief_obj), target secbus
type(bief_obj), target zplane
type(bief_obj), target liebol
type(bief_obj), target kborl
type(bief_obj), target bl_fc
type(bief_obj), target thick4aed2
type(bief_obj), target numliq
type(bief_obj), target rotat
type(bief_obj), target atabof
type(bief_obj), target fluext
logical function inclus(C1, C2)
Definition: inclus.f:7
type(bief_obj), target w
type(bief_obj), target bnubors
type(bief_obj), target murd_tf
type(bief_obj), target c56
type(bief_obj), target s0u
type(bief_obj), target s3d_zf_s
subroutine addblo(BLOC, OBJ)
Definition: addblo.f:7
integer, dimension(0:15) n_adv
type(bief_obj), target s3d_fludptc
type(bief_obj), target zfe
type(bief_obj), target bedflu
type(bief_obj), target gradzn
type(bief_obj), target dhhn
type(bief_obj), target cebus
type(bief_obj), target aebors
type(bief_obj), target u
type(bief_obj), target wd
character(len=20), target equa
type(bief_obj), target dssudt
type(bief_obj), target rhopot
type(bief_obj), target uc
type(bief_obj), pointer prive2d3
type(bief_obj), target sources
type(bief_obj), target akborl
type(bief_obj), target numliq_elm
type(bief_obj), target tb2
type(bief_obj), target rugol
type(bief_obj), target viscnu
type(bief_obj), target s3d_fludpt
type(bief_obj), target fwy
type(bief_obj), target flint2
type(bief_obj), target clpbus
type(bief_obj), target buborl
type(bief_obj), pointer t2_12
type(bief_obj), target cf
type(bief_obj), pointer x3
type(bief_obj), pointer ysgbor3
type(bief_obj), target vborcli
type(bief_obj), target volu2d
type(bief_obj), pointer t2_06
type(bief_obj), pointer t3_02
type(bief_obj), target zn
type(bief_obj), target s1ep
type(bief_obj), target wst2
type(bief_obj), target s3d_fluerc
type(bief_obj), target uconv
type(bief_obj), pointer nbor3
type(bief_obj), target nuborl
type(bief_obj), target nuc
type(bief_obj), pointer t2_21
type(bief_obj), target livbol
type(bief_obj), target fxh
type(bief_obj), pointer t2_17
type(bief_obj), target liubos
type(bief_obj), target wchu
type(bief_obj), pointer prive2
type(bief_obj), pointer y3
type(bief_obj), pointer ikle2
type(bief_obj), pointer prive4
type(bief_obj), target zconv
type(bief_obj), target zflot
type(bief_obj), target avborl
type(bief_obj), target vsty
type(bief_obj), target varsor
type(bief_obj), target trborsave
type(bief_obj), target nu
type(bief_obj), target aabus
type(bief_obj), target flblim
type(bief_obj), target benth4aed2
type(bief_obj), target grazco
type(bief_obj), target cv
type(bief_obj), target vconv
type(bief_obj), target anuborl
type(bief_obj), pointer y2
type(bief_obj), target wdist
type(bief_obj), target bkborf
type(bief_obj), target lipbof
type(bief_obj), target s3d_ivide
double precision, dimension(:), pointer y
type(bief_obj), target wipdy
type(bief_obj), target zref
type(bief_obj), pointer xsgbor3
double precision, dimension(:,:), allocatable, target s3d_toce
type(bief_obj), target rotan
double precision, dimension(:), pointer x
type(bief_obj), target csbus
type(bief_obj), target flulim
type(bief_obj), target s1w
type(bief_obj), target pborl
type(bief_obj), target u_sce
type(bief_obj), pointer t2_08
type(bief_obj), target mask_3d
type(bief_obj), target bl_fn
type(bief_obj), target likbol
type(bief_obj), target lihbor_user
type(bief_obj), target dp
double precision, dimension(:), pointer z
type(bief_obj), target svide
subroutine first_all_biefobj(OBJ)
type(bief_obj), target ebors
type(bief_obj), pointer t2_09
type(bief_obj), target maskpt
type(bief_obj), target fdy
type(bief_obj), target ph
type(bief_obj), pointer t3_15
type(bief_obj), target wborf
type(bief_obj), target wsconv
type(bief_obj), target volun
subroutine almesh(MESH, NOM, IELM, SPHERI, CFG, FFORMAT, NFIC, EQUA, REFINE, NPLAN, NPMAX, NPTFRX, NELMAX, PROJECTION, LATI0, LONGI0, CONVERGENCE, RLEVEL)
Definition: almesh.f:8
integer, dimension(:), allocatable optadv_tr
integer, parameter adv_car
type(bief_obj), target eborf
type(bief_obj), target te2
type(bief_obj), target lihbor
type(bief_obj), pointer t2_15
type(bief_obj), target wn
type(bief_obj), pointer nbor2
type(bief_obj), target h
type(bief_obj), target gradzf
type(bief_obj), target epc
type(bief_obj), target vn
type(bief_obj), pointer t2_01
type(bief_obj), target msupg
type(bief_obj), target pborf
type(bief_obj), target tac
type(bief_obj), target s3d_fluernc
type(bief_obj), target smu
type(bief_obj), target s1ak
type(bief_obj), pointer t2_14
type(bief_obj), target mask
type(bief_obj), pointer t3_03
type(bief_obj), target liebos
type(bief_obj), pointer it4
double precision, dimension(:), allocatable, target vsce
type(bief_obj), target u2d
type(bief_obj), pointer t3_17
type(bief_obj), target shpflo
type(bief_obj), target dvs2dy
type(bief_obj), target hn
type(bief_obj), pointer t2_13
type(bief_obj), target s3d_epaico
type(bief_obj), target bvborf
type(bief_obj), target hm0
type(bief_obj), target, public patmos
double precision, dimension(:,:), allocatable, target s3d_conc
type(bief_obj), target ws
type(bief_obj), target bl_borl
type(bief_obj), target bwborf
integer function bief_nbmpts(IELM, MESH)
Definition: bief_nbmpts.f:7
type(bief_obj), target etaflo
type(bief_obj), target akbors
type(bief_obj), target nubors
type(bief_obj), pointer t3_01
type(bief_obj), target taborf
type(bief_obj), target fc3d
integer, dimension(:), allocatable schcta
type(bief_obj), target liwbof
type(bief_obj), target dbus
type(bief_obj), target boundary_colour
type(bief_obj), target beborl
double precision, dimension(:), allocatable, target usce
type(bief_obj), target shzflo
type(bief_obj), target s0ta
type(bief_obj), target vborf
type(bief_obj), target vbtide
type(bief_obj), target nu_sce
type(bief_obj), target linubof
type(bief_obj), pointer it3
type(bief_obj), target orbvel
type(bief_obj), target bnuborf
type(bief_obj), target hbtide
type(bief_obj), target viscvi
type(bief_obj), target akborf
type(bief_obj), target cv5
type(bief_obj), target varcl
type(bief_obj), target fdx
type(bief_obj), target mat2d
type(bief_obj), target parapluie
type(bief_obj), target kbors
type(bief_obj), target sem2d
type(bief_obj), target uborcli
type(bief_obj), target wc
type(bief_obj), target prive2d
type(bief_obj), target trav2
type(bief_obj), target fwx
type(bief_obj), target auborf
type(bief_obj), target flopar
type(bief_obj), pointer z3
type(bief_obj), target flodel
type(bief_obj), target deltar
type(bief_obj), target fby
type(bief_obj), target ustx
type(bief_obj), target gradzs
type(bief_obj), target dus2d
character(len=path_len), target coupling
type(bief_obj), target w_sce
type(bief_obj), target ak
type(bief_obj), target bvborl
type(bief_obj), target bl_fsc
type(bief_obj), target xflot
type(bief_obj), target maxz
type(bief_obj), target bnuborl
type(bief_obj), pointer t2_02
type(bief_obj), pointer w1
type(bief_obj), target wstokes
type(bief_obj), target dh
type(bief_mesh), target mesh3d
type(bief_obj), target epn
type(bief_obj), target avbors
type(bief_obj), target ep_sce
type(bief_obj), target vd
type(bief_obj), target linubol
type(bief_obj), pointer t2_05
Definition: bief.f:3
type(bief_obj), target fu
type(bief_obj), target dus2dx
type(bief_obj), target volu3d
type(bief_obj), target flucum