The TELEMAC-MASCARET system  trunk
declarations_telemac3d.f
Go to the documentation of this file.
1 ! *****************************
3 ! *****************************
4 !
5 !
6 !***********************************************************************
7 ! TELEMAC3D V8P2
8 !***********************************************************************
9 !
10 !brief DECLARATION OF PRINCIPAL TELEMAC3D VARIABLES
11 !
12 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
13 !+ 13/07/2010
14 !+ V6P0
15 !+ Translation of French comments within the FORTRAN sources into
16 !+ English comments
17 !
18 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
19 !+ 21/08/2010
20 !+ V6P0
21 !+ Creation of DOXYGEN tags for automated documentation and
22 !+ cross-referencing of the FORTRAN sources
23 !
24 !history G. ANTOINE (EDF LAB, LNHE)
25 !+ 19/09/2014
26 !+ V7P0
27 !+ Adding variables for mixed sediment
28 !
29 !history A. JOLY (EDF LAB, LNHE)
30 !+ 27/08/2015
31 !+ V7P1
32 !+ Imposed flowrates on the bed.
33 !
34 !history J-M HERVOUET (EDF LAB, LNHE)
35 !+ 24/03/2016
36 !+ V7P2
37 !+ New keywords for distributive schemes. Adding Z at time t(n), as ZN
38 !
39 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
41 !
42  USE bief_def
43 !
44 ! NOTE: THIS MODULE IS ORGANISED IN 10 PARTS
45 !
46 ! (1) VECTORS (WILL BE DECLARED AS BIEF_OBJ STRUCTURES)
47 ! (2) MATRICES (WILL BE DECLARED AS BIEF_OBJ STRUCTURES)
48 ! (3) BLOCKS (WILL BE DECLARED AS BIEF_OBJ STRUCTURES)
49 ! (4) INTEGERS
50 ! (5) LOGICAL VALUES
51 ! (6) REALS
52 ! (7) STRINGS
53 ! (8) SLVCFG STRUCTURES
54 ! (9) MESH STRUCTURE
55 ! (10) ALIASES
56 !
57 !-----------------------------------------------------------------------
58 ! (1) VECTORS (REAL AND INTEGER)
59 !-----------------------------------------------------------------------
60 !
61 !
62 ! 3D VELOCITY COMPONENTS AT PREVIOUS TIMESTEP (TIME N)
63 !
64  TYPE(bief_obj), TARGET :: un,vn,wn
65 !
66 ! 3D VELOCITY COMPONENTS AFTER ADVECTION
67 !
68  TYPE(bief_obj), TARGET :: uc,vc,wc
69 !
70 ! 3D VELOCITY COMPONENTS AFTER DIFFUSION
71 !
72  TYPE(bief_obj), TARGET :: ud,vd,wd
73 !
74 ! 3D VELOCITY COMPONENTS AT CURRENT TIMESTEP (TIME N+1)
75 !
76  TYPE(bief_obj), TARGET :: u,v,w
77 !
78 ! EXPLICIT SOURCE TERMS ON VELOCITIES
79 !
80  TYPE(bief_obj), TARGET :: s0u,s0v,s0w
81 !
82 ! IMPLICIT SOURCE TERMS ON VELOCITIES U
83 !
84  TYPE(bief_obj), TARGET :: s1u,s1v,s1w
85 !
86 ! RIGHT-HAND SIDE ON VELOCITIES EQUATIONS
87 !
88  TYPE(bief_obj), TARGET :: smu,smv
89 !
90 ! PRESCRIBED VELOCITY COMPONENTS ON THE BOTTOM
91 !
92  TYPE(bief_obj), TARGET :: uborf,vborf,wborf
93 !
94 ! PRESCRIBED VELOCITY COMPONENTS ON THE LATERAL BOUNDARY
95 !
96  TYPE(bief_obj), TARGET :: uborl,vborl,wborl
97 !
98 ! SAVED PRESCRIBED VELOCITY COMPONENTS ON THE LATERAL BOUNDARY FROM BC FILE
99 !
100  TYPE(bief_obj), TARGET :: uborcli,vborcli
101 !
102 ! PRESCRIBED VELOCITY COMPONENTS AT THE FREE SURFACE
103 !
104  TYPE(bief_obj), TARGET :: ubors,vbors,wbors
105 !
106 ! ORIGINAL PRESCRIBED VALUES AT THE FREE SURFACE
107 !
108  TYPE(bief_obj), TARGET :: trborsave,uborsave,vborsave
110  TYPE(bief_obj), TARGET :: nuborsave
111 !
112 ! (FRICTION VELOCITY)**2 FOR BOTTOM AND LATERAL BOUNDARIES
113 !
114  TYPE(bief_obj), TARGET :: uetcar,uetcal
115 !
116 ! LOGARITHMIC LAW FOR U-VELOCITY COMPONENT, ON THE BOTTOM: NU*DU/DN = AUBORF*U + BUBORF
117 !
118  TYPE(bief_obj), TARGET :: auborf,buborf
119 !
120 ! LOGARITHMIC LAW FOR U-VELOCITY COMPONENT, ON THE LATERAL BOUNDARIES: NU*DU/DN = AUBORL*U + BUBORL
121 !
122  TYPE(bief_obj), TARGET :: auborl,buborl
123 !
124 ! LOGARITHMIC LAW FOR U-VELOCITY COMPONENT, AT THE FREE SURFACE: NU*DU/DN = AUBORS*U + BUBORS
125 !
126  TYPE(bief_obj), TARGET :: aubors,bubors
127 !
128 ! LOGARITHMIC LAW FOR V-VELOCITY COMPONENT, ON THE BOTTOM: NU*DV/DN = AVBORF*V + BVBORF
129 !
130  TYPE(bief_obj), TARGET :: avborf,bvborf
131 !
132 ! LOGARITHMIC LAW FOR V-VELOCITY COMPONENT, ON THE LATERAL BOUNDARIES: NU*DV/DN = AVBORL*V + BVBORL
133 !
134  TYPE(bief_obj), TARGET :: avborl,bvborl
135 !
136 ! LOGARITHMIC LAW FOR V-VELOCITY COMPONENT, AT THE FREE SURFACE: NU*DV/DN = AVBORS*V + BVBORS
137 !
138  TYPE(bief_obj), TARGET :: avbors,bvbors
139 !
140 ! LOGARITHMIC LAW FOR W-VELOCITY COMPONENT, ON THE BOTTOM: NU*DW/DN = AWBORF*W + BWBORF
141 !
142  TYPE(bief_obj), TARGET :: awborf,bwborf
143 !
144 ! LOGARITHMIC LAW FOR W-VELOCITY COMPONENT, ON THE LATERAL BOUNDARIES: NU*DW/DN = AWBORL*W + BWBORL
145 !
146  TYPE(bief_obj), TARGET :: awborl,bwborl
147 !
148 ! LOGARITHMIC LAW FOR W-VELOCITY COMPONENT, AT THE FREE SURFACE: NU*DW/DN = AWBORS*W + BWBORS
149 !
150  TYPE(bief_obj), TARGET :: awbors,bwbors
151 !
152 ! TYPES OF BOUNDARY CONDITIONS FOR VELOCITY COMPONENTS ON THE BOTTOM
153 !
154  TYPE(bief_obj), TARGET :: liubof,livbof,liwbof
155 !
156 ! TYPES OF BOUNDARY CONDITIONS FOR U ON THE LATERAL BOUNDARIES
157 !
158  TYPE(bief_obj), TARGET :: liubol,livbol,liwbol
160 !
161 ! TYPES OF BOUNDARY CONDITIONS FOR VELOCITY COMPONENTS AT THE FREE SURFACE
162 !
163  TYPE(bief_obj), TARGET :: liubos,livbos,liwbos
164 !
165 ! 'COLOUR' OF BOUNDARY NODES (TAKEN IN BOUNDARY CONDITIONS FILE)
166 !
167  TYPE(bief_obj), TARGET :: boundary_colour
168 !
169 ! PLANE NUMBER OF LAST PLANE WHICH HAS A CRUSHED LAYER ABOVE IT
170 !
171  TYPE(bief_obj), TARGET :: ipbot
172 !
173 ! SIGMA-TRANSFORMED VERTICAL VELOCITY COMPONENT
174 !
175  TYPE(bief_obj), TARGET :: ws
176 !
177 ! DYNAMIC PRESSURE AT TIME N+1 AND TIME N (NON-HYDROSTATIC)
178 !
179  TYPE(bief_obj), TARGET :: dp,dpn
180 !
181 ! HYDROSTATIC PRESSURE (NON-HYDROSTATIC)
182 !
183  TYPE(bief_obj), TARGET :: ph
184 !
185 ! PRESCRIBED DYNAMIC PRESSURE ON BOTTOM, LATERAL BOUNDARIES AND FREE SURFACE
186 !
187  TYPE(bief_obj), TARGET :: pborf, pborl, pbors
188 !
189 ! TYPE OF BOUNDARY CONDITIONS FOR DYNAMIC PRESSURE
190 !
191  TYPE(bief_obj), TARGET :: lipbof, lipbol, lipbos
192 !
193 ! K OF K-EPSILON MODEL AT PREVIOUS TIMESTEP (TIME N)
194 !
195  TYPE(bief_obj), TARGET :: akn
196 !
197 ! K OF K-EPSILON MODEL AFTER ADVECTION
198 !
199  TYPE(bief_obj), TARGET :: akc
200 !
201 ! K OF K-EPSILON MODEL AT TIME N+1
202 !
203  TYPE(bief_obj), TARGET :: ak
204 !
205 ! EXPLICIT SOURCE TERMA FOR K IN K-EPSILON MODEL
206 !
207  TYPE(bief_obj), TARGET :: s0ak
208 !
209 ! IMPLICIT SOURCE TERMA FOR K IN K-EPSILON MODEL
210 !
211  TYPE(bief_obj), TARGET :: s1ak
212 !
213 ! PRESCRIBED K OF K-EPSILON MODEL ON: LATERAL BOUNDARY
214 ! FREE SURFACE
215 ! BOTTOM
216 !
217  TYPE(bief_obj), TARGET :: kborl,kbors,kborf
218 !
219 ! COEFFICIENTS OF LOGARITHMIC LAW FOR K OF K-EPSILON MODEL, ON THE BOTTOM
220 ! FREE SURFACE
221 !
222  TYPE(bief_obj), TARGET :: akborf,bkborf,akborl
223  TYPE(bief_obj), TARGET :: bkborl,akbors,bkbors
224 !
225 ! TYPES OF BOUNDARY CONDITIONS FOR K OF K-EPSILON MODEL ON THE BOTTOM
226 ! LATERAL BOUNDARY
227 ! FREE SURFACE
228  TYPE(bief_obj), TARGET :: likbof,likbol,likbos
229 !
230 ! EPSILON OF K-EPSILON MODEL AT PREVIOUS TIMESTEP (TIME N)
231 !
232  TYPE(bief_obj), TARGET :: epn
233 !
234 ! EPSILON OF K-EPSILON MODEL AFTER ADVECTION
235 !
236  TYPE(bief_obj), TARGET :: epc
237 !
238 ! EPSILON OF K-EPSILON MODEL AT TIME N+1
239 !
240  TYPE(bief_obj), TARGET :: ep
241 !
242 ! EXPLICIT/IMPLICIT SOURCE TERM OF EPSILON IN K-EPSILON MODEL
243 !
244  TYPE(bief_obj), TARGET :: s0ep,s1ep
245 !
246 ! PRESCRIBED EPSILON OF K-EPSILON MODEL ON THE BOTTOM
247 ! LATERAL BOUNDARY
248 ! FREE SURFACE
249 !
250  TYPE(bief_obj), TARGET :: eborf,eborl,ebors
251 !
252 ! COEFFICIENTS IN LOGARITHMIC LAW FOR EPSILON OF K-EPSILON MODEL, ON THE BOTTOM
253 ! LATERAL BOUNDARY
254 ! FREE SURFACE
255  TYPE(bief_obj), TARGET :: aeborf,aeborl,aebors
256  TYPE(bief_obj), TARGET :: beborf,beborl,bebors
257 !
258 ! TYPES OF BOUNDARY CONDITIONS FOR EPSILON OF K-EPSILON MODEL ON THE BOTTOM
259 ! LATERAL BOUNDARY
260 ! FREE SURFACE
261  TYPE(bief_obj), TARGET :: liebof,liebol,liebos
262 !
263 ! NUTILD OF S-A MODEL AT PREVIOUS TIMESTEP (TIME N)
264 !
265  TYPE(bief_obj), TARGET :: nun
266 !
267 ! NUTILD OF S-A MODEL AFTER ADVECTION
268 !
269  TYPE(bief_obj), TARGET :: nuc
270 !
271 ! NUTILD OS S-A MODEL AT TIME N+1
272 !
273  TYPE(bief_obj), TARGET :: nu
274 !
275 ! EXPLICIT/IMPLICIT SOURCE TERM OF NUTILD IN S-A MODEL
276 !
277  TYPE(bief_obj), TARGET :: s0nu,s1nu
278 !
279 ! PRESCRIBED NUTILD OF S-A MODEL ON THE BOTTOM
280 ! LATERAL BOUNDARY
281 ! FREE SURFACE
282  TYPE(bief_obj), TARGET :: nuborf,nuborl,nubors
283 !
284 ! COEFFICIENTS IN LOGARITHMIC LAW FOR NUTIL OF S-A MODEL, ON THE BOTTOM
285 ! LATERAL BOUNDARY
286 ! FREE SURFACE
287  TYPE(bief_obj), TARGET :: anuborf,anuborl,anubors
288  TYPE(bief_obj), TARGET :: bnuborf,bnuborl,bnubors
289 !
290 ! TYPES OF BOUNDARY CONDITIONS FOR NUTILD OF S-A MODEL ON THE BOTTOM
291 ! LATERAL BOUNDARY
292 ! FREE SURFACE
293  TYPE(bief_obj), TARGET :: linubof,linubol,linubos
294 !
295 !
296 ! VERTICALLY INTEGRATED VELOCITY COMPONENTS
297 !
298  TYPE(bief_obj), TARGET :: u2d,v2d
299 !
300 ! VERTICALLY INTEGRATED VELOCITY COMPONENTS ON BOUNFDARIES
301 !
302  TYPE(bief_obj), TARGET :: ubor2d,vbor2d
303 !
304 ! VERTICALLY INTEGRATED VELOCITY COMPONENTS AT PREVIOUS TIME STEP
305 !
306  TYPE(bief_obj), TARGET :: un2d,vn2d
307 !
308 ! SOURCE TERMS ON VELOCITIES
309 !
310  TYPE(bief_obj), TARGET :: fu,fv
311 !
312 ! WAVE STRESSES FROM ARTEMIS OR TOMAWAC
313 !
314  TYPE(bief_obj), TARGET :: fxh,fyh
315 !
316 ! FLUXES ON BOUNDARIES
317 !
318  TYPE(bief_obj), TARGET :: flbor,flblim
319 !
320 ! ADVECTION FIELD
321 !
322  TYPE(bief_obj), TARGET :: uconv,vconv,wconv
323 !
324 ! VERTICAL VELOCITY IN TRANSFORMED MESH
325 !
326  TYPE(bief_obj), TARGET :: wsconv
327 !
328 ! ADVECTION FIELD FOR CHARACTERISTICS
329 !
330  TYPE(bief_obj), TARGET :: uconvc,vconvc
331 !
332 ! PSEUDO-VISCOSITY IN WAVE EQUATION
333 !
334  TYPE(bief_obj), TARGET :: nuwave
335 !
336 ! PIECE-WISE LINEAR FUNCTION, AND ITS GRADIENT
337 ! USED WITH "COMPATIBILITY OF FREE SURFACE GRADIENT"
338 !
339  TYPE(bief_obj), TARGET :: zconv,grazco
340 !
341 ! D**-1 IN WAVE EQUATION (SEE BOOK)
342 !
343  TYPE(bief_obj), TARGET :: dm1
344 !
345 ! EDGE BY EDGE FLUXES (AND ASSEMBLED IN PARALLEL VERSION)
346 !
347  TYPE(bief_obj), TARGET :: flodel,flopar
348 !
349 ! LIMITATION OF FLUXES
350 !
351  TYPE(bief_obj), TARGET :: flulim
352 !
353 ! VOLUME AROUND POINTS AT TIME N+1, NOT ASSEMBLED (VOLU)
354 ! ASSEMBLED IN PARALLEL (VOLUPAR)
355 !
356  TYPE(bief_obj), TARGET :: volu,volupar
357 !
358 ! VOLUME AROUND POINTS AT TIME N
359 !
360  TYPE(bief_obj), TARGET :: volun,volunpar
361 !
362 ! VARIOUS VOLUMES (AT AN INTERMEDIATE TIME STEP)
363 !
364  TYPE(bief_obj), TARGET :: volut,volu3d,volu3dpar
365 !
366 ! INTEGRAL OF 2D BASES (SCALAR AND ASSEMBLED IN PARALLEL)
367 !
368  TYPE(bief_obj), TARGET :: volu2d,v2dpar
369 !
370 ! INVERSE OF INTEGRAL OF BASES IN 2D, IN 3D
371 !
372  TYPE(bief_obj), TARGET :: unsv2d,unsv3d
373 !
374 ! INTERNAL FLUXES, PER NODE
375 !
376  TYPE(bief_obj), TARGET :: fluint
377 !
378 ! FLUX AT BOUNDARIES, AND ASSEMBLED FORM IN PARALLEL
379 !
380  TYPE(bief_obj), TARGET :: fluext,fluextpar
381 !
382 ! FLUXES INTEGRATED ALONG THE VERTICAL
383 !
384  TYPE(bief_obj), TARGET :: flint2
385 !
386 ! ABSOLUTE VALUE OF THE VORTICITY
387 !
388  TYPE(bief_obj), TARGET :: rotat
389 !
390 ! ABSOLUTE DENSITY
391 !
392  TYPE(bief_obj), TARGET :: rho
393 !
394 ! POTENTIAL DENSITY
395 !
396  TYPE(bief_obj), TARGET :: rhopot
397 !
398 ! RELATIVE DENSITY = (RHO-RHO0)/RHO0
399 !
400  TYPE(bief_obj), TARGET :: deltar
401 !
402 ! RICHARDSON NUMBER
403 !
404  TYPE(bief_obj), TARGET :: ri
405 !
406 ! FRICTION COEFFICIENT ON THE BOTTOM
407 !
408  TYPE(bief_obj), TARGET :: rugof
409 !
410 ! FRICTION COEFFICIENT ON THE LATERAL BOUNDARY
411 !
412  TYPE(bief_obj), TARGET :: rugol
413 !
414 ! ADIMENSIONAL FRICTION COEFFICIENT
415 !
416  TYPE(bief_obj), TARGET :: cf
417 !
418 ! WIND VELOCITY
419 !
420 ! TYPE(BIEF_OBJ), TARGET :: WIND
421 !
422 ! MAGNITUDE OF WIND VELOCITY
423 !
424  TYPE(bief_obj), TARGET :: windspd
425 !
426 ! DENSITY, TEMPERATURE, SALINITY FOR COUPLING WITH AED2
427 !
428  TYPE(bief_obj), TARGET :: rho4aed2,temp4aed2,sali4aed2
429 !
430 ! THICKNESS OF CELLS FOR COUPLING WITH AED2
431 !
432  TYPE(bief_obj), TARGET :: thick4aed2
433 !
434 ! NUMBER OF THE BENTHIC LAYER FOR COUPLING WITH AED2
435 !
436  TYPE(bief_obj), TARGET :: benth4aed2
437 !
438 ! ATMOSPHERIC PRESSURE
439 !
440 ! TYPE(BIEF_OBJ), TARGET :: PATMOS
441 !
442 ! PARAMETERS FOR GLOBAL MASS AND FLUX BALANCES
443 !
444  TYPE(bief_obj), TARGET :: masini,masse,massen
445 !
446 ! FLUX (ACROSS THE BOUNDARIES)
447 !
448  TYPE(bief_obj), TARGET :: flux
449 !
450 ! FLUX OF TRACERS (ACROSS THE BOUNDARIES, SOURCES, BED)
451 !
452  TYPE(bief_obj), TARGET :: fluxb
453 !
454 ! CUMULATED FLUXES OF TRACERS SINCE BEGINNING OF COMPUTATION
455 !
456  TYPE(bief_obj), TARGET :: flucum
457 !
458 ! DEPTH AT TIME N+1, AT TIME TN
459 !
460  TYPE(bief_obj), TARGET :: h,hn
461 !
462 ! PROPAGATION DEPTH, I.E. DEPTH INTO THE TERM DIV(HU)
463 !
464  TYPE(bief_obj), TARGET :: hprop
465 !
466 ! HIGH WATER MARK, HIGH WATER TIME
467 !
468  TYPE(bief_obj), TARGET :: maxz,tmaxz
469 !
470 ! VARIATION OF DEPTH : H(N+1)-H(N)
471 !
472  TYPE(bief_obj), TARGET :: dh
473 !
474 ! RIGHT-HAND SIDE FOR WATER DEPTH
475 !
476  TYPE(bief_obj), TARGET :: smh
477 !
478 ! PRESCRIBED DEPTH ON LATERAL BOUNDARIES
479 !
480  TYPE(bief_obj), TARGET :: hbor
481 !
482 ! SAVED PRESCRIBED DEPTH ON LATERAL BOUNDARIES FROM BC FILE
483 !
484  TYPE(bief_obj), TARGET :: hborcli
485 !
486 ! RAIN IN M/S MULTIPLIED BY VOLU2D, AND VERSION ASSEMBLED IN PARALLEL
487 !
488  TYPE(bief_obj), TARGET :: pluie,parapluie
489 !
490 ! FOR CULVERTS/TUBES/BRIDGES MANAGEMENT
491  INTEGER, POINTER, DIMENSION(:) :: entbus,sorbus
492  DOUBLE PRECISION, POINTER, DIMENSION(:) :: ubus,vbus
493  TYPE(bief_obj),TARGET :: lrgbus, haubus, altbus
494  TYPE(bief_obj),TARGET :: csbus , cebus , delbus, angbus, lbus
495  TYPE(bief_obj),TARGET :: dbus, tbus, clpbus
496  TYPE(bief_obj),TARGET :: secbus, longbus,aabus
497  TYPE(bief_obj),TARGET :: cv, c56, cv5, c5, ctrash, fricbus, circ
498  DOUBLE PRECISION relaxb
499 !
500 ! BLOCK OF VARIABLES TO BE ADVECTED BY CHARACTERISTICS
501 !
502  TYPE(bief_obj), TARGET :: fn3d,fc3d
503 !
504 ! BLOCK OF VARIOUS BIEF_OBJ STRUCTURES FOR VARIABLES TO BE ADVECTED
505 !
506  TYPE(bief_obj), TARGET :: bl_fn,bl_fc,bl_s0f,bl_fsc
507  TYPE(bief_obj), TARGET :: bl_bol,bl_borl
508 !
509 ! VERTICAL COORDINATES FOR PROPAGATION STEP
510 !
511  TYPE(bief_obj), TARGET :: zprop
512 !
513 ! BOTTOM ELEVATION
514 !
515  TYPE(bief_obj), TARGET :: zf
516 !
517 ! BOTTOM COORDINATES GIVEN PER ELEMENT
518 !
519  TYPE(bief_obj), TARGET :: zfe
520 !
521 ! PERCENTUAL MESH PLANES
522 !
523  TYPE(bief_obj), TARGET :: zstar
524 !
525 ! Z ELEVATIONS USED ONLY WITH SUPG ADVECTION
526 !
527  TYPE(bief_obj), TARGET :: zt
528 !
529 ! DH/DT
530 !
531  TYPE(bief_obj), TARGET :: dssudt
532 !
533 ! PRESCRIBED ELEVATIONS OF PLANES
534 !
535  TYPE(bief_obj), TARGET :: zplane
536 !
537 ! TYPE OF SIGMA TRANSFORMATION
538 !
539  TYPE(bief_obj), TARGET :: transf_plane
540 !
541 ! COORDINATES IN THE TRANSFORMED MESH FOR THE METHOD OF CHARACTERISTICS
542 !
543  TYPE(bief_obj), TARGET :: zchar
544 !
545 ! MASK OF ELEMENTS
546 !
547  TYPE(bief_obj), TARGET :: maskel
548 !
549 ! MASK OF NODES
550 !
551  TYPE(bief_obj), TARGET :: maskpt
552 !
553 ! 3D MASK OF BOUNDARY ELEMENTS (CASE WITH MASKING)
554 !
555  TYPE(bief_obj), TARGET :: maskbr
556 !
557 ! 3D MASK OF BOUNDARY ELEMENTS (WORKING ARRAY FOR DEBIMP_3D)
558 !
559  TYPE(bief_obj), TARGET :: masktr
560 !
561 ! POSITIONS OF FLOATING BODIES (X,Y, Z AND Z IN TRANSFORMED MESH)
562 !
563  TYPE(bief_obj), TARGET :: xflot,yflot,zflot
564 !
565 ! BARYCENTRIC COORDINATES OF FLOATING BODIES, AT THE FOOT OF CHARACTERISTICS
566 ! HORIZONTAL AND VERTICAL
567 !
568  TYPE(bief_obj), TARGET :: shpflo,shzflo
569 !
570 ! TAGS FOR FLOATING BODIES
571 !
572  TYPE(bief_obj), TARGET :: tagflo
573 !
574 ! CLASS FOR FLOATING BODIES
575 !
576  TYPE(bief_obj), TARGET :: clsflo
577 !
578 ! STARTING ELEMENTS OF FLOATING BODIES FOR CHARACTERISTICS
579 !
580  TYPE(bief_obj), TARGET :: eltflo
581 !
582 ! STARTING LEVEL OF FLOATING BODIES FOR CHARACTERISTICS
583 !
584  TYPE(bief_obj), TARGET :: etaflo
585 !
586 ! TYPE OF BOUNDARY CONDITIONS ON DEPTH (AND VALUE OF USER SAVED IF THOMPSON)
587 !
588  TYPE(bief_obj), TARGET :: lihbor,lihbor_user
589 !
590 ! LIQUID BOUNDARY NUMNER OF BOUNDARY POINTS, OF BOUNDARY ELEMENTS
591 !
592  TYPE(bief_obj), TARGET :: numliq,numliq_elm
593 !
594 ! LIQUID BED BOUNDARY NUMBER OF BOUNDARY POINTS
595 !
596  TYPE(bief_obj), TARGET :: nliqbed
597 !
598 ! PROPAGATION BC TYPES (TELEMAC2D'S PROPAG)
599 !
600  TYPE(bief_obj), TARGET :: limpro
601 !
602 ! RIGHT HAND SIDE FOR THE LINEAR EQUATIONS IN 3D
603 !
604  TYPE(bief_obj), TARGET :: sem3d
605 !
606 ! RIGHT HAND SIDE FOR THE LINEAR EQUATIONS IN 2D
607 !
608  TYPE(bief_obj), TARGET :: sem2d
609 !
610 ! ELEMENT-ORIENTED WORKING ARRAYS
611 !
612  TYPE(bief_obj), TARGET :: te1,te2,te3
613 !
614 ! PIECE-WISE LINEAR FREE SURFACE
615 !
616  TYPE(bief_obj), TARGET :: zflats
617 !
618 ! VOID VECTOR STRUCTURE
619 !
620  TYPE(bief_obj), TARGET :: svide
621 !
622 ! RIGHT HAND SIDE OF CONTINUITY EQUATION WHEN SOURCES
623 !
624  TYPE(bief_obj), TARGET :: sources
625 !
626 ! RIGHT HAND SIDE OF CONTINUITY EQUATION WHEN DEALING WITH OPEN BOUNDARIES ON THE BED
627 !
628  TYPE(bief_obj), TARGET :: bedflu
629 !
630 ! SETTLING VELOCITY
631 !
632  TYPE(bief_obj), TARGET :: wchu
633 !
634 ! SETTLING VELOCITY FOR SEDI3D
635 !
636  TYPE(bief_obj), TARGET :: s3d_wchu
637 !
638 ! THICKNESS OF SOLID FRACTION OF THE BED LAYER ( S3D_EPAI=DZ/(1+S3D_IVIDE), DZ BED LAYER THICKNESS )
639 !
640 ! TYPE(BIEF_OBJ), TARGET :: S3D_EPAI
641 !
642 ! VOID RATIO (GIBSON MODEL ONLY)
643 !
644  TYPE(bief_obj), TARGET :: s3d_ivide
645 !
646 ! TIME COUNTER FOR CONSOLIDATION MODEL (MULTILAYER MODEL)
647 !
648  TYPE(bief_obj), TARGET :: s3d_temp
649 !
650 ! ELEVATIONS OF TIME T(N) SAVED
651 !
652  TYPE(bief_obj), TARGET :: zn
653 !
654 ! CONCENTRATION OF MUD BED LAYER (MULTILAYER MODEL)
655 !
656 ! TYPE(BIEF_OBJ), TARGET :: S3D_CONC
657 !
658  DOUBLE PRECISION,DIMENSION(:,:), TARGET, ALLOCATABLE :: s3d_conc
659 !
660 ! TBE FLOCULATION AND HINDERED SETTLING MODEL
661 ! HINDERED SETTLING SWITCH
662  LOGICAL s3d_hinder
663 ! HINDERED SETTLING METHOD
664  INTEGER s3d_hind_type
665 !
666 ! SEDIMENT CLASSES TO CONSIDER FOR SUSPENSION
667  INTEGER isusp
668 !
669  DOUBLE PRECISION s3d_cgel, s3d_cini
670 !
671 ! FLOCULATION SWITCH
672  LOGICAL s3d_floc
673 ! FLOCULATION METHOD
674  INTEGER s3d_floc_type
675 !
676 ! BLOCK OF DATA FOR SETTLING AND DIFFUSION 1D PROFILE MODEL
677  TYPE(bief_obj), TARGET :: trav1
678 ! CV...
679 ! uniformisation avec SISYPHE
680 !
681 ! MAXIMUM NUMBER OF LAYERS ON THE MESH
682 !
683  INTEGER, PARAMETER :: s3d_nlaymax= 20
684 !
685 ! BED SHEAR STRENGTH OF THE MUD BED LAYER (MULTILAYER MODEL)
686 !
687 ! TYPE(BIEF_OBJ), TARGET :: S3D_TOCE
688 
689  DOUBLE PRECISION,DIMENSION(:,:), TARGET, ALLOCATABLE :: s3d_toce
690 !
691  TYPE(bief_obj), TARGET :: s3d_laytoce
692 !
693  DOUBLE PRECISION,DIMENSION(:,:), TARGET, ALLOCATABLE :: s3d_epai
694 !
695  TYPE(bief_obj), TARGET :: s3d_laythi
696 !
697 ! MUD CONCENTRATION FOR EACH LAYER (Constante for initialisation)
698 !
699  DOUBLE PRECISION :: s3d_conc_layer(s3d_nlaymax)
700 !
701 ! CRITICAL SHEAR STRESS FOR EROSION (Initialisation)
702 !
703  DOUBLE PRECISION :: s3d_toce_layer(s3d_nlaymax)
704 !
705 ! SEDIMENT BED LAYER THICKNESS (Initialisation)
706 !
707  DOUBLE PRECISION :: s3d_es_layer(s3d_nlaymax)
708 !
709 ! Mass bilan
710 ! MASSINI IN SISYPHE
711 !
712  DOUBLE PRECISION :: s3d_massusp0, s3d_massusp
713 !
714 ! DOUBLE PRECISION :: MASTEN, MASTOU
715 !
716 ! DOUBLE PRECISION :: MASTCP, MASFIN
717 !
718  DOUBLE PRECISION :: s3d_masdep
719 !
720  DOUBLE PRECISION :: s3d_masbed0,s3d_masbed
722 ! ...CV
723 !
724 ! THICKNESS OF FRESH DEPOSIT (FLUID MUD LAYER)
725 !
726  TYPE(bief_obj), TARGET :: s3d_hdep
727 !
728 ! EROSION FLUX
729 !
730  TYPE(bief_obj), TARGET :: s3d_fluer
731 !
732 ! PROBABILITY OF DEPOSIT
733 !
734  TYPE(bief_obj), TARGET :: s3d_pdepo
735 !
736 ! CV...
737 ! Harmonisation avec Sisyphe
738 !
739 ! DEPOSITION FLUX
740 !
741  TYPE(bief_obj), TARGET :: s3d_fludp
742 !
743 ! DEPOSITION FLUX (Implict part : can replace S3D_PDEPO)
744 !
745  TYPE(bief_obj), TARGET :: s3d_fludpt
746 !
747 ! BED EVOLUTION
748 !
749  TYPE(bief_obj), TARGET :: s3d_zf_s
750 !
751 ! CUMULATED BED EVOLUTION
752 !
753  TYPE(bief_obj), TARGET :: s3d_esomt
754 !
755 ! ...CV
756 !
757 ! RIDIG BED ELEVATION
758 !
759  TYPE(bief_obj), TARGET :: zr
760 !
761 ! EQUILIBRIUM CONCENTRATION
762 !
763  TYPE(bief_obj), TARGET :: s3d_cref
764 !
765 ! AVERAGE DIAMETER OF GRAINS
766 !
767  TYPE(bief_obj), TARGET :: s3d_dmoy
768 !
769 ! NUMBER OF POINTS WITHIN THE BED ALONG THE VERTICAL
770 !
771  TYPE(bief_obj), TARGET :: npf
772 !
773 ! VECTOR OF SIZE NDP*NELEM (NUMBER OF POINTS IN THE ELEMENT * NELEM)
774 !
775  TYPE(bief_obj), TARGET :: wel
776 !
777 ! 3D VECTOR TO STORE DH AND HN IN 3D MESH (RESTART PROCEDURE)
778 !
779  TYPE(bief_obj), TARGET :: dhhn
780 !
781 ! FOR TIDAL BOUNDARY CONDITIONS
782 !
783  TYPE(bief_obj),TARGET :: hbtide,ubtide,vbtide,numtide
784 !
785 ! VARIABLES TRANSMITTED FROM TOMAWAC TO SISYPHE
786 !
787  TYPE(bief_obj),TARGET :: dirmoy,hm0,tpr5,orbvel
788 !
789 ! VARIABLES USED IN CASE OF MIXED SEDIMENT
790 !
791  TYPE(bief_obj),TARGET :: s3d_epaico,s3d_epainco,s3d_pvsco
795 !
796 ! DISTANCE FROM WALLS
797 !
798  TYPE(bief_obj), TARGET :: wdist
799 !
800 ! STRAIN NORM
801 !
802  TYPE(bief_obj), TARGET :: strain
803 !
804 ! ROTATION NORM
805 !
806  TYPE(bief_obj), TARGET :: rotan
807 !
808 !-----------------------------------------------------------------------
809 ! (2) MATRICES
810 !-----------------------------------------------------------------------
811 !
812 !
813 ! SUPG NON SYMMETRIC MATRIX
814 !
815  TYPE(bief_obj), TARGET :: msupg
816 !
817 ! MURD NON SYMMETRIC MATRIX
818 !
819  TYPE(bief_obj), TARGET :: mmurd
820 !
821 ! DIFFUSION MATRIX
822 !
823  TYPE(bief_obj), TARGET :: mdiff
824 !
825 ! MURD MATRIX FOR TIDAL FLATS VERSION
826 !
827  TYPE(bief_obj), TARGET :: murd_tf
828 !
829 ! WORKING MATRICES
830 !
831  TYPE(bief_obj), TARGET :: mtra1,mtra2
832 !
833 ! 2D BOUNDARY MATRIX
834 !
835  TYPE(bief_obj), TARGET :: mbor2d
836 !
837 ! WORKING 2D MATRIX
838 !
839  TYPE(bief_obj), TARGET :: matr2h
840 !
841 !-----------------------------------------------------------------------
842 ! (3) BLOCKS
843 !-----------------------------------------------------------------------
844 !
845 !
846 ! TRACERS AT PREVIOUS TIME STEP (TAN IN VERSIONS PRIOR TO 6.3
847 ! WHICH WAS A CONFLICT WITH TANgent)
848 !
849  TYPE(bief_obj), TARGET :: trn
850 !
851 ! TRACERS AFTER ADVECTION
852 !
853  TYPE(bief_obj), TARGET :: tac
854 !
855 ! TRACERS AT CURRENT TIME STEP
856 !
857  TYPE(bief_obj), TARGET :: ta
858 !
859 ! EXPLICIT SOURCE TERM FOR TRACERS
860 !
861  TYPE(bief_obj), TARGET :: s0ta
862 !
863 ! IMPLICIT SOURCE TERM FOR TRACERS
864 !
865  TYPE(bief_obj), TARGET :: s1ta
866 !
867 ! PRESCRIBED TRACERS ON THE BOTTOM
868 !
869  TYPE(bief_obj), TARGET :: taborf
870 !
871 ! PRESCRIBED TRACERS ON THE LATERAL BOUNDARY
872 !
873  TYPE(bief_obj), TARGET :: taborl
874 !
875 ! PRESCRIBED TRACERS AT THE FREE SURFACE
876 !
877  TYPE(bief_obj), TARGET :: tabors
878 !
879 ! LOGARITHMIC LAW FOR TRACERS: NU*DTA/DN = ATABO*TA + BTABO
880 !
881  TYPE(bief_obj), TARGET :: atabof
882 !
883 ! LOGARITHMIC LAW FOR TRACERS: NU*DTA/DN = ATABO*TA + BTABO
884 !
885  TYPE(bief_obj), TARGET :: btabof
886 !
887 ! LOGARITHMIC LAW FOR TRACERS: NU*DTA/DN = ATABO*TA + BTABO
888 !
889  TYPE(bief_obj), TARGET :: atabol
890 !
891 ! LOGARITHMIC LAW FOR TRACERS: NU*DTA/DN = ATABO*TA + BTABO
892 !
893  TYPE(bief_obj), TARGET :: btabol
894 !
895 ! LOGARITHMIC LAW FOR TRACERS: NU*DTA/DN = ATABO*TA + BTABO
896 !
897  TYPE(bief_obj), TARGET :: atabos
898 !
899 ! LOGARITHMIC LAW FOR TRACERS: NU*DTA/DN = ATABO*TA + BTABO
900 !
901  TYPE(bief_obj), TARGET :: btabos
902 !
903 ! TYPES OF BOUNDARY CONDITIONS FOR TRACERS ON THE BOTTOM
904 !
905  TYPE(bief_obj), TARGET :: litabf
906 !
907 ! TYPES OF BOUNDARY CONDITIONS FOR TRACERS ON THE LATERAL BOUNDARY
908 !
909  TYPE(bief_obj), TARGET :: litabl
910 !
911 ! TYPES OF BOUNDARY CONDITIONS FOR TRACERS AT THE FREE SURFACE
912 !
913  TYPE(bief_obj), TARGET :: litabs
914 !
915 ! VISCOSITY
916 !
917  TYPE(bief_obj), TARGET :: viscvi
918 !
919 ! DIFFUSIVITY FOR TRACERS
920 !
921  TYPE(bief_obj), TARGET :: viscta
922 !
923 ! VISCOSITY IN SPALART_ALLMARAS SCHEME
924 !
925  TYPE(bief_obj), TARGET :: viscnu
926 !
927 ! BOTTOM GRADIENTS
928 !
929  TYPE(bief_obj), TARGET :: gradzf
930 !
931 ! FREE SURFACE GRADIENT (BLOCK OF 2 COMPONENTS)
932 !
933  TYPE(bief_obj), TARGET :: gradzs
934 !
935 ! OLD FREE SURFACE GRADIENT (BLOCK OF 2 COMPONENTS)
936 !
937  TYPE(bief_obj), TARGET :: gradzn
938 !
939 ! 2D MASK, FOR TELEMAC2D COMPATIBILITY
940 !
941  TYPE(bief_obj), TARGET :: mask,mask_3d
942 !
943 ! BLOCKS OF ARRAYS FOR THE USER IN 3D AND 2D
944 !
945  TYPE(bief_obj), TARGET :: prive,prive2d
946 !
947 ! BLOCK OF DIFFERENTIATED VECTORS
948 !
949  TYPE(bief_obj), TARGET :: advar,advar2d
950 !
951 ! BLOCKS OF ARRAYS FOR THE USER
952 !
953  TYPE(bief_obj), TARGET :: mat2d, tm1
954 !
955 ! BLOCKS THAT WILL CONTAIN WORK STRUCTURES
956 !
957  TYPE(bief_obj), TARGET :: trav3,trav2,itrav3
958 !
959  TYPE(bief_obj), TARGET :: varsor, varcl
960 !
961  TYPE(bief_obj), TARGET :: varso3
962 !
963 ! VALUES OF ADVECTED VARIABLES AT SOURCES
964 !
965  TYPE(bief_obj), TARGET :: u_sce,v_sce,w_sce,ak_sce,ep_sce,ta_sce
966  TYPE(bief_obj), TARGET :: nu_sce
967 !
968 ! BLOCK OF WORk ARRAYS FOR LIPS ADVECTION SCHEME
969 !
970  TYPE(bief_obj), TARGET :: tb2
971 !
972 !
973 ! CALCULATED VARIABLES FOR THE COUPLING TOMAWAC/TELEMAC3D
974 !
975 !
976 ! WAVE INDUCED PRESSURE AND ITS DERIVATIVES
977 !
978  TYPE(bief_obj), TARGET :: wip, wipdx, wipdy
979 !
980 ! STOKES VELOCITY
981 !
982  TYPE(bief_obj), TARGET :: ustokes, vstokes, wstokes
983 !
984 ! 2D PART OF WSTOKES
985 !
986  TYPE(bief_obj), TARGET :: wst1, wst2
987 !
988 ! STOKES VELOCITY INTEGRATED OVER DEPTH AND ITS DERIVATIVES
989 !
990  TYPE(bief_obj), TARGET :: us2d, vs2d
991  TYPE(bief_obj), TARGET :: dus2d, dvs2d
992  TYPE(bief_obj), TARGET :: dus2dx, dvs2dy
993 !
994 ! DERIVATIVES OF STOKES VELOCITY
995 !
996  TYPE(bief_obj), TARGET :: ustx, vsty
997 !
998 ! SURFACES STRESS DUE TO DEPTH INDUCED WAVE BREAKING
999 !
1000  TYPE(bief_obj), TARGET :: fdx, fdy
1002 ! DISSIPATION DUE TO BOTTOM FRICTION
1003 !
1004  TYPE(bief_obj), TARGET :: fbx, fby
1006 ! MODIFIED FRICTION COEFFICIENT DUE TO WAVES + CURRENTS
1007 !
1008  TYPE(bief_obj), TARGET :: cfwc
1010 ! MODIFIED TURBULENT WAVES VISCOSITY DUE TO BREAKING
1011 !
1012  TYPE(bief_obj), TARGET :: fdk
1014 ! FORCES DUE TO EFFECT OF WIND ON WAVES
1015 !
1016  TYPE(bief_obj), TARGET :: fwx, fwy
1018 ! BOTTOM MOMENTUM SWITCH
1019 !
1020  LOGICAL bot_moment
1022 !-----------------------------------------------------------------------
1023 ! (4) INTEGERS
1024 !-----------------------------------------------------------------------
1025 !
1026 ! MAXIMUM OF SOURCE POINTS
1027 !
1028  INTEGER, TARGET :: maxsce
1030 ! MAXIMUM OF LIQUID BOUNDARIES
1031 !
1032  INTEGER maxfro
1034 ! MAXIMUM OF LIQUID BOUNDARIES ON THE BED
1035 !
1036  INTEGER maxblb
1038 ! MAXIMUM OF TRACERS
1039 !
1040  INTEGER, TARGET :: maxtra
1042 ! MAXIMUM OF OUTPUT VARIABLES
1043 !
1044  INTEGER, PARAMETER :: maxvar = 140
1045  INTEGER :: nvar_hyd
1047 ! MAXIMUM OF OUTPUT VARIABLES FOR 3D
1048 !
1049  INTEGER, PARAMETER :: maxva3 = 140
1050  INTEGER :: nvar_t3d
1052 ! ADDRESS OF TRACERS IN VARSO3D
1053 ! IT IS COMPUTED IN NOMVAR_TELEMAC3D
1054 !
1055  INTEGER :: adr_trac
1057 ! ADDRESS OF TRACERS IN VARSO2D
1058 ! IT IS COMPUTED IN NOMVAR_2D_IN_3D
1059 !
1060  INTEGER :: adr_trac_2d
1062 ! ADDRESS OF LAST 2D WORK ARRAY BEFORE TRACERS
1063 !
1064  INTEGER, PARAMETER :: adr_trav2 = 17
1066 ! NUMBER OF TIME STEPS
1067 !
1068  INTEGER, TARGET :: nit
1070 ! TIME STEP
1071 !
1072  INTEGER, TARGET :: lt
1074 ! NUMBER OF HORIZONTAL PLANES
1075 !
1076  INTEGER, TARGET :: nplan
1078 ! NUMBER OF TRACERS
1079 !
1080  INTEGER, TARGET :: ntrac
1082 ! NUMBER OF PRESCRIBED TRACERS GIVEN
1083 !
1084  INTEGER ntracer
1086 ! PRINTOUT PERIOD FOR FLOATING BODIES
1087 !
1088  INTEGER floprd
1090 ! NUMBER OF DROGUES (CONSIDERED AS THE MAXIMUM)
1091 !
1092  INTEGER nflot_max,nflot
1094 ! PRINTOUT PERIOD FOR RESULT FILE
1095 !
1096  INTEGER, TARGET :: graprd
1098 ! LISTING PRINTOUT PERIOD
1099 !
1100  INTEGER, TARGET :: lisprd
1102 ! NUMBER OF FIRST TIME STEP FOR GRAPHIC PRINTOUTS
1103 !
1104  INTEGER gradeb
1106 ! NUMBER OF FIRST TIME STEP FOR LISTING PRINTOUTS
1107 !
1108  INTEGER lisdeb
1110 ! NUMBER OF BOTTOM SMOOTHINGS
1111 !
1112  INTEGER lisfon
1114 ! NUMBER OF SUB ITERATIONS FOR NON LINEARITIES
1115 !
1116  INTEGER nsousi
1118 ! HORIZONTAL TURBULENCE MODEL
1119 !
1120  INTEGER iturbh
1122 ! VERTICAL TURBULENCE MODEL
1123 !
1124  INTEGER iturbv
1126 ! TURBULENCE MODEL FOR THE BOTTOM
1127 !
1128  INTEGER lisruf
1130 ! TURBULENCE MODEL FOR LATERAL SOLID BOUNDARIES
1131 !
1132  INTEGER lisrul
1134 ! INITIAL GUESS FOR DEPTH
1135 !
1136  INTEGER iordrh
1138 ! SPATIAL PROJECTION TYPE AND SAVE OF ITS ORIGINAM VALUE
1139 !
1140  INTEGER protyp,protyp0
1142 ! TOTAL NUMBER OF SOURCES
1143 ! (including source points and culverts)
1144 !
1145  INTEGER nsce
1147 ! NUMBER OF SOURCE POINTS
1148 !
1149  INTEGER nptsce
1151 ! NUMBER OF SINK/SOURCES GIVEN BY THEIR NODE NUMBERS IN THE 2D MESH
1152 !
1153  INTEGER nrejeti
1155 ! ADDRESSES OF SOURCE POINTS IN THE 2D MESH
1156 !
1157  INTEGER, ALLOCATABLE, TARGET :: isce(:)
1159 ! PLANE NUMBERS OF SOURCE POINTS IN THE 2D MESH
1160 !
1161  INTEGER, ALLOCATABLE, TARGET :: ksce(:)
1163 ! ENTRY CULVERT AND OUTPUT CULVERT ARRAYS
1164 !
1165  INTEGER, POINTER, DIMENSION(:) :: kentbus,ksorbus
1167 ! NUMBER OF VELOCITIES OF SOURCES GIVEN
1168 !
1169  INTEGER nrejeu
1171 ! SCHEME FOR ADVECTION OF VELOCITIES
1172 !
1173  INTEGER schcvi
1175 ! SCHEME FOR ADVECTION OF TRACERS
1176 !
1177  INTEGER, ALLOCATABLE :: schcta(:)
1179 ! SCHEME FOR ADVECTION OF K-EPSILON
1180 !
1181  INTEGER schcke
1183 ! SCHEME FOR ADVECTION OF DEPTH
1184 !
1185  INTEGER schch
1187 ! SCHEME FOR DIFFUSION OF VELOCITIES
1188 !
1189  INTEGER schdvi
1191 ! SCHEME FOR DIFFUSION OF TRACERS
1192 !
1193  INTEGER schdta
1195 ! SCHEME FOR DIFFUSION OF K-EPSILON
1196 !
1197  INTEGER schdke
1199 ! TREATMENT ON TIDAL FLATS FOR VELOCITIES
1200 !
1201  INTEGER trbavi
1203 ! TREATMENT ON TIDAL FLATS FOR TRACERS
1204 !
1205  INTEGER trbata
1207 ! TREATMENT ON TIDAL FLATS FOR K-EPSILON
1208 !
1209  INTEGER trbake
1211 ! TREATMENT ON TIDAL FLATS FOR S-A
1212 !
1213  INTEGER trbasa
1215 ! NUMBER OF BOUNDARIES WITH PRESCRIBED DISCHARGE
1216 !
1217  INTEGER ndebit
1219 ! NUMBER OF BOUNDARIES WITH PRESCRIBED ELEVATION
1220 !
1221  INTEGER ncote
1223 ! NUMBER OF BOUNDARIES WITH PRESCRIBED VELOCITY
1224 !
1225  INTEGER nvit
1227 ! NUMBER OF BED BOUNDARIES WITH PRESCRIBED DISCHARGE
1228 !
1229  INTEGER nbedflo
1231 ! ORIGINAL DATE OF TIME
1232 !
1233  INTEGER mardat(3)
1235 ! ORIGINAL HOUR OF TIME
1236 !
1237  INTEGER martim(3)
1239 ! VECTOR LENGTH
1240 !
1241  INTEGER lvmac
1243 ! NUMBER OF PRIVATE ARRAYS, NUMBER OF PRIVATE ARRAYS WITH GIVEN NAME
1244 !
1245  INTEGER npriv,n_names_priv2d,npriv2d
1247 ! NUMBER OF DIFFERENTIATING ARRAYS, AND THOSE WITH A GIVEN NAME
1248 !
1251 ! RANK OF TEMPERATURE IN TRACERS
1252 !
1253  INTEGER ind_t
1255 ! RANK OF SALINITY IN TRACERS
1256 !
1257  INTEGER ind_s
1259 ! RANK OF SEDIMENTS IN TRACERS
1260 !
1261  INTEGER ind_sed
1263 ! NUMBER OF POINTS IN THE ELEMENT
1264 !
1265  INTEGER ndp
1267 ! LAW OF BOTTOM FRICTION
1268 !
1269  INTEGER kfrot
1271 ! LAW OF FRICTION ON LATERAL BOUNDARIES
1272 !
1273  INTEGER kfrotl
1275 ! MATRIX STORAGE
1276 !
1277  INTEGER optass
1279 ! MATRIX-VECTOR PRODUCT
1280 !
1281  INTEGER produc
1283 ! OPTION FOR THE TREATMENT OF TIDAL FLATS
1284 !
1285  INTEGER optban
1287 ! TREATMENT OF NEGATIVE DEPTHS
1288 !
1289  INTEGER opt_hneg
1291 ! OPTION FOR THE DIFFUSION OF VELOCITIES
1292 !
1293  INTEGER opdvit
1295 ! OPTION FOR THE TREATMENT OF SOURCES
1296 !
1297  INTEGER optsou
1299 ! OPTION FOR THE TREATMENT OF CULVERTS
1300 !
1301  INTEGER optbuse
1303 ! SUPG OPTION
1304 !
1305  INTEGER optsup(4)
1307 ! MATRIX STORAGE FOR 2D MATRICES
1308 !
1309  INTEGER optass2d
1311 ! 3D DISCRETISATION TYPE
1312 !
1313  INTEGER ielm3
1315 ! 2D DISCRETISATION TYPES, HORIZONTAL, VERTICAL
1316 !
1317  INTEGER ielm2h,ielm2v
1319 ! DISCRETISATION TYPES
1320 !
1321  INTEGER ielm0, ielmh, ielmu, ielm1, ielmx
1323 ! NUMBER OF LAYERS OF 3D ELEMENTS (NPLAN - 1)
1324 !
1325  INTEGER netage
1327 ! NUMBER OF VARIABLES TREATED IN MASS BALANCE
1328 !
1329  INTEGER nvbil
1331 ! MAXIMUM NUMBER OF HORIZONTAL PLANES WITHIN THE BED (GIBSON MODEL)
1332 ! OBSOLETE, replaced by S3D_NCOUCHou S3D_NLAYMAX
1333  INTEGER s3d_npfmax
1335 ! NEW
1336 ! NUMBER OF LAYERS WITHIN THE BED (MULTILAYER MODEL)
1337 !
1338  INTEGER s3d_ncouch
1340 ! MIXING LENGTH MODEL
1341 !
1342  INTEGER mixing
1344 ! DAMPING FUNCTION
1345 !
1346  INTEGER damping
1348 ! VELOCITY PROFILES
1349 !
1350  INTEGER, ALLOCATABLE :: profvel(:)
1352 ! TREATMENT OF FLUXES AT THE BOUNDARIES
1353 !
1354  INTEGER, ALLOCATABLE :: dirflu(:)
1356 ! VELOCITY VERTICAL PROFILES
1357 !
1358  INTEGER, ALLOCATABLE :: verprovel(:)
1360 ! TRACERS VERTICAL PROFILES
1361 !
1362  INTEGER, ALLOCATABLE :: verprotra(:)
1364 ! NUMBER OF LIQUID BOUNDARIES
1365 !
1366  INTEGER nfrliq
1368 ! CHOICE OF MESH TRANSFORMATION
1369 !
1370  INTEGER transf
1372 ! CHOICE OF DENSITY LAW
1373 !
1374  INTEGER denlaw
1376 ! DELWAQ PRINTOUT PERIOD
1377 !
1378  INTEGER waqprd
1380 ! ORIGIN COORDINATES
1381 !
1382  INTEGER i_orig,j_orig
1384 ! NUMBER OF POINTS GIVEN FOR EACH DISCHARGE-ELEVATIONS CURVES
1385 !
1386  INTEGER, ALLOCATABLE :: pts_curves(:)
1388 ! STAGE-DISCHARGE CURVES
1389 !
1390  INTEGER, ALLOCATABLE :: sta_dis_curves(:)
1392 ! KEYWORD DEBUGGER
1393 !
1394  INTEGER, TARGET :: debug
1396 ! SKIN FRICTION
1397 !
1398  INTEGER s3d_icr
1400 ! Equilibrium transport formula
1401 !
1402  INTEGER s3d_icq
1404 ! RECORD NUMBER IN THE WAVE DRIVEN CURRENTS FILE
1405 !
1406  INTEGER npth
1408 ! NUMBER OF CULVERTS/TUBES/BRIDGES
1409 !
1410  INTEGER nbuse
1412 ! GEOMETRY FILE NUMBER
1413 !
1414  INTEGER, TARGET :: t3dgeo
1416 ! BOUNDARY CONDITIONS FILE NUMBER
1417 !
1418  INTEGER, TARGET :: t3dcli
1420 ! PREVIOUS COMPUTATION FILE NUMBER
1421 !
1422  INTEGER t3dpre
1424 ! RESULT FILE NUMBER
1425 !
1426  INTEGER, TARGET :: t3dres
1428 ! BOTTOM TOPOGRAPHY FILE NUMBER
1429 !
1430  INTEGER t3dfon
1432 ! FILE NUMBER FOR SCOPE
1433 !
1434 ! INTEGER T3DSCO
1435 !
1436 ! 2D RESULT FILE NUMBER
1437 !
1438  INTEGER, TARGET :: t3dhyd
1440 ! FORMATTED DATA FILE 1
1441 !
1442  INTEGER t3dfo1
1444 ! FORMATTED DATA FILE 2
1445 !
1446  INTEGER t3dfo2
1448 ! BINARY DATA FILE 1
1449 !
1450  INTEGER t3dbi1
1452 ! BINARY DATA FILE 2
1453 !
1454  INTEGER t3dbi2
1456 ! ASCII ATMOSPHERIC DATA FILE
1457 !
1458  INTEGER t3atma
1460 ! BINARY ATMOSPHERIC DATA FILE
1461 !
1462  INTEGER t3atmb
1464 ! BINARY BOUNDARY DATA FILE
1465 !
1466  INTEGER t3dbnd
1468 ! SEDIMENTOLOGICAL RESULT FILE
1469 !
1470  INTEGER s3d_t3dsed
1472 ! PREVIOUS COMPUTATION SEDIMENTOLOGICAL FILE
1473 !
1474  INTEGER t3dsus
1476 ! REFERENCE FILE NUMBER
1477 !
1478  INTEGER t3dref
1480 ! CULVERTS/BRIDGES DATA FILE
1481 !
1482  INTEGER t3dbus
1484 ! LIQUID BOUNDARIES FILE NUMBER
1485 !
1486  INTEGER t3dimp
1488 ! FILES FOR DELWAQ
1489 !
1493 ! STAGE-DISCHARGE CURVES FILE NUMBER
1494 !
1495  INTEGER t3dpar
1497 ! SOURCES FILE NUMBER
1498 !
1499  INTEGER t3dvef
1501 ! BINARY RESULTS FILE NUMBER
1502 !
1503  INTEGER t3drbi
1505 ! FORMATTED RESULTS FILE NUMBER
1506 !
1507  INTEGER t3drfo
1509 ! MIGRHYCAR STEERING FILE
1510 !
1511  INTEGER t3dmig
1513 ! RESTART FILE
1514 !
1515  INTEGER t3drst
1517 ! HARMONIC CONSTANTS FILE NUMBER
1518 !
1519  INTEGER t3dhar
1521 ! TIDAL MODEL FILE NUMBER
1522 !
1523  INTEGER t3dtid
1525 ! ASCII TIDAL MODEL DATABASE FILE NUMBER
1526 !
1527  INTEGER t3dbdd
1529 ! BINARY TIDAL MODEL DATABASES 1 AND 2 FILE NUMBER
1530 !
1531  INTEGER t3dbb1,t3dbb2
1533 ! ASCII AND BINARY DROGUES FILE
1534 !
1535  INTEGER t3dflo,t3dblo
1537 ! FILE FOR 2D CONTINUATION
1538 !
1539  INTEGER t3ds2d
1541 ! WAQ STEERING FILE (INTERNAL WAQ NOT THOSE OF DELWAQ)
1542 !
1543  INTEGER t3dwaq
1545 ! WAQ DICO (INTERN WAQ NOT THOSE OF DELWAQ)
1546 !
1547  INTEGER t3dwqd
1549 ! LAMBERT 93 CONVERSION FILE
1550 !
1551  INTEGER t3dl93
1553 ! NUMBER OF VARIABLES TO BE ADVECTED BY A GIVEN SCHEME
1554 ! AND THEIR LIST IN THE LIST OF ADVECTED VARIABLES
1555 ! S_ADV: ASSOCIATED ADVECTION SCHEME
1556 ! NOM_ADV: RANK TO FIND THE NAME IN TEXT3
1557 !
1558  INTEGER n_adv(0:15),list_adv(100,0:15)
1559  INTEGER, ALLOCATABLE :: nom_adv(:),s_adv(:)
1561 ! COUPLING PERIODS FOR SISYPHE AND TOMAWAC
1562 !
1563  INTEGER percou_sis,percou_wac
1565 ! BOUNDARY CONDITION ON THE BOTTOM
1566 !
1567  INTEGER bc_bottom
1569 ! THOMPSON BOUNDARY CONDITIONS
1570 !
1571  INTEGER, ALLOCATABLE :: frtype(:)
1573 ! TIDAL TYPE OF BOUNDARY CONDITIONS
1574 !
1575  INTEGER, ALLOCATABLE, TARGET :: bnd_tide(:)
1577 ! VERTICAL VELOCITY DERIVATIVES
1578 !
1579  INTEGER linlog
1581 ! RECORD NUMBER FOR RESTART
1582 !
1583  INTEGER start_record
1585 ! OPTION FOR TIDAL BOUNDARY CONDITIONS
1586 !
1587  INTEGER tidaltype
1589 ! TIDAL DATA BASE
1590 !
1591  INTEGER tidaldb
1593 ! GEOGRAPHIC SYSTEM
1594 !
1595  INTEGER geosyst
1597 ! ZONE NUMBER IN GEOGRAPHIC SYSTEM
1598 !
1599  INTEGER numzone
1601 ! NUMBERS OF THE POINT TO CALIBRATE HIGH WATER (SCHEMATIC TIDES)
1602 !
1603  INTEGER icalhwb,icalhwg
1605 ! FOR MONITORING K-EPSILON MODEL (SEE SUBROUTINE CSTKEP)
1606 !
1607  INTEGER optprod,limkf,limef,limks,limes
1609 ! FOR MONITORING S-A MODEL (SEE SUBROUTINE CSTSA)
1610 !
1611  INTEGER limnuf,limnus
1613 ! MAXIMUM NUMBER OF ITERATIONS FOR ADVECTION SCHEMES
1614 !
1615  INTEGER maxadv
1617 ! OPTION FOR CHARACTERISTICS,
1618 ! NUMBER OF GAUSS POINTS FOR WEAK CHARACTERISTICS
1619 !
1620  INTEGER optcha,ngauss
1622 ! OPTION FOR THE COMPUTATION OF THE LATERAL BOUNDARY CONDITIONS
1623 ! OF K AND EPSILON
1624 !
1625  INTEGER optbcke
1627 ! SCHEME OPTION FOR ADVECTION OF VELOCITIES, K-EPSILON
1628 !
1629  INTEGER optadv_vi,optadv_ke
1631 ! OPTION FOR WIND
1632 !
1633  INTEGER optwind
1635 ! SCHEME OPTION FOR ADVECTION OF TRACERS
1636 !
1637  INTEGER, ALLOCATABLE :: optadv_tr(:)
1639 ! NUMBER OF CORRECTIONS OF DISTRIBUTIVE SCHEMES
1640 !
1641  INTEGER nco_dist
1643 ! NUMBER OF SUB-STEPS OF DISTRIBUTIVE SCHEMES
1644 !
1645  INTEGER nsp_dist
1647 ! NUMBER OF DIRECTIONS FOR DIFFERENTIATING in VECTOR MODES
1648 !
1649  INTEGER ad_numofdir
1651 ! GOTM STEERING FILE
1652 !
1653  INTEGER t3dgtm
1655 ! NUMBER OF TRACER FOR AMR MESH TRANSFORMATION
1656 !
1657  INTEGER itrac_amr
1659 !-----------------------------------------------------------------------
1660 ! (5) LOGICAL VALUES
1661 !-----------------------------------------------------------------------
1662 !
1663 ! WILL BE USED BY FUNCTIONS Q3, SL3, TR3 AND VIT3
1664 !
1665  LOGICAL, ALLOCATABLE :: okq3(:),oksl3(:),oktr3(:,:),okvit3(:)
1666  LOGICAL, ALLOCATABLE :: okdebsce(:),oktrsce(:,:)
1668 ! LOGICAL STEERING PARAMETERS
1669 !
1670  LOGICAL debu
1672 ! IF YES, CORIOLIS
1673 !
1674  LOGICAL coriol
1676 ! IF YES, WIND TAKEN INTO ACCOUNT
1677 !
1678  LOGICAL vent
1680 ! AIR PRESSURE
1681 !
1682  LOGICAL atmos
1684 ! IF YES, SEDIMENT
1685 !
1686  LOGICAL s3d_sedi
1688 ! IF YES, TIDAL FLATS
1689 !
1690  LOGICAL bandec
1692 ! IF YES, PROPAGATION LINEARISED
1693 !
1694  LOGICAL prolin
1696 ! IF YES, MASS BALANCE
1697 !
1698  LOGICAL bilmas
1700 ! INFORMATION ABOUT MASS-BALANCE FOR EACH LISTING PRINTOUT
1701 !
1702  LOGICAL infmas
1704 ! IF YES, MESH WITH SIGMA TRANSFORMATION
1705 !
1706  LOGICAL sigmag
1708 ! IF YES, HYDROSTATIC INCONSISTENCY FILTER
1709 !
1710  LOGICAL inchyd
1712 ! ARRAYS SAYING IF A VARIABLE IS TO BE PRINTED IN RESULTS FILES
1713 !
1714  LOGICAL sorg2d(maxvar),sorg3d(maxva3),sorest(maxva3)
1716 ! ARRAYS SAYING IF A VARIABLE IS TO BE PRINTED IN THE LISTING
1717 !
1718  LOGICAL sorimp(maxvar),sorim3(maxva3),soris3(maxva3)
1720 ! IF YES, CONTINUATION FROM A 2D FILE
1721 !
1722  LOGICAL suit2
1724 ! IF YES, RAIN OR EVAPORATION
1725 !
1726  LOGICAL rain
1728 ! IF YES, STABILISED INITIAL CONDITION (OBSOLETE...)
1729 !
1730 ! LOGICAL CONSOL
1731 !
1732 ! IF YES, ELEMENTS MASKED BY USER
1733 !
1734  LOGICAL mskuse
1736 ! DIF(I) WILL SAY IF DIFFUSION SOLVER I IS USED FOR AT LEAST ONE OF THE VARIABLES
1737 !
1738  LOGICAL dif(0:2)
1740 ! IF YES, SPHERICAL COORDINATES (NOT IMPLEMENTED)
1741 !
1742  LOGICAL spheri
1744 ! IF YES, THERE ARE MASKED ELEMENTS
1745 !
1746  LOGICAL msk
1748 ! IF YES, LISTING PRINTOUT
1749 !
1750  LOGICAL listin
1752 ! IF YES, INFORMATION PRINTED ON LISTING
1753 !
1754  LOGICAL infogr
1756 ! IF YES, VALIDATION
1757 !
1758  LOGICAL valid
1760 ! IF YES, CONSOLIDATION MODEL
1761 !
1762  LOGICAL s3d_tasse
1764 ! CHOICE OF MODEL
1765 !
1766  INTEGER s3d_itass
1768 ! IF YES, S3D_GIBSONCONSOLIDATION MODEL
1769 !
1770  LOGICAL s3d_gibson
1772 ! IF YES, INFLUENCE OF TURBULENCE ON SETTLING VELOCITY
1773 !
1774  LOGICAL s3d_turbwc
1776 ! IF YES, COHESIVE SEDIMENT
1777 !
1778  LOGICAL s3d_sedco
1780 ! IF YES, NON-HYDROSTATIC VERSION
1781 !
1782  LOGICAL nonhyd
1784 ! CONSISTENT PROJECTION (OBSOLETE...)
1785 !
1786 ! LOGICAL CONPRO
1787 !
1788 ! FOR INITIALISATION OF K-EPSILON (SET IN CONDIM)
1789 !
1790  LOGICAL akep
1792 ! FOR INITIALISATION OF K-OMEGA (SET IN CONDIM)
1793 !
1794  LOGICAL akom
1796 ! FOR INITIALISATION OF S-A (SET IN CONDIM)
1797 !
1798  LOGICAL aksa
1800 ! IF YES, INITIAL TIME RESET TO ZERO IN A COMPUTATION CONTINUED
1801 !
1802  LOGICAL raztim
1804 ! IF YES, DYNAMIC PRESSURE IN WAVE EQUATION
1805 !
1806  LOGICAL dpwaveq
1808 ! IF YES, DYNAMIC BOUNDARY CONDITION
1809 !
1810  LOGICAL cldyn
1812 ! IF YES, SALINITY FOR DELWAQ
1813 !
1814  LOGICAL sali_del
1816 ! IF YES, TEMPERATURE FOR DELWAQ
1817 !
1818  LOGICAL temp_del
1820 ! IF YES, VELOCITY FOR DELWAQ
1821 !
1822  LOGICAL velo_del
1824 ! IF YES, DIFFUSION FOR DELWAQ
1825 !
1826  LOGICAL diff_del
1828 ! IF YES, WAVE DRIVEN CURRENTS
1829 !
1830  LOGICAL courou
1832 ! IF YES, BYPASS VOID VOLUMES
1833 !
1834  LOGICAL bypass
1836 ! PROJECTION OF VELOCITY ON LATERAL SOLID BOUNDARIES
1837 !
1838  LOGICAL velprolat
1840 ! PROJECTION OF VELOCITY ON BOTTOM
1841 !
1842  LOGICAL velprobot
1844 ! FOR CALCULATING FLUXES OF ADVECTED VARIABLES
1845 !
1846  LOGICAL,ALLOCATABLE :: calcflu(:)
1848 ! FOR TAKING INTO ACCOUNT RAIN IN ADVECTION OF VARIABLES
1849 !
1850  LOGICAL,ALLOCATABLE :: calcrain(:)
1852 ! OIL SPILL MODEL
1853 !
1854  LOGICAL spill_model
1856 ! THOMFR (TRUE IF ONE OF THE VALUES IN FRTYPE IS 2)
1857 !
1858  LOGICAL thomfr
1860 ! RESTART MODE (TO GENERATE A RESTART FILE)
1861 !
1862  LOGICAL restart_mode
1864 ! IF YES, INFERENCE OF MINOR CONSTITUENTS
1865 !
1866  LOGICAL intmicon
1868 ! FOR MONITORING K-EPSILON MODEL (SEE SUBROUTINE CSTKEP)
1869 !
1870  LOGICAL clipk,clipe,yap,wsik,clipnu
1872 ! TIDE GENERATING FORCE
1873 !
1874  LOGICAL maree
1876 ! OPEN BOUNDARY CONDITIONS ON THE BED
1877 !
1878  LOGICAL bedbou
1880 ! EXPLICIT SCHEME FOR SETTLING
1881  LOGICAL s3d_read_toce
1882  INTEGER s3d_setdep
1884 ! MIXED SEDIMENT, NON COHESIVE SEDIMENT
1885 !
1886  LOGICAL s3d_mixte,s3d_sednco
1888 ! CONTINUITY CORRECTION ON OPEN BOUNDARIES
1889 !
1890  LOGICAL concor
1892 ! IF YES KEEP LONG LAT IN RESULT FILE
1893 !
1894  LOGICAL keep_lonlat
1896 ! TO CHANGE LATER
1897 !
1898  LOGICAL charr_tel, susp_tel
1900 ! IF YES, BOTTOM SMOOTHINGS ARE DONE AFTER MODIFICATIONS BY THE USER
1901 !
1902  LOGICAL lisfon_after
1904 ! IF YES, INITIAL VELOCITIES ARE COMPUTED FROM OSU TIDAL SOLUTIONS
1905 ! E.G. TPXO. OTHERWISE = 0.
1906 !
1907  LOGICAL vitini_tpxo
1909 !-----------------------------------------------------------------------
1910 ! (6) REALS
1911 !-----------------------------------------------------------------------
1912 !
1913 ! TIME
1914 !
1915  DOUBLE PRECISION, TARGET :: at
1917 ! TIMESTEP
1918 !
1919  DOUBLE PRECISION, TARGET :: dt
1921 ! DURATION
1922 !
1923  DOUBLE PRECISION, TARGET :: duree
1925 ! GRAVITY ACCELERATION
1926 !
1927  DOUBLE PRECISION grav
1929 ! CORIOLIS COEFFICIENT
1930 !
1931  DOUBLE PRECISION fcor
1933 ! DRAG COEFFICIENT OF WIND
1934 !
1935  DOUBLE PRECISION fair
1937 ! IF YES, THE DRAG COEFFICIENT OF WIND IS COMPUTED
1938 ! WITH THE WIND VELOCITY
1939 !
1940  LOGICAL fairaccu
1942 ! WIND VELOCITY ALONG X, AND Y REPLACED BY CST_WINDX,CST_WINDY
1943 ! IN METEO_TELEMAC MODULE
1944 !
1945 ! DOUBLE PRECISION FUAIR,FVAIR
1946 !
1947 ! WATER DENSITY AT REFERENCE CONCENTRATION
1948 !
1949  DOUBLE PRECISION, TARGET :: rho0
1951 ! FRICTION COEFFICIENT FOR THE BOTTOM
1952 !
1953  DOUBLE PRECISION rugof0
1955 ! FRICTION COEFFICIENT FOR LATERAL SOLID BOUNDARIES
1956 !
1957  DOUBLE PRECISION rugol0
1959 ! ZERO
1960 !
1961  DOUBLE PRECISION zero
1963 ! MINIMAL VALUE FOR DEPTH
1964 !
1965  DOUBLE PRECISION hmin
1967 ! MEAN DEPTH FOR LINEARIZATION
1968 !
1969  DOUBLE PRECISION haulin
1971 ! COEFFICIENT FOR HORIZONTAL DIFFUSION OF VELOCITIES
1972 !
1973  DOUBLE PRECISION dnuvih
1975 ! COEFFICIENT FOR VERTICAL DIFFUSION OF VELOCITIES
1976 !
1977  DOUBLE PRECISION dnuviv
1979 ! COEFFICIENT FOR HORIZONTAL DIFFUSION OF TRACERS
1980 !
1981  DOUBLE PRECISION, ALLOCATABLE :: dnutah(:)
1983 ! COEFFICIENT FOR VERTICAL DIFFUSION OF TRACERS
1984 !
1985  DOUBLE PRECISION, ALLOCATABLE :: dnutav(:)
1987 ! INITIAL DEPTH
1988 !
1989  DOUBLE PRECISION hautin
1991 ! INITIAL ELEVATION
1992 !
1993  DOUBLE PRECISION cotini
1995 ! RAIN OR EVAPORATION IN MM PER DAY
1996 ! REPLACED BY CST_RAINFALL IN METEO_TELEMAC MODULE)
1997 !
1998 ! DOUBLE PRECISION RAIN_MMPD
1999 !
2000 ! IMPLICITATION FOR DEPTH
2001 !
2002  DOUBLE PRECISION tetah
2004 ! IMPLICITATION FOR VELOCITIES
2005 !
2006  DOUBLE PRECISION tetau
2008 ! IMPLICITATIONS FOR DIFFUSION ?
2009 !
2010  DOUBLE PRECISION tetad,tetadi
2012 ! MASS-LUMPING FOR DEPTH, DIFFUSION, VELOCITIES
2013 !
2014  DOUBLE PRECISION aggloh,agglod,agglou
2016 ! ARRAY OF PRESCRIBED FLOWRATES, ELEVATIONS, VELOCITIES
2017 !
2018  DOUBLE PRECISION, ALLOCATABLE, TARGET :: debimp(:), cotimp(:)
2020 ! ARRAY OF PRESCRIBED VELOCITIES
2021 !
2022  DOUBLE PRECISION, POINTER :: vitimp(:)
2024 ! ARRAY OF PRESCRIBED FLOWRATES, SURFACE, VELOCITIES FOR LIQUID BOUNDARIES IMPOSED ON THE BED
2025 !
2026  DOUBLE PRECISION, ALLOCATABLE :: bedflo(:),bedqarea(:)
2028 ! BETA EXPANSION COEFFICIENT FOR TRACERS
2029 !
2030  DOUBLE PRECISION, ALLOCATABLE, TARGET :: betac(:)
2032 ! REFERENCE CONCENTRATION OF TRACERS
2033 !
2034  DOUBLE PRECISION, ALLOCATABLE, TARGET :: t0ac(:)
2036 ! INITIAL VALUES OF TRACERS
2037 !
2038  DOUBLE PRECISION, ALLOCATABLE, TARGET :: trac0(:)
2040 ! VALUES OF TRACERS IN THE RAIN
2041 !
2042  DOUBLE PRECISION, ALLOCATABLE :: train(:)
2044 ! DENSITY OF THE SEDIMENT
2045 !
2046  DOUBLE PRECISION s3d_rhos
2048 ! CRITICAL SHEAR STRESS FOR DEPOSITION
2049 !
2050  DOUBLE PRECISION s3d_tocd
2052 ! CONCENTRATION (G/L) OF FRESH DEPOSITS
2053 !
2054  DOUBLE PRECISION s3d_cfdep
2056 ! CV: non cohesive bed porosity
2057 !
2058  DOUBLE PRECISION s3d_xkv
2060 ! REFERENCE BED LAYER THICKNESS FOR NEW LAYER CREATION
2061 !
2062  DOUBLE PRECISION s3d_epai0
2064 ! TIMESTEP FOR CONSOLIDATION
2065 !
2066  DOUBLE PRECISION s3d_dtc
2068 ! CONCENTRATION (G/L) OF THE CONSOLIDATED MUD
2069 !
2070  DOUBLE PRECISION s3d_cfmax
2072 ! EROSION COEFFICIENT (EMPIRICAL PARTHENIADES COEFFICIENT)
2073 !
2074  DOUBLE PRECISION s3d_mpart
2076 ! CRITICAL SHEAR STRESS FOR EROSION (FRESH DEPOSIT)
2077 ! CV : now an array
2078 ! DOUBLE PRECISION S3D_TOCE
2079 !
2080 ! FLOCULATION COEFFICIENT
2081 !
2082  DOUBLE PRECISION s3d_turba
2084 ! COEFFICIENT RELATIVE TO FLOC DESTRUCTION
2085 !
2086  DOUBLE PRECISION s3d_turbb
2088 ! CONSOLIDATION TIME SCALE (ONLY FOR MULTILAYER MODEL)
2089 !
2090  DOUBLE PRECISION s3d_trest(30)
2092 ! CONSTANT SEDIMENT SETTLING VELOCITY (M/S)
2093 !
2094  DOUBLE PRECISION s3d_wchu0
2096 ! MEAN DIAMETER OF THE SEDIMENT
2097 !
2098  DOUBLE PRECISION s3d_d50
2100 ! GEOGRAPHICAL LATITUDE IN GRAD, POSITIVE FOR NORTHERN AND NEGATIVE ON SOUTHERN HEMISPHERE
2101 ! NOT USED
2102 !
2103 ! DOUBLE PRECISION PHILAT
2104 !
2105 ! NOT USED
2106 !
2107 ! DOUBLE PRECISION DELTA
2108 !
2109 ! LATITUDE AND LONGITUDE OF THE ORIGIN POINT
2110 !
2111  DOUBLE PRECISION latit,longit
2113 ! NORTH
2114 !
2115  DOUBLE PRECISION nord
2117 ! FREE SURFACE GRADIENT COMPATIBILITY IN WAVE EQUATION
2118 !
2119  DOUBLE PRECISION tetazcomp
2121 ! ABSCISSAE, ORDINATES AND ELEVATIONS OF SOURCES
2122 !
2123  DOUBLE PRECISION, ALLOCATABLE, TARGET :: xsce(:)
2124  DOUBLE PRECISION, ALLOCATABLE, TARGET :: ysce(:)
2125  DOUBLE PRECISION, ALLOCATABLE, TARGET :: zsce(:)
2127 ! VELOCITIES OF THE SOURCES ALONG X, Y, Z
2128 !
2129  DOUBLE PRECISION, ALLOCATABLE, TARGET :: usce(:)
2130  DOUBLE PRECISION, ALLOCATABLE, TARGET :: vsce(:)
2131  DOUBLE PRECISION, ALLOCATABLE, TARGET :: wsce(:)
2133 ! WATER DISCHARGE OF SOURCES TAKEN FROM STEERING FILE
2134 !
2135  DOUBLE PRECISION, ALLOCATABLE, TARGET :: qsce(:)
2137 ! WATER DISCHARGE OF SOURCES COMPUTED WITH T3D_DEBSCE (VARIATIONS IN TIME)
2138 !
2139  DOUBLE PRECISION, ALLOCATABLE :: qsce2(:)
2141 ! VALUE OF THE TRACERS AT THE SOURCES TAKEN FROM STEERING FILE
2142 !
2143  DOUBLE PRECISION, ALLOCATABLE, TARGET :: tasce(:,:)
2145 ! PRESCRIBED VALUES OF TRACERS AT LIQUID BOUNDARIES
2146 !
2147  DOUBLE PRECISION, ALLOCATABLE, TARGET :: tracer(:)
2149 ! RATIO BETWEEN SKIN FRICTION AND MEAN DIAMETER
2150 !
2151  DOUBLE PRECISION s3d_kspratio
2153 ! SHIELDS PARAMETER
2154 !
2155  DOUBLE PRECISION s3d_ac
2157 ! FLUX AT BOUNDARIES
2158 !
2159  DOUBLE PRECISION, ALLOCATABLE, TARGET :: flux_boundaries(:)
2161 ! FOR STORING DISCHARGE-ELEVATION CURVES
2162 !
2163  DOUBLE PRECISION, ALLOCATABLE :: qz(:,:,:)
2165 ! THRESHOLD DEPTH FOR WIND
2166 !
2167  DOUBLE PRECISION hwind
2169 ! CUMULATED FLUXES OF WATER SINCE BEGINNING OF COMPUTATION
2170 !
2171  DOUBLE PRECISION fluxtotcum
2173 ! INITIAL, PAST AND PRESENT MASS OF WATER
2174 !
2175  DOUBLE PRECISION masini_water, massen_water,masse_water
2177 ! THRESHOLD FOR VISCOSITY CORRECTION ON TIDAL FLATS
2178 !
2179  DOUBLE PRECISION hlim
2181 ! THRESHOLD FOR VISCOSITY CORRECTION ON TIDAL FLATS
2182 !
2183  DOUBLE PRECISION s3d_hsed
2185 ! COEFFICIENT TO CALIBRATE TIDAL RANGE
2186 !
2187  DOUBLE PRECISION, TARGET :: ctide
2189 ! COEFFICIENT TO CALIBRATE TIDAL VELOCITIES
2190 !
2191  DOUBLE PRECISION, TARGET :: ctidev
2193 ! COEFFICIENT TO CALIBRATE SEA LEVEL
2194 !
2195  DOUBLE PRECISION, TARGET :: msl
2197 ! MINIMUM DEPTH TO COMPUTE TIDAL VELOCITIES BOUNDARY CONDITIONS
2198 !
2199  DOUBLE PRECISION hmin_vit_bc
2201 ! MINIMUM DEPTH TO COMPUTE TIDAL VELOCITIES INITIAL CONDITIONS
2202 !
2203  DOUBLE PRECISION hmin_vit_ic
2205 ! COEFFICIENT TO CALIBRATE THE ATMOSPHERE-WATER EXCHANGE MODEL
2206 ! MOVED TO WAQTEL
2207 ! DOUBLE PRECISION C_ATMOS
2208 !
2209 ! SETTLING VELOCITY OF SAND
2210 !
2211  DOUBLE PRECISION s3d_wcs0
2212  TYPE(bief_obj), TARGET :: s3d_wcs
2214 ! INITIAL PERCENTAGE OF NON COHESIVE SEDIMENT
2215 !
2216  DOUBLE PRECISION s3d_pvsnco0
2218 ! MASS-LUMPING FOR WEAK CHARACTERISTICS
2219 !
2220  DOUBLE PRECISION s3d_agglow
2222 ! VALUE OF THE ATMOSPHERIC PRESSURE
2223 ! REPLACED BY CST_PATMOS IN METEO_TELEMAC MODULE)
2224 !
2225 ! DOUBLE PRECISION PATMOS_VALUE
2226 !
2227 ! THRESHOLD FOR THICKNESS OF LAYERS FOR COUPLING WITH AED2
2228 !
2229  DOUBLE PRECISION, PARAMETER :: eps_aed2 = 1.d-9
2231 ! MINIMUM VOLUME OF 3D ELEMENTS
2232 !
2233  DOUBLE PRECISION minimum_volume
2235 ! MINIMUM DISTANCE BETWEEN PLANES CLOSE TO THE BOTTOM
2236 !
2237  DOUBLE PRECISION dismin_bot
2239 ! MINIMUM DISTANCE BETWEEN PLANES CLOSE TO THE FREE SURFACE
2240 !
2241  DOUBLE PRECISION dismin_sur
2243 ! THRESHOLD HEIGHT BEFORE CRUSHED ELEMENTS
2244 !
2245  DOUBLE PRECISION min_dz
2247 !-----------------------------------------------------------------------
2248 ! (7) STRINGS
2249 !-----------------------------------------------------------------------
2250 !
2251 ! TITLE
2252 !
2253  CHARACTER(LEN=72) titcas
2255 ! VARIABLES FOR GRAPHIC PRINTOUTS
2256 !
2257  CHARACTER(LEN=72) sort3d,sort2d
2259 !
2260 !
2261  CHARACTER(LEN=72) varimp
2263 !
2264 !
2265  CHARACTER(LEN=72) varim3
2267 ! INITIAL CONDITIONS
2268 !
2269  CHARACTER(LEN=72) cdtini
2271 ! CHOICE OF ELEMENT
2272 !
2273  CHARACTER(LEN=72) element
2275 !
2276 !
2277 ! CHARACTER(LEN=3) BINGEO
2278 !
2279 !
2280 !
2281 ! CHARACTER(LEN=3) BINRES
2282 !
2283 !
2284 !
2285 ! CHARACTER(LEN=3) BINPRE
2286 !
2287 !
2288 !
2289 ! CHARACTER(LEN=3) BINHYD
2290 !
2291 ! CHOICE OF EQUATIONS TO SOLVE
2292 !
2293  CHARACTER(LEN=20), TARGET :: equa
2295 !
2296 !
2297  CHARACTER(LEN=32) varcla(10)
2299 ! NAMES OF VARIABLES RECOGNISED FROM RESULTS AND GEOMETRY FILES
2300 !
2301  CHARACTER(LEN=32) texte(maxvar)
2303 ! NAMES OF VARIABLES RECOGNISED FROM PREVIOUS COMPUTATION FILE
2304 !
2305  CHARACTER(LEN=32) textpr(maxvar)
2307 !
2308 !
2309  CHARACTER(LEN=32) text3(maxva3)
2311 !
2312 !
2313  CHARACTER(LEN=32) textp3(maxva3)
2315 !
2316 !
2317  CHARACTER(LEN=3) s3d_birsed
2319 !
2320 !
2321 ! CHARACTER(LEN=3) BISUIS
2322 !
2323 ! NAMES OF TRACERS
2324 !
2325  CHARACTER(LEN=32), ALLOCATABLE :: nametrac(:)
2327 ! NAMES OF PRIVATE ARRAYS (GIVEN BY USER)
2328 !
2329  CHARACTER(LEN=32) names_prive2d(4)
2331 ! NAMES OF DIFFERENTING ARRAYS (GIVEN BY USER)
2332 !
2333  CHARACTER(LEN=32) names_advar2d(maxvar)
2335 !-----------------------------------------------------------------------
2336 ! (8) SLVCFG STRUCTURES
2337 !-----------------------------------------------------------------------
2338 !
2339 ! SOLVER FOR DIFFUSION OF VELOCITIES
2340 !
2341  TYPE(slvcfg) :: slvdvi
2343 ! SOLVER FOR PROPAGATION
2344 !
2345  TYPE(slvcfg) :: slvpro
2347 ! SOLVER FOR DIFFUSION OF K-EPSILON
2348 !
2349  TYPE(slvcfg) :: slvdke
2351 ! SOLVER FOR DIFFUSION OF TRACERS
2352 !
2353  TYPE(slvcfg), ALLOCATABLE :: slvdta(:)
2355 ! SOLVER FOR VERTICAL VELOCITY COMPONENT
2356 ! NO MORE SLVW SINCE V5P5
2357 !
2358 ! TYPE(SLVCFG) :: SLVW
2359 !
2360 ! SOLVER FOR DIFFUSION OF THE SEDIMENT
2361 !
2362  TYPE(slvcfg) :: s3d_slvdse
2364 ! SOLVER FOR PPE (NON-HYDROSTATIC)
2365 !
2366  TYPE(slvcfg) :: slvpoi
2368 ! SOLVER FOR PROJECTION (NON-HYDROSTATIC)
2369 ! NO MORE SLVPRJ
2370 !
2371 ! TYPE(SLVCFG) :: SLVPRJ
2372 !
2373 !-----------------------------------------------------------------------
2374 ! (9) MESH STRUCTURE(S)
2375 !-----------------------------------------------------------------------
2376 ! 2 SEPARATE MESHES, 2D AS USUAL AND 3D WITH SIGMA-MESH SPECIFIC
2377 ! FEATURES, SEE ALMESH.F
2378 !
2379 ! 2D MESH WITH SIGMA-MESH SPECIFIC FEATURES
2380 !
2381  TYPE(bief_mesh), TARGET :: mesh2d
2383 ! 3D MESH WITH SIGMA-MESH SPECIFIC FEATURES
2384 !
2385  TYPE(bief_mesh), TARGET :: mesh3d
2387 !-----------------------------------------------------------------------
2388 ! (10) ALIASES
2389 !-----------------------------------------------------------------------
2390 !
2391 ! DECLARATION OF POINTERS FOR ALIASES
2392 ! TARGETS ARE ALLOCATED AND POINTED TO IN POINT_TELEMAC3D
2393 !
2394 ! ALIASES FOR WORKING VECTORS, REAL 3D, INTEGER 3D, REAL 2D
2395 !
2396 !
2397 ! BIEF_OBJ STRUCTURES FOR ARRAYS OF DIMENSION NPOIN3
2398 !
2399  TYPE(bief_obj), POINTER :: t3_01,t3_02,t3_03,t3_04,t3_05
2400  TYPE(bief_obj), POINTER :: t3_06,t3_07,t3_08,t3_09,t3_10
2401  TYPE(bief_obj), POINTER :: t3_11,t3_12,t3_13,t3_14,t3_15
2402  TYPE(bief_obj), POINTER :: t3_16,t3_17,t3_18
2403  TYPE(bief_obj), POINTER :: prive1,prive2,prive3,prive4
2405 ! BIEF_OBJ STRUCTURES FOR INTEGER ARRAYS
2406 !
2407  TYPE(bief_obj), POINTER :: it1, it2, it3, it4
2409 ! ALIASES OF BIEF_OBJ STRUCTURE FOR LOCAL WORK, DIMENSION NPOIN2
2410 !
2411  TYPE(bief_obj), POINTER :: t2_01,t2_02,t2_03,t2_04,t2_05
2412  TYPE(bief_obj), POINTER :: t2_06,t2_07,t2_08,t2_09,t2_10
2413  TYPE(bief_obj), POINTER :: t2_11,t2_12,t2_13,t2_14,t2_15
2414  TYPE(bief_obj), POINTER :: t2_16,t2_17,t2_18,t2_19,t2_20
2415  TYPE(bief_obj), POINTER :: t2_21,t2_22,t2_23
2418 ! 2D NODE COORDINATES
2419 !
2420  TYPE(bief_obj), POINTER :: x2,y2
2422 ! 3D NODE COORDINATES
2423 !
2424  TYPE(bief_obj), POINTER :: x3,y3,z3
2426 ! 3D ELEMENT-ORIENTED WORKING FIELD ALLOCATED WITH THE MESH
2427 !
2428  TYPE(bief_obj), POINTER :: w1
2430 ! BASE TRIANGLE SURFACES
2431 !
2432  TYPE(bief_obj), POINTER :: surfa2
2434 ! TRIANGLE SURFACES, IN 3D
2435 !
2436  TYPE(bief_obj), POINTER :: surfa3
2438 ! LATERAL BOUNDARY NORMAL VECTORS DEFINED AT THE NODES
2439 !
2440  TYPE(bief_obj), POINTER :: xnebor2
2442 ! LATERAL BOUNDARY NORMAL VECTORS DEFINED AT THE NODES
2443 !
2444  TYPE(bief_obj), POINTER :: ynebor2
2446 ! 2D NORMAL VECTORS DEFINED PER BOUNDARY SEGMENT
2447 !
2448  TYPE(bief_obj), POINTER :: xsgbor2
2450 ! 2D NORMAL VECTORS DEFINED PER BOUNDARY SEGMENT
2451 !
2452  TYPE(bief_obj), POINTER :: ysgbor2
2454 ! 3D NORMAL VECTORS DEFINED PER BOUNDARY ELEMENT
2455 !
2456  TYPE(bief_obj), POINTER :: xsgbor3
2458 ! 3D NORMAL VECTORS DEFINED PER BOUNDARY ELEMENT
2459 !
2460  TYPE(bief_obj), POINTER :: ysgbor3
2462 ! 3D NORMAL VECTORS DEFINED PER BOUNDARY ELEMENT
2463 !
2464  TYPE(bief_obj), POINTER :: zsgbor3
2466 ! CONNECTIVITY TABLES IN 2D : (ELEMENT NUMBER AND LOCAL NODE NUMBER) --> GLOBAL NODE NUMBER
2467 !
2468  TYPE(bief_obj), POINTER :: ikle2
2470 ! CONNECTIVITY TABLES IN 3D : (ELEMENT NUMBER AND LOCAL NODE NUMBER) --> GLOBAL NODE NUMBER
2471 !
2472  TYPE(bief_obj), POINTER :: ikle3
2474 ! CONNECTIVITY TABLES IN 2D : (NODE BOUNDARY NUMBER) --> GLOBAL NODE NUMBER
2475 !
2476  TYPE(bief_obj), POINTER :: nbor2
2478 ! CONNECTIVITY TABLES IN 3D : (NODE BOUNDARY NUMBER) --> GLOBAL NODE NUMBER
2479 !
2480  TYPE(bief_obj), POINTER :: nbor3
2482 ! COORDINATES OF POINTS IN THE 3D MESH
2483 !
2484  DOUBLE PRECISION, DIMENSION(:), POINTER :: x
2486 ! COORDINATES OF POINTS IN THE 3D MESH
2487 !
2488  DOUBLE PRECISION, DIMENSION(:), POINTER :: y
2490 ! COORDINATES OF POINTS IN THE 3D MESH
2491 !
2492  DOUBLE PRECISION, DIMENSION(:), POINTER :: z
2494 ! NUMBER OF ELEMENTS IN THE 2D MESH
2495 !
2496  INTEGER, POINTER:: nelem2
2498 ! NUMBER OF ELEMENTS IN THE 3D MESH
2499 !
2500  INTEGER, POINTER:: nelem3
2502 ! MAXIMUM NUMBER OF ELEMENTS IN THE 2D MESH
2503 !
2504  INTEGER, POINTER:: nelmax2
2506 ! MAXIMUM NUMBER OF ELEMENTS IN THE 3D MESH
2507 !
2508  INTEGER, POINTER:: nelmax3
2510 ! NUMBER OF BOUNDARY POINTS IN THE 2D MESH
2511 !
2512  INTEGER, POINTER:: nptfr2
2514 ! NUMBER OF BOUNDARY POINTS IN THE 3D MESH
2515 !
2516  INTEGER, POINTER:: nptfr3
2518 !
2519 !
2520  INTEGER, POINTER:: neleb, nelebx
2522 ! MAXIMUM NUMBER OF BOUNDARY POINTS IN THE 2D MESH
2523 !
2524  INTEGER, POINTER:: nptfrx2
2526 ! MAXIMUM NUMBER OF BOUNDARY POINTS IN THE 3D MESH
2527 !
2528  INTEGER, POINTER:: nptfrx3
2530 ! DIMENSION OF 2D SPACE
2531 !
2532  INTEGER, POINTER:: dim2
2534 ! DIMENSION OF 3D SPACE
2535 !
2536  INTEGER, POINTER:: dim3
2538 ! TYPE OF 2D ELEMENT
2539 !
2540  INTEGER, POINTER:: typelm2
2542 ! TYPE OF 3D ELEMENT
2543 !
2544  INTEGER, POINTER:: typelm3
2546 ! NUMBER OF POINTS IN THE 2D MESH
2547 !
2548  INTEGER, POINTER:: npoin2
2550 ! NUMBER OF POINTS IN THE 3D MESH
2551 !
2552  INTEGER, POINTER:: npoin3
2554 ! MAXIMUM NUMBER OF POINTS IN THE 2D MESH
2555 !
2556  INTEGER, POINTER:: npmax2
2558 ! MAXIMUM NUMBER OF POINTS IN THE 3D MESH
2559 !
2560  INTEGER, POINTER:: npmax3
2562 ! MAXIMUM NUMBER OF POINTS NEIGHBOURS OF A POINT IN 2D
2563 !
2564  INTEGER, POINTER:: mxptvs2
2566 ! MAXIMUM NUMBER OF POINTS NEIGHBOURS OF A POINT IN 3D
2567 !
2568  INTEGER, POINTER:: mxptvs3
2570 ! MAXIMUM NUMBER OF ELEMENTS NEIGHBOURS OF A POINT IN 2D
2571 !
2572  INTEGER, POINTER:: mxelvs2
2574 ! MAXIMUM NUMBER OF ELEMENTS NEIGHBOURS OF A POINT IN 3D
2575 !
2576  INTEGER, POINTER:: mxelvs3
2578 ! VECTOR LENGTH OF THE MACHINE (LV2=LV3, FOR SIGMA MESH)
2579 !
2580  INTEGER, POINTER:: lv
2582 !-----------------------------------------------------------------------
2583 ! (11) CONSTANTS INITIALISED IN CSTKEP AND CREF_FREDSOE (FOR ZREF)
2584 !-----------------------------------------------------------------------
2585 !
2586 !
2587 ! FOR MONITORING K-EPSILON MODEL (SEE SUBROUTINE CSTKEP)
2588 !
2589  DOUBLE PRECISION pernorm2,perprod,rimin,rimax
2591 ! VON KARMAN CONSTANT
2592 !
2593  DOUBLE PRECISION :: karman
2595 ! K-EPSILON CONSTANT
2596 !
2597  DOUBLE PRECISION :: cmu
2599 ! K-EPSILON CONSTANTS
2600 !
2601  DOUBLE PRECISION :: c1,c2,sigmak,sigmae,virt,sigmanu
2603 ! SCHMIDT NUMBER
2604 !
2605  DOUBLE PRECISION :: schmit
2607 ! MINIMUM K
2608 !
2609  DOUBLE PRECISION :: kmin
2611 ! MAXIMUM K
2612 !
2613  DOUBLE PRECISION :: kmax
2615 ! MINIMUM EPSILON
2616 !
2617  DOUBLE PRECISION :: emin
2619 ! MAXIMUM EPSILON
2620 !
2621  DOUBLE PRECISION :: emax
2623 ! MINIMUM NU
2624 !
2625  DOUBLE PRECISION :: numin
2627 ! MAXIMUM NU
2628 !
2629  DOUBLE PRECISION :: numax
2631 ! PRANDTL NUMBER
2632 !
2633  DOUBLE PRECISION, TARGET :: prandtl
2635 ! CV 7.0
2636 ! FOND FICTIF : DZ1/FICTIF
2637 !
2638  DOUBLE PRECISION :: fict
2640 ! K-OMEGA MODEL CONSTANTS
2641 !
2642  DOUBLE PRECISION :: alpha,beta,betas,omstar
2644 !
2645 !
2646  TYPE(bief_obj), TARGET :: zref
2648 !-----------------------------------------------------------------------
2649 !
2650 ! 12) TELEMAC-3D FILES
2651 !
2652 !-----------------------------------------------------------------------
2653 !
2654 !
2655 ! MAXIMUM NUMBER OF FILES
2656 !
2657  INTEGER, PARAMETER :: maxlu_t3d = 53
2659 ! DATA STRUCTURE WITH DATA ON FILES
2660 !
2661  TYPE(bief_file), TARGET :: t3d_files(maxlu_t3d)
2663 !
2664 !-----------------------------------------------------------------------
2665 !
2666 ! 12) SAVED VALUES
2667 !
2668 !-----------------------------------------------------------------------
2669 !
2670 ! VARIABLES TO BE READ WHEN SUITE IS CALLED:
2671 ! 0 : DISCARD 1 : READ (SAME NUMBERING AS IN NOMVAR)
2672 !
2673 ! U V H ZF
2674  INTEGER :: alire2d(maxvar) = (/ 1,1,0,1,0,1,(0,lll=7,maxvar) /)
2675 ! U V H ZF
2676 ! DATA ALIRE2D/1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2677 ! & 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2678 ! & 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2679 ! & 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2680 ! & 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2681 ! & 0,0,0,0,0,0,0,0,0,0/
2682 !
2683 ! IN 3D FILES
2684 ! U V
2685 ! U V W C C
2686 ! C C C D O O
2687 ! O O O D H N N
2688 ! D N N N M H V V U V W
2689 ! Z U V W K E P V V V 1 N C C D D D
2690  INTEGER :: alire3d(maxvar) = (/
2691  & 1,1,1,1,0,0,0,1,1,0,0,1,0,1,1,1,0,1,1,1,1,1,1,1,0,0,
2692  & (0,lll=27,maxvar) /)
2693 ! DATA ALIRE3D/1,1,1,1,0,0,0,1,1,0,0,1,0,1,1,1,0,1,1,1,1,1,1,1,0,0,
2694 ! & 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2695 ! & 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2696 ! & 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2697 ! & 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2698 ! & 0,0,0,0,0,0,0,0,0,0/
2699  LOGICAL s3d_charr,s3d_susp
2700  ! TODO: DO initialisation of value in point_telemac3d.f
2701  ! MURD3D_POS
2702  LOGICAL :: deja_murd3d_pos = .false.
2703 ! INDIC_MURD3D_POS WILL BE A LIST OF SEGMENTS WITH NON ZERO FLUXES
2704  INTEGER, ALLOCATABLE :: indic_murd3d_pos (:)
2706 ! TRISOU WAVE DRIVEN CURRENT
2707  LOGICAL :: dejalu_trisou = .false.
2709  SAVE
2710 !
2711  END MODULE declarations_telemac3d
2712 
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
character(len=32), dimension(:), allocatable nametrac
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
double precision, dimension(:), pointer ubus
double precision, target rho0
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
integer, dimension(:), allocatable profvel
type(bief_obj), pointer t3_09
integer, dimension(:), allocatable frtype
type(bief_obj), pointer it2
logical, dimension(:), allocatable okvit3
type(bief_obj), target hprop
type(bief_obj), target s0ak
type(bief_obj), target ta_sce
type(bief_obj), target flbor
type(bief_obj), pointer ysgbor2
double precision, dimension(s3d_nlaymax) s3d_es_layer
type(bief_obj), target strain
type(bief_obj), target bebors
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
double precision, dimension(s3d_nlaymax) s3d_toce_layer
type(bief_obj), target fn3d
double precision, dimension(:), allocatable, target cotimp
type(bief_obj), target vconvc
type(bief_obj), target ipbot
type(bief_obj), target uconvc
type(bief_obj), target numtide
type(bief_obj), target dirmoy
type(bief_obj), target windspd
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
double precision, dimension(:), allocatable, target ysce
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
integer, dimension(maxvar) alire3d
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
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
type(bief_obj), target nun
double precision, dimension(:), allocatable, target trac0
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
double precision, dimension(:), allocatable, target t0ac
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
logical, dimension(:), allocatable okq3
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
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
type(bief_obj), target matr2h
type(bief_obj), target s1u
type(bief_obj), target circ
type(bief_obj), target s0v
logical, dimension(:), allocatable calcrain
type(bief_obj), target eborsave
type(bief_obj), target uborsave
type(bief_obj), target liebof
type(bief_obj), target wst1
type(bief_obj), target livbol_user
logical, dimension(maxvar) sorg2d
type(bief_obj), target cfwc
integer, dimension(:), allocatable verprotra
type(bief_obj), target volut
double precision, dimension(s3d_nlaymax) s3d_conc_layer
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
double precision, dimension(:), allocatable dnutav
type(bief_obj), target akc
type(bief_obj), target fluint
type(bief_obj), target unsv2d
type(bief_obj), target fricbus
type(bief_obj), target wbors
double precision, dimension(:), allocatable, target betac
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
logical, dimension(0:2) dif
type(bief_obj), target btabos
integer, dimension(:), allocatable verprovel
integer, dimension(100, 0:15) list_adv
double precision, dimension(:), allocatable, target wsce
type(bief_obj), target maskel
type(bief_obj), target liubof
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
double precision, dimension(:), allocatable train
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
logical, dimension(maxva3) sorg3d
type(bief_obj), target temp4aed2
type(bief_obj), pointer zsgbor3
type(bief_obj), target lipbos
type(bief_obj), target massen
type(bief_obj), pointer prive3
type(bief_obj), target s0w
type(bief_obj), pointer t2_16
type(bief_obj), pointer surfa2
double precision, dimension(:), pointer vitimp
type(bief_obj), target s3d_hdep
character(len=32), dimension(10) varcla
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
double precision, dimension(:), pointer vbus
type(bief_obj), target tm1
type(bief_obj), target masktr
type(bief_obj), target aeborf
character(len=32), dimension(maxva3) text3
type(bief_obj), target aubors
type(bief_obj), target te3
type(bief_obj), pointer t2_23
integer, dimension(:), allocatable sta_dis_curves
double precision, target prandtl
type(bief_obj), target maskbr
type(bief_obj), target uborf
type(bief_obj), pointer t2_19
integer, dimension(:), allocatable, target bnd_tide
type(bief_obj), target ubors
type(bief_obj), pointer t2_22
type(bief_obj), target s3d_cref
type(bief_obj), target nuborsave
integer, dimension(:), allocatable nom_adv
type(bief_obj), target mtra1
logical, dimension(maxva3) sorest
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
integer, dimension(:), pointer kentbus
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
integer, dimension(:), allocatable dirflu
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
integer, dimension(:), allocatable, target isce
type(bief_obj), target eltflo
type(bief_obj), target s3d_pvsnco
type(bief_obj), pointer t3_18
double precision, target duree
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
integer, dimension(3) martim
type(bief_obj), pointer t2_04
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
logical, dimension(:,:), allocatable oktr3
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
double precision, dimension(:), allocatable, target zsce
double precision, dimension(:), allocatable, target flux_boundaries
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
integer, dimension(:), allocatable indic_murd3d_pos
logical, dimension(maxva3) soris3
type(bief_obj), target liebol
type(bief_obj), target kborl
double precision, dimension(:), allocatable, target debimp
type(bief_obj), target bl_fc
type(bief_obj), target thick4aed2
type(bief_obj), target numliq
type(bief_obj), target atabof
type(bief_obj), target rotat
integer, dimension(:), allocatable pts_curves
type(bief_obj), target fluext
type(bief_obj), target w
type(bief_obj), target bnubors
type(bief_obj), target murd_tf
type(bief_obj), target c56
double precision, dimension(:,:,:), allocatable qz
type(bief_obj), target s0u
type(bief_obj), target s3d_zf_s
integer, dimension(0:15) n_adv
type(bief_obj), target s3d_fludptc
double precision, parameter eps_aed2
type(bief_obj), target zfe
type(bief_obj), target bedflu
double precision, dimension(:), allocatable, target qsce
type(bief_obj), target gradzn
integer, dimension(:), allocatable, target ksce
type(bief_obj), target dhhn
type(bief_obj), target cebus
type(bief_obj), target aebors
type(bief_obj), target u
character(len=20), target equa
type(bief_obj), target wd
type(bief_obj), target dssudt
type(bief_obj), target rhopot
type(bief_obj), target uc
integer, dimension(4) optsup
type(bief_obj), pointer prive2d3
type(bief_obj), target sources
integer, dimension(:), allocatable s_adv
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
integer, parameter s3d_nlaymax
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
logical, dimension(maxva3) sorim3
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 advar2d
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
logical, dimension(:,:), allocatable oktrsce
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
character(len=32), dimension(maxvar) texte
type(bief_obj), target benth4aed2
type(bief_obj), target grazco
type(bief_obj), target cv
double precision, dimension(:), allocatable dnutah
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
integer, dimension(:), pointer entbus
type(bief_obj), target zref
type(bief_obj), pointer xsgbor3
double precision, dimension(:), pointer x
type(bief_obj), target rotan
double precision, dimension(:,:), allocatable, target s3d_toce
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
character(len=32), dimension(maxvar) names_advar2d
type(bief_obj), target bl_fn
double precision, target dt
type(bief_obj), target likbol
logical, dimension(maxvar) sorimp
type(bief_obj), target lihbor_user
integer, dimension(:), pointer ksorbus
type(bief_obj), target dp
double precision, dimension(:), pointer z
type(bief_obj), target svide
double precision, target at
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
double precision, dimension(30) s3d_trest
type(bief_obj), target wborf
type(bief_obj), target wsconv
type(bief_obj), target volun
integer, dimension(:), allocatable optadv_tr
logical, dimension(:), allocatable oksl3
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
logical, dimension(:), allocatable calcflu
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
integer, dimension(3) mardat
type(bief_obj), pointer t2_13
type(bief_obj), target s3d_epaico
type(bief_obj), target bvborf
type(bief_obj), target hm0
double precision, dimension(:,:), allocatable, target s3d_conc
double precision, dimension(:), allocatable bedqarea
logical, dimension(:), allocatable okdebsce
type(bief_obj), target ws
type(bief_obj), target bl_borl
type(bief_obj), target bwborf
double precision, dimension(:), allocatable bedflo
type(bief_obj), target etaflo
double precision, dimension(:), allocatable qsce2
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
double precision, dimension(:), allocatable, target tracer
double precision, dimension(:,:), allocatable, target tasce
type(bief_obj), target dbus
type(bief_obj), target advar
character(len=32), dimension(maxva3) textp3
type(bief_obj), target boundary_colour
type(bief_obj), target beborl
character(len=32), dimension(maxvar) textpr
double precision, dimension(:), allocatable, target usce
type(bief_obj), target shzflo
integer, dimension(:), pointer sorbus
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
double precision, target msl
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
double precision, target ctidev
character(len=32), dimension(4) names_prive2d
type(bief_obj), target prive2d
type(bief_obj), target trav2
type(bief_obj), target fwx
type(bief_obj), target auborf
double precision, target ctide
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
type(bief_obj), target w_sce
double precision, dimension(:), allocatable, target xsce
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
integer, dimension(maxvar) alire2d
type(bief_obj), target bnuborl
type(bief_obj), pointer t2_02
type(bief_obj), pointer w1
type(bief_mesh), target mesh3d
type(bief_obj), target wstokes
type(bief_obj), target dh
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
type(bief_obj), target fu
type(bief_obj), target dus2dx
type(bief_obj), target volu3d
type(bief_obj), target flucum