The TELEMAC-MASCARET system  trunk
declarations_gaia.f
Go to the documentation of this file.
1 ! ************************
2  MODULE declarations_gaia
3 ! ************************
4 !
5 !
6 !***********************************************************************
7 ! GAIA
8 !***********************************************************************
9 !
11 !
12 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13 !
14  USE bief_def
15 !
16 ! NOTE: this declaration file is organised in 10 parts:
17 !
18 ! 1) Vectors (will be declared as BIEF_OBJ structures)
19 ! 2) Matrices (will be declared as BIEF_OBJ structures)
20 ! 3) Blocks (will be declared as BIEF_OBJ structures)
21 ! 4) Integers
22 ! 5) Logical values
23 ! 6) Reals
24 ! 7) Strings
25 ! 8) SLVCFG structures
26 ! 9) Mesh structure
27 ! 10) Aliases
28 !
29 !-----------------------------------------------------------------------
30 !
31 ! 1) Vectors
32 !
33 !-----------------------------------------------------------------------
34 !
36 !
37  TYPE(bief_obj), TARGET :: e
38 !
40 !
41  TYPE(bief_obj), TARGET :: ecpl
42 !
44 !
45  TYPE(bief_obj), TARGET :: z
46 !
48 !
49  TYPE(bief_obj), TARGET :: evol_mb
50 !
52 !
53  TYPE(bief_obj), TARGET :: evol_ms
54 !
56 !
57  TYPE(bief_obj), TARGET :: evol_mc
58 !
60 !
61  TYPE(bief_obj), TARGET :: evol_mm
62 !
64 !
65  TYPE(bief_obj), TARGET :: esomt
66 !
68 !
69  TYPE(bief_obj), TARGET :: cumbe
70 !
72 ! differentiation with Nag
73 !
74  TYPE(bief_obj), TARGET :: emax
75 !
77 !
78  TYPE(bief_obj), TARGET :: qu
79 !
81 !
82  TYPE(bief_obj), TARGET :: qv
83 !
85 !
86  TYPE(bief_obj), TARGET :: q
87 !
89 !
90  TYPE(bief_obj), TARGET :: qs
91 !
93 !
94  TYPE(bief_obj), TARGET :: qsx,qsy
95 !
97 !
98  TYPE(bief_obj), TARGET :: qs_c
99 !
101 !
102  TYPE(bief_obj), TARGET :: qsxc,qsyc
103 !
105 !
106  TYPE(bief_obj), TARGET :: hn,hn_gai
107 !
109 !
110  TYPE(bief_obj), TARGET :: u2d,v2d
111 !
113 !
114  TYPE(bief_obj), TARGET :: unorm
115 !
117 !
118  TYPE(bief_obj), TARGET :: thetac
119 !
121 !
122  TYPE(bief_obj), TARGET :: hcpl
123 !
125 !
126  TYPE(bief_obj), TARGET :: ebor
127 !
130 !
131  TYPE(bief_obj), TARGET :: qbor
132 !
135 !
136  TYPE(bief_obj), TARGET :: q2bor
137 !
139 !
140  TYPE(bief_obj), TARGET :: flbor
141 !
143 !
144  TYPE(bief_obj), TARGET :: zf
145 !
147 !
148  TYPE(bief_obj), TARGET :: zr
149 !
151 !
152  TYPE(bief_obj), TARGET :: zrl ! Nestor
153 !
155 !
156  TYPE(bief_obj), TARGET :: zref
157 !
159 !
160  TYPE(bief_obj), TARGET :: volu2d
161 !
163 !
164  TYPE(bief_obj), TARGET :: v2dpar
165 !
167 !
168  TYPE(bief_obj), TARGET :: unsv2d
169 !
171 !
172  TYPE(bief_obj), TARGET :: calfa_cl
173 !
175 !
176  TYPE(bief_obj), TARGET :: salfa_cl
177 !
179 !
180  TYPE(bief_obj), TARGET :: radsec
181 !
183 !
184  TYPE(bief_obj), TARGET :: s
185 !
187 !
188  TYPE(bief_obj), TARGET :: maskpt
189 !
191 !
192  TYPE(bief_obj), TARGET :: masktr
193 !
195 !
196  TYPE(bief_obj), TARGET :: maskb
197 !
199 !
200  TYPE(bief_obj), TARGET :: maskel
201 !
203 !
204  TYPE(bief_obj), TARGET :: msktmp
205 !
207 !
208  TYPE(bief_obj), TARGET :: w1
209 !
210 ! WAVE DATA
211 ! --------
212 !
214 !
215  TYPE(bief_obj), TARGET :: thetaw
216 !
218 !
219  TYPE(bief_obj), TARGET :: fw
220 !
222 !
223  TYPE(bief_obj), TARGET :: uw
224 !
226 !
227  TYPE(bief_obj), TARGET :: hw
228 !
230 !
231  TYPE(bief_obj), TARGET :: tw
232 !
234 !
235  TYPE(bief_obj), TARGET :: ifamas
236 !
238 !
239  TYPE(bief_obj), TARGET :: it1,it2,it3,it4
240 !
242 !
243  TYPE(bief_obj), TARGET :: liebor
244 !
246 !
247  TYPE(bief_obj), TARGET :: liqbor
248 !
250 !
251  TYPE(bief_obj), TARGET :: limtec
252 !
254 !
255  TYPE(bief_obj), TARGET :: coefpn
256 !
258 !
259  TYPE(bief_obj), TARGET :: numliq
260 !
262 !
263  TYPE(bief_obj), TARGET :: tob
264 !
266 !
267  TYPE(bief_obj), TARGET :: taup
268 !
270 !
271  TYPE(bief_obj), TARGET :: cf
272 !
274 !
275  TYPE(bief_obj), TARGET :: tobw
276 !
278 !
279  TYPE(bief_obj), TARGET :: tobcw_mean
280 !
282 !
283  TYPE(bief_obj), TARGET :: tobcw_max
284 !
287 !
288  TYPE(bief_obj), TARGET :: mu
289 !
291 !
292  TYPE(bief_obj), TARGET :: ks
293 !
295 !
296  TYPE(bief_obj), TARGET :: ksp
297 !
299 !
300  TYPE(bief_obj), TARGET :: ksr
301 !
303 !
304  TYPE(bief_obj), TARGET :: acladm
305 !
307 !
308  TYPE(bief_obj), TARGET :: unladm
309 !
311 !
312  TYPE(bief_obj), TARGET :: nlayer
313 !
315 !
316  TYPE(bief_obj), TARGET :: hiding
317 !
319 !
320  TYPE(bief_obj), TARGET :: elay
321 !
323 !
324  TYPE(bief_obj), TARGET :: estrat
325 !
327 !
328  TYPE(bief_obj), TARGET :: fludp
329 !
331 !
332  TYPE(bief_obj), TARGET :: fludpt,fludpt_adv
333 !
335 !
336  TYPE(bief_obj), TARGET :: fluer,fluerdh,fluer_adv
337 !
339 !
340  TYPE(bief_obj), TARGET :: fluert
341 !
343 !
344  TYPE(bief_obj), TARGET :: cstaeq
345 !
347 !
348  TYPE(bief_obj), TARGET :: csratio
349 !
351 !
352  TYPE(bief_obj), TARGET :: uconv_gai,vconv_gai
353 !
355 !
356  TYPE(bief_obj), TARGET :: hprop
357 !
359 !
360  TYPE(bief_obj), TARGET :: afbor,bfbor
361 !
363 !
364  TYPE(bief_obj), TARGET :: flbor_gai
365 !
367 !
368  TYPE(bief_obj), TARGET :: flbortra
369 !
370 ! TYPES OF BOUNDARY CONDITIONS FOR H : LIHBOR
371 ! TYPES OF BOUNDARY CONDITIONS FOR PROPAGATION : LIMPRO
372 ! POINTS : .1:H .2:U .3:V
373 ! SEGMENTS : .4:H .5:U .6:V
374 !
376 !
377  TYPE(bief_obj), TARGET :: lihbor
378 !
380 !
381  TYPE(bief_obj), TARGET :: limpro
382 !
384 !
385  TYPE(bief_obj), TARGET :: limdif
386 !
388 !
389  TYPE(bief_obj), TARGET :: boundary_colour
390 !
392 !
393  TYPE(bief_obj), TARGET :: clt,clu,clv
394 !
396 !
397  TYPE(bief_obj), TARGET :: te1,te2,te3
398 !
400 !
401  TYPE(bief_obj), TARGET :: kx,ky,kz
402 !
404 !
405  TYPE(bief_obj), TARGET :: breach
406 !
408 !
409  TYPE(bief_obj), TARGET :: ms_sable,ms_vase
410 !
412 !
413  DOUBLE PRECISION,DIMENSION(:,:,:),TARGET,ALLOCATABLE :: mass_mud
414 !
416 !
417  DOUBLE PRECISION,DIMENSION(:,:,:),TARGET,ALLOCATABLE :: mass_sand
418 !
420 !
421  DOUBLE PRECISION,DIMENSION(:,:), ALLOCATABLE :: mass_mud_tot
422 !
424 !
425  DOUBLE PRECISION,DIMENSION(:,:), ALLOCATABLE :: mass_sand_tot
426 !
428 !
429  DOUBLE PRECISION,DIMENSION(:,:), ALLOCATABLE :: mass_mix_tot
430 !
432 !
433  DOUBLE PRECISION,DIMENSION(:,:,:),TARGET,ALLOCATABLE :: ratio_sand
434 !
436 !
437  DOUBLE PRECISION,DIMENSION(:,:,:),TARGET,ALLOCATABLE :: ratio_mud
438 !
440 !
441  DOUBLE PRECISION,DIMENSION(:,:), ALLOCATABLE :: ratio_mud_sand
442 !
444 !
445  DOUBLE PRECISION,DIMENSION(:), ALLOCATABLE :: ratio_debimp
446 !
447 ! Variables allocated only for SUSPENSION_ERODE
448  DOUBLE PRECISION, ALLOCATABLE :: qer_mud(:),qer_sand(:),time(:)
449  DOUBLE PRECISION, ALLOCATABLE :: qe_moy(:)
450  DOUBLE PRECISION,DIMENSION(:,:,:), ALLOCATABLE :: toce_mix
451  DOUBLE PRECISION,DIMENSION(:,:,:), ALLOCATABLE :: cae_ilay
452 !
453  DOUBLE PRECISION,DIMENSION(:,:), ALLOCATABLE :: fluer_pur_mud
454  DOUBLE PRECISION,DIMENSION(:,:), ALLOCATABLE :: fluer_pur_sand
456  DOUBLE PRECISION,DIMENSION(:,:), ALLOCATABLE :: fluer_mix
457 !
459 !
460  DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: bedload_b_flux
461 !
463 !
464  DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: sumbedload_b
465 !
467 ! variable for mass balance
468 !
469  DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: sumbedload_b_flux
470 !
472 !
473  DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: mcumucla
474 !
475 !
476 !-----------------------------------------------------------------------
477 !
478 ! 2) MATRICES
479 !
480 !-----------------------------------------------------------------------
481 !
483 !
484  TYPE(bief_obj), TARGET :: mbor
485 !
487 !
488  TYPE(bief_obj), TARGET :: am1_s,am2_s
489 !
490 !-----------------------------------------------------------------------
491 !
492 ! 3) BLOCKS
493 !
494 !-----------------------------------------------------------------------
495 !
497 !
498  TYPE(bief_obj), TARGET :: mask
499 !
501 !
502  TYPE(bief_obj), TARGET :: tb
503 !
505 !
506  TYPE(bief_obj), TARGET :: prive
507 !
509 !
510  TYPE(bief_obj), TARGET :: advar
511 !
513 !
514  TYPE(bief_obj), TARGET :: varcl
515 !
517 !
518  TYPE(bief_obj), TARGET :: varhyd
519 !
521 !
522  TYPE(bief_obj), TARGET :: varsor
523 !
525 !
526  DOUBLE PRECISION,DIMENSION(:,:,:),TARGET,ALLOCATABLE::pro_f
527 !
529 !
530  DOUBLE PRECISION,DIMENSION(:,:,:),TARGET,ALLOCATABLE::pro_d
531 !
533 !
534  DOUBLE PRECISION,DIMENSION(:,:,:),TARGET,ALLOCATABLE::avail
535 !
537 !
538  DOUBLE PRECISION,DIMENSION(:,:),TARGET,ALLOCATABLE :: es
539 !
541 !
542  DOUBLE PRECISION,DIMENSION(:,:),TARGET,ALLOCATABLE::m2t
543 !
545 !
546  DOUBLE PRECISION,DIMENSION(:),TARGET,ALLOCATABLE :: mpa2t
547 !
549 !
550  TYPE(bief_obj), TARGET :: ratios
551 !
553 !
554  TYPE(bief_obj), TARGET :: ratiom
555 !
557 !
558  TYPE(bief_obj), TARGET :: laythi
559 !
561 !
562  TYPE(bief_obj), TARGET :: layconc
563 !
565 !
566  TYPE(bief_obj), TARGET :: laypor
567 !
569 !
570  TYPE(bief_obj), TARGET :: mass_s
571 !
573 !
574  TYPE(bief_obj), TARGET :: mass_m
575 !
578 !
579  TYPE(bief_obj), TARGET :: mtransfer
580 !
583 !
584  TYPE(bief_obj), TARGET :: tocemud
585 !
588 !
589  TYPE(bief_obj), TARGET :: parthe
590 !
592 !
593  TYPE(bief_obj), TARGET :: qscl
594 !
596 !
597  TYPE(bief_obj), TARGET :: qscl_c
598 !
600 !
601  TYPE(bief_obj), TARGET :: qsclxc, qsclyc
602 !
604 !
605  TYPE(bief_obj), TARGET :: mudb
607 !
608  TYPE(bief_obj), TARGET :: f_mudb
609 !
611 !
612  TYPE(bief_obj), TARGET :: qscl_s
613 !
615 !
616  TYPE(bief_obj), TARGET :: zfcl_c
617 !
619 !
620  TYPE(bief_obj), TARGET :: evcl_mb
621 !
623 !
624  TYPE(bief_obj), TARGET :: evcl_ms
625 !
627 !
628  TYPE(bief_obj), TARGET :: zfcl_ms
629 !
631 !
632  TYPE(bief_obj), TARGET :: mpm_aray
633 !
635 !
636  TYPE(bief_obj), TARGET :: flulim_gai
637 !
639 !
640  TYPE(bief_obj), TARGET :: flbcla
641 !
643 !
644  DOUBLE PRECISION,DIMENSION(:,:),TARGET,ALLOCATABLE::ivide
645 !
646 !-----------------------------------------------------------------------
647 !
648 ! 4) INTEGERS
649 !
650 !-----------------------------------------------------------------------
651 !
652 ! KEYWORDS AND PARAMETERS
653 !
655 !
656  INTEGER, ALLOCATABLE :: pro_max(:)
657 !
659 !
660  INTEGER, PARAMETER :: maxvar = 500
661 !
663 !
664  INTEGER maxfro
665 !
667 !
668  INTEGER nfrliq
669 !
671 !
672  INTEGER optsup
673 !
675 !
676  INTEGER icf
677 !
679 !
680  INTEGER nvarcl
681 !
683 !
685 !
687 !
688  INTEGER optban
689 !
691 !
692  INTEGER lvmac
693 !
695 !
696  INTEGER optass
697 !
699 !
700  INTEGER nsous
701 !
703 !
704  INTEGER mardat(3)
705 !
707 !
708  INTEGER martim(3)
709 !
711 !
712  INTEGER produc
713 !
715 !
716  INTEGER ptinig
717 !
719 !
720  INTEGER ptinil
721 !
723 !
724  INTEGER npriv,n_names_priv
725 !
727 !
728  INTEGER nadvar,n_names_advar
729 !
731 !
732  INTEGER ad_numofdir
733 !
735 !
736  INTEGER, TARGET :: lt
737 !
739 !
740  INTEGER devia
741 !
743 !
744  INTEGER slopeff
745 !
746 ! NON-EQUILIBRIUM BEDLOAD AND NON-UNIFORM BED MATERIA (BMD AND MGDL)
747 ! --------
748 !
750 !
751  INTEGER, PARAMETER :: nsiclm = 10
752 !
754 !
755  INTEGER, TARGET :: nsicla
756 !
759 !
760  INTEGER :: nsusp_tel
761 !
763 !
764  INTEGER :: npresed
765 !
767 !
768  INTEGER :: nverprosed
769 !
771 !
772  INTEGER :: nsedsce
773 !
775 !
776  INTEGER, PARAMETER :: nlaymax = 20
777 !
779 !
780  INTEGER :: numstrat
781 !
784 !
785  INTEGER, TARGET :: nomblay
786 !
788 !
789  INTEGER :: hidfac
790 !
792 !
793  INTEGER :: debug
794 !
796 !
797  INTEGER :: icq
798 !
800 !
801  INTEGER :: ncp
802 !
804 !
805  INTEGER, ALLOCATABLE :: ctrlsc(:)
806 !
808 !
809  INTEGER :: i_orig,j_orig
810 !
812 !
813  INTEGER :: ncouch_tass
814 !
816 !
817  INTEGER :: icr
818 !
820 !
821  INTEGER :: iks
822 !
824 !
825  INTEGER nsoldis
826 !
828 !
829  INTEGER nprop
830 !
834 !
835  INTEGER maxadv
836 !
838 !
839  INTEGER nvar
840 !
842 !
848 !
852 !
853  INTEGER hind_type
854 !
857 !
858  INTEGER floc_type
859 !
861 !
862  INTEGER type_houle
863 !
865 !
866  INTEGER solsys_gai
867 !
869 !
870  INTEGER optvf_gai
871 !
873 !
874  INTEGER, ALLOCATABLE :: schadvsed(:)
875 !
877 !
878  INTEGER, ALLOCATABLE :: optadv_sed(:)
879 !
881 !
882  INTEGER schdsed
883 !
884 ! Sediment vertical profiles
885 !
886  INTEGER, ALLOCATABLE :: verprosed(:)
887 !
889 !
891 !
892  INTEGER vsmtype
893 !
895 !
896  INTEGER pro_max_max
897 !
899 !
900  INTEGER cvsmpperiod
901 !
903 !
904  INTEGER cvsmoutput(100) !Limited to 100 for no specific reason
905 !
907 !
908  INTEGER alt_model
909 !
911  INTEGER percou
912 !
914  INTEGER leopr
915 !
917  INTEGER lispr
918 !
919 !-----------------------------------------------------------------------
920 !
921 ! 5) LOGICAL VALUES
922 !
923 !-----------------------------------------------------------------------
924 !
926 !
927  LOGICAL, ALLOCATABLE :: okcgl(:)
928 !
930 !
931  LOGICAL, ALLOCATABLE :: okqgl(:)
932 !
934 !
935  LOGICAL :: sorleo(maxvar)
936 !
938 !
939  LOGICAL :: sorimp(maxvar)
940 !
942 !
943  LOGICAL :: msk
944 !
946 !
947  LOGICAL :: entet
948 !
950 !
951  LOGICAL :: yasmi
952 !
954 !
955  LOGICAL :: spheri
956 !
958 !
959  LOGICAL :: bandec
960 !
962 !
963  LOGICAL :: houle
964 !
966 !
967  LOGICAL, TARGET :: charr
968 !
970 !
971  LOGICAL :: noequbed
972 !
974 !
975  LOGICAL :: vf
976 !
978 !
979  LOGICAL :: const_alayer
980 !
984 !
985  LOGICAL, TARGET :: susp
986 !
988 !
989  LOGICAL, TARGET :: susp_sand
990 !
992 !
993  LOGICAL :: bilma
994 !
996 !
997  LOGICAL :: valid
998 !
1000 !
1001  LOGICAL :: imp_inflow_c
1004 !
1005  LOGICAL :: seccurrent
1008 !
1009  LOGICAL :: havesecfile
1012 !
1013  LOGICAL :: corr_conv
1016 !
1017  LOGICAL :: debu
1020 !
1021  LOGICAL :: slide
1024 !
1025  LOGICAL :: sedco(nsiclm)
1028 !
1029  LOGICAL :: nestor
1032 !
1033  LOGICAL :: kscalc
1039 !
1040  LOGICAL :: set_lag
1043 !
1044  LOGICAL :: doflux
1048 !
1049  LOGICAL :: debu_mass
1052 !
1053  LOGICAL :: hinder
1056 !
1057  LOGICAL :: floc
1060 !
1061  LOGICAL :: second_susp_step
1067 !
1070 !
1072 !
1073  LOGICAL :: yaflulim_gai
1076 !
1077  LOGICAL :: cvsm_out
1080 !
1081  LOGICAL :: cvsm_out_full
1083 !-----------------------------------------------------------------------
1084 !
1085 ! 6) REALS
1086 !
1087 !-----------------------------------------------------------------------
1088 !
1090 !
1091  DOUBLE PRECISION xmve
1094 !
1095  DOUBLE PRECISION xmvs0(nsiclm)
1098 !
1099  DOUBLE PRECISION, TARGET :: xkv0(nlaymax)
1102 !
1103  DOUBLE PRECISION grav
1108 !
1109  DOUBLE PRECISION vce
1114 !
1115  DOUBLE PRECISION hmin
1118 !
1119  DOUBLE PRECISION beta
1124 !
1125  DOUBLE PRECISION, TARGET :: dt
1128 !
1129  DOUBLE PRECISION xwc0(nsiclm)
1132 !
1133  DOUBLE PRECISION, TARGET :: xwc(nsiclm)
1136 !
1137  DOUBLE PRECISION, TARGET :: ac(nsiclm)
1140 !
1141  DOUBLE PRECISION, TARGET :: phised
1144 !
1145  DOUBLE PRECISION, TARGET :: beta2
1148 ! one sand class is present (otherwise, D90 is
1149 ! calculated by GAIA).
1150 !
1151  DOUBLE PRECISION, TARGET :: d90
1157 !
1158  DOUBLE PRECISION hidi(nsiclm)
1171 !
1172  DOUBLE PRECISION, TARGET :: dcla(nsiclm)
1176 !
1177  DOUBLE PRECISION ava0(nsiclm)
1181 !
1182  DOUBLE PRECISION elay0
1185 !
1186  DOUBLE PRECISION voltot(nsiclm)
1189 !
1190  DOUBLE PRECISION volini(nsiclm)
1192 !
1194 !
1195  DOUBLE PRECISION masstot(nsiclm)
1198 !
1199  DOUBLE PRECISION mass0act(nsiclm)
1202 !
1203  DOUBLE PRECISION mass0tot(nsiclm)
1206 !
1207  DOUBLE PRECISION sumrmascl(nsiclm)
1210 !
1211  DOUBLE PRECISION summcumucl(nsiclm)
1214 !
1215  DOUBLE PRECISION massnestor(nsiclm)
1218 !
1219  DOUBLE PRECISION summassnestor(nsiclm)
1222 !
1223  DOUBLE PRECISION sum_erosion(nsiclm)
1226 !
1227  DOUBLE PRECISION sum_deposition(nsiclm)
1230 !
1231  DOUBLE PRECISION, TARGET :: kspratio
1235 !
1236  DOUBLE PRECISION :: karim_holly_yang
1239 !
1240  DOUBLE PRECISION :: karman
1244 !
1245  DOUBLE PRECISION :: cmax
1248 !
1249  DOUBLE PRECISION :: pi
1252 !
1253  DOUBLE PRECISION, TARGET :: mpm
1256 !
1257  DOUBLE PRECISION, TARGET :: alpha
1271 !
1272  DOUBLE PRECISION :: mofac
1281  DOUBLE PRECISION :: mofac_bed
1285 !
1286  DOUBLE PRECISION :: zero
1289 !
1290  DOUBLE PRECISION :: bijk
1293 !
1294  DOUBLE PRECISION, ALLOCATABLE :: soldis(:)
1297 !
1298  DOUBLE PRECISION :: masbed0,masbed
1301 !
1302  DOUBLE PRECISION :: hmin_bedload
1305 !
1306  DOUBLE PRECISION :: dvf
1309 !
1310  DOUBLE PRECISION :: turba
1313 !
1314  DOUBLE PRECISION :: turbb
1317 !
1318  DOUBLE PRECISION :: cgel
1321 !
1322  DOUBLE PRECISION :: cini
1325 !
1326  DOUBLE PRECISION, ALLOCATABLE :: sanfra(:)
1329 !
1330  DOUBLE PRECISION, ALLOCATABLE :: sed0(:)
1333 !
1334  DOUBLE PRECISION, ALLOCATABLE :: presed(:)
1337 !
1338  DOUBLE PRECISION, ALLOCATABLE :: sedsce(:,:)
1341 !
1342  DOUBLE PRECISION :: difsednu
1345 !
1346  DOUBLE PRECISION, ALLOCATABLE :: dnusedh(:)
1349 !
1350  DOUBLE PRECISION, ALLOCATABLE :: dnusedv(:)
1352 !-----------------------------------------------------------------------
1353 !
1354 ! 7) STRINGS
1355 !
1356 !-----------------------------------------------------------------------
1358 !
1359  CHARACTER(LEN=72) titca
1362 !
1363  CHARACTER(LEN=72) sortis
1366 !
1367  CHARACTER(LEN=72) varim
1370 !
1371  CHARACTER(LEN=32) varcla(nsiclm)
1374 !
1375  CHARACTER(LEN=32) texte(maxvar)
1378 !
1379  CHARACTER(LEN=32) textpr(maxvar)
1382 !
1383  CHARACTER(LEN=32) names_prive(4)
1386 !
1387  CHARACTER(LEN=32) names_advar(maxvar)
1390 !
1391  CHARACTER(LEN=20) equa
1394 !
1395  CHARACTER(LEN=8) mnemo(maxvar)
1397 !-----------------------------------------------------------------------
1398 !
1399 ! 8) SLVCFG STRUCTURES
1400 !
1401 !-----------------------------------------------------------------------
1402 !
1404 !
1405  TYPE(slvcfg), ALLOCATABLE :: slvsed(:)
1407 !-----------------------------------------------------------------------
1408 !
1409 ! 9) MESH STRUCTURE
1410 !
1411 !-----------------------------------------------------------------------
1412 !
1414 !
1415  TYPE(bief_mesh),TARGET :: mesh
1417 !-----------------------------------------------------------------------
1418 !
1419 ! 10) ALIASES
1420 !
1421 !-----------------------------------------------------------------------
1422 !
1423 ! DECLARATION OF POINTERS FOR ALIASES
1424 ! TARGETS ARE DEFINED IN POINT_TELEMAC2D
1425 !
1427 !
1428  TYPE(bief_obj),POINTER :: t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12
1429  TYPE(bief_obj),POINTER :: t13,t14
1431 !
1432 ! USEFUL COMPONENTS IN STRUCTURE MESH
1433 !
1434 !
1436 !
1437  TYPE(bief_obj), POINTER :: ikle
1440 !
1441  DOUBLE PRECISION, DIMENSION(:), POINTER :: x,y
1444 !
1445  INTEGER, POINTER:: nelem
1448 !
1449  INTEGER, POINTER:: nelmax
1452 !
1453  INTEGER, POINTER:: nptfr
1456 !
1457  INTEGER, POINTER:: nptfrx
1460 !
1461  INTEGER, POINTER:: typelm
1464 !
1465  INTEGER, POINTER:: npoin
1468 !
1469  INTEGER, POINTER:: npmax
1472 !
1473  INTEGER, POINTER:: mxptvs
1476 !
1477  INTEGER, POINTER:: mxelvs
1480 !
1481  INTEGER, POINTER:: lv
1484 !
1485  DOUBLE PRECISION, POINTER, DIMENSION(:) :: save_uconv,save_vconv
1488 !
1489  TYPE(bief_obj), POINTER :: hold
1491 !-----------------------------------------------------------------------
1492 !
1493 ! 11) GAIA FILES + INTEGER DECLARATION FOR MED APPROACH
1494 !
1495 !-----------------------------------------------------------------------
1496 !
1498 !
1499  INTEGER, PARAMETER :: maxlu_gai = 46
1502 !
1503  TYPE(bief_file), TARGET :: gai_files(maxlu_gai)
1506 !
1507  INTEGER, TARGET :: gaires,gairef,gaipre
1508  INTEGER, TARGET :: gaicou,gaigeo,gaicli,gaicas
1510  INTEGER sinact, sinpol, sinref, sinrst ! nestor
1511  INTEGER vspres
1513 !-----------------------------------------------------------------------
1514 !
1515 ! 12) SECTIONS
1516 !
1517 !-----------------------------------------------------------------------
1518 !
1519  type(chain_type), ALLOCATABLE :: chain(:)
1521 ! SAVED VARIABLE
1522 !
1523  ! fluxpr_gaia
1524  DOUBLE PRECISION, ALLOCATABLE :: work(:),workb(:)
1525  LOGICAL :: init_fluxpr=.true.
1526  ! READ_FIC_CONC_GAIA
1527  INTEGER, PARAMETER :: maxval_rfc=50
1529  DOUBLE PRECISION tl1_rfc,tl2_rfc,lastat_rfc
1530  DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: infic_rfc
1531  DOUBLE PRECISION, DIMENSION(:) , ALLOCATABLE :: time_rfc
1533  LOGICAL :: deja_rfc = .false.
1534  !LEO new variable for node_Depth of gaia
1535  DOUBLE PRECISION, ALLOCATABLE, TARGET :: tds_gai_node_depth(:)
1536  DOUBLE PRECISION, ALLOCATABLE,
1538  DOUBLE PRECISION, ALLOCATABLE, TARGET :: tds_hn(:)
1539  ! gaia
1540  LOGICAL :: pass
1541  INTEGER :: nit, valnit !
1542 ! CURRENT TIME
1543 !
1544  DOUBLE PRECISION :: at0
1545 ! flusec_gaia
1546  LOGICAL :: deja_flusec = .false.
1547  INTEGER, ALLOCATABLE :: nseg(:),liste(:,:,:)
1548  DOUBLE PRECISION, ALLOCATABLE :: volnegs(:),volposs(:)
1549  DOUBLE PRECISION, ALLOCATABLE :: volnegc(:),volposc(:)
1550  DOUBLE PRECISION, ALLOCATABLE :: flx(:),volneg(:),volpos(:)
1551  DOUBLE PRECISION, ALLOCATABLE :: flxs(:),flxc(:)
1552  LOGICAL :: old_method_flusec=.false.
1553  ! flusec_gai
1554  TYPE fluxline
1555  INTEGER, ALLOCATABLE :: sectionids(:)
1556  INTEGER, ALLOCATABLE :: direction(:)
1557  INTEGER :: nofsections
1558  END TYPE fluxline
1559 !
1560  LOGICAL :: deja_flusec2 = .false.
1561  TYPE(fluxline), ALLOCATABLE :: fluxlinedata_flusec2(:)
1562  DOUBLE PRECISION, ALLOCATABLE :: flux_flusec2(:,:)
1563  DOUBLE PRECISION, ALLOCATABLE :: volflux_flusec2(:,:)
1565  DOUBLE PRECISION time_flusec2
1567 !-----------------------------------------------------------------------
1568 !
1569 ! 13)HERE WE DECLARE HERE EXTRA DATASETUP NEEDED FOR ARTELIA
1570 ! BED MODEL: TO TIDY UP LATER
1571 !
1572 !-----------------------------------------------------------------------
1573 !
1574 !
1576 !
1577  INTEGER :: bed_model
1580 !
1581  LOGICAL :: hirano
1584 !
1585  INTEGER :: nsand
1588 !
1589  INTEGER :: nmud
1592 !
1593  CHARACTER(LEN=3), ALLOCATABLE :: type_sed(:)
1597 !
1598  INTEGER, ALLOCATABLE :: num_imud_icla(:),num_isand_icla(:)
1602 !
1603  INTEGER, ALLOCATABLE :: num_icla_imud(:),num_icla_isand(:)
1606 !
1607  INTEGER, ALLOCATABLE :: num_isusp_icla(:)
1610 !
1611  DOUBLE PRECISION, PARAMETER :: min_sed_mass_comp = 1.d-9
1614 !
1615  DOUBLE PRECISION sed_thick(nlaymax)
1618 !
1619  DOUBLE PRECISION conc_mud0(nlaymax)
1627 !
1628  DOUBLE PRECISION,TARGET,ALLOCATABLE::conc_mud(:,:)
1631 !
1632  DOUBLE PRECISION toce_mud0(nlaymax)
1641 !
1642  DOUBLE PRECISION,TARGET,ALLOCATABLE :: toce_mud(:,:)
1645 !
1646  DOUBLE PRECISION tocd_mud0(nsiclm)
1650 !
1651  DOUBLE PRECISION, ALLOCATABLE :: tocd_mud(:,:)
1655 !
1656  DOUBLE PRECISION partheniades0(nlaymax)
1664 !
1665  DOUBLE PRECISION,TARGET,ALLOCATABLE :: partheniades(:,:)
1668 !
1669  DOUBLE PRECISION trans_mass0(nlaymax)
1678 !
1679  DOUBLE PRECISION,TARGET,ALLOCATABLE :: trans_mass(:,:)
1682 !
1683  DOUBLE PRECISION toce_sand0(nsiclm)
1687 !
1688  DOUBLE PRECISION, ALLOCATABLE :: toce_sand(:,:)
1692 !
1693  TYPE(bief_obj), TARGET :: ratio_toce
1697 !
1698  DOUBLE PRECISION, ALLOCATABLE :: conc_mud_activ_layer(:)
1701 !
1702  DOUBLE PRECISION, ALLOCATABLE :: mass_mud_activ_layer(:)
1705 !
1706  DOUBLE PRECISION, ALLOCATABLE :: mass_sand_active_layer(:)
1710 !
1711  DOUBLE PRECISION, ALLOCATABLE :: mass_sand_masked(:)
1714 !
1715  DOUBLE PRECISION, ALLOCATABLE :: evcl_m_tot_sand(:)
1718 !
1719  DOUBLE PRECISION, ALLOCATABLE :: ratio_evol_tot_sand(:)
1722 !
1723  DOUBLE PRECISION, ALLOCATABLE :: flux_mass_mud(:,:,:)
1726 !
1727  DOUBLE PRECISION,ALLOCATABLE :: flux_mass_mud_tot(:,:)
1730 !
1731  DOUBLE PRECISION, ALLOCATABLE :: flux_mass_sand(:,:,:)
1734 !
1735  INTEGER, ALLOCATABLE :: num_transf(:)
1738 !
1739  DOUBLE PRECISION, ALLOCATABLE :: flux_neg_mud_activ_layer(:,:)
1742 !
1743  DOUBLE PRECISION, ALLOCATABLE :: flux_neg_sand_activ_layer(:,:)
1746 !
1747  DOUBLE PRECISION, ALLOCATABLE :: flux_pos_mud_activ_layer(:,:,:)
1750 !
1751  DOUBLE PRECISION, ALLOCATABLE :: flux_pos_sand_activ_layer(:,:,:)
1757 !
1758  INTEGER :: setdep
1766  INTEGER :: alire(maxvar) =
1767  & (/ (0,kkk=1,9),(0,kkk=10,maxvar) /)
1768 !
1769 ! WAVES ONLY
1770  INTEGER :: alirh(maxvar) =
1771  & (/ (0,kkk=1,10),(1,kkk=11,13),(0,kkk=14,maxvar) /)
1772 !
1774 !
1775  INTEGER :: alirv(maxvar) = (/ (1,kkk=1,maxvar) /)
1777  SAVE
1778  END MODULE declarations_gaia
double precision, dimension(:,:,:), allocatable cae_ilay
integer, pointer nptfr
Number of boundary points.
type(bief_obj), target esomt
Cumulated bed evolution over time [kg/m2].
type(bief_obj), target hcpl
Water depth saved for constant flow discharge.
type(bief_obj), target kx
Coefficients of the dispersion tensor (dim. npoin)
type(bief_obj), target uw
Orbital wave velocity.
integer iks
Bed roughness predictor option.
double precision, dimension(nsiclm) summcumucl
Cumulated erosion / deposition mass per class.
type(bief_obj), target qs
Total solid discharge (bedload+suspension)
double precision, dimension(:), allocatable ratio_evol_tot_sand
Ratio between EVCL_M_TOT_SAND and the mass in the active layer.
double precision, dimension(nsiclm) mass0tot
Initial total mass of sediment of each class.
type(bief_obj), target s
Void structure.
integer ncouch_tass
Number of layers for consolidation.
integer, pointer mxelvs
Maximum number of neighbouring elemnts.
logical bilma
Mass balance.
integer icq
Reference concentration formula.
type(bief_obj), target ms_vase
type(bief_obj), target zfcl_c
Bed evolution per class (due to bedload)
double precision, dimension(:,:), allocatable, target trans_mass
Mass transfer for consolidation between layers, for each bed layer, for each point. It is variable in space for the active layer (layer 1) only. It is a choice related to the way the bed model is done: the active layer is treated along with the others, there are no specialised arrays for the active layer.
type(bief_obj), target liqbor
Type of boundary conditions on sand transport rate.
double precision, dimension(nsiclm) sum_deposition
Cumulated sediment mass deposition.
type(bief_obj), target breach
Array saying whether the non-erodable bottom has been reached (vf)
type(bief_obj), target ecpl
Evolution saved for constant flow discharge.
type(bief_obj), target e
Evolution of the bed mass at each point for each time step [kg/m2].
double precision, dimension(:), allocatable mass_sand_active_layer
Mass of sand in active layer (array defined for temporary work in some subroutines) ...
type(bief_obj), target laythi
Layer thicknesses (for output variables)
type(bief_obj), pointer t10
logical entet
Writes out (or not)
type(bief_obj), target fludpt
Deposition flux for implicitation.
type(bief_obj), target maskel
Mask.
type(bief_obj), target acladm
Mean diameter of active-layer.
double precision, dimension(:), allocatable work
type(bief_obj), target ky
type(bief_obj), pointer ikle
Connectivity table.
type(bief_obj), target hn_gai
type(bief_obj), target zfcl_ms
Evolution for each class due to sloping bed effects.
type(bief_obj), target evol_mc
Total mass evolution due to consolidation [kg/m2].
double precision, dimension(:,:), allocatable fluer_mix
double precision, dimension(:,:), allocatable ratio_mud_sand
Ratio of mud to sand, for ilayer,ipoin.
double precision, dimension(:), allocatable flxc
type(bief_obj), target limtec
Type of boundary conditions.
integer, target gaires
Various files ranks, which are also logical units if no coupling.
double precision hmin
Minimal value of the water height: below this value, the sediment flow rate is set to 0...
double precision, dimension(:), allocatable evcl_m_tot_sand
Evolution of total (sum from each class) mass of sand for each point.
logical doflux
Fluxline.
type(bief_obj), target u2d
Components of depth-averaged velocity.
type(bief_obj), target uconv_gai
Components of velocity vectors.
type(bief_obj), target tob
Bed shear stress [n/m2].
double precision, dimension(nsiclm) sumrmascl
Cumulated evolution mass per class.
double precision, dimension(:), allocatable flxs
double precision, dimension(:,:), allocatable, target toce_mud
Critical erosion shear stress of the mud, for each bed layer, for each point. It is variable in space...
integer solsys_gai
Choose the advection field in cvdftr.
double precision pi
Pi.
double precision difsednu
Coefficient for diffusion of suspended sediments in 2D.
type(bief_obj), pointer t7
double precision elay0
Wanted active layer thickness; ELAYO is a target value for ELAY, but ELAY may be lower than ELAY0 if ...
type(bief_obj), target varhyd
Block of variables for input.
type(bief_obj), target q
Flow rate.
double precision, dimension(:,:,:), allocatable, target mass_mud
Surface mass of mud (kg/m2), for imud,ilayer,ipoin.
character(len=72) titca
Title of the case.
type(bief_obj), target calfa_cl
Cosinus of the angle between mean flow q and transport qs.
type(bief_obj), pointer t5
type(bief_obj), target nlayer
Number of layers for each point.
integer produc
Matrix-vector product.
logical seccurrent
Secondary currents.
logical corr_conv
Correction on convection velocity.
integer lispr
LISTING PRINTOUT PERIOD.
integer, pointer npmax
Maximum number of 2d points in the mesh.
double precision, dimension(:,:), allocatable infic_rfc
type(bief_obj), target v2d
type(bief_obj), target kz
double precision, dimension(nsiclm) masstot
Total mass of sediment of each class.
double precision cmax
Maximum concentration used in the equilibrium concentration calculation (for suspension) ...
type(bief_obj), target evcl_mb
Mass evolution for class (due to bedload)
logical, target susp
Suspension : yes if there is at least one suspended sediment this is the case if there is mud or if s...
type(bief_obj), target fluer_adv
integer, target nomblay
Number of bed load model layers = NUMSTRAT+1 to take the active layer into account.
type(bief_obj), target it3
logical valid
Validation.
integer nsoldis
Number of given solid discharges given by user.
double precision, dimension(:), pointer x
2d coordinates of the mesh
double precision, dimension(nsiclm), target xwc
Settling velocities.
integer, dimension(:), allocatable verprosed
integer, parameter maxlu_gai
Maximum rank of logical units as declared in submit strings in the dictionary.
type(bief_obj), target zr
Non erodable (rigid) bottom elevation.
type(bief_obj), target evol_mb
Total mass evolution due to bedload [kg/m2].
integer icr
Skin friction correction.
type(bief_obj), target te3
type(bief_obj), target volu2d
Integral of bases.
double precision, dimension(:), allocatable qer_sand
double precision, dimension(:), allocatable flx
integer, pointer lv
Vector length (for vectorisation) from mesh object.
type(bief_obj), target qscl_s
Suspended load transport rate for a sediment class.
type(bief_obj), target ratiom
Sediment composition : mud (for output variables)
integer optsup
Supg option.
double precision, target dt
Time step It may be different from the one in TELEMAC because of the morphological factor...
double precision, dimension(nlaymax) sed_thick
Thickness of each bed layer (constant)
double precision, dimension(:,:), allocatable, target es
Layer thicknesses as double precision.
type(bief_file), dimension(maxlu_gai), target gai_files
For storing information on files.
integer ptinig
First time from which to write the graphical outputs.
double precision cgel
Weak soil concentration for mud.
logical houle
Include wave effects.
type(bief_obj), target fluert
Erosion flux for implicitation.
double precision, dimension(:,:), allocatable mass_sand_tot
Surface total mass of sand (kg/m2), for ilayer,ipoin.
integer numstrat
Number of layers of initial stratification.
double precision, dimension(:,:), allocatable flux_neg_sand_activ_layer
Negative sand transfer to apply in case we have an active layer.
type(bief_obj), target varcl
Block of clandestine variables.
type(bief_obj), target mbor
Boundary matrix.
double precision mofac
Morphological factor on the hydrodynamics: distorts the evolution of the hydrodynamics with respect t...
double precision xmve
Water density (from steering file of T2D or T3D)
type(bief_obj), target qscl
Total transport rate for a sediment class : bedload+suspended load.
logical floc
Include floculation effects.
type(bief_obj), target zrl
Reference level for Nestor.
integer bed_model
Bed model (3 choices, cf. dico)
integer, target gaipre
double precision, dimension(:), pointer save_uconv
Save the velocity fields in the suspension computation.
double precision, dimension(:), allocatable volneg
type(bief_obj), target afbor
Flux condition nu df/dn=afbor * f + bfbor.
integer, dimension(3) martim
Original hour of time.
type(bief_obj), target clu
double precision tl2_rfc
double precision, dimension(:,:), allocatable fluer_pur_mud
double precision, dimension(:), allocatable ratio_debimp
Ratio of sand in the prescribed solid discharge.
type(bief_obj), target qsxc
Solid discharge (bedload), along x and y.
double precision time_flusec2
double precision, dimension(:), allocatable dnusedh
Coefficient for horizontal diffusion of suspended sediments in 3D.
integer nvar
Index in varsor for output variables.
type(bief_obj), target am1_s
Matrices.
type(bief_obj), target qbor
Imposed solid transport at the boundary In m3/s, for every class.
double precision cini
Threshold concentration for hindered settling.
integer i_orig
Coordinates of the origin.
integer, pointer typelm
Type of element.
type(bief_obj), target laypor
Layer porosity (for output variables)
double precision, parameter min_sed_mass_comp
Minimum value to detect sediment mass.
logical, dimension(maxvar) sorimp
Listing output.
double precision, dimension(:), allocatable volnegc
integer optban
Option for the treatment of tidal flats.
type(bief_obj), target evcl_ms
Mass evolution for class (due to suspension)
double precision, dimension(:,:,:), allocatable flux_mass_mud
Flux of mud transfert inbetween layers.
type(bief_obj), target flbor_gai
Flux at the boundaries.
logical hirano
Hirano model used.
character(len=32), dimension(maxvar) names_advar
Names of differenting arrays (given by user)
double precision, dimension(:,:), allocatable sumbedload_b
Cumulated bedload on boundary for every class (kg): variable for mass balance.
type(bief_obj), target ratio_toce
Ratio between critical shear stress of pure sediment and mixed sediment in the same layer...
character(len=32), dimension(maxvar) texte
Name of output variable.
type(bief_obj), target ms_sable
For mixed sediments.
type(bief_obj), target tobcw_max
Maximum of total current + wave shear stress.
type(bief_obj), target qsx
Solid discharge, along x and y.
logical, dimension(maxvar) sorleo
Graphical output.
type(bief_obj), target ks
Total bed roughness.
double precision, dimension(:), pointer y
double precision lastat_rfc
type(bief_obj), target evol_ms
Total mass evolution due to suspension [kg/m2].
integer nverprosed
Number of sediment vertical profiles.
double precision, dimension(:,:,:), allocatable, target mass_sand
Surface mass of sand (kg/m2), for isand,ilayer,ipoin.
type(bief_obj), target it4
double precision vce
Water viscosity: it is defined here because the viscosity set in TELEMAC2D or TELEMAC3D may not b the...
double precision turbb
Coefficient for floc destruction.
type(bief_obj), target numliq
Liquid boundary numbering.
type(bief_obj), target thetaw
Wave direction (deg wrt ox axis) !!!!!some say oy axis!!!!!
double precision masbed0
For mass balance of cohesive sediment.
integer, parameter maxval_rfc
integer, dimension(:), allocatable num_isusp_icla
Tables to switch from suspended sediment number to class number.
type(bief_obj), target flulim_gai
Flux limitation per segment.
type(fluxline), dimension(:), allocatable fluxlinedata_flusec2
type(bief_obj), target thetac
Current direction (deg trigo)
logical cvsm_out_full
C-VSM_FULL WRITES OUT (OR NOT) EVER.
type(bief_obj), target flbortra
Flux at the boundaries for tracer.
double precision, dimension(:,:), allocatable, target tds_node_sediment_fraction
integer, pointer nptfrx
Maximum number number of boundary points.
type(bief_obj), target fw
Quadratic friction coefficient (waves)
integer, parameter maxvar
Maximum number of output variables.
type(bief_obj), target clt
Boundary conditions for tracer, u and v (modified litbor, liubor,livbor)
double precision, dimension(nlaymax) toce_mud0
Critical erosion shear stress of the mud per layer.
type(bief_obj), target it2
double precision, dimension(:), allocatable time_rfc
type(bief_obj), target qsyc
type(bief_obj), target parthe
Partheniades erosion coefficient (for output variables)
integer optass
Matrix storage.
integer, dimension(100) cvsmoutput
CHOOSE POINTS or FULL MODEL AS PRINTOUT.
double precision, dimension(:), allocatable soldis
Prescribed solid discharges.
integer, dimension(maxvar) alirv
For validation, each variable in the file is compared.
integer slopeff
Formula for slope effect.
double precision, target alpha
Secondary Current Alpha Coefficient.
double precision, dimension(nsiclm) xmvs0
Sand density.
type(bief_obj), target ratios
Sediment composition : sand (for output variables)
double precision, dimension(nsiclm) tocd_mud0
Critical shear stress for mud deposition.
type(bief_obj), target am2_s
integer nprop
Number of class proportion for imposed discharge given by user.
type(bief_obj), target qu
X component of the flow rate.
integer setdep
Options for the vertical advection-diffusion scheme with settling velocity (only relevant in 3D)...
type(bief_obj), target salfa_cl
Sinus of the angle between mean flow q and transport qs.
double precision, dimension(:,:), allocatable, target conc_mud
Mud concentration for each bed layer, at each point. It is variable in space for the active layer (la...
double precision, dimension(nsiclm) massnestor
Sediment mass from Nestor per class per time step.
logical imp_inflow_c
Imposed concentration in inflow.
double precision, dimension(nsiclm) sum_erosion
Cumulated sediment mass erosion.
type(bief_obj), target elay
Active layer thickness.
type(bief_obj), target maskb
Mask.
double precision, dimension(:,:), allocatable mass_mud_tot
Surface total mass of mud (kg/m2), for ilayer,ipoin.
double precision, dimension(:), allocatable qe_moy
double precision, dimension(nsiclm) voltot
Total volume of sediment of each class.
integer nsand
Total number of sand.
logical slide
Sediment slide.
double precision zero
Parameter used for clipping variables or testing values against zero.
integer type_houle
Type of waves (regular or irregular)
type(bief_obj), target te2
logical havesecfile
Secondary currents radii file.
integer, target gaicou
type(bief_obj), target w1
Working arrays.
integer npresed
Number of prescribed suspended sediments for TELEMAC3D or TELEMAC2D.
type(bief_obj), target limdif
Type of boundary conditions for diffusion.
double precision, dimension(:,:), allocatable bedload_b_flux
Bedload boundary flux for every class (kg/s): variable for mass balance.
integer, dimension(:), allocatable nseg
integer, dimension(:), allocatable num_isand_icla
type(bief_obj), target clv
double precision, dimension(:), allocatable volposc
type(bief_obj), target hw
Significant wave height.
type(bief_obj), target estrat
Active stratum thickness.
type(bief_obj), target coefpn
Correction of transport for sloping bed effect.
integer icf
Bed-load transport formula.
integer ptinil
First time from which to write the listing outputs.
double precision, dimension(nlaymax) partheniades0
Partheniades erosion coefficient: depends on the type of erosion so it actually varies on the sedimen...
double precision dvf
Upwinding for Exner FV.
type(bief_obj), target hprop
Propagation height.
integer alt_model
CHOOSE A MODEL FOR ESTIMATION OF A DYNAMIC ACTIVE LAYER THICKNESS.
type(bief_obj), target advar
Block of differentiated vectors.
type(bief_obj), pointer t8
type(bief_obj), pointer hold
Save the water depth in the suspension computation.
logical noequbed
Loading law used or not.
double precision, dimension(nsiclm) summassnestor
Cumulated sediment mass from Nestor per class.
double precision turba
Flocculation coefficient.
integer, dimension(:), allocatable num_imud_icla
Tables to switch from mud number to class number and from sand number to class number.
type(bief_obj), target flbor
Zf values on boundaries.
type(bief_obj), target radsec
Curve radius for secondary currents.
double precision, dimension(:), pointer save_vconv
integer, pointer nelem
Number of elements in the mesh.
type(bief_obj), target tb
Blocks of working arrays.
integer, dimension(maxvar) alire
Variables to read if computation is continued 0 : DISCARD 1 : READ (SEE SUBROUTINE NOMVAR) ...
character(len=3), dimension(:), allocatable type_sed
Type of sediment (co or nco)
type(bief_obj), target te1
Work arrays for elements.
type(bief_obj), target bfbor
integer, parameter nsiclm
Maximum number of sediment classes.
type(bief_obj), target hn
Water depth.
double precision, dimension(nsiclm), target dcla
Sediment diameter for each class It is only relevant for non-cohesive sediments. For the bedload...
type(bief_obj), target unorm
Norm of the mean flow velocity.
double precision, dimension(:), allocatable sed0
Initial values of suspended sediments.
type(bief_obj), target unsv2d
Inverse of integral of bases.
double precision mofac_bed
Morphological factor on the bed: distorts the evolution of the morphodynamics with respect to the hyd...
double precision, dimension(:), allocatable workb
double precision, dimension(:), allocatable mass_sand_masked
Contains "hidden" sand mass if more than 30% of mud (because no bedload for sand in that case) ...
double precision, dimension(nsiclm) ava0
Initial fraction of each sediment class, the sum of AVA0 over all classes has to be equal to 1...
logical, dimension(:), allocatable okqgl
Used in function qgl_gaia!
type(bief_obj), target masktr
Mask.
double precision, dimension(:,:), allocatable fluer_pur_sand
type(bief_obj), target layconc
Layer concentration (for output variables)
type(bief_obj), target q2bor
Imposed solid transport at the boundary In m2/s, total, read in the boundary conditions file...
double precision, dimension(:,:), allocatable, target partheniades
Partheniades erosion coefficient, for each bed layer, for each point. It is variable in space for the...
logical, dimension(nsiclm) sedco
Cohesive sediments (for each class)
type(bief_obj), pointer t6
double precision, target phised
Friction angle of the sediment.
logical vf
Use a Finite Volumes formulation.
type(bief_obj), target evol_mm
Total mass evolution due to sliding (maxslope) [kg/m2].
integer, target nsicla
Number of sediment classes of bed material (less than NISCLM)
type(bief_obj), target zref
Reference elevation.
logical spheri
Work in spherical coordinates (hard-coded)
integer vsmtype
For the Continous Vertical Sorting MODEL.
logical nestor
Coupling with NESTOR.
double precision grav
Gravity acceleration.
double precision, dimension(:,:,:), allocatable, target pro_f
Vertical sorting profile: fraction for each layer, class, point.
double precision, dimension(:,:,:), allocatable, target ratio_mud
Ratio of mud to all muds, for imud,ilayer,ipoin.
type(bief_obj), pointer t2
double precision, dimension(:,:), allocatable, target m2t
conversion mass to thickness
integer, dimension(maxvar) alirh
type(bief_obj), target z
Free surface elevation.
type(bief_obj), target csratio
Ratio between bottom concentration and average concentration.
double precision, dimension(:), allocatable presed
Prescribed values of suspended sediments.
integer cvsmpperiod
Printout Period for Full Vertical Sorting Model: PRO_D & PRO_F.
double precision, dimension(nlaymax), target xkv0
Initial porosity by layers.
type(bief_obj), target qsclyc
integer lvmac
Vector length (for vectorisation) from steering file.
type(bief_obj), target qv
Y component of the flow rate.
character(len=8), dimension(maxval_rfc) choix_rfc
logical msk
Include masking.
integer, target gaicas
double precision, dimension(:), allocatable volposs
type(bief_obj), target msktmp
Mask.
integer nsous
Number of sub-iterations.
type(bief_obj), pointer t1
Aliases for work vectors in tb.
type(bief_obj), target mudb
Mass of mud in bedload added in suspension.
double precision tl1_rfc
double precision, dimension(:), allocatable mass_mud_activ_layer
Mass of mud in active layer (array defined for temporary work in some subroutines) ...
logical hinder
Hindered settling switch.
logical bandec
Include tidal flats in the simulation.
logical const_alayer
Constant active layer thickness.
integer nmud
Total number of muds.
type(bief_obj), target mu
Skin friction correction factor for bed roughness: Ratio between shear stress due skin friction and t...
type(bief_obj), target mask
Block of masks.
integer nvarcl
Number of clandestine variable.
type(bief_obj), target qs_c
Solid discharge (bedload)
integer, parameter nlaymax
Maximum number of layers on the mesh.
integer, dimension(:), allocatable schadvsed
Scheme for advection of suspended sediments.
logical, target susp_sand
Suspension for all sands (mud is assumed to be suspended)
logical debu
Computation continued.
double precision, dimension(:,:,:), allocatable, target ratio_sand
Ratio of sand to all sands, for isand,ilayer,ipoin.
double precision, dimension(nsiclm) toce_sand0
Critical erosion shear stress of the sand.
type(bief_obj), target prive
Block of private vectors.
logical conc_mud_found
Logicals used to know whether the mud arrays were found in the restart file. If they are not found...
double precision, dimension(:,:,:), allocatable flux_pos_sand_activ_layer
Positive sand transfer to apply in case we have an active layer.
integer, target gaigeo
integer, target lt
Numero du pas de temps.
double precision, dimension(:), allocatable dnusedv
Coefficient for vertical diffusion of suspended sediments in 3D.
type(bief_obj), target qsy
integer, dimension(:), allocatable num_icla_imud
Tables to switch from class number to mud number and from class number to sand number.
integer maxfro
Maximum number of (liquid boundaries, solid boundaries)
double precision, dimension(nlaymax) conc_mud0
Mud concentration for each bed layer (constant)
double precision, dimension(:), allocatable qer_mud
character(len=72) sortis
List of the variable to ouput in the result file.
type(bief_obj), target mpm_aray
Meyer Peter Mueller factor.
type(bief_obj), target mass_m
Mud mass (for output variables)
type(bief_obj), target qsclxc
Bedload transport rate in the x and y direction for a sediment class [kg*(m-1*s-1)].
double precision, dimension(nsiclm), target ac
Critical shields parameter.
double precision, dimension(:,:,:), allocatable, target pro_d
Vertical sorting profile: depth for each layer, class, point.
double precision, dimension(:,:), allocatable toce_sand
Critical erosion shear stress of the sand, for each sand, for each point.
double precision, dimension(:,:), allocatable volflux_flusec2
double precision, target d90
Sediment diameter D90, for sand when only.
character(len=32), dimension(nsiclm) varcla
For clandestine variables.
integer devia
Formula for deviation.
type(bief_obj), target taup
Shear stress modified by skin friction.
type(bief_obj), pointer t4
double precision karim_holly_yang
Karim, Holly & Yang constant for hiding (with multiclass beds)
double precision, dimension(nsiclm) mass0act
Initial mass in active layer of sediment of each class.
type(bief_obj), target cumbe
Cumulated bed evolution over time [m].
type(bief_obj), target ifamas
Like IFABOR but ignoring masked elements.
integer ad_numofdir
Number of directions for differentiating in vector modes.
integer maxadv
Maximum number of iterations used for ensuring positive layer thickness. Beware that with larger time...
integer nsedsce
Number of suspended sediments at the sources.
type(bief_obj), target qscl_c
Bedload transport rate for a sediment class [kg*(m-1*s-1)].
type(bief_obj), target tw
Mean wave period.
logical yasmi
Resolution for suspension is implicit (or not)
double precision, dimension(:,:,:), allocatable flux_pos_mud_activ_layer
Positive mud transfer to apply in case we have an active layer.
double precision bijk
B value for the Bijker formula.
integer, dimension(:), allocatable num_transf
Layer of mud of active layer into which mud will be added.
integer percou
COUPLING PERIOD USED IN CVSM TO CALCULATE THE TIME, SHOULD COME FROM TELEMAC ONE DAY.
integer debug
Debugger.
double precision, dimension(:,:), allocatable tocd_mud
Critical shear stress for mud deposition, for each bed layer, for each point.
integer pro_max_max
Maximum Number of Profile SECTIONS.
double precision, target kspratio
Ratio between skin friction and mean diameter.
type(bief_obj), target vconv_gai
character(len=32), dimension(4) names_prive
Names of private arrays (given by user)
double precision, dimension(nlaymax) trans_mass0
Mass transfer for consolidation between layers.
logical, dimension(:), allocatable okcgl
Used in function cgl_gaia.
logical cvsm_out
C-VSM WRITES OUT (OR NOT) IN THIS TIMESTEP.
type(bief_obj), target ebor
Imposed bed evolution at the boundary [m].
type(bief_obj), target cstaeq
Sediment equilibrium concentration.
integer, dimension(:), allocatable num_icla_isand
type(bief_obj), target varsor
Block of variables for output.
double precision, dimension(:,:), allocatable flux_mass_mud_tot
Same as FLUX_MASS_MUD but summed on the mud layer.
type(bief_obj), target cf
Quadratic friction coefficient.
double precision beta
Beta coefficient for Koch and Flokstra slope effect formulation.
type(bief_obj), target zf
Bottom elevation.
type(bief_obj), target tobw
Wave induced shear stress.
type(bief_mesh), target mesh
Mesh structure.
type(bief_obj), target fluerdh
double precision, dimension(:), allocatable, target mpa2t
conversion mass per area to thickness
character(len=20) equa
Equation solved.
integer, dimension(:), allocatable pro_max
Maximum layer number in a vertical sorting profile for each point.
logical set_lag
Settling lag: determines choice between Rouse and Miles concentration profile SET_LAG = TRUE : Miles ...
type(bief_obj), target fludpt_adv
type(bief_obj), target mass_s
Sand mass (for output variables)
integer ielmt
Missing comment.
logical, target charr
Include bedload in the simulation.
double precision, dimension(:), allocatable mcumucla
cumulated mass through bedload boundary per class per time step (kg/s)
double precision at0
double precision masbed
logical kscalc
Bed roughness prediction.
integer floc_type
Floculation method: 1: apply reduction due to turbulent breakup of flocs; 2: Soulsby floculation mode...
type(bief_obj), target fludp
Deposition flux.
integer leopr
GRAPHIC PRINTOUT PERIOD.
type(bief_obj), target liebor
Type of boundary conditions on bed evolution.
type(bief_obj), target hiding
Hiding factor correction.
character(len=8), dimension(maxvar) mnemo
Mnemo of variables for graphic printouts (b for bottom, etc.)
double precision, dimension(:,:,:), allocatable flux_mass_sand
Flux of sand transfert inbetween layers.
double precision, dimension(:), allocatable, target tds_gai_node_depth
integer ncp
Number of control sections points.
logical debu_mass
Option used in computation continued: if true, mass is contained in the previous sedimentological fil...
type(bief_obj), target fluer
Erosion flux.
integer, target gairef
integer schdsed
Scheme for diffusion of suspended sediments in 3D.
type(bief_obj), pointer t12
logical second_susp_step
Logical used for coupling with T2D/T3D when suspension activated.
type(bief_obj), target tobcw_mean
Mean of total current + wave shear stress.
double precision, dimension(:), allocatable volnegs
integer, pointer mxptvs
Maximum number of neighbouring points.
double precision, dimension(:), allocatable, target tds_hn
integer, pointer nelmax
Maximum number of elements in the mesh.
double precision, dimension(:), allocatable time
double precision, dimension(:), allocatable volpos
type(slvcfg), dimension(:), allocatable slvsed
Solver for the diffusion of sediment.
type(chain_type), dimension(:), allocatable chain
double precision karman
Karman constant.
double precision, dimension(nsiclm) hidi
Hiding factor for each sediment class Used only if HIDFAC is set to 0. By default it is set to 1...
double precision, dimension(:,:,:), allocatable, target avail
Sediment fraction for each layer, class, point.
integer, target gaicli
type(bief_obj), target ksr
Ripple bed roughness.
double precision, dimension(:,:), allocatable sedsce
Values of suspended sediments at the sources.
integer optvf_gai
Option for finite volumes (see cvtrvf)
double precision, dimension(:), allocatable sumbedload_b_flux
Sum over classes of bedload boundary flux or cumulated bedload:
integer nfrliq
Number of liquid boundaries.
type(bief_obj), target ksp
Bed skin roughness.
character(len=72) varim
List of the variable to print to the listing.
integer hind_type
Hindered settling method linked to floculation effects, 1:WHITEHOUSE ET AL. (2000), 2:WINTERWERP (1999), at the moment hard-set to 1 in gaia.F.
double precision, dimension(:,:,:), allocatable toce_mix
integer npriv
Number of private arrays, number of private arrays with given name.
double precision, target beta2
Parameter for deviation.
type(bief_obj), target tocemud
Critical erosion shear stress of the mud (for output variables)
type(bief_obj), target f_mudb
Flux of mud in bedload added in suspension.
integer, dimension(:,:,:), allocatable liste
double precision hmin_bedload
Minimum depth for bedload.
double precision, target mpm
Meyer Peter Mueller-Coefficient.
type(bief_obj), target it1
Integer working arrays.
type(bief_obj), target unladm
Mean diameter of under-layer.
type(bief_obj), pointer t14
double precision, dimension(:,:), allocatable mass_mix_tot
Surface total mass of sediments (kg/m2), for ilayer,ipoin.
logical yaflulim_gai
Logical for modification of boundary fluxes.
integer nadvar
Number of differentiating arrays, and those with a given name.
integer nsusp_tel
Number of suspension sediment classes for TELEMAC3D or TELEMAC2D (less than NISCLM) ...
type(bief_obj), target lihbor
Type of boundary conditions for h.
type(bief_obj), pointer t13
double precision, dimension(nsiclm) volini
Initial volume of sediment of each class for CVSM.
integer nvar_ratios
Index in varsor for output variables.
integer, pointer npoin
Number of 2d points in the mesh.
double precision, dimension(:,:), allocatable flux_neg_mud_activ_layer
Negative mud transfer to apply in case we have an active layer.
double precision, dimension(nsiclm) xwc0
Initial settling velocities.
type(bief_obj), target limpro
Type of boundary conditions for propagation.
double precision, dimension(:,:), allocatable, target ivide
Void index of bed layers.
type(bief_obj), target v2dpar
Integral of bases in parallel.
character(len=32), dimension(maxvar) textpr
Name of variable in previous computation file.
type(bief_obj), target boundary_colour
Last column of the boundary condition file.
character(len=8) lastwhat_rfc
type(bief_obj), pointer t11
type(bief_obj), pointer t9
type(bief_obj), target emax
Maximum evolution to be defined by the user for automatic.
integer, dimension(:), allocatable ctrlsc
Array containing the global number of the points in the control sections.
integer hidfac
Hiding factor formulas.
type(bief_obj), pointer t3
integer, dimension(:), allocatable optadv_sed
Advection scheme options for suspended sediments.
double precision, dimension(:), allocatable conc_mud_activ_layer
Concentation of mud in active layer (array defined for temporary work in some subroutines) ...
double precision, dimension(:), allocatable sanfra
sand fraction for Wilcock & Crowe transport formula
type(bief_obj), target flbcla
Fluxes at boundary for every class.
integer, dimension(3) mardat
Orginal date of time.
type(bief_obj), target mtransfer
Mass transfer for consolidation between layers (for output variables)
double precision, dimension(:,:), allocatable flux_flusec2
type(bief_obj), target maskpt
Mask on points.