The TELEMAC-MASCARET system  trunk
declarations_telemac2d.f
Go to the documentation of this file.
1 ! *****************************
3 ! *****************************
4 !
5 !
6 !***********************************************************************
7 ! TELEMAC2D V8P2
8 !***********************************************************************
9 !
10 !brief DECLARATION OF PRINICIPAL TELEMAC2D VARIABLES
11 !
12 !history J-M HERVOUET (LNH)
13 !+
14 !+
15 !+ LINKED TO BIEF 5.0
16 !
17 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
18 !+ 13/07/2010
19 !+ V6P0
20 !+ Translation of French comments within the FORTRAN sources into
21 !+ English comments
22 !
23 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
24 !+ 21/08/2010
25 !+ V6P0
26 !+ Creation of DOXYGEN tags for automated documentation and
27 !+ cross-referencing of the FORTRAN sources
28 !
29 !history C.COULET (ARTELIA)
30 !+ 30/03/2012
31 !+ V6P2
32 !+ Modification for adding "bridge" file and separation of weirs and
33 !+ culvert file
34 !
35 !history C.COULET / A.MASSON (ARTELIA) / P. CHASSE (CETMEF)
36 !+ 19/07/2012
37 !+ V6P2
38 !+ Modification for adding breaches management during simulation
39 !
40 !history C. COULET (ARTELIA)
41 !+ 23/04/2013
42 !+ V6P3
43 !+ Correction of a bug in BUSE.F
44 !
45 !history C.COULET / A.REBAI / E.DAVID (ARTELIA)
46 !+ 07/06/2013
47 !+ V6P3
48 !+ Modification for new treatment of weirs
49 !
50 !history J-M HERVOUET (EDF LAB, LNHE)
51 !+ 17/01/2014
52 !+ V7P0
53 !+ Adding a zones data file.
54 !
55 !history Y.B. TADESSE (TUHH, INSTITUTE OF RIVER AND COASTAL ENGINEERING)
56 !+ 14/02/2014
57 !+ V6P3R2
58 !+ Modification for adding later breach growth option
59 !
60 !history J-M HERVOUET (EDF LAB, LNHE)
61 !+ 30/04/2014
62 !+ V7P0
63 !+ Adding 2 blocks FTILD2 and FNCAR2 for weak characteristics.
64 !
65 !history C. VILLARET (HRW)
66 !+ 22/09/2014
67 !+ V7P0
68 !+ Adding a logical keyword FRICOU for wave-current interactions
69 !
70 !history R. ATA (EDF-LNHE)
71 !+ 10/11/2014
72 !+ V7P0
73 !+ adding of waq variables
74 !
75 !history J-M HERVOUET (EDF LAB, LNHE)
76 !+ 03/09/2015
77 !+ V7P1
78 !+ A number of arrays now allocatable, depending on new keywords
79 !
80 !history J-M HERVOUET (EDF LAB, LNHE)
81 !+ 23/06/2016
82 !+ V7P2
83 !+ NAMETRAC now allocatable.
84 !
85 !history C.COULET (ARTELIA)
86 !+ 01/09/2016
87 !+ V7P2
88 !+ Modification for // treatment of weirs (type=2)
89 !+ Creation of a dedicated structure for weirs
90 !
91 !history R. ATA (EDF LAB, LNHE)
92 !+ 23/09/2016
93 !+ V7P2
94 !+ add new turbulence model of spalart-allmaras
95 !
96 !history L.LEBALLEUR (ACTIMAR)
97 !+ 30/03/2017
98 !+ V7P3
99 !+ Modification of MISC_NCMX_BTM and MISC_CONSTID_BTM
100 !+ Adding 7 extra harmonic constituents, for FES2014 database.
101 !
102 !history B. GLANDER (BAW)
103 !+ 28/11/2017
104 !+ V7P2
105 !+ add coupling with Nestor
106 !
107 !history C.COULET (ARTELIA)
108 !+ 09/10/2020
109 !+ V8P2
110 !+ Addition of output file to print discharge of weirs (type=2)
111 !
112 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
113 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
114 !
115  USE bief_def
116  USE friction_def
117 !
118 ! NOTE: THIS MODULE IS ORGANISED IN 10 PARTS
119 !
120 ! 01) VECTORS (WILL BE DECLARED AS BIEF_OBJ STRUCTURES)
121 ! 02) MATRICES (WILL BE DECLARED AS BIEF_OBJ STRUCTURES)
122 ! 03) BLOCKS (WILL BE DECLARED AS BIEF_OBJ STRUCTURES)
123 ! 04) INTEGERS
124 ! 05) LOGICAL VALUES
125 ! 06) REALS
126 ! 07) STRINGS
127 ! 08) SLVCFG STRUCTURES
128 ! 09) MESH STRUCTURE
129 ! 10) ALIASES
130 !
131 !
132 ! ALL BIEF_OBJ AND BIEF_MESH STRUCTURES ARE ALLOCATED
133 ! IN SUBROUTINE POINT_TELEMAC2D
134 !
135 !-----------------------------------------------------------------------
136 !
137 ! 1) VECTORS
138 !
139 !-----------------------------------------------------------------------
140 !
141 ! COMPONENTS OF VELOCITY
142 !
143  TYPE(bief_obj), TARGET :: u,v
144 !
145 ! DEPTH AT NEW TIME-STEP
146 !
147  TYPE(bief_obj), TARGET :: h
148 !
149 ! TRACERS AT NEW TIME-STEP
150 !
151  TYPE(bief_obj), TARGET :: t
152 !
153 ! K AT NEW TIME-STEP
154 !
155  TYPE(bief_obj), TARGET :: ak
156 !
157 ! EPSILON AT NEW TIME-STEP
158 !
159  TYPE(bief_obj), TARGET :: ep
160 !
161 ! VISCSA (OF SPALART-ALLMARAS) AT NEW TIME-STEP
162 !
163  TYPE(bief_obj), TARGET :: viscsa
164 !
165 ! NUSA (OF SPALART-ALLMARAS) AFTER ADVECTION BY CHARACTERISTICS
166 !
167  TYPE(bief_obj), TARGET :: nutild
168 !
169 ! NUSA (OF SPALART-ALLMARAS) AT OLD TIME-STEP
170 !
171  TYPE(bief_obj), TARGET :: nun
172 !
173 ! U AND V AFTER ADVECTION BY CHARACTERISTICS
174 !
175  TYPE(bief_obj), TARGET :: utild,vtild
176 !
177 ! H AFTER ADVECTION BY CHARACTERISTICS
178 !
179  TYPE(bief_obj), TARGET :: htild
180 !
181 ! T AFTER ADVECTION BY CHARACTERISTICS
182 !
183  TYPE(bief_obj), TARGET :: ttild
184 !
185 ! AK AFTER ADVECTION BY CHARACTERISTICS
186 !
187  TYPE(bief_obj), TARGET :: aktild
188 !
189 ! EP AFTER ADVECTION BY CHARACTERISTICS
190 !
191  TYPE(bief_obj), TARGET :: eptild
192 !
193 ! U AND V AT OLD TIME-STEP
194 !
195  TYPE(bief_obj), TARGET :: un,vn
196 !
197 ! H AT OLD TIME-STEP
198 !
199  TYPE(bief_obj), TARGET :: hn
200 !
201 ! T AT OLD TIME-STEP
202 !
203  TYPE(bief_obj), TARGET :: tn
204 !
205 ! AK AT OLD TIME-STEP
206 !
207  TYPE(bief_obj), TARGET :: akn
208 !
209 ! EP AT OLD TIME-STEP
210 !
211  TYPE(bief_obj), TARGET :: epn
212 !
213 ! INCREMENT OF H IN ONE TIME STEP
214 !
215  TYPE(bief_obj), TARGET :: dh
216 !
217 ! INCREMENTS OF U AND V IN ONE TIME STEP
218 !
219  TYPE(bief_obj), TARGET :: du,dv
220 !
221 ! INCREMENT OF HN IN ONE TIME STEP
222 !
223  TYPE(bief_obj), TARGET :: dhn
224 !
225 ! COMPONENTS OF ADVECTING FIELD
226 !
227  TYPE(bief_obj), TARGET :: uconv,vconv
228 !
229 ! DEPTH IN THE PROPAGATION TERM I.E. IN H DIV(U)
230 !
231  TYPE(bief_obj), TARGET :: hprop
232 !
233 ! PRESCRIBED VALUES ON BOUNDARIES FOR U AND V
234 !
235  TYPE(bief_obj), TARGET :: ubor,vbor
236 !
237 ! VALUE ON BOUNDARIES FOR NU IN SA MODEL
238 !
239  TYPE(bief_obj), TARGET :: nubor
240 !
241 ! VALUES ON BOUNDARIES: WALL FRICTION COEFFICIENTS
242 !
243  TYPE(bief_obj), TARGET :: aubor,uetuta
244 !
245 ! PRESCRIBED VALUES ON BOUNDARIES FOR DEPTH
246 !
247  TYPE(bief_obj), TARGET :: hbor
248 !
249 ! PRESCRIBED VALUES ON BOUNDARIES FOR TRACERS
250 !
251  TYPE(bief_obj), TARGET :: tbor
252 !
253 ! PRESCRIBED VALUES ON BOUNDARIES: K AND EPSILON
254 !
255  TYPE(bief_obj), TARGET :: kbor,ebor
256 !
257 ! FLUX ON THE BOUNDARIES: WATER AND TRACERS
258 !
259  TYPE(bief_obj), TARGET :: flbor,flbortra
260 !
261 ! ON BOUNDARIES: COEFFICIENTS FOR HEAT FLUXES
262 !
263  TYPE(bief_obj), TARGET :: atbor,btbor
264 !
265 ! ADIMENSIONAL FRICTION COEFFICIENTS (BOTTOM AND BOUNDARIES)
266 !
267  TYPE(bief_obj), TARGET :: cf,cfbor
268 !
269 ! VOID STRUCTURE
270 !
271  TYPE(bief_obj), TARGET :: s
272 !
273 ! BOTTOM TOPOGRAPHY: PER POINT, PER ELEMENT
274 !
275  TYPE(bief_obj), TARGET :: zf,zfe
276 !
277 ! VELOCITY DIFFUSIVITY: VELOCITY, TRACERS, SAVED
278 !
279  TYPE(bief_obj), TARGET :: visc,visct,visc_s
280 !
281 ! SOURCE TERMS IN THE MOMENTUM EQUATION
282 !
283  TYPE(bief_obj), TARGET :: fu,fv
284 !
285 ! WAVE STRESSES (FROM ARTEMIS OR TOMAWAC)
286 !
287  TYPE(bief_obj), TARGET :: fxwave,fywave
288 !
289 ! INITIAL DEPTH
290 !
291  TYPE(bief_obj), TARGET :: h0
292 !
293 ! MASK FOR TRACERS
294 !
295  TYPE(bief_obj), TARGET :: masktr
296 !
297 ! ATMOSPHERIC PRESSURE
298 !
299 ! TYPE(BIEF_OBJ), TARGET :: PATMOS
300 !
301 ! COMPONENTS OF WIND VELOCITY
302 !
303 ! TYPE(BIEF_OBJ), TARGET :: WINDX,WINDY
304 !
305 ! DENSITY
306 !
307  TYPE(bief_obj), TARGET :: ro
308 !
309 ! INTEGRAL OF BASES, AND THE SAME AFTER ASSEMBLING IN PARALLEL
310 !
311  TYPE(bief_obj), TARGET :: volu2d,v2dpar
312 !
313 ! INVERSE OF INTEGRAL OF BASES
314 !
315  TYPE(bief_obj), TARGET :: unsv2d
316 !
317 ! RIGHT HAND SIDES OF LINEAR SYSTEMS
318 !
319  TYPE(bief_obj), TARGET :: cv1,cv2,cv3,cv1s
320 !
321 ! RIGHT HAND SIDE OF CONTINUITY EQUATION
322 !
323  TYPE(bief_obj), TARGET :: smh
324 !
325 ! P0 WORKING ARRAYS
326 !
327  TYPE(bief_obj), TARGET :: te1,te2,te3
328 !
329 ! WORKING ARRAYS FOR OPTION 3 OF TREATMENT OF TIDAL FLATS
330 !
331  TYPE(bief_obj), TARGET :: te4,te5
332 !
333 ! WORKING ARRAY (SIZE MULTIPLE OF NELMAX)
334 !
335  TYPE(bief_obj), TARGET :: w1
336 !
337 ! WORKING ARRAY FOR PRESCRIBED DISCHARGE (FINITE VOLUMES AND FINITE ELEMENTS)
338 !
339  TYPE(bief_obj), TARGET :: w1deb
340 !
341 ! FOR FLUXES ACCROSS SECTIONS
342 !
343  TYPE(bief_obj), TARGET :: msksec
344 !
345  TYPE(bief_obj), TARGET :: zflats
346 !
347 ! FRICTION COEFFICIENT, IN TERMS OF STRICKLER, CHEZY, ETC
348 !
349  TYPE(bief_obj), TARGET :: chestr,chestr0
350 !
351 ! TYPES OF BOUNDARY CONDITIONS ON U, V, H AND TRACERS
352 !
353  TYPE(bief_obj), TARGET :: liubor,livbor,lihbor,litbor
354 !
355 ! TYPES OF BOUNDARY CONDITIONS ON TRACERS
356 !
357  TYPE(bief_obj), TARGET :: limtra
358 !
359 ! TYPES OF BOUNDARY CONDITIONS ON K AND EPSILON
360 !
361  TYPE(bief_obj), TARGET :: limkep
362 !
363 ! TYPES OF BOUNDARY CONDITIONS ON SA MODEL
364 !
365  TYPE(bief_obj), TARGET :: limsa
366 !
367 ! TYPES OF BOUNDARY CONDITIONS FOR PROPAGATION
368 !
369  TYPE(bief_obj), TARGET :: limpro
370 !
371 ! BOUNDARY CONDITIONS ON H, U, V (COPIES OF LIHBOR,LIUBOR,LIVBOR)
372 !
373  TYPE(bief_obj), TARGET :: clh,clu,clv
374 !
375 ! ORIGINAL BOUNDARY NODE NUMBER (OR COLOUR GIVEN BY USER)
376 !
377  TYPE(bief_obj), TARGET :: boundary_colour
378 !
379 ! POSITIONS OF FLOATING BODIES
380 !
381  TYPE(bief_obj), TARGET :: xflot,yflot
382 !
383 ! FOR LAGRANGIAN DRIFTS
384 !
385  TYPE(bief_obj), TARGET :: shpflo,xlag,ylag,shplag
386 !
387 ! TIME STEP OF INITIAL RELEASE FOR FLOATING BODIES, IDEM FOR FINAL
388 !
389  TYPE(bief_obj), TARGET :: debflo,finflo
390 !
391 ! ELEMENT WHERE THE FLOATING BODIES (DROGUES) ARE
392 !
393  TYPE(bief_obj), TARGET :: eltflo
394 !
395 ! FOR TAGGING THE DROGUES
396 !
397  TYPE(bief_obj), TARGET :: tagflo
398 !
399 ! TO CLASSIFY THE DROGUES
400 !
401  TYPE(bief_obj), TARGET :: clsflo
402 !
403 ! TIME STEP AT THE BEGINNING (END) OF LAGRANGIAN DRIFTS
404 !
405  TYPE(bief_obj), TARGET :: deblag,finlag
406 !
407 ! ELEMENT WHERE IS THE LAGRANGIAN DRIFT
408 !
409  TYPE(bief_obj), TARGET :: eltlag
410 !
411 ! INTEGERS WORKING ARRAYS
412 !
413  TYPE(bief_obj), TARGET :: it1,it2,it3,it4
414 !
415 ! COMPONENTS OF DISCHARGE AT TIME N
416 !
417  TYPE(bief_obj), TARGET :: qu,qv
418 !
419 ! STORED WATER DEPTH, AND CORRECTED STORED WATER DEPTH
420 !
421  TYPE(bief_obj), TARGET :: hstok,hcstok
422 !
423 ! SOURCE TERMS OF TRACERS
424 !
425  TYPE(bief_obj), TARGET :: smtr
426 !
427 ! REFERENCE OF BOUNDARY NODES
428 !
429  TYPE(bief_obj), TARGET :: logfr
430 !
431 ! FINITE VOLUME FLUXES
432 !
433  TYPE(bief_obj), TARGET :: flux
434 !
435 ! TRACER FLUX
436 !
437  TYPE(bief_obj), TARGET :: fluxt
438 !
439 ! TRACER FLUX OF LAST ITERATION (FOR SECOND ORDER)
440 !
441  TYPE(bief_obj), TARGET :: fluxt_old
442 !
443 ! FLUX OF MASS FOR TRACER
444 !
445  TYPE(bief_obj), TARGET :: fluhtemp
446 !
447 ! FLUX OF MASS AT BOUNDARY FOR TRACER
448 !
449  TYPE(bief_obj), TARGET :: fluhbtemp
450 !
451 ! RECONSTRUCTED DEPTH, AND CORRECTED VERSION
452 !
453  TYPE(bief_obj), TARGET :: ht,hc
454 !
455 ! VARIATIONS OF Z OF ORDER 2
456 !
457  TYPE(bief_obj), TARGET :: dsz
458 !
459 ! ??????
460 !
461  TYPE(bief_obj), TARGET :: secmou , ifamas
462 !
463 ! MASK FOR POINTS (1: normal; 0:masked)
464 !
465  TYPE(bief_obj), TARGET :: maskpt
466 !
467 ! MASK FOR ELEMENTS (1: normal; 0:masked)
468 !
469  TYPE(bief_obj), TARGET :: maskel
470 !
471 ! LIQUID BOUNDARY NUMBERS
472 !
473  TYPE(bief_obj), TARGET :: numliq
474 !
475 ! MAXIMUM ELEVATIONS
476 !
477  TYPE(bief_obj), TARGET :: maxz
478 !
479 ! CORRESPONDING TIMES FOR MAXIMUM ELEVATIONS
480 !
481  TYPE(bief_obj), TARGET :: tmaxz
482 !
483 ! MAXIMUM VELOCITIES
484 !
485  TYPE(bief_obj), TARGET :: maxv
486 !
487 ! CORRESPONDING TIMES FOR MAXIMUM VELOCITIES
488 !
489  TYPE(bief_obj), TARGET :: tmaxv
490 !
491 ! FOR STORING ZONE NUMBERS
492 !
493  TYPE(bief_obj), TARGET :: zone
494 !
495 ! FOR STORING RESULTS OF FOURIER ANALYSIS (AMPLITUDE AND PHASE)
496 !
497  TYPE(bief_obj), TARGET :: ampl,phas
498 !
499 ! FRICTION COEFFICIENT FOR BOUNDARY CONDITIONS
500 !
501  TYPE(bief_obj),TARGET :: chbord
502 !
503 ! COMPATIBLE COMPONENTS OF VELOCITY FOR DELWAQ
504 !
505  TYPE(bief_obj),TARGET :: udel,vdel
506 !
507 ! VELOCITY WILL BE UCONV + DM1*GRAD(ZCONV)
508 !
509  TYPE(bief_obj),TARGET :: dm1,zconv
510 !
511 ! COMPATIBLE FLUXES FOR DELWAQ
512 !
513  TYPE(bief_obj),TARGET :: flodel
514 !
515 ! COEFFICIENTS OF LIMITATION OF FLUXES (SEGMENT, EBE)
516 !
517  TYPE(bief_obj),TARGET :: flulim,flulimebe
518 !
519 ! EXPLICIT SOURCE TERMS FOR TRACERS
520 !
521  TYPE(bief_obj),TARGET :: texp
522 !
523 ! TERMS DUE TO SOURCES FOR TRACERS
524 !
525  TYPE(bief_obj),TARGET :: tscexp
526 !
527 ! IMPLICIT SOURCE TERMS FOR TRACERS
528 !
529  TYPE(bief_obj),TARGET :: timp
530 !
531 ! FLUXES FOR FINITE VOLUMES
532 !
533  TYPE(bief_obj),TARGET :: flux_old
534 !
535 ! FOR TIDAL BOUNDARY CONDITIONS
536 !
537  TYPE(bief_obj),TARGET :: hbtide,ubtide,vbtide,numtide
538 !
539 ! FOR RAIN-EVAPORATION
540 !
541  TYPE(bief_obj),TARGET :: pluie
542 !
543 ! FOR RAIN-EVAPORATION OPTION WITH RUNOFF-RAINFALL PREDICTION
544 !
545  TYPE(bief_obj),TARGET :: accrof,cn,zfslop,accr,potmaxret,iabst
546 !
547 ! FOR CULVERTS/SIPHONS MANAGEMENT
548 !
549  TYPE(bief_obj),TARGET :: entbus, sorbus, lrgbus, haubus, altbus
550  TYPE(bief_obj),TARGET :: csbus , cebus , delbus, angbus, lbus
551  TYPE(bief_obj),TARGET :: ubus, vbus, dbus, tbus, clpbus
552  TYPE(bief_obj),TARGET :: secbus, longbus, aabus
553  TYPE(bief_obj),TARGET :: cv, c56, cv5, c5, ctrash, fricbus, circ
554 !
555 ! NEIGHBORS OF SEGMENT (FOR WAF SCHEME)
556 !
557  TYPE(bief_obj),TARGET :: neiseg
558 !
559 ! FOR BREACHES MANAGEMENT
560 !
561  TYPE(bief_obj),TARGET :: optnbr, tdecbr, durbr, zfinbr, zdecbr
562  TYPE(bief_obj),TARGET :: numpsd, nbndbr, indbr, zcrbr, polwdt
563  TYPE(bief_obj),TARGET :: optero, dkaxcr, dkaycr, pondsb, nponbr
564  TYPE(bief_obj),TARGET :: curbrw, finbrw, inibrw
565 !
566 ! FOR WEIR MANAGEMENT (TYPE WEIR = 1)
567 !
568  TYPE(bief_obj),TARGET :: npsing
569  TYPE(bief_obj),TARGET :: ndga1, ndgb1
570  TYPE(bief_obj),TARGET :: zdig, phidig
571 !
572 ! FOR WEIR MANAGEMENT (TYPE WEIR = 2) SEE TYPE WEIR HEREUNDER
573 !
574 ! VARIABLES FOR SECONDARY CURRENTS (SECCURRENTS)
575 !
576  TYPE(bief_obj),TARGET :: sec_tau, sec_r
577 !
578 ! WALL DISTANCES
579 !
580  TYPE(bief_obj),TARGET :: wdist
581 !
582 ! REFERENCE LEVEL FOR NESTOR
583 !
584  TYPE(bief_obj),TARGET :: zrl
585 !
586 ! CORRECTION FOR SECOND ORDER IN FV
587 !
590  TYPE(bief_obj),TARGET :: corr_vl,corr_vr
591 !
592 !-----------------------------------------------------------------------
593 !
594 ! 2) MATRICES
595 !
596 !-----------------------------------------------------------------------
597 !
598 ! MATRICES
599 !
600 ! SYSTEM SOLVED IN PROPAG WILL BE :
601 !
602 ! ( AM1 BM1 BM2 ) (DH) ( CV1 )
603 ! ( ) ( ) ( )
604 ! ( CM1 AM2 A23 ) (U ) = ( CV2 )
605 ! ( ) ( ) ( )
606 ! ( CM2 A32 AM3 ) (V ) ( CV3 )
607 !
608 !
609 ! MATRICES OF THE FINAL LINEAR SYSTEM OF THE PRIMITIVE EQUATIONS OPTION
610 !
611  TYPE(bief_obj), TARGET :: am1,am2,am3,bm1,bm2,cm1,cm2,a23,a32
612 !
613 ! BOUNDARY MATRIX
614 !
615  TYPE(bief_obj), TARGET :: mbor
616 !
617 ! BM1 AND BM2 SAVED
618 !
619  TYPE(bief_obj), TARGET :: bm1s,bm2s
620 !
621 !-----------------------------------------------------------------------
622 !
623 ! 3) BLOCKS
624 !
625 !-----------------------------------------------------------------------
626 !
627 ! DIFFUSION MATRIX
628 !
629  TYPE(bief_obj), TARGET :: tm1
630 !
631 ! BLOCK FOR DIRICHLET VALUES HBOR, UBOR AND VBOR
632 !
633  TYPE(bief_obj), TARGET :: dirbor
634 !
635 ! BLOCK OF MASKS
636 !
637  TYPE(bief_obj), TARGET :: mask
638 !
639 ! BLOCKS OF WORKING ARRAYS
640 !
641  TYPE(bief_obj), TARGET :: tb,tb2
642 !
643 ! BLOCK OF PRIVATE VECTORS
644 !
645  TYPE(bief_obj), TARGET :: prive
646 !
647 ! BLOCK OF DIFFERENTIATED VECTORS
648 !
649  TYPE(bief_obj), TARGET :: advar
650 !
651 ! BLOCKS OF VARIABLES AT TIME N+1, AT TIME N
652 !
653  TYPE(bief_obj), TARGET :: f,fn
654 !
655 ! BLOCKS OF VARIABLES AFTER ADVECTION BY CHARACTERISTICS (STRONG AND WEAK)
656 !
657  TYPE(bief_obj), TARGET :: ftild,ftild2
658 !
659 ! BLOCK OF VARIABLES TO BE ADVECTED BY CHARACTERISTICS (STRONG AND WEAK)
660 !
661  TYPE(bief_obj), TARGET :: fncar,fncar2
662 !
663 ! BLOCKS OF MATRICES FOR LINEAR SYSTEMS
664 !
665  TYPE(bief_obj), TARGET :: mat
666 !
667 ! BLOCKS OF DIFFERENTIATED MATRICES FOR LINEAR SYSTEMS
668 !
669  TYPE(bief_obj), TARGET :: admat
670 !
671 ! BLOCKS OF RIGHT HAND SIDES FOR LINEAR SYSTEMS
672 !
673  TYPE(bief_obj), TARGET :: rhs
674 !
675 ! BLOCKS OF DIFFERENTIATED RIGHT HAND SIDES FOR LINEAR SYSTEMS
676 !
677  TYPE(bief_obj), TARGET :: adrhs
678 !
679 ! BLOCKS OF UNKNOWNS FOR LINEAR SYSTEMS
680 !
681  TYPE(bief_obj), TARGET :: unk
682 !
683 ! BLOCKS OF DIFFERENTIATED UNKNOWNS FOR LINEAR SYSTEMS
684 !
685  TYPE(bief_obj), TARGET :: adunk
686 !
687 ! BLOCK OF CLANDESTINE VARIABLES
688 !
689  TYPE(bief_obj), TARGET :: varcl
690 !
691 ! BLOCK OF VARIABLES FOR OUTPUT
692 !
693  TYPE(bief_obj), TARGET :: varsor
694 ! WAC2
695 !
696 ! BLOCK OF VARIABLES FOR SENDING TO TOMAWAC
697 !
698  TYPE(bief_obj), TARGET :: tel2tom
699 !
700 ! BLOCK OF VARIABLES FOR RECEIVING FROM TOMAWAC
701 !
702  TYPE(bief_obj), TARGET :: tom2tel
703 !
704 ! NR OF VARIBLES SEND TO TOMAWAC
705 !
706  INTEGER :: nvartel2tom
707 !
708 ! NR OF VARIBLES RECEIVED FROM TOMAWAC
709 !
710  INTEGER :: nvartom2tel
711 !
712 !-----------------------------------------------------------------------
713 !
714 ! 4) INTEGERS
715 !
716 !-----------------------------------------------------------------------
717 !
718 ! MAXIMUM NUMBER OF SOURCES
719 !
720  INTEGER maxsce
721 !
722 ! MAXIMUM NUMBER OF BOUNDARIES
723 !
724  INTEGER maxfro
725 !
726 ! MAXIMUM NUMBER OF OUTPUT VARIABLES
727 !
728  INTEGER, PARAMETER :: maxvar = 100
729  INTEGER :: nvar_t2d
730 !
731 ! MAXIMUM NUMBER OF TRACERS
732 !
733  INTEGER maxtra
734 !
735 ! ADDRESS OF TRACERS IN VARSOR
736 !
737  INTEGER :: adr_trac
738 !
739 ! MAXIMUM NUMBER OF POINTS TO DEFINE SOURCES REGIONS
740 !
741  INTEGER maxptsce
742 !
743 ! NUMBER OF SOURCE REGIONS
744 !
745  INTEGER nreg
746 !
747 ! NUMBER OF POINTS TO DEFINE SOURCE REGIONS
748 !
749  INTEGER, ALLOCATABLE :: pts_reg(:)
750 !
751 ! NUMBER OF POINTS OF THE MESH CONTAINED IN SOURCE REGIONS
752 !
753  INTEGER, ALLOCATABLE :: tnp(:)
754 !
755 ! NODES NUMBER OF POINTS CONTAINED IN THE SOURCE REGIONS
756 !
757  INTEGER, ALLOCATABLE :: pt_in_poly(:,:)
758 !
759 ! NUMBER OF NODES FOR THE CONTROL SECTIONS (TWO TIMES THE NUMBER OF CONTROL SECTIONS)
760 !
761  INTEGER ncp
762 !
763 ! ARRAY CONTAINING THE GLOBAL NUMBER OF POINTS IN THE CONTROL SECTIONS
764 !
765  INTEGER, ALLOCATABLE :: ctrlsc(:)
766 !
767 ! MAXIMUM RANK OF LOGICAL UNITS AS DECLARED IN SUBMIT STRINGS IN THE DICTIONARY
768 ! 06/10/2015: 45
769 ! 15/03/2016: 46
770 ! 30/08/2016: 48
771 ! 28/11/2017: 52 coupling with Nestor
772 ! 09/10/2020: 53 output weirs discharge
773 !
774  INTEGER, PARAMETER :: maxlu_t2d = 53
775 !
776 ! GEOMETRY FILE NUMBER
777 !
778  INTEGER, TARGET :: t2dgeo
779 !
780 ! BOUNDARY CONDITIONS FILE NUMBER
781 !
782  INTEGER, TARGET :: t2dcli
783 !
784 ! PREVIOUS COMPUTATION FILE NUMBER
785 !
786  INTEGER, TARGET :: t2dpre
787 !
788 ! RESULTS FILE NUMBER
789 !
790  INTEGER, TARGET :: t2dres
791 !
792 ! BOTTOM TOPOGRAPHY FILE NUMBER
793 !
794  INTEGER t2dfon
795 !
796 ! BINARY DATA FILE 1,2
797 !
798  INTEGER t2dbi1,t2dbi2
799 !
800 ! ASCII ATMOSPHERIC FILE
801 !
802  INTEGER t2atma
803 !
804 ! BINARY ATMOSPHERIC FILE
805 !
806  INTEGER, TARGET :: t2atmb
807 !
808 ! FORMATTED DATA FILE 1,2
809 !
810  INTEGER, TARGET :: t2dfo1,t2dfo2
811 !
812 ! BINARY RESULTS FILE NUMBER
813 !
814  INTEGER t2drbi
815 !
816 ! FORMATTED RESULTS FILE NUMBER
817 !
818  INTEGER t2drfo
819 !
820 ! REFERENCE FILE NUMBER
821 !
822  INTEGER t2dref
823 !
824 ! LIQUID BOUNDARIES FILE NUMBER
825 !
826  INTEGER, TARGET :: t2dimp
827 !
828 ! FRICTION DATA FILE NUMBER
829 !
830  INTEGER t2dcof
831 !
832 ! DELWAQ FILES NUMBERS
833 !
835  INTEGER t2ddl9,t2dl10,t2dl11
836 !
837 ! STAGE-DISCHARGE CURVES FILE NUMBER
838 !
839  INTEGER t2dmab
840 !
841 ! SOURCES FILE NUMBER
842 !
843  INTEGER t2dvef
844 !
845 ! DATA SOURCES FILE NUMBER
846 !
847  INTEGER t2dsdn
848 !
849 ! SECTIONS INPUT FILE NUMBER
850 !
851  INTEGER t2dsec
852 !
853 ! SECTIONS OUTPUT FILE NUMBER
854 !
855  INTEGER t2dseo
856 !
857 ! MIGRHYCAR STEERING FILE NUMBER
858 !
859  INTEGER t2dmig
860 !
861 ! HARMONIC CONSTANTS FILE NUMBER
862 !
863  INTEGER t2dhar
864 !
865 ! TIDAL MODEL FILE NUMBER
866 !
867  INTEGER t2dtid
868 !
869 ! ASCII TIDAL MODEL DATABASE FILE NUMBER
870 !
871  INTEGER t2dbdd
872 !
873 ! BINARY TIDAL MODEL DATABASES 1 AND 2 FILE NUMBER
874 !
875  INTEGER t2dbb1,t2dbb2
876 !
877 ! WEIRS DATA FILE NUMBER
878 !
879  INTEGER t2dseu
880 !
881 ! WEIRS OUTPUT FILE NUMBER
882 !
883  INTEGER t2dwop
884 !
885 ! CULVERTS/TUBES/BRIDGES DATA FILE NUMBER
886 !
887  INTEGER t2dbus
888 !
889 ! BREACHES DATA FILE NUMBER
890 !
891  INTEGER t2dbrc
892 !
893 ! ASCII AND BINARY DROGUES FILE
894 !
895  INTEGER t2dflo,t2dblo
896 !
897 ! PREVIOUS DROGUES FILE
898 !
899  INTEGER t2dplo
900 !
901 ! DATA DROGUES POSITIONING ASCII FILE NUMBER
902 !
903  INTEGER t2dply
904 !
905 ! ZONES FILE
906 !
907  INTEGER t2dzfi
908 !
909 ! WAQ STEERING FILE (INTERNAL WAQ NOT THOSE OF DELWAQ)
910 !
911 ! INTEGER T2DWAQ
912 !
913 ! WAQ DICO (INTERN WAQ NOT THOSE OF DELWAQ)
914 !
915 ! INTEGER T2DWQD
916 !
917 ! KHIONE STEERING FILE
918 !
919 ! INTEGER T2DICE
920 !
921 ! KHIONE DICO
922 !
923 ! INTEGER T2DICD
924 !
925 ! FLUXLINE FILE NUMBER (NEW METHOD FOR CROSS SECTIONS)
926 !
927  INTEGER t2dflx
928 !
929 ! NESTOR ACTION FILE
930 !
931  INTEGER t2nact
932 !
933 ! NESTOR POLYGON FILE
934 !
935  INTEGER t2npol
936 !
937 ! NESTOR REFERENCE LEVEL FILE
938 !
939  INTEGER t2nref
940 !
941 ! NESTOR RESTART FILE
942 !
943  INTEGER t2nrst
944 !
945 ! LAMBERT 93 CONVERSION FILE
946 !
947  INTEGER t2dl93
948 !
949 ! GRAPHIC PRINTOUT PERIOD
950 !
951  INTEGER, TARGET :: leoprd
952 !
953 ! LISTING PRINTOUT PERIOD
954 !
955  INTEGER, TARGET :: lisprd
956 !
957 ! NUMBER OF TIME STEPS
958 !
959  INTEGER, TARGET :: nit
960 !
961 ! TYPE OF ADVECTION (1:u and v, 2:h, 3:tracers, 4:k and epsilon)
962 !
963  INTEGER iconvf(4)
964 !
965 ! SCHEME FOR ADVECTION OF TRACERS
966 !
967  INTEGER, ALLOCATABLE :: iconvft(:)
968 !
969 ! TURBULENCE MODEL
970 !
971  INTEGER, TARGET :: iturb
972 !
973 ! LAW OF BOTTOM FRICTION
974 !
975  INTEGER kfrot
976 !
977 ! NUMBER OF SUB-ITERATIONS FOR NON-LINEARITIES
978 !
979  INTEGER nsoui
980 !
981 ! NOT USED (PROPAGATION OPTION)
982 !
983 ! INTEGER OPTPRO
984 !
985 ! INITIAL GUESS FOR H
986 !
987  INTEGER iordrh
988 !
989 ! INITIAL GUESS FOR U
990 !
991  INTEGER iordru
992 !
993 ! NUMBER OF SUB-ITERATIONS FOR NON-LINEARITIES
994 !
995  INTEGER nsousi
996 !
997 ! NUMBER OF FIRST TIME STEP FOR GRAPHIC PRINTOUTS
998 !
999  INTEGER , TARGET :: ptinig
1000 !
1001 ! NUMBER OF FIRST TIME STEP FOR LISTING PRINTOUTS
1003  INTEGER ptinil
1004 !
1005 ! TURBULENCE MODEL FOR SOLID BOUNDARIES
1007  INTEGER lisrug
1008 !
1009 ! NUMBER OF BOUNDARIES WITH PRESCRIBED DISCHARGE
1011  INTEGER ndebit
1012 !
1013 ! NUMBER OF BOUNDARIES WITH PRESCRIBED ELEVATION
1015  INTEGER ncote
1016 !
1017 ! NUMBER OF BOUNDARIES WITH PRESCRIBED VELOCITY
1019  INTEGER nvites
1020 !
1021 ! NUMBER OF BOUNDARIES WITH PRESCRIBED TRACER
1023  INTEGER ntrace
1024 !
1025 ! NUMBER OF CLANDESTINE VARIABLES
1027  INTEGER nvarcl
1028 !
1029 ! VECTOR LENGTH
1031  INTEGER lvmac
1032 !
1033 ! OPTION FOR THE TREATMENT OF TIDAL FLATS
1035  INTEGER optban
1036 !
1037 ! NUMBER OF DROGUES, MAXIMUM NUMBER OF DROGUES (FOR DIMENSIONING ARRAYS)
1039  INTEGER nflot,nflot_max
1040 !
1041 ! PRINTOUT PERIOD FOR DROGUES
1043  INTEGER floprd
1044 !
1045 ! NUMBER OF LAGRANGIAN DRIFTS
1047  INTEGER nlag
1048 !
1049 ! BOTTOM SMOOTHINGS
1051  INTEGER lisfon
1052 !
1053 ! DISCRETIZATIONS IN SPACE
1055  INTEGER discre(5)
1056 !
1057 ! NUMBER OF SINK/SOURCES
1059  INTEGER nrejet
1060 !
1061 ! NUMBER OF SINK/SOURCES GIVEN BY THEIR NODE NUMBERS
1063  INTEGER nrejeti
1064 !
1065 ! NUMBER OF SINK/SOURCES WITH GIVEN VELOCITY
1067  INTEGER nrejeu
1068 !
1069 ! NUMBER OF SINK/SOURCES WITH GIVEN TRACER
1071  INTEGER nrejtr
1072 !
1073 ! SUPG OPTION
1075  INTEGER optsup(4)
1076 !
1077 ! ORIGINAL DATE OF TIME
1079  INTEGER, TARGET :: mardat(3)
1080 !
1081 ! ORIGINAL HOUR OF TIME
1083  INTEGER, TARGET :: martim(3)
1084 !
1085 ! ORIGINAL TIME OFFSET in SECONDS
1086 !
1087 ! DOUBLE PRECISION TEL_OFFSET
1088 !
1089 ! VARIOUS DISCRETISATION TIMES
1091  INTEGER ielm,ielm0,ielm1,ielmh,ielmu,ielmt,ielmk,
1092  & ielme,ielmnu
1093 !
1094 ! MATRIX STORAGE
1096  INTEGER optass
1097 !
1098 ! MATRIX-VECTOR PRODUCT
1100  INTEGER produc
1101 !
1102 ! NUMBER OF WEIRS
1104  INTEGER nweirs
1105 !
1106 ! NUMBER OF NEIGHBOURS PROCESSORS IN CASE OF // (FOR WEIRS)
1108  INTEGER n_nghb_weirs
1109 !
1110 ! NUMBER OF NODES USED FOR COMPUTATION,
1112  INTEGER nweirs_nodes
1113 !
1114 ! NUMBER OF NEIGHBOURS PROCESSORS IN CASE OF // (FOR WEIRS NODES)
1116  INTEGER n_nghb_w_nodes
1117 !
1118 ! NUMBER OF NODES SEND IN CASE OF //
1120  INTEGER n_wn_send
1121 !
1122 ! NUMBER OF NEIGHBOURS PROCESSORS IN CASE OF // (FOR WEIRS NODES SEND)
1124  INTEGER n_nghb_wn_send
1125 !
1126 ! NUMBER OF CULVERTS/SIPHONS
1128  INTEGER nbuse
1129 !
1130 ! NUMBER OF BOUNDARIES WITH GIVEN OPTION FOR LIQUID BOUNDARIES
1132  INTEGER ntypfr
1133 !
1134 ! OPTION FOR LIQUID BOUNDARIES
1136  INTEGER, ALLOCATABLE :: frtype(:)
1137 !
1138 ! TREATMENT OF THE LINEAR SYSTEM
1140  INTEGER, TARGET :: solsys
1141 !
1142 ! VELOCITY PROFILES
1144  INTEGER, ALLOCATABLE :: provel(:)
1145 !
1146 ! NUMBER OF LIQUID BOUNDARIES
1148  INTEGER nfrliq
1149 !
1150 ! NEAREST POINTS OF SOURCES
1152  INTEGER, ALLOCATABLE :: isce(:)
1153 !
1154 ! OPTION FOR THE DIFFUSION OF TRACERS
1156  INTEGER opdtra
1157 !
1158 ! OPTION FOR THE DIFFUSION OF VELOCITIES
1160  INTEGER opdvit
1161 !
1162 ! TYPE OF SOURCES
1164  INTEGER optsou
1165 !
1166 ! NUMBER OF PRIVATE ARRAYS, NUMBER OF PRIVATE ARRAYS WITH GIVEN NAME
1168  INTEGER npriv,n_names_priv
1169 !
1170 ! NUMBER OF DIFFERENTIATING ARRAYS, AND THOSE WITH A GIVEN NAME
1172  INTEGER nadvar,n_names_advar
1173 !
1174 ! NUMBER OF DIRECTIONS FOR DIFFERENTIATING in VECTOR MODES
1176  INTEGER ad_numofdir
1177 !
1178 ! DELWAQ PRINTOUT PERIOD
1180  INTEGER waqprd
1181 !
1182 ! TREATMENT OF NEGATIVE DEPTHS
1184  INTEGER opt_hneg
1185 !
1186 ! CURRENT ITERATION NUMBER
1188  INTEGER, TARGET :: lt
1189 !
1190 ! RECORD NUMBER IN THE WAVE DRIVEN CURRENTS FILE
1192  INTEGER npth
1193 !
1194 ! NUMBER OF USER-DEFINED ZONES (E.G. FOR SETTING FRICTION) IN SUBROUTINE DEF_ZONES
1196  INTEGER nzone
1197 !
1198 ! NUMBER OF PERIODS FOR FOURIER ANALYSIS
1200  INTEGER nperiaf
1201 !
1202 ! OPTION FOR PARAMETER ESTIMATION, IDENTIFICATION METHOD
1204  INTEGER optid
1205 !
1206 ! NUMBER OF REMARKABLE POINTS
1208  INTEGER npts
1209 !
1210 ! LIST OF REMARKABLE POINTS
1212  INTEGER list_pts(100)
1213 !
1214 ! CHOICE OF COST-FUNCTION
1216  INTEGER optcost
1217 !
1218 ! MAXIMUM NUMBER OF ITERATIONS FOR IDENTIFICATION
1220  INTEGER maxest
1221 !
1222 ! COUPLING PERIOD (WITH SISYPHE)
1224  INTEGER, TARGET :: percou
1225 !
1226 ! COUPLING PERIOD FOR TOMAWAC
1228  INTEGER, TARGET :: percou_wac
1229 !
1230 ! FINITE VOLUME SCHEME
1232  INTEGER optvf
1233 !
1234 ! ORIGINS OF THE COORDINATE SYSTEM
1236  INTEGER i_orig,j_orig
1237 !
1238 ! NUMBER OF TRACERS
1240  INTEGER, TARGET :: ntrac
1241 !
1242 ! NUMBER TOTAL OF TRACERS
1244  INTEGER ntrtot
1245 !
1246 ! INDEX FOR TEMPERATURE, FOR SALINITY
1247 ! IND_FT,IND_FC ?
1248  INTEGER ind_t,ind_s,ind_sec
1249 !
1250 ! INDEX FOR SUSPENDED SEDIMENTS
1252  INTEGER ind_sed
1253 !
1254 ! NUMBER OF POINTS GIVEN FOR EACH DISCHARGE-ELEVATIONS CURVES
1256  INTEGER, ALLOCATABLE :: pts_curves(:)
1257 !
1258 ! OPTION FOR TREATING STAGE-DISCHARGE CURVES
1260  INTEGER, ALLOCATABLE :: sta_dis_curves(:)
1261 !
1262 ! DEBUGGER
1264  INTEGER, TARGET :: debug
1265 !
1266 ! DEPTH IN FRICTION TERMS
1268  INTEGER hfrot
1269 !
1270 ! LAW OF FRICTION ON LATERAL BOUNDARIES
1272  INTEGER kfrotl
1273 !
1274 ! TREATMENT OF FLUXES AT THE BOUNDARIES
1276  INTEGER dirflu
1277 !
1278 ! OPTION FOR TIDAL BOUNDARY CONDITIONS
1280  INTEGER, ALLOCATABLE, TARGET :: bnd_tide(:)
1281  INTEGER tidaltype
1282 !
1283 ! OPTION FOR TSUNAMI GENERATION
1285  INTEGER opttsunami
1286 !
1287 ! TIDAL DATA BASE
1289  INTEGER tidaldb
1290 !
1291 ! GEOGRAPHIC SYSTEM
1293  INTEGER geosyst
1294 !
1295 ! ZONE NUMBER IN GEOGRAPHIC SYSTEM
1297  INTEGER numzone
1298 !
1299 ! NUMBERS OF THE POINT TO CALIBRATE HIGH WATER (SCHEMATIC TIDES)
1301  INTEGER icalhwb,icalhwg
1302 !
1303 ! RECORD NUMBER FOR RESTART
1305  INTEGER, TARGET :: start_record
1306 !
1307 ! NUMBER OF BREACHES
1309  INTEGER nbrech
1310 !
1311 ! SPATIAL PROJECTION TYPE, AND A SAVE OF ITS ORIGINAL VALUE
1313  INTEGER protyp,protyp0
1314 !
1315 ! OPTION FOR CHARACTERISTICS,
1316 ! NUMBER OF GAUSS POINTS FOR WEAK CHARACTERISTICS
1318  INTEGER optcha,ngauss
1319 !
1320 ! MAXIMUM NUMBER OF ITERATIONS FOR ADVECTION SCHEMES
1322  INTEGER maxadv
1323 !
1324 ! STOCHASTIC DIFFUSION MODEL (FOR PARTICLES ALGAE, OIL SPILLS...)
1326  INTEGER stocha
1327 !
1328 ! OPTION FOR WEIR TREATMENT
1330  INTEGER typseuil
1331 !
1332 ! STORAGE OF MAXIMUM NUMBER OF ELEMENTS ON ALL WEIRS
1334  INTEGER maxnps
1335 !
1336 ! PSI SCHEME OPTION
1337 !
1338 ! INTEGER OPTPSI
1339 !
1340 ! ADVECTION SCHEME OPTIONS FOR VELOCITY AND K-EPSILON AND SA
1342  INTEGER optadv_vi,optadv_ke,optadv_sa
1343 !
1344 ! ADVECTION SCHEME OPTIONS FOR TRACERS
1346  INTEGER, ALLOCATABLE :: optadv_tr(:)
1347 !
1348 ! OPTION FOR WIND
1350  INTEGER optwind
1351 !
1352 ! NUMBER OF CORRECTIONS FOR DISTRIBUTIVE SCHEMES
1353 ! NUMBER OF SUB-STEPS FOR DISTRIBUTIVE SCHEMES
1355  INTEGER nco_dist,nsp_dist
1356 !
1357 ! COUNTER FOR GRAPHICAL AND LISTING OUTPUTS
1359  INTEGER, TARGET :: compleo,complis
1360 !
1361 ! OPTION FOR THE TREATMENT OF CULVERTS
1363  INTEGER optbuse
1364 !
1365 ! OPTION FOR HYDROSTATIC RECONSTRUCTION
1367  INTEGER hropt
1368 !
1369 ! OPTION FOR RAINFALL-RUNOFF MODEL
1371  INTEGER runoffopt
1372 !
1373 ! ANTECEDENT MOISTURE CONDITION (FOR SCS_CN RAINFALL-RUNOFF MODEL)
1375  INTEGER amc
1376 !
1377 ! RATIO FOR INITIAL ABSTRACTION (FOR SCS_CN RAINFALL-RUNOFF MODEL)
1379  INTEGER iascnopt
1380 !
1381 ! NUMBER OF REFINEMENT LEVELS FOR THE CONVERGENCE STUDY
1382 ! CURRENT LEVEL
1384  INTEGER rlevels,rlevel
1385 !
1386 ! CHOICE OF THE NUMERICAL SCHEME FOR FINITE VOLUME
1388  INTEGER icin
1389 !
1390 ! CHOICE OF SPACE AND TIME ORDER FOR FINITE VOLUME
1392  INTEGER sorder, torder
1393 !
1394 ! CHOICE OF FLUX LIMITOR FOR SECOND ORDER IN SPACE
1396  INTEGER ilimhz, ilimuv, ilimt
1397 !
1398 ! WEAK OR STRONG IMPOSITION OF KINETIC SCHEME BND CONDITION
1400  INTEGER bndcin
1401 !
1402 !-----------------------------------------------------------------------
1403 !
1404 ! 5) LOGICAL VALUES
1405 !
1406 !-----------------------------------------------------------------------
1407 !
1408 ! USED IN DEBSCE
1410  LOGICAL, ALLOCATABLE :: okdebsce(:)
1411 !
1412 ! USED IN TRSCE
1414  LOGICAL, ALLOCATABLE :: oktrsce(:,:)
1415 !
1416 ! USED IN Q
1418  LOGICAL, ALLOCATABLE :: okq(:)
1419 !
1420 ! USED IN SL
1422  LOGICAL, ALLOCATABLE :: oksl(:)
1423 !
1424 ! USED IN TR
1426  LOGICAL, ALLOCATABLE :: oktr(:,:)
1427 !
1428 ! USED IN VIT
1430  LOGICAL, ALLOCATABLE :: okvit(:)
1431 !
1432 ! IF YES, WATER DISCHARGE OF SOURCES IS GIVEN
1434  LOGICAL okrejet
1435 !
1436 ! IF YES, COMPUTATION CONTINUED
1438  LOGICAL debu
1439 !
1440 ! IF YES, LISTING PRINTOUT IS REQUIRED
1442  LOGICAL listin
1443 !
1444 ! IF YES, DIFFUSION OF VELOCITY
1446  LOGICAL difvit
1447 !
1448 ! IF YES, AIR PRESSURE IS TAKEN INTO ACCOUNT
1450  LOGICAL atmos
1451 !
1452 ! IF YES, ADVECTION
1454  LOGICAL conv
1455 !
1456 ! IF YES, ADVECTION OF U AND V (1), H (2), TRACERS (3), K AND EPSILON (4)
1458  LOGICAL convv(4)
1459 !
1460 ! IF YES, DIFFUSION OF TRACERS
1462  LOGICAL dift
1463 !
1464 ! IF YES, CORIOLIS
1466  LOGICAL coriol
1467 !
1468 ! IF YES, INFORMATION PRINTED ON LISTING
1470  LOGICAL infogr
1471 !
1472 ! IF YES, MASS-BALANCE
1474  LOGICAL bilmas
1475 !
1476 ! IF YES, H CLIPPING
1478  LOGICAL cliph
1479 !
1480 ! IF YES, WIND IS TAKEN INTO ACCOUNT
1482  LOGICAL vent
1483 !
1484 ! IF YES, PROPAGATION
1486  LOGICAL propa
1487 !
1488 ! IF YES, SPHERICAL COORDINATES
1490  LOGICAL spheri
1491 !
1492 ! IF YES, LINEARISED PROPAGATION
1494  LOGICAL prolin
1495 !
1496 ! IF YES, VALIDATION
1498  LOGICAL valid
1499 !
1500 ! IF YES, VERIFICATION OF LIMITS
1502  LOGICAL verlim
1503 !
1504 ! IF YES, CONTINUITY CORRECTION
1506  LOGICAL corcon
1507 !
1508 ! IF YES, INITIAL TIME SET TO ZERO
1510  LOGICAL, TARGET :: raztim
1511 !
1512 ! IF YES, INFORMATION ABOUT K-EPSILON MODEL PRINTED ON LISTING
1514  LOGICAL infoke
1515 !
1516 ! IF YES, INFORMATION ABOUT SPALART-ALLMARAS MODEL PRINTED ON LISTING
1518  LOGICAL infonu
1519 !
1520 ! IF YES, THERE ARE MASKED ELEMENTS
1522  LOGICAL msk
1523 !
1524 ! IF YES, STOP WHEN A STEADY STATE IS REACHED
1526  LOGICAL stoper
1527 !
1528 ! IF YES, ELEMENTS MASKED BY USER
1530  LOGICAL mskuse
1531 !
1532 ! TO KNOW IF A VARIABLE WILL BE EXITED ON FILE, ON LISTING
1534  LOGICAL sorleo(maxvar),sorimp(maxvar)
1535 !
1536 ! VARIABLE DENSITY. IF YES, DENSITY EFFECTS INCLUDED
1538  LOGICAL rovar
1539 !
1540 ! TIDE GENERATING FORCE
1542  LOGICAL maree
1543 !
1544 ! IF YES, THERE IS A TREATMENT OF BOUNDARY CONDITIONS WITH
1545 ! THOMPSON METHOD
1547  LOGICAL thomfr
1548 !
1549 ! IF YES, C-U PRECONDITIONING
1551  LOGICAL preccu
1552 !
1553 ! IF YES, VARIABLE TIME-STEP
1555  LOGICAL dtvari
1556 !
1557 ! IF YES, TIDAL FLATS
1559  LOGICAL bandec
1560 !
1561 ! IF YES, PRINT INFORMATIONS ON LISTING
1563  LOGICAL entet
1564 !
1565 ! IF YES, OIL SPILL MODEL
1567  LOGICAL spill_model
1568 !
1569 ! IF YES, WAVE DRIVEN CURRENTS ARE TAKEN INTO ACCOUNT
1571  LOGICAL courou
1572 !
1573 ! IF YES, WAVE FRICTION ENHANCEMENT IS TAKEN INTO ACCOUNT
1575  LOGICAL fricou
1576 !
1577 ! IF YES, VERTICAL STRUCTURES ARE TAKEN INTO ACCOUNT
1579  LOGICAL vertic
1580 !
1581 ! IF YES, THE USER WANTS TO DEFINE ZONES
1583  LOGICAL defzon
1584 !
1585 ! IF YES, COMPATIBLE COMPUTATION OF FLUXES (RELATED TO FLUXES THROUGH SECTIONS)
1587  LOGICAL comflu
1588 !
1589 ! IF YES, PRINTS CUMULATED FLOWRATES
1591  LOGICAL cumflo
1592 !
1593 ! IF YES, OUTPUT OF SALINITY FOR DELWAQ
1595  LOGICAL sali_del
1596 !
1597 ! IF YES, OUTPUT OF TEMPERATURE FOR DELWAQ
1599  LOGICAL temp_del
1600 !
1601 ! IF YES, OUTPUT OF VELOCITY FOR DELWAQ
1603  LOGICAL velo_del
1604 !
1605 ! IF YES, OUTPUT OF DIFFUSIVITY FOR DELWAQ
1607  LOGICAL diff_del
1608 !
1609 ! IF YES, RAIN OR EVAPORATION TAKEN INTO ACCOUNT
1611  LOGICAL rain
1612 !
1613 ! IF YES, INFERENCE OF MINOR CONSTITUENTS
1615  LOGICAL intmicon
1616 !
1617 ! IF YES, THE USER WANTS TO DEFINE BREACHES
1619  LOGICAL breche
1620 !
1621 ! IF YES, THE PARTICLES ARE ALGAE
1623  LOGICAL algae
1624 !
1625 ! SECONDARY CURRENTS
1627  LOGICAL seccurrents
1628 !
1629 ! IF YES, CROSS SECTIONS WITH FLUXLINE METHOD
1631  LOGICAL doflux
1632 !
1633 ! OPTION FOR CONVERGENCE STUDIES
1635  LOGICAL convergence
1636 !
1637 ! IF YES KEEP LONG LAT IN RESULT FILE
1639  LOGICAL keep_lonlat
1640 !
1641 ! IF YES, USE NESTOR
1643  LOGICAL nestor
1644 !
1645 ! IF YES, COEFFICIENT OF WIND INFLUENCE VARIES WITH WIND SPEED
1647  LOGICAL fairaccu
1648 !
1649 ! IF YES, BOTTOM SMOOTHINGS ARE DONE AFTER MODIFICATIONS BY THE USER
1651  LOGICAL lisfon_after
1652 !
1653 ! IF YES, INITIAL VELOCITIES ARE COMPUTED FROM OSU TIDAL SOLUTIONS
1654 ! E.G. TPXO. OTHERWISE = 0.
1656  LOGICAL vitini_tpxo
1657 !
1658 !-----------------------------------------------------------------------
1659 !
1660 ! 6) REALS
1661 !
1662 !-----------------------------------------------------------------------
1663 !
1664 ! TIME STEP
1666  DOUBLE PRECISION, TARGET :: dt, dtcas,dtn
1667 !
1668 ! END TIME
1670  DOUBLE PRECISION, TARGET :: tmax
1671 !
1672 ! INITIAL TIME STEP
1674  DOUBLE PRECISION dtini
1675 !
1676 ! GRAVITY ACCELERATION
1678  DOUBLE PRECISION grav
1679 !
1680 ! FRICTION COEFFICIENT
1682  DOUBLE PRECISION ffon
1683 !
1684 ! COEFFICIENT OF CORIOLIS
1686  DOUBLE PRECISION fcor
1687 !
1688 ! COEFFICIENT OF WIND INFLUENCE
1690  DOUBLE PRECISION, TARGET :: fair
1691 !
1692 ! COMPONENTS OF WIND VELOCITY,ITS NORM AND DIRECTION
1693 ! REPLACED BY CST_WINDX,CST_WINDY,CST_WINDS,CST_WINDD
1694 ! IN METEO_TELEMAC MODULE
1695 !
1696 ! DOUBLE PRECISION FUAIR,FVAIR,WIND_SPD(2)
1697  DOUBLE PRECISION wind_spd(2)
1698 !
1699 ! INITIAL VALUES OF TRACERS
1701  DOUBLE PRECISION, ALLOCATABLE :: trac0(:)
1702 !
1703 ! COEFFICIENT FOR DIFFUSION OF TRACERS
1705  DOUBLE PRECISION, ALLOCATABLE :: difnu(:)
1706 !
1707 ! IMPLICITATION FOR TRACERS
1709  DOUBLE PRECISION tetat
1710 !
1711 ! VELOCITY DIFFUSIVITY
1713  DOUBLE PRECISION, TARGET :: propnu
1714 !
1715 ! THRESHOLD VALUES FOR STOPPING THE COMPUTATION
1717  DOUBLE PRECISION bornes(8)
1718 !
1719 ! IMPLICITATION FOR DEPTH
1721  DOUBLE PRECISION tetac
1722 !
1723 ! IMPLICITATION FOR VELOCITY
1725  DOUBLE PRECISION tetau
1726 !
1727 ! IMPLICITATION FOR DIFFUSION OF VELOCITY
1729  DOUBLE PRECISION tetad
1730 !
1731 ! MASS-LUMPING COEFFICIENT ON H
1733  DOUBLE PRECISION aggloc
1734 !
1735 ! MASS-LUMPING COEFFICIENT ON VELOCITY
1737  DOUBLE PRECISION agglou
1738 !
1739 ! MASS-LUMPING FOR WEAK CHARACTERISTICS
1741  DOUBLE PRECISION agglow
1742 !
1743 ! MINIMUM VALUE OF DEPTH
1745  DOUBLE PRECISION hmin
1746 !
1747 ! TIME STEP REDUCTION FOR K-EPSILON MODEL
1748 !
1749 ! DOUBLE PRECISION REDUC
1750 !
1751 ! MEAN DEPTH FOR LINEARIZATION
1753  DOUBLE PRECISION haulin
1754 !
1755 ! WATER DENSITY
1757  DOUBLE PRECISION roeau
1758 !
1759 ! LATITUDE OF ORIGIN POINT
1761  DOUBLE PRECISION lambd0
1762 !
1763 ! ROUGHNESS COEFFICIENT OF BOUNDARIES
1765  DOUBLE PRECISION sb
1766 !
1767 ! INITIAL ELEVATION
1769  DOUBLE PRECISION cotini
1770 !
1771 ! INITIAL DEPTH
1773  DOUBLE PRECISION hautin
1774 !
1775 ! PRESCRIBED FLOWRATES
1777  DOUBLE PRECISION, ALLOCATABLE, TARGET :: debit(:)
1778 !
1779 ! PRESCRIBED ELEVATIONS
1781  DOUBLE PRECISION, ALLOCATABLE, TARGET :: cote(:)
1782 !
1783 ! PRESCRIBED VELOCITIES
1785  DOUBLE PRECISION, ALLOCATABLE :: vites(:)
1786 !
1787 ! PRESCRIBED TRACERS VALUES
1789  DOUBLE PRECISION, ALLOCATABLE :: tracer(:)
1790 !
1791 ! FLUXES AT BOUNDARIES
1793  DOUBLE PRECISION, ALLOCATABLE, TARGET :: flux_boundaries(:)
1794 !
1795 ! ABSCISSAE, ORDINATES OF SOURCES
1797  DOUBLE PRECISION, ALLOCATABLE :: xsce(:),ysce(:)
1798 !
1799 ! ABSCISSAE, ORDINATES OF POINTS FOR SOURCES REGIONS
1801  DOUBLE PRECISION, ALLOCATABLE :: xcoo(:,:),ycoo(:,:)
1802 !
1803 ! AREA OF POINTS INSIDE SOURCES REGIONS
1805  DOUBLE PRECISION, ALLOCATABLE :: area_p(:)
1806 !
1807 ! SOURCES WATER DISCHARGES TAKEN FROM THE STEERING FILE
1809  DOUBLE PRECISION, ALLOCATABLE :: dsce(:)
1810 !
1811 ! SOURCES DISCHARGES WITH VARIATION IN TIME
1813  DOUBLE PRECISION, ALLOCATABLE :: dsce2(:)
1814 !
1815 ! SOURCES TRACER DISCHARGES TAKEN FROM THE STERING FILE
1817  DOUBLE PRECISION, ALLOCATABLE :: tsce(:,:)
1818 !
1819 ! SOURCES OF TRACERS WITH VARIATIONS IN TIME
1821  DOUBLE PRECISION, ALLOCATABLE :: tsce2(:,:)
1822 !
1823 ! VELOCITIES OF THE SOURCES ALONG X,Y
1825  DOUBLE PRECISION, ALLOCATABLE :: usce(:),vsce(:)
1826 !
1827 ! UPWIND COEFFICIENTS FOR SUPG (1:u and v, 2:h, 3:tracers, 4:k and epsilon)
1828 !
1829 ! DOUBLE PRECISION COSUPG(4)
1830 !
1831 ! STOP CRITERIA (ORDER: H,U AND V,T)
1833  DOUBLE PRECISION criper(3)
1834 !
1835 ! REFERENCE TEMPERATURE FOR COMPUTING DENSITY
1837  DOUBLE PRECISION tmoy
1838 !
1839 ! DIRECTION OF NORTH, COUNTER-CLOCK-WISE, STARTING FROM VERTICAL AXIS
1841  DOUBLE PRECISION nord
1842 !
1843 ! NON-DIMENSIONAL DISPERSION COEFFICIENTS
1845  DOUBLE PRECISION elder(2)
1846 !
1847 ! LONGITUDE OF ORIGIN POINT
1849  DOUBLE PRECISION phi0
1850 !
1851 ! MASS-LUMPING ON TRACERS
1853  DOUBLE PRECISION agglot
1854 !
1855 ! DURATION OF COMPUTATION
1857  DOUBLE PRECISION duree
1858 !
1859 ! DESIRED COURANT NUMBER
1861  DOUBLE PRECISION cflwtd
1862 !
1863 ! MINIMUM DEPTH TO TAKE WIND INTO ACCOUNT
1865  DOUBLE PRECISION hwind
1866 !
1867 ! THRESHOLD FOR NEGATIVE DEPTHS
1869  DOUBLE PRECISION hneg
1870 !
1871 ! FREE SURFACE GRADIENT COMPATIBILITY
1873  DOUBLE PRECISION tetazcomp
1874 !
1875 ! TIME RANGE FOR FOURIER ANALYSIS
1877  DOUBLE PRECISION tafbgn,tafend
1878 !
1879 ! CURRENT TIME, INITIAL TIME
1881  DOUBLE PRECISION, TARGET :: at,at0
1882 !
1883 ! FOURIER ANALYSIS PERIODS
1885  DOUBLE PRECISION periaf(50)
1886 !
1887 ! ARRAY OF REALS TO READ INTO SELAFIN FILES
1889  REAL, ALLOCATABLE :: w(:)
1890 !
1891 ! TOLERANCES FOR IDENTIFICATION
1893  DOUBLE PRECISION tolest(4)
1894 !
1895 ! NEWMARK TIME INTEGRATION COEFFICIENT
1897  DOUBLE PRECISION gamma
1898 !
1899 ! ARRAY WITH STAGE-DISCHARGE CURVES
1901  DOUBLE PRECISION, ALLOCATABLE :: qz(:,:,:)
1902 !
1903 ! RAIN OR EVAPORATION IN MM PER DAY
1904 ! REPLACED BY CST_RAINFALL IN METEO_TELEMAC MODULE)
1905 !
1906 ! DOUBLE PRECISION RAIN_MMPD
1907 !
1908 ! PHYSICAL CHARACTERISTICS OF THE TSUNAMI
1910  DOUBLE PRECISION coetsunami(10)
1911 !
1912 ! VALUES OF TRACERS IN THE RAIN
1914  DOUBLE PRECISION, ALLOCATABLE :: train(:)
1915 !
1916 ! COEFFICIENT TO CALIBRATE TIDAL RANGE
1918  DOUBLE PRECISION, TARGET :: ctide
1919 !
1920 ! COEFFICIENT TO CALIBRATE TIDAL VELOCITIES
1922  DOUBLE PRECISION, TARGET :: ctidev
1923 !
1924 ! COEFFICIENT TO CALIBRATE SEA LEVEL
1926  DOUBLE PRECISION, TARGET :: msl
1927 !
1928 ! MINIMUM DEPTH TO COMPUTE TIDAL VELOCITIES BOUNDARY CONDITIONS
1930  DOUBLE PRECISION hmin_vit_bc
1931 !
1932 ! MINIMUM DEPTH TO COMPUTE TIDAL VELOCITIES INITIAL CONDITIONS
1934  DOUBLE PRECISION hmin_vit_ic
1935 !
1936 ! THRESHOLD DEPTH FOR RECEDING PROCEDURE
1938  DOUBLE PRECISION hrec
1939 !
1940 ! DIAMETRE OF ALGAE (PER CLASS)
1942  DOUBLE PRECISION, ALLOCATABLE :: dalgae(:)
1943 !
1944 ! DENSITY OF ALGAE (PER CLASS)
1946  DOUBLE PRECISION, ALLOCATABLE :: ralgae(:)
1947 !
1948 ! THICKNESS OF ALGAE (PER CLASS)
1950  DOUBLE PRECISION, ALLOCATABLE :: ealgae(:)
1951 !
1952 ! TIME OF RELEASE OF ALGAE (PER CLASS)
1954  DOUBLE PRECISION, ALLOCATABLE :: talgae(:)
1955 !
1956 ! ALGAE TYPES (PER CLASS)
1958  INTEGER , ALLOCATABLE :: yalgae(:)
1959 !
1960 ! ALGAE RELEASE TYPES (PER CLASS)
1962  INTEGER , ALLOCATABLE :: rel_algae(:)
1963 !
1964 ! WAVE SHEAR STRESS FOR ALGAE DISLODGEMENT 1
1966  DOUBLE PRECISION, ALLOCATABLE :: tw1_algae(:)
1967 !
1968 ! WAVE SHEAR STRESS FOR ALGAE DISLODGEMENT 2
1970  DOUBLE PRECISION, ALLOCATABLE :: tw2_algae(:)
1971 !
1972 ! RATE OF DEGRADATION CONSTANT FOR ALGAE
1974  DOUBLE PRECISION, ALLOCATABLE :: a_algae(:)
1975 !
1976 ! VALUE OF THE ATMOSPHERIC PRESSURE
1977 ! REPLACED BY CST_PATMOS IN METEO_TELEMAC MODULE)
1978 !
1979 ! DOUBLE PRECISION PATMOS_VALUE
1980 !
1981 ! PRODUCTION COEFFICIENT FOR SECONDARY CURRENTS
1982 ! DISSIPATION COEFFICIENT FOR SECONDARY CURRENTS
1984  DOUBLE PRECISION sec_as,sec_ds
1985 !
1986 ! VON KARMAN CONSTANT
1988  DOUBLE PRECISION karman
1989 !
1990 ! DURATION OF RAIN OR EVAPORATION IN HOURS
1992  DOUBLE PRECISION rain_hdur
1993 !
1994 ! TOLERANCE FOR FV SCHEME WETTING AND DRYING
1996  DOUBLE PRECISION eps_fv
1997 !
1998 ! ALLOCATABLE ARRAYS WITH DIMENSION MAXTRA, FOR TRACERS
1999 !
2000 ! MASSOU: MASS CREATED BY SOURCE TERM DURING THE TIME STEP
2001 ! MASTR0: INITIAL MASS
2002 ! MASTR2: CURRENT MASS
2003 ! MASTEN: MASS ENTERED THROUGH BOUNDARIES
2004 ! MASTOU: TOTAL MASS CREATED BY SOURCE TERM
2005 ! MASTRAIN: TOTAL MASS BROUGHT BY RAIN OR EVAPORATION
2006 ! FLUTENT AND FLUTSOR: FOR FINITE VOLUMES
2008  DOUBLE PRECISION, ALLOCATABLE :: massou(:) ,mastr0(:)
2009  DOUBLE PRECISION, ALLOCATABLE :: mastr2(:) ,flutsor(:)
2010  DOUBLE PRECISION, ALLOCATABLE :: masten(:) ,mastou(:)
2011  DOUBLE PRECISION, ALLOCATABLE :: mastrain(:),flutent(:)
2012 !
2013 ! SOME PARAMETERS FOR SA TURBULENCE MODEL
2015  DOUBLE PRECISION :: sigmanu = 2.d0/3.d0
2016  DOUBLE PRECISION :: numin = 1.d-8
2017  DOUBLE PRECISION :: numax = 1.d10
2018 !
2019 ! CALIBRATION COEFFICIENTS FOR THE 2D MIXING LENGTH TURBULENCE MODEL
2021  DOUBLE PRECISION calmixlength(2)
2022 !
2023 !-----------------------------------------------------------------------
2024 !
2025 ! 7) STRINGS
2026 !
2027 !-----------------------------------------------------------------------
2028 !
2029 ! TITLE OF STUDY
2031  CHARACTER(LEN=72) titcas
2032 !
2033 ! VARIABLES FOR GRAPHIC PRINTOUT
2035  CHARACTER(LEN=72) vardes
2036 !
2037 ! INITIAL CONDITIONS
2039  CHARACTER(LEN=72) cdtini
2040 !
2041 ! VARIABLES TO BE PRINTED
2043  CHARACTER(LEN=72) varimp
2044 !
2045 ! EQUATIONS
2047  CHARACTER(LEN=20), TARGET :: equa
2048 !
2049 ! NAMES OF CLANDESTINE VARIABLES
2051  CHARACTER(LEN=32) varcla(10)
2052 !
2053 ! NAMES AND UNITS OF VARIABLES
2055  CHARACTER(LEN=32) texte(maxvar),textpr(maxvar)
2056 !
2057 ! NAMES OF REMARKABLE POINTS
2059  CHARACTER(LEN=32) name_pts(100)
2060 !
2061 ! NAMES OF TRACERS
2063  CHARACTER(LEN=32), ALLOCATABLE :: nametrac(:)
2064 !
2065 ! NAMES OF PRIVATE ARRAYS (GIVEN BY USER)
2067  CHARACTER(LEN=32) names_prive(4)
2068 !
2069 ! NAMES OF DIFFERENTING ARRAYS (GIVEN BY USER)
2071  CHARACTER(LEN=32) names_advar(maxvar)
2072 !
2073 !-----------------------------------------------------------------------
2074 !
2075 ! 8) SLVCFG STRUCTURES
2076 !
2077 !-----------------------------------------------------------------------
2078 !
2079 ! STRUCTURE WITH SOLVER FOR PROPAGATION
2081  TYPE(slvcfg) :: slvpro
2082 !
2083 ! STRUCTURE WITH SOLVER OPTIONS FOR K
2085  TYPE(slvcfg) :: slvk
2086 !
2087 ! STRUCTURE WITH SOLVER OPTIONS FOR E
2089  TYPE(slvcfg) :: slvep
2090 !
2091 ! STRUCTURE WITH SOLVER OPTIONS FOR SA
2093  TYPE(slvcfg) :: slvnu
2094 !
2095 ! SOLVER FOR DIFFUSION OF TRACERS
2097  TYPE(slvcfg), ALLOCATABLE :: slvtra(:)
2098 !
2099 !-----------------------------------------------------------------------
2100 !
2101 ! 9) MESH STRUCTURE
2102 !
2103 !-----------------------------------------------------------------------
2104 !
2105 ! MESH STRUCTURE
2107  TYPE(bief_mesh), TARGET :: mesh
2108 !
2109 ! FINE MESH STRUCTURE IN CASE OF CONVERGENCE STUDY
2111  TYPE(bief_mesh), TARGET :: finemesh
2112 !
2113 !-----------------------------------------------------------------------
2114 !
2115 ! 10) ALIASES
2116 !
2117 !-----------------------------------------------------------------------
2118 !
2119 ! DECLARATION OF POINTERS FOR ALIASES.
2120 ! TARGETS ARE DEFINED IN POINT_TELEMAC2D.
2121 !
2122 ! ALIASES FOR WORKING VECTORS IN TB
2124  TYPE(bief_obj),POINTER :: t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11
2125  TYPE(bief_obj),POINTER :: t12,t13,t14,t15,t16,t17,t18,t19,t20
2126  TYPE(bief_obj),POINTER :: t21,t22
2127 !
2128 ! ALIASES FOR VECTOR IN BLOCK PRIVE
2130  DOUBLE PRECISION,POINTER :: prive1(:),prive2(:)
2131  DOUBLE PRECISION,POINTER :: prive3(:),prive4(:)
2132 !
2133 ! CONNECTIVITY TABLE
2135  TYPE(bief_obj), POINTER :: ikle
2136 !
2137 ! COORDINATES OF POINTS IN THE MESH
2139  DOUBLE PRECISION, DIMENSION(:), POINTER :: x,y
2140 !
2141 ! NUMBER OF ELEMENTS IN THE MESH
2143  INTEGER, POINTER:: nelem
2144 !
2145 ! MAXIMUM NUMBER OF ELEMENTS IN THE MESH
2147  INTEGER, POINTER:: nelmax
2148 !
2149 ! NUMBER OF BOUNDARY POINTS IN THE MESH
2151  INTEGER, POINTER:: nptfr
2152  INTEGER nptfr2
2153 !
2154 ! MAXIMUM NUMBER OF BOUNDARY POINTS IN THE MESH
2156  INTEGER, POINTER:: nptfrx
2157 !
2158 ! TYPE OF ELEMENT
2160  INTEGER, POINTER:: typelm
2161 !
2162 ! NUMBER OF POINTS IN THE MESH
2164  INTEGER, POINTER:: npoin
2165 !
2166 ! MAXIMUM NUMBER OF POINTS IN THE MESH
2168  INTEGER, POINTER:: npmax
2169 !
2170 ! MAXIMUM NUMBER OF POINTS NEIGHBOURS OF A POINT
2172  INTEGER, POINTER:: mxptvs
2173 !
2174 ! MAXIMUM NUMBER OF ELEMENTS NEIGHBOURS OF A POINT
2176  INTEGER, POINTER:: mxelvs
2177 !
2178 ! VECTOR LENGTH OF THE MACHINE
2180  INTEGER, POINTER:: lv
2181 !
2182 ! NUMBER OF SEGMENT IN A MESH
2184  INTEGER, POINTER:: nseg
2185 !
2186 !=======================================================================
2187 !
2188 ! ADDED DECLARATIONS FOR THE IDENTIFICATION OF PARAMETERS
2189 !
2190 !
2191 !-----------------------------------------------------------------------
2192 !
2193 ! 1) VECTORS
2194 !
2195 !-----------------------------------------------------------------------
2196 !
2197 ! ADJOINT VARIABLES
2199  TYPE(bief_obj), TARGET :: pp,qq,rr
2200 !
2201 ! MEASUREMENTS
2203  TYPE(bief_obj), TARGET :: ud,vd,hd
2204 !
2205 ! DIRECT VARIABLES AT ITERATION IT
2207  TYPE(bief_obj), TARGET :: uu,vv,hh
2208 !
2209 ! DIRECT VARIABLES AT ITERATION IT+1
2211  TYPE(bief_obj), TARGET :: uit1,vit1,hit1
2212 !
2213 ! BOUNDARY VALUES FOR ADJOINT VARIABLE (ONLY DIRICHLET)
2215  TYPE(bief_obj), TARGET :: pbor,qbor,rbor
2216 !
2217 ! VECTOR USED TO CHANGE THE SET OF STRICKLERS
2219  TYPE(bief_obj) :: desc
2220 !
2221 ! GRADIENT OF COST FUNCTION (ITERATION K)
2223  TYPE(bief_obj) :: gradj
2224 !
2225 ! GRADIENT OF COST FUNCTION (ITERATION K-1)
2227  TYPE(bief_obj) :: gradjn
2228 !
2229 ! SET OF STRICKLERS (ZONES): NEW
2231  TYPE(bief_obj) :: setstr
2232 !
2233 ! SET OF STRICKLERS' (ZONES): OLD
2235  type(bief_obj) :: setstr2
2236 !
2237 ! GRADIENTS
2239  TYPE(bief_obj) :: alpha1,alpha2,alpha3
2240 !
2241 ! VARIABLES TRANSMITTED FROM TOMAWAC TO SISYPHE
2243  TYPE(bief_obj), TARGET :: dirmoy,hm0,tpr5,orbvel,cosdir,sindir
2244 !
2245 ! VARIABLES TRANSMITTED FROM SISYPHE TO TELEMAC
2247  TYPE(api_cpl), TARGET :: sis_cpl
2248 !
2249 ! VARIABLES TRANSMITTED FROM GAIA TO TELEMAC
2251  TYPE(api_cpl), TARGET :: gai_cpl
2252 !
2253 !-----------------------------------------------------------------------
2254 !
2255 ! 2) MATRICES
2256 !
2257 !-----------------------------------------------------------------------
2258 !
2259 ! MATRICES
2260 !
2261 ! SYSTEM SOLVED WILL BE :
2262 !
2263 ! ( TAM1 TCM1 TCM2 ) (PP ) ( CV1 )
2264 ! ( ) ( ) ( )
2265 ! ( TBM1 TAM2 A23 ) (QQ ) = ( CV2 )
2266 ! ( ) ( ) ( )
2267 ! ( TBM2 A32 TAM3 ) (RR ) ( CV3 )
2268 !
2269 !
2270 ! MATRICES FOR ADJOINT SYSTEM
2272  TYPE(bief_obj), TARGET :: tam1,tam2,tam3,tbm1,tbm2,tcm1,tcm2
2273 !
2274 !-----------------------------------------------------------------------
2275 !
2276 ! 3) BLOCKS
2277 !
2278 !-----------------------------------------------------------------------
2279 !
2280 ! BLOCKS OF MATRICES, RIGHT HAND SIDES AND UNKNOWNS
2281 ! FOR LINEAR SYSTEMS
2282 !
2283 ! BLOCKS OF MATRICES, RIGHT HAND SIDES FOR LINEAR SYSTEMS
2285  TYPE(bief_obj), TARGET :: matadj
2286 !
2287 ! BLOCKS OF UNKNOWNS FOR LINEAR SYSTEMS
2289  TYPE(bief_obj), TARGET :: unkadj
2290 !
2291 ! BLOCK OF ADJOINT VARIABLES FOR OUTPUT
2293  TYPE(bief_obj), TARGET :: varsora
2294 !
2295 ! BLOCK OF DIRICHLET CONDITION FOR ADJOINT VARIABLES
2297  TYPE(bief_obj), TARGET :: adjdir
2298 !
2299 !-----------------------------------------------------------------------
2300 !
2301 ! 4) INTEGERS
2302 !
2303 ! NUMBER OF VARIABLES FOR LITENR (READ BY SKIPGEO)
2305  INTEGER nvarres
2306 !
2307 ! NUMBER OF ITERATIONS FOR PARAMETERS CALIBRATION
2309  INTEGER nitera
2310 !
2311 !-----------------------------------------------------------------------
2312 !
2313 ! 5) LOGICALS
2314 !
2315 ! IF YES: ACTIVATES THE ADJOINT MODE IN TELEMAC2D/PROPAG
2317  LOGICAL adjo
2318 !
2319 ! WHETHER THE ADJOINT SYSTEM RESULTS ARE PRINTED; NB 100=MAXVAR
2321  LOGICAL sorleoa(100)
2322 !
2323 ! WHETHER ...; NB 100=MAXVAR
2325  LOGICAL sorimpa(100)
2326 !
2327 ! FOR TRACERS IMPLICIT SOURCE TERMS
2329  LOGICAL, ALLOCATABLE :: yasmi(:)
2330 !
2331 !-----------------------------------------------------------------------
2332 !
2333 ! 6) STRINGS
2334 !
2335 !-----------------------------------------------------------------------
2336 !
2337 ! NAMES OF VARIABLES IN RES FILE
2339  CHARACTER(LEN=32) texres(100)
2340 !
2341 ! NAMES OF VARIABLES IN RBI FILE
2343  CHARACTER(LEN=32) texrbi(100)
2344 !
2345 ! NAMES OF VARIABLES IN REF FILE
2347  CHARACTER(LEN=32) texref(100)
2348 !
2349 ! KEYWORD "PARAMETER ESTIMATION"
2351  CHARACTER(LEN=72) estime
2352 !
2353 !=======================================================================
2354 !
2355 ! COPY OF SUBMIT STRINGS IN THE DICTIONARY
2357  CHARACTER(LEN=PATH_LEN) submit(4,300)
2358 !
2359 !-----------------------------------------------------------------------
2360 !
2361 ! 7) FRICTION DEFINITION BY ZONE
2362 !
2363 !-----------------------------------------------------------------------
2364 !
2365 ! ???????
2367  TYPE(friction_obj), TARGET :: frtab
2368 !
2369 ! ???????
2371  TYPE(bief_obj), TARGET :: kfropt, nkfrot
2372 !
2373 ! DEFAULT MANNING COEFFICIENT
2375  TYPE(bief_obj), TARGET :: ndefma
2376 !
2377 ! COEFFICIENTS FOR VEGETATION LAW AND VEGETATION LAW NUMBER
2379  TYPE(bief_obj), TARGET :: vcoeff, veglaw
2380 !
2381 ! ???????
2383  TYPE(bief_obj), TARGET :: ndef_b, kfro_b
2384 !
2385 ! NUMBER OF ZONES
2387  INTEGER:: nzones
2388 !
2389 ! MAXIMUM NUMBER OF FRICTION DOMAINS
2391  INTEGER:: nzonmx
2392 !
2393 ! IF YES, VEGETATION FRICTION
2395  LOGICAL:: vegetation
2396 !
2397 ! IF YES, FRICTION DATA
2399  LOGICAL:: frictb
2400 !
2401 ! DEFAULT MANNING VALUE (FOR COLEBROOK-WHITE LAW)
2403  DOUBLE PRECISION :: ndef
2404 !
2405 !-----------------------------------------------------------------------
2406 !
2407 ! 8) TELEMAC-2D FILES
2408 !
2409 !-----------------------------------------------------------------------
2410 !
2411 ! TELEMAC-2D FILES
2413  TYPE(bief_file), TARGET :: t2d_files(maxlu_t2d)
2414 !
2415 !-----------------------------------------------------------------------
2416 !
2417 ! 9) SECTIONS
2418 !
2419 !-----------------------------------------------------------------------
2420 !
2421 ! FOR CONTROL SECTIONS
2422 ! ALLOCATED AND INITIALISED IN READ_SECTIONS_TELEMAC2D
2424  type(chain_type), ALLOCATABLE :: chain(:)
2425 !
2426 !
2427 !-----------------------------------------------------------------------
2428 !
2429 ! 10) WEIRS
2430 !
2431 !-----------------------------------------------------------------------
2432 !
2433 ! FOR WEIRS IF TYPE = 2
2434 ! ALLOCATED AND INITIALISED IN LECSNG2
2436  type(weir_element) , ALLOCATABLE :: weirs(:)
2437  type(weir_element_proc), ALLOCATABLE :: weirs_proc(:)
2438  type(weir_nodes) , ALLOCATABLE :: wnodes(:)
2439  type(weir_nodes_proc) , ALLOCATABLE :: wnodes_proc(:)
2440  type(weir_nodes) , ALLOCATABLE :: wn_send(:)
2441  type(weir_nodes_proc) , ALLOCATABLE :: wn_send_proc(:)
2444  DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: w_buf_recv
2445  DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: w_buf_send
2446  DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: wt_buf_recv
2447  DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: wt_buf_send
2448  DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: wh_buf_recv
2449  DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: wh_buf_send
2451  INTEGER, DIMENSION(:), ALLOCATABLE :: weir_breach_start
2452  INTEGER, DIMENSION(:), ALLOCATABLE :: weir_breach_end
2453 !
2454 ! SAVED VARIABLES
2455 !
2456  ! majtrac
2457  DOUBLE PRECISION, ALLOCATABLE :: dst_mt(:,:)
2458  DOUBLE PRECISION, ALLOCATABLE :: dsp_mt(:),dsm_mt(:),corrt_mt(:)
2459  DOUBLE PRECISION,ALLOCATABLE :: gradi_mt(:),gradj_mt(:)
2460  DOUBLE PRECISION,ALLOCATABLE :: gradij_mt(:),gradji_mt(:)
2461  LOGICAL :: deja_mt = .false.
2462  ! read_fic_polygone and read_fic_points
2463  INTEGER nply
2464  INTEGER, PARAMETER :: max_ply = 21
2465  INTEGER, PARAMETER :: maxpoin_ply = 2100
2466  INTEGER :: npoin_ply(max_ply)
2467  DOUBLE PRECISION :: value_ply(maxpoin_ply)
2468  DOUBLE PRECISION :: x_ply(maxpoin_ply),y_ply(maxpoin_ply)
2469  ! read_fic_source
2471  INTEGER, PARAMETER :: maxvalue_rfs=2100
2473  DOUBLE PRECISION tl1_rfs,tl2_rfs,lastat_rfs
2474  DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: infic_rfs
2475  DOUBLE PRECISION, DIMENSION(:) , ALLOCATABLE :: time_rfs
2476  INTEGER src_ref_date(6)
2477  LOGICAL :: deja_rfs=.false.
2478  DOUBLE PRECISION :: src_tel_offset
2479  ! bilan.f
2481  DOUBLE PRECISION fluxn_old
2482  ! fluxpr_telemac2d
2483  DOUBLE PRECISION, ALLOCATABLE :: work_fpr(:)
2484  LOGICAL :: old_method_fpr=.false.
2485  LOGICAL :: init_fpr=.true.
2486  INTEGER :: nseo_fpr
2487  ! testeur
2488 ! FORMER ARRAY !!!
2489  DOUBLE PRECISION, ALLOCATABLE :: flux_testeur(:)
2490  LOGICAL :: deja_testeur = .false.
2491  ! nodalf_schureman
2492  INTEGER year,nday,hour,minute,second
2493  ! flucin
2494 ! AUTOMATIC EX ARRAYS!!!!!!
2495  DOUBLE PRECISION, ALLOCATABLE :: dsh_fc(:,:),dsu_fc(:,:)
2496  DOUBLE PRECISION, ALLOCATABLE :: dsv_fc(:,:)
2497  DOUBLE PRECISION, ALLOCATABLE :: dsp_fc(:),dsm_fc(:),dsz_fc(:,:)
2498  DOUBLE PRECISION, ALLOCATABLE :: corr_fc(:),dtll_fc(:)
2499  DOUBLE PRECISION, ALLOCATABLE :: gradi_fc(:,:),gradj_fc(:,:)
2500  DOUBLE PRECISION, ALLOCATABLE :: gradij_fc(:,:),gradji_fc(:,:)
2501  LOGICAL :: deja_fc = .false.
2502  ! nodalf_pugh
2504  ! read_fic_frliq
2505  LOGICAL :: deja_rff = .false.
2506  DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: infic_rff
2507  DOUBLE PRECISION, DIMENSION(:) , ALLOCATABLE :: time_rff
2508  INTEGER, PARAMETER :: maxvalue_rff = 2100
2511  DOUBLE PRECISION :: tl1_rff,tl2_rff,lastat_rff
2512  INTEGER liq_ref_date(6)
2513  DOUBLE PRECISION :: liq_tel_offset
2514  ! spectre
2515  INTEGER :: afbgn,afend
2516  DOUBLE PRECISION, ALLOCATABLE :: am(:,:),bm(:,:),ha(:)
2517  LOGICAL :: deja = .false.
2518  ! bord_tidal_bc
2519  LOGICAL :: deja_tbc = .false.
2520  INTEGER, ALLOCATABLE :: firsttide(:),lasttide(:)
2521  ! flusec_telemac2d
2522  LOGICAL :: deja_fs = .false.
2523  LOGICAL :: old_method_fs=.false.
2524  DOUBLE PRECISION, ALLOCATABLE :: vlx_fs(:),volneg_fs(:)
2525  DOUBLE PRECISION, ALLOCATABLE :: volpos_fs(:)
2526  INTEGER, ALLOCATABLE :: nseg_fs(:),liste_fs(:,:,:)
2527  ! bilant1
2528  DOUBLE PRECISION mastr0_bt1(100),mastr1_bt1(100)
2529  DOUBLE PRECISION mastr2_bt1(100),masten_bt1(100)
2530  DOUBLE PRECISION mastou_bt1(100),dirtot_bt1(100)
2531  ! preres_telemac2d
2532  LOGICAL :: deja1_preres = .false.
2533  LOGICAL :: deja2_preres = .false.
2534  LOGICAL :: deja3_preres = .false.
2535  ! breach
2536  LOGICAL :: dejalu_breach = .false.
2537  ! thomps
2538  LOGICAL :: init_thomps = .true.
2539  TYPE(bief_obj) :: fncar1,ftild1
2540  ! bord_tide
2541  LOGICAL :: deja_bt = .false.
2542  INTEGER nptfrl,ntide
2543  INTEGER, ALLOCATABLE :: firsttide_bt(:),lasttide_bt(:)
2544  INTEGER, ALLOCATABLE :: shifttide_bt(:)
2545  DOUBLE PRECISION, ALLOCATABLE :: ahm2(:),phm2(:)
2546  DOUBLE PRECISION, ALLOCATABLE :: ahs2(:),phs2(:)
2547  DOUBLE PRECISION, ALLOCATABLE :: ahn2(:),phn2(:)
2548  DOUBLE PRECISION, ALLOCATABLE :: ahm4(:),phm4(:)
2549  DOUBLE PRECISION, ALLOCATABLE :: aum2(:),pum2(:)
2550  DOUBLE PRECISION, ALLOCATABLE :: aus2(:),pus2(:)
2551  DOUBLE PRECISION, ALLOCATABLE :: aun2(:),pun2(:)
2552  DOUBLE PRECISION, ALLOCATABLE :: aum4(:),pum4(:)
2553  DOUBLE PRECISION, ALLOCATABLE :: avm2(:),pvm2(:)
2554  DOUBLE PRECISION, ALLOCATABLE :: avs2(:),pvs2(:)
2555  DOUBLE PRECISION, ALLOCATABLE :: avn2(:),pvn2(:)
2556  DOUBLE PRECISION, ALLOCATABLE :: avm4(:),pvm4(:)
2557  DOUBLE PRECISION, ALLOCATABLE :: fhxm2(:),fhym2(:)
2558  DOUBLE PRECISION, ALLOCATABLE :: fhxs2(:),fhys2(:)
2559  DOUBLE PRECISION, ALLOCATABLE :: fhxn2(:),fhyn2(:)
2560  DOUBLE PRECISION, ALLOCATABLE :: fhxm4(:),fhym4(:)
2561  DOUBLE PRECISION, ALLOCATABLE :: fuxm2(:),fuym2(:)
2562  DOUBLE PRECISION, ALLOCATABLE :: fuxs2(:),fuys2(:)
2563  DOUBLE PRECISION, ALLOCATABLE :: fuxn2(:),fuyn2(:)
2564  DOUBLE PRECISION, ALLOCATABLE :: fuxm4(:),fuym4(:)
2565  DOUBLE PRECISION, ALLOCATABLE :: fvxm2(:),fvym2(:)
2566  DOUBLE PRECISION, ALLOCATABLE :: fvxs2(:),fvys2(:)
2567  DOUBLE PRECISION, ALLOCATABLE :: fvxn2(:),fvyn2(:)
2568  DOUBLE PRECISION, ALLOCATABLE :: fvxm4(:),fvym4(:)
2569  DOUBLE PRECISION upvm2,upvn2,upvs2,ffmn2,ffm4
2570  DOUBLE PRECISION fm2,fs2,fn2,fm4
2571  ! bord_tide_misc
2572  INTEGER, PARAMETER :: misc_ncmx_btm = 61
2573  CHARACTER(LEN=4) :: misc_constid_btm(misc_ncmx_btm) =
2574  & (/'2MK6','2MN6','2MS6','2N2 ','2Q1 ',
2575  & '2SM2','2SM6','E2 ','Tta1','J1 ',
2576  & 'K1 ','K2 ','KJ2 ','KQ1 ','L2 ',
2577  & 'La2 ','M1 ','M2 ','M3 ','M4 ',
2578  & 'M6 ','M8 ','Mf ','MK3 ','MK4 ',
2579  & 'MKS2','Mm ','MN4 ','MO3 ','MP1 ',
2580  & 'MS4 ','MSf ','MSK6','MSN2','MSN6',
2581  & 'MSqm','Mtm ','Mu2 ','N2 ','N4 ',
2582  & 'Nu2 ','O1 ','OO1 ','P1 ','Pi1 ',
2583  & 'Q1 ','R2 ','Ro1 ','S1 ','S2 ',
2584  & 'S4 ','Sa ','Sig1','SK4 ','SN4 ',
2585  & 'Ssa ','T2 ','Phi1','Ki1 ','Psi1',
2586  & 'Z0 '/)
2587  LOGICAL :: deja_btm = .false.
2589  INTEGER, ALLOCATABLE :: firsttide_btm(:),lasttide_btm(:)
2590  INTEGER, ALLOCATABLE :: shifttide_btm(:)
2591  INTEGER, ALLOCATABLE :: indw_btm(:),indw2_btm(:),indw3_btm(:)
2592  CHARACTER(LEN=4), ALLOCATABLE :: namewave_btm(:)
2593  DOUBLE PRECISION, ALLOCATABLE :: ah_btm(:,:),ph_btm(:,:)
2594  DOUBLE PRECISION, ALLOCATABLE :: au_btm(:,:),pu_btm(:,:)
2595  DOUBLE PRECISION, ALLOCATABLE :: av_btm(:,:),pv_btm(:,:)
2596  DOUBLE PRECISION, ALLOCATABLE :: lon_btm(:,:),lat_btm(:,:)
2597  DOUBLE PRECISION, ALLOCATABLE :: upv_btm(:),ff_btm(:)
2598  DOUBLE PRECISION, ALLOCATABLE :: omega_btm(:),phcalhw_btm(:)
2599  ! flusec_t2d.f
2601  INTEGER, ALLOCATABLE :: sectionids(:)
2602  INTEGER, ALLOCATABLE :: direction(:)
2603  INTEGER :: nofsections
2604  END TYPE fluxline
2605  LOGICAL :: deja_flusect2d = .false.
2607  DOUBLE PRECISION :: time_flusect2d
2608  TYPE(fluxline), ALLOCATABLE :: fluxlinedata_flusect2d(:)
2609  DOUBLE PRECISION, ALLOCATABLE :: flx_flusect2d(:,:)
2610  DOUBLE PRECISION, ALLOCATABLE :: volflux_flusect2d(:,:)
2611  ! collect_values.f
2612  INTEGER :: msg_tag = 5000
2613  ! collect_values_trac.f
2614  INTEGER :: msg_tag_tra = 5000
2615  ! collect_values_wave.f
2616  INTEGER :: msg_tag_w = 5000
2617  ! prosou
2619  LOGICAL :: prosou_dejalu = .false.
2620  LOGICAL :: prosou_fv_dejalu = .false.
2621 !
2622  ! telemac2d.F
2623  DOUBLE PRECISION kmax
2624  DOUBLE PRECISION emax,sigmae,sigmak,c1
2625  ! YAFLULIM: If yes, flulim will be applied to segment fluxes when
2626  ! calling cvdftr
2627  ! YAFLODEL If yes, flodel has been computed
2630  INTEGER ref_t2d
2631  INTEGER trouve(maxvar+10)
2633  DOUBLE PRECISION kmin,flusor,mass_rain,fluent
2634  DOUBLE PRECISION masses,relaxs,relaxb
2635  DOUBLE PRECISION emin,estar,schmit,c2,cmu
2637  LOGICAL akep,sa
2638  LOGICAL imp
2639  LOGICAL,TARGET::leo,leo_trac
2641  CHARACTER(LEN=24), PARAMETER :: code1='TELEMAC2D '
2643  INTEGER ioptan_t2d
2645  INTEGER jjjj
2646  INTEGER :: alire(maxvar) = (/
2647  & 1,1,0,1,1,1,0,0,0,1,1,1,(0,jjjj=13,maxvar) /)
2648 ! ADVECTION FIELD USED FOR SISYPHE CALL
2650  TYPE(bief_obj), POINTER :: usis,vsis
2651 ! Number of iterations asked in the case file for api
2652  INTEGER :: total_iter
2654  TYPE(bief_obj), TARGET :: nes_dz
2656  DOUBLE PRECISION, ALLOCATABLE :: avail(:,:,:)
2657 !
2658  ! Criteria to stop the computation
2659  LOGICAL :: arret1, arret2, arret3
2660 !
2661  SAVE
2662 !
2663 ! ============================================
2664 !
2665  END MODULE declarations_telemac2d
type(bief_obj), target tel2tom
type(bief_obj), target fncar
type(bief_obj), target sec_r
type(bief_obj), target mat
double precision, dimension(:), allocatable phm4
character(len=4), dimension(misc_ncmx_btm) misc_constid_btm
double precision, dimension(:), allocatable phm2
integer, dimension(:), allocatable isce
double precision, dimension(8) bornes
type(bief_obj), target visct
type(bief_obj), target flux_old
type(bief_obj), target hn
double precision, dimension(:), allocatable flutent
double precision, dimension(:), allocatable vsce
double precision, dimension(:), allocatable fuys2
type(bief_obj), target altbus
type(bief_obj), target hc
type(bief_obj), target cv5
type(bief_obj), target w1
type(bief_obj), target hbtide
double precision, dimension(:), allocatable gradi_mt
integer, dimension(:), allocatable provel
type(bief_obj), target ubor
type(bief_obj), target a23
type(bief_obj), target npsing
integer, dimension(:), allocatable indw_btm
double precision, dimension(:), allocatable pus2
double precision, dimension(:), allocatable ahm2
double precision, dimension(:), allocatable volpos_fs
type(api_cpl), target sis_cpl
type(bief_obj), target cosdir
double precision, dimension(:), allocatable fuxn2
type(bief_obj), target aubor
type(bief_obj), target fu
double precision, dimension(:), allocatable flutsor
type(bief_obj), target pbor
type(bief_obj), target nun
type(bief_obj), target fluhbtemp
character(len=4), dimension(:), allocatable namewave_btm
type(bief_obj), target visc_s
type(weir_nodes), dimension(:), allocatable wnodes
double precision, dimension(:,:), allocatable wh_buf_recv
double precision, dimension(:), allocatable pun2
double precision, dimension(100) mastou_bt1
type(bief_obj), target te5
integer, dimension(:), allocatable lasttide_btm
double precision, dimension(:), pointer prive3
integer, dimension(:), allocatable firsttide_btm
integer, dimension(:), allocatable pts_curves
type(bief_obj), target it2
type(bief_obj), target zconv
type(bief_obj), target ro
double precision, dimension(:), allocatable phcalhw_btm
type(bief_obj), target bm2
type(bief_obj), target vtild
type(friction_obj), target frtab
double precision, dimension(:), allocatable fuxm4
type(bief_obj), target tam3
logical, dimension(:), allocatable oksl
type(bief_obj), target t
type(bief_obj), target flbor
type(bief_obj), target tcm2
double precision, dimension(:), allocatable upv_btm
integer, dimension(3), target mardat
type(bief_obj), target h
type(bief_obj), target qv
integer, dimension(:), allocatable lasttide
double precision, dimension(:), allocatable flux_testeur
double precision, dimension(100) mastr2_bt1
type(bief_obj), target htild
double precision, dimension(:), allocatable fhym2
type(bief_obj), target tbm1
type(bief_obj), target tmaxz
type(bief_obj), target zdig
type(bief_obj), target ylag
double precision, dimension(:), allocatable time_rff
type(bief_obj), pointer t11
type(bief_obj), target tmaxv
double precision, dimension(:,:), allocatable infic_rff
type(bief_obj), target sorbus
double precision, dimension(:), pointer prive4
double precision, dimension(:), allocatable fhyn2
type(bief_obj), target du
integer, dimension(:), allocatable firsttide_bt
double precision, dimension(:,:), allocatable flx_flusect2d
double precision, dimension(:), allocatable fvyn2
type(bief_obj), target btbor
type(bief_obj), target zfslop
double precision, dimension(:,:,:), allocatable avail
integer, dimension(:), allocatable weir_breach_end
type(bief_obj), pointer t8
type(bief_obj), target ak
type(bief_obj), target ndgb1
type(bief_obj), pointer t3
type(bief_obj), target uconv
type(bief_obj), target cm1
character(len=32), dimension(10) varcla
double precision, dimension(:), allocatable, target flux_boundaries
type(bief_obj), target clsflo
integer, dimension(:), allocatable weir_breach_start
double precision, dimension(:), allocatable tw1_algae
type(bief_obj), target maskpt
double precision, dimension(:), allocatable fhxm2
type(bief_obj), target flulimebe
type(bief_obj), target sindir
type(bief_obj), target tscexp
double precision, dimension(:), allocatable corr_fc
type(bief_obj), target viscsa
double precision, dimension(:,:), allocatable w_buf_recv
double precision, dimension(:), allocatable dsp_fc
type(bief_obj), target hit1
double precision, dimension(:), allocatable fhym4
type(bief_obj), target it4
logical, dimension(:), allocatable yasmi
type(bief_obj), target nes_dz
type(bief_obj), target visc
integer, dimension(max_ply) npoin_ply
type(weir_element), dimension(:), allocatable weirs
type(weir_nodes_proc), dimension(:), allocatable wn_send_proc
double precision, dimension(:), allocatable mastou
type(bief_obj), target fricbus
type(bief_obj), target haubus
integer, dimension(:), allocatable shifttide_btm
type(bief_obj), target unsv2d
double precision, dimension(:,:), allocatable dsh_fc
type(weir_nodes_proc), dimension(:), allocatable wnodes_proc
type(bief_obj), pointer t1
type(bief_obj), target admat
double precision, dimension(:), pointer x
double precision, dimension(:), allocatable dsp_mt
double precision, dimension(:), allocatable fvxs2
type(bief_obj), target livbor
type(bief_obj), target hbor
type(bief_obj), target hcstok
type(bief_obj), target nubor
double precision, dimension(:), allocatable ralgae
type(bief_obj), target fywave
type(bief_obj), target dkaxcr
double precision, dimension(:,:), allocatable ah_btm
type(bief_obj), target fncar2
type(bief_obj), target it1
type(bief_obj), target deblag
double precision, dimension(:), allocatable ha
double precision, dimension(:,:), allocatable wt_buf_send
double precision, dimension(50) periaf
type(bief_obj), target ftild
integer, dimension(:,:,:), allocatable liste_fs
type(bief_obj), target bm1s
character(len=32), dimension(100) texref
type(bief_obj), target qq
type(bief_obj), target tbus
double precision, dimension(:), allocatable aum4
double precision, dimension(:,:), allocatable am
double precision, dimension(:,:), allocatable lon_btm
type(bief_obj), target f
double precision, dimension(:), allocatable, target debit
double precision, dimension(:), allocatable pum2
type(bief_obj), target yflot
integer, dimension(maxvar+10) trouve
type(bief_obj), target qu
type(bief_obj), target clh
type(bief_obj), target c5
logical, dimension(:,:), allocatable oktr
type(bief_obj), pointer t22
double precision, dimension(:), allocatable fvxn2
type(bief_obj), target eltflo
type(bief_obj), target zfinbr
type(bief_obj), target matadj
type(bief_obj), target tb
type(bief_obj), target ndefma
double precision, dimension(:,:), allocatable gradi_fc
type(bief_obj), target dv
type(bief_obj), target fv
double precision, dimension(:), allocatable dalgae
type(bief_obj), target fn
type(bief_obj), target hh
type(bief_obj), target advar
double precision, target fair
integer, dimension(6) liq_ref_date
double precision, dimension(:,:), allocatable pu_btm
double precision, dimension(:), pointer prive2
type(bief_obj), target ctrash
double precision, dimension(:,:), allocatable dsz_fc
double precision, dimension(:), allocatable aus2
double precision, dimension(2) elder
type(bief_obj), target tam1
type(bief_obj), target maxz
type(bief_obj), target prive
double precision, dimension(:), allocatable dtll_fc
type(bief_obj), target finbrw
type(bief_obj), target corr_hl
double precision, dimension(:), allocatable fvxm2
double precision, dimension(:), allocatable train
double precision, dimension(4) tolest
type(bief_obj), target cfbor
type(bief_obj), target neiseg
type(bief_obj), target phidig
type(bief_obj), target pondsb
type(bief_obj), pointer vsis
type(bief_obj), target nkfrot
integer, dimension(:), allocatable firsttide
character(len=32), dimension(4) names_prive
type(bief_obj), pointer t12
double precision, dimension(:), allocatable pvs2
double precision, dimension(100) masten_bt1
integer, dimension(:), allocatable ctrlsc
logical, dimension(100) sorimpa
integer, dimension(4) iconvf
type(bief_obj), target tpr5
type(bief_obj), target boundary_colour
double precision, dimension(:,:), allocatable bm
type(bief_obj), target polwdt
type(bief_obj), target vv
double precision, dimension(:), allocatable fuym4
type(bief_obj), target vn
type(bief_obj), target eptild
type(bief_obj), target zrl
double precision, dimension(:), allocatable vites
double precision, dimension(:,:), allocatable gradij_fc
integer, parameter misc_ncmx_btm
double precision, dimension(:), allocatable avm2
double precision, dimension(:,:), allocatable w_buf_send
type(bief_obj), target h0
type(bief_obj), pointer t21
type(bief_obj), target utild
double precision, dimension(:), allocatable omega_btm
type(bief_obj), target zfe
integer, dimension(100) list_pts
type(bief_obj), target cf
type(bief_obj), target nponbr
type(bief_obj), target fluxt_old
type(bief_obj), target dsz
type(bief_obj), target c56
type(bief_obj), target fxwave
type(bief_obj), target aktild
integer, dimension(:,:), allocatable pt_in_poly
double precision, dimension(:), allocatable ff_btm
type(bief_obj), target veglaw
integer, dimension(:), allocatable, target bnd_tide
type(bief_obj), target flux
type(bief_obj), target cv
double precision, dimension(:), allocatable fvxm4
type(bief_obj), target volu2d
character(len=32), dimension(maxvar) names_advar
logical, dimension(maxvar) sorimp
type(bief_obj), target limsa
double precision, target ctidev
double precision, dimension(:), allocatable fuyn2
type(bief_obj), target tb2
integer, dimension(:), allocatable pts_reg
character(len=path_len), dimension(4, 300) submit
double precision, dimension(:), allocatable dsm_fc
type(bief_obj), pointer t10
type(bief_obj), target atbor
double precision, target dtcas
type(fluxline), dimension(:), allocatable fluxlinedata_flusect2d
integer, dimension(:), allocatable sta_dis_curves
type(bief_obj), pointer t16
type(bief_obj), target te1
type(bief_obj), target texp
double precision, dimension(:), allocatable fvys2
double precision, dimension(:), allocatable avs2
double precision, dimension(:), allocatable talgae
double precision, dimension(:), allocatable ahm4
double precision, dimension(:), allocatable mastrain
double precision, dimension(:,:), allocatable pv_btm
type(bief_obj), target csbus
type(bief_obj), target chbord
type(bief_obj), target te3
type(bief_obj), pointer t13
type(bief_obj), pointer t19
type(bief_obj), target timp
type(bief_obj), target vbtide
type(weir_element_proc), dimension(:), allocatable weirs_proc
logical, dimension(:,:), allocatable oktrsce
type(bief_obj), target corr_ul
type(bief_obj), target cebus
type(bief_obj), target liubor
type(bief_obj), target masktr
type(bief_obj), target hprop
double precision, dimension(:), allocatable fhys2
double precision, dimension(:), allocatable fvym2
type(bief_obj), target vbus
logical, dimension(maxvar) sorleo
type(bief_obj), target zdecbr
type(bief_obj), target finflo
double precision, dimension(:,:), allocatable gradj_fc
type(bief_obj), target dbus
integer, dimension(:), allocatable rel_algae
type(bief_obj), target v2dpar
integer, dimension(:), allocatable shifttide_bt
double precision, target tmax
double precision, dimension(maxpoin_ply) y_ply
double precision, dimension(:), allocatable trac0
type(bief_obj), target durbr
type(bief_obj), target ftild2
type(bief_obj), target tagflo
type(bief_obj), target optnbr
type(bief_obj), target cv1
type(bief_obj), target ifamas
double precision, dimension(:,:), allocatable xcoo
double precision, dimension(100) mastr0_bt1
double precision, dimension(maxpoin_ply) x_ply
character(len=32), dimension(maxvar) textpr
type(slvcfg), dimension(:), allocatable slvtra
type(bief_obj), target debflo
type(bief_obj), pointer t6
type(bief_obj), target v
type(bief_obj), target ubus
double precision, dimension(:), allocatable gradj_mt
type(bief_obj), target uu
double precision, dimension(:), allocatable, target cote
type(bief_obj), target unk
integer, dimension(:), allocatable frtype
type(bief_obj), target uit1
type(bief_obj), target corr_vr
double precision, target propnu
type(bief_obj), target iabst
type(bief_obj), target secbus
type(bief_obj), target ndef_b
type(bief_obj), target ht
type(bief_obj), target u
type(bief_obj), target pluie
type(bief_obj), target hm0
logical, dimension(4) convv
double precision, dimension(:), allocatable avm4
integer, dimension(5) discre
double precision, dimension(:,:), allocatable dsu_fc
type(bief_obj), target adjdir
type(bief_obj), target corr_ur
double precision, dimension(:), allocatable ahn2
character(len=9), dimension(maxvalue_rff) choix_rff
integer, dimension(:), allocatable iconvft
double precision, dimension(:), allocatable corrt_mt
integer, dimension(:), allocatable lasttide_bt
integer, dimension(:), allocatable indw3_btm
type(bief_obj), target inibrw
type(bief_obj), target zf
type(bief_obj), target corr_zl
double precision, dimension(:), allocatable gradij_mt
type(bief_obj), target corr_i
type(bief_obj), target bm1
double precision, dimension(:), allocatable usce
type(bief_mesh), target mesh
type(bief_obj), target vconv
type(bief_obj), target uetuta
type(bief_obj), target secmou
type(bief_obj), target varcl
type(bief_obj), target kbor
type(weir_nodes), dimension(:), allocatable wn_send
type(bief_obj), target numliq
type(bief_obj), target epn
type(bief_obj), target ep
type(bief_obj), target ubtide
type(bief_obj), target kfropt
type(bief_obj), target qbor
type(bief_obj), target limtra
type(bief_obj), target tm1
type(bief_obj), target kfro_b
double precision, dimension(:), allocatable fuym2
character(len=24), parameter code1
double precision, dimension(:,:,:), allocatable qz
type(bief_obj), target it3
type(bief_obj), target optero
type(bief_obj), target vbor
type(bief_obj), target cn
type(bief_obj), target dhn
type(bief_obj), target lihbor
double precision, dimension(:), allocatable pvm4
type(bief_obj), target adunk
type(bief_obj), target tam2
type(bief_obj), target cv1s
logical, dimension(:), allocatable okvit
double precision, dimension(2) wind_spd
type(bief_obj), target tom2tel
integer, dimension(:), allocatable indw2_btm
type(bief_obj), target flulim
type(bief_obj), target cv3
type(bief_obj), target un
double precision, dimension(:), allocatable aun2
type(bief_obj), target te4
double precision, dimension(:), allocatable fvym4
type(bief_obj), target fluhtemp
logical, dimension(:), allocatable okdebsce
type(bief_obj), target potmaxret
double precision, dimension(maxpoin_ply) value_ply
type(bief_obj), target dkaycr
type(bief_obj), target accr
type(bief_obj), target shplag
type(bief_obj), target zflats
double precision, target msl
double precision, dimension(:), allocatable phs2
type(bief_obj), target ebor
type(bief_obj), target dirmoy
integer, dimension(6) src_ref_date
type(bief_obj), pointer t14
integer, dimension(:), allocatable yalgae
type(bief_obj), target tbm2
type(bief_obj), target msksec
double precision, dimension(:), allocatable dsce
type(bief_obj), target curbrw
character(len=32), dimension(100) texrbi
type(bief_obj), target maxv
type(bief_obj), target rbor
type(bief_obj), target vcoeff
type(bief_obj), pointer t15
type(bief_obj), pointer t18
double precision, dimension(:), allocatable aum2
double precision, dimension(:), allocatable pvm2
type(bief_obj), target bm2s
double precision, dimension(:), allocatable volneg_fs
double precision, dimension(:,:), allocatable dst_mt
real, dimension(:), allocatable w
type(bief_obj), target zone
type(bief_obj), pointer t17
type(bief_obj), target corr_hr
double precision, dimension(:), allocatable vlx_fs
double precision, dimension(:), allocatable time_rfs
double precision, dimension(:), allocatable ahs2
double precision, dimension(:), allocatable difnu
double precision, dimension(:,:), allocatable tsce2
double precision, dimension(:,:), allocatable wt_buf_recv
double precision, dimension(:,:), allocatable infic_rfs
integer, dimension(3), target martim
type(bief_obj), target ud
integer, dimension(:), allocatable tnp
type(bief_obj), target cm2
double precision, dimension(:), allocatable pvn2
type(bief_mesh), target finemesh
type(bief_obj), target lrgbus
character(len=20), target equa
type(bief_obj), target limkep
double precision, dimension(:), allocatable fuxs2
type(bief_obj), target delbus
double precision, dimension(:,:), allocatable av_btm
type(bief_obj), target entbus
type(bief_obj), target clpbus
double precision, dimension(3) criper
character(len=32), dimension(maxvar) texte
type(bief_obj), target pp
type(bief_obj), target eltlag
type(bief_obj), pointer ikle
double precision, dimension(:,:), allocatable volflux_flusect2d
double precision, dimension(:), allocatable mastr0
double precision, dimension(:), allocatable ysce
type(bief_obj), target nutild
type(bief_obj), target angbus
double precision, dimension(:), allocatable fuxm2
type(bief_obj), target logfr
double precision, dimension(:), allocatable ealgae
type(bief_obj), target varsor
double precision, dimension(:), allocatable dsce2
type(bief_obj), target clu
type(bief_obj), target numtide
type(bief_obj), target chestr0
character(len=32), dimension(:), allocatable nametrac
type(bief_obj), pointer t20
type(bief_obj), target w1deb
type(bief_obj), target smh
type(bief_obj), pointer usis
logical, dimension(100) sorleoa
type(chain_type), dimension(:), allocatable chain
double precision, dimension(:,:), allocatable wh_buf_send
type(bief_obj), target vd
type(bief_obj), target udel
type(bief_obj), target te2
double precision, dimension(:,:), allocatable gradji_fc
type(bief_obj), target circ
type(bief_obj), target limpro
character(len=32), dimension(100) texres
double precision, target dtn
double precision, dimension(:), allocatable avn2
type(bief_obj), pointer t4
type(bief_obj), target zcrbr
type(bief_obj), target wdist
type(bief_obj), target rr
type(bief_obj), target xlag
type(bief_obj), target s
type(bief_obj), target am3
double precision, dimension(:), allocatable tracer
type(bief_obj), target vdel
type(bief_obj), target dh
double precision, dimension(:), allocatable xsce
type(bief_obj), target mask
double precision, dimension(:,:), allocatable dsv_fc
double precision, target ctide
integer, dimension(4) optsup
double precision, dimension(:), allocatable pum4
double precision, dimension(:,:), allocatable au_btm
type(bief_obj), target orbvel
type(bief_obj), target cv2
double precision, target at
double precision, dimension(2) calmixlength
type(bief_obj), target varsora
double precision, dimension(:,:), allocatable ycoo
type(bief_obj), target corr_j
type(bief_obj), target unkadj
type(bief_obj), target corr_zr
double precision, dimension(:), allocatable fhxs2
double precision, dimension(:), allocatable mastr2
type(bief_obj), target vit1
double precision, dimension(:), pointer y
type(bief_obj), pointer t2
type(api_cpl), target gai_cpl
logical, dimension(:), allocatable okq
double precision, dimension(:,:), allocatable lat_btm
type(bief_obj), target ttild
type(bief_obj), target sec_tau
type(bief_obj), target lbus
type(bief_obj), target hstok
type(bief_obj), target xflot
type(bief_obj), target flodel
type(bief_obj), target am1
double precision, dimension(100) mastr1_bt1
type(bief_obj), target tn
type(bief_obj), target hd
double precision, dimension(:,:), allocatable tsce
type(bief_obj), target aabus
character(len=9), dimension(maxvalue_rfs) choix_rfs
type(bief_obj), target smtr
double precision, dimension(:), allocatable fhxm4
double precision, dimension(:), allocatable gradji_mt
double precision, dimension(:), pointer prive1
type(bief_obj), target mbor
integer, dimension(:), allocatable nseg_fs
type(bief_obj), target shpflo
double precision, dimension(:), allocatable work_fpr
type(bief_obj), target dm1
type(bief_obj), target phas
type(bief_obj), target nbndbr
double precision, dimension(:,:), allocatable ph_btm
type(bief_obj), pointer t7
type(bief_obj), target rhs
double precision, dimension(:), allocatable masten
integer, dimension(maxvar) alire
double precision, dimension(:), allocatable area_p
type(bief_obj), target tdecbr
type(bief_obj), target longbus
double precision, dimension(:), allocatable massou
type(bief_obj), target accrof
type(bief_obj), target flbortra
type(bief_obj), target indbr
type(bief_obj), target numpsd
type(bief_obj), target ampl
double precision, target dt
type(bief_obj), target dirbor
double precision, dimension(:), allocatable dsm_mt
type(bief_obj), target corr_vl
type(bief_obj), pointer t5
type(bief_obj), target tbor
type(bief_obj), target litbor
type(bief_obj), target chestr
type(bief_obj), target a32
type(bief_file), dimension(maxlu_t2d), target t2d_files
type(bief_obj), target finlag
type(bief_obj), target fluxt
type(bief_obj), target adrhs
type(bief_obj), target clv
double precision, dimension(:), allocatable tw2_algae
double precision, dimension(10) coetsunami
type(bief_obj), target tcm1
double precision, dimension(:), allocatable fhxn2
double precision, dimension(100) dirtot_bt1
type(bief_obj), pointer t9
double precision, dimension(:), allocatable phn2
double precision, dimension(:), allocatable a_algae
type(bief_obj), target am2
character(len=32), dimension(100) name_pts
integer, dimension(:), allocatable optadv_tr
double precision, target at0
type(bief_obj), target maskel
type(bief_obj), target akn
type(bief_obj), target ndga1