The TELEMAC-MASCARET system  trunk
interface_telemac3d.f
Go to the documentation of this file.
1 !
3 !
4 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6 !
7  USE bief_def
8 !
9 !-----------------------------------------------------------------------
10 !
11 ! DEFINITION OF INTERFACES
12 !
13 !-----------------------------------------------------------------------
14 !
15  INTERFACE
16  SUBROUTINE airwik1
17  &(lihbor,uborf,vborf,liubof,livbof,uborl,vborl,liubol,livbol,
18  & ubors,vbors,liubos,livbos,u,v,ud,vd,delwaq,
19  & u2d,v2d,xnebor,ynebor,nbor,
20  & umoy,vmoy,tra01,tra02,tra03,z,nptfr,nplan,npoin2,
21  & kent,kadh,klog,kdeb,optban,kp1bor)
22  USE bief_def
24  IMPLICIT NONE
25  INTEGER, INTENT(IN) :: NPTFR, NPLAN, NPOIN2,OPTBAN
26  INTEGER, INTENT(IN) :: KENT, KADH, KLOG, KDEB
27  INTEGER, INTENT(IN) :: KP1BOR(nptfr,2)
28  INTEGER, INTENT(IN) :: LIUBOF(npoin2), LIUBOS(npoin2)
29  INTEGER, INTENT(IN) :: LIUBOL(nptfr,nplan)
30  INTEGER, INTENT(IN) :: LIHBOR(nptfr)
31  INTEGER, INTENT(IN) :: LIVBOF(npoin2), LIVBOS(npoin2)
32  INTEGER, INTENT(IN) :: LIVBOL(nptfr,nplan)
33  INTEGER, INTENT(IN) :: NBOR(nptfr)
34  DOUBLE PRECISION, INTENT(IN) :: UBORF(npoin2),UBORS(npoin2)
35  DOUBLE PRECISION, INTENT(IN) :: UBORL(nptfr,nplan)
36  DOUBLE PRECISION, INTENT(IN) :: VBORF(npoin2),VBORS(npoin2)
37  DOUBLE PRECISION, INTENT(IN) :: VBORL(nptfr,nplan)
38  DOUBLE PRECISION, INTENT(IN) :: Z(npoin2,nplan)
39  DOUBLE PRECISION, INTENT(IN) :: XNEBOR(nptfr),YNEBOR(nptfr)
40  DOUBLE PRECISION, INTENT(INOUT) :: U(npoin2,nplan),V(npoin2,nplan)
41  DOUBLE PRECISION, INTENT(INOUT) :: UD(npoin2,nplan)
42  DOUBLE PRECISION, INTENT(INOUT) :: VD(npoin2,nplan)
43  DOUBLE PRECISION, INTENT(INOUT) :: U2D(npoin2),V2D(npoin2)
44  DOUBLE PRECISION, INTENT(INOUT) :: UMOY(npoin2),VMOY(npoin2)
45  DOUBLE PRECISION, INTENT(INOUT) :: TRA01(npoin2,nplan)
46  DOUBLE PRECISION, INTENT(INOUT) :: TRA02(npoin2,nplan)
47  DOUBLE PRECISION, INTENT(INOUT) :: TRA03(npoin2,nplan)
48  LOGICAL, INTENT(IN) :: DELWAQ
49  END SUBROUTINE
50  END INTERFACE
51 !
52 !-----------------------------------------------------------------------
53 !
54  INTERFACE
55  SUBROUTINE airwik2
56  &(lihbor,uborf,vborf,wborf,liubof,livbof,liwbof,uborl,vborl,wborl,
57  & liubol,livbol,liwbol,
58  & ubors,vbors,wbors,liubos,livbos,liwbos,u,v,w,xnebor,ynebor,nbor,
59  & nptfr,nplan,npoin2,kent,kadh,klog,kdeb,velprolat)
60  USE bief_def
62  IMPLICIT NONE
63  INTEGER, INTENT(IN) :: NPTFR, NPLAN, NPOIN2
64  INTEGER, INTENT(IN) :: KENT, KADH, KLOG, KDEB
65  INTEGER, INTENT(IN) :: LIUBOF(npoin2), LIUBOS(npoin2)
66  INTEGER, INTENT(IN) :: LIUBOL(nptfr,nplan),LIWBOF(npoin2)
67  INTEGER, INTENT(IN) :: LIHBOR(nptfr),LIWBOS(npoin2)
68  INTEGER, INTENT(IN) :: LIVBOF(npoin2), LIVBOS(npoin2)
69  INTEGER, INTENT(IN) :: LIVBOL(nptfr,nplan),LIWBOL(nptfr,nplan)
70  INTEGER, INTENT(IN) :: NBOR(nptfr)
71  DOUBLE PRECISION, INTENT(IN) :: UBORF(npoin2),UBORS(npoin2)
72  DOUBLE PRECISION, INTENT(IN) :: WBORF(npoin2),WBORS(npoin2)
73  DOUBLE PRECISION, INTENT(IN) :: UBORL(nptfr,nplan)
74  DOUBLE PRECISION, INTENT(IN) :: WBORL(nptfr,nplan)
75  DOUBLE PRECISION, INTENT(IN) :: VBORF(npoin2), VBORS(npoin2)
76  DOUBLE PRECISION, INTENT(IN) :: VBORL(nptfr,nplan)
77  DOUBLE PRECISION, INTENT(IN) :: XNEBOR(nptfr),YNEBOR(nptfr)
78  DOUBLE PRECISION, INTENT(INOUT) :: U(npoin2,nplan),V(npoin2,nplan)
79  DOUBLE PRECISION, INTENT(INOUT) :: W(npoin2,nplan)
80  LOGICAL, INTENT(IN) :: VELPROLAT
81  END SUBROUTINE
82  END INTERFACE
83 !
84 !-----------------------------------------------------------------------
85 !
86  INTERFACE
87  SUBROUTINE amr_plan
88  &(zvals,objsol,reftype,npoin2,nplan,nseg2,gloseg,dimglo,
89  & z0,newz,zext,intsol,monitor,ssmonitor,smonitor,nextr,snneigh,
90  & nneigh,mcoeff,mesh2d,mesh3d)
91  USE bief_def
93  IMPLICIT NONE
94  INTEGER, INTENT(IN) :: NPLAN,NPOIN2,NSEG2,DIMGLO
95  DOUBLE PRECISION, INTENT(IN) :: OBJSOL(npoin2,nplan)
96  CHARACTER, INTENT(IN) :: REFTYPE
97  INTEGER, INTENT(IN) :: GLOSEG(dimglo,2)
98  DOUBLE PRECISION, INTENT(INOUT) :: ZVALS(npoin2,nplan)
99  DOUBLE PRECISION, INTENT(INOUT) :: Z0(npoin2,nplan)
100  DOUBLE PRECISION, INTENT(INOUT) :: NEWZ(npoin2,nplan)
101  DOUBLE PRECISION, INTENT(INOUT) :: ZEXT(npoin2,nplan)
102  DOUBLE PRECISION, INTENT(INOUT) :: INTSOL(npoin2,nplan)
103  DOUBLE PRECISION, INTENT(INOUT) :: MONITOR(npoin2,nplan)
104  DOUBLE PRECISION, INTENT(INOUT) :: SMONITOR(npoin2,nplan)
105  INTEGER, INTENT(INOUT) :: NEXTR(npoin2)
106  DOUBLE PRECISION, INTENT(INOUT) :: NNEIGH(npoin2),MCOEFF(npoin2)
107  TYPE(bief_obj), INTENT(INOUT) :: SNNEIGH,SSMONITOR
108  TYPE(bief_mesh), INTENT(INOUT) :: MESH2D,MESH3D
109  END SUBROUTINE
110  END INTERFACE
111 !
112 !-----------------------------------------------------------------------
113 !
114  INTERFACE
115  SUBROUTINE airwik3
116  & (lihbor,u,v,xnebor,ynebor,nbor,nptfr,nplan,npoin2,klog)
118  IMPLICIT NONE
119  INTEGER, INTENT(IN) :: NPTFR,NPLAN,NPOIN2,KLOG
120  INTEGER, INTENT(IN) :: LIHBOR(nptfr),NBOR(nptfr)
121  DOUBLE PRECISION, INTENT(IN) :: XNEBOR(nptfr),YNEBOR(nptfr)
122  DOUBLE PRECISION, INTENT(INOUT) :: U(npoin2,nplan),V(npoin2,nplan)
123  END SUBROUTINE
124  END INTERFACE
125 !
126 !-----------------------------------------------------------------------
127 !
128  INTERFACE
129  SUBROUTINE bil3d(LT,NIT,IKLBORL,NPTFR,NETAG)
132  IMPLICIT NONE
133  INTEGER, INTENT(IN) :: LT,NIT
134  INTEGER, INTENT(IN) :: NPTFR,NETAG
135  INTEGER, INTENT(IN) :: IKLBORL(nelebx,*)
136  END SUBROUTINE
137  END INTERFACE
138 !
139 !-----------------------------------------------------------------------
140 !
141  INTERFACE
142  SUBROUTINE trid1d(X,AA,BB,CC,DD,GAM,IMAX)
144  IMPLICIT NONE
145  INTEGER, INTENT(IN) :: IMAX
146  DOUBLE PRECISION, INTENT(INOUT) :: X(imax),DD(imax),GAM(imax)
147  DOUBLE PRECISION, INTENT(INOUT) :: AA(imax),BB(imax),CC(imax)
148  END SUBROUTINE
149  END INTERFACE
150 !
151 !-----------------------------------------------------------------------
152 !
153  INTERFACE
154  SUBROUTINE bord3d(NFRLIQ)
156  IMPLICIT NONE
157  INTEGER , INTENT(IN) :: NFRLIQ
158  END SUBROUTINE
159  END INTERFACE
160 !
161 !-----------------------------------------------------------------------
162 !
163  INTERFACE
164  SUBROUTINE bypass_crushed_points_ebe
165  &(svolu,svolun,flux,tra01,mesh3,
166  & nelem2,nelem3,nelmax,nplan,ikle)
167  USE bief_def
168  IMPLICIT NONE
169  INTEGER, INTENT(IN) :: NELEM3,NELEM2,NPLAN
170  INTEGER, INTENT(IN) :: NELMAX
171  INTEGER, INTENT(IN) :: IKLE(nelmax,6)
172  TYPE(bief_obj), INTENT(IN) :: SVOLU,SVOLUN
173  TYPE(bief_obj), INTENT(INOUT) :: TRA01
174  TYPE(bief_mesh), INTENT(INOUT) :: MESH3
175  DOUBLE PRECISION, INTENT(INOUT) :: FLUX(30,nelem3)
176  END SUBROUTINE
177  END INTERFACE
178 !
179 !-----------------------------------------------------------------------
180 !
181  INTERFACE
182  SUBROUTINE bypass_crushed_points_seg
183  &(svolu,svolun,flux,tra01,mesh3,
184  & schcf,npoin2,gloseg,dimglo,nseg,nplan)
185  USE bief_def
186  IMPLICIT NONE
187  INTEGER, INTENT(IN) :: SCHCF,NPOIN2
188  INTEGER, INTENT(IN) :: NSEG,NPLAN,DIMGLO
189  INTEGER, INTENT(IN) :: GLOSEG(dimglo,2)
190  TYPE(bief_obj), INTENT(IN) :: SVOLU,SVOLUN
191  TYPE(bief_obj), INTENT(INOUT) :: TRA01
192  TYPE(bief_mesh), INTENT(INOUT) :: MESH3
193  DOUBLE PRECISION, INTENT(INOUT) :: FLUX(*)
194  END SUBROUTINE
195  END INTERFACE
196 !
197 !-----------------------------------------------------------------------
198 !
199  INTERFACE
200  SUBROUTINE calcg(TRAV2,TRAV3,UETCAR,NPOIN2,NPLAN)
202  IMPLICIT NONE
203  INTEGER , INTENT(IN) :: NPOIN2,NPLAN
204  DOUBLE PRECISION, INTENT(IN) :: UETCAR(npoin2)
205  DOUBLE PRECISION, INTENT(IN) :: TRAV2(npoin2*nplan)
206  DOUBLE PRECISION, INTENT(INOUT) :: TRAV3(npoin2*nplan)
207  END SUBROUTINE
208  END INTERFACE
209 !
210 !-----------------------------------------------------------------------
211 !
212  INTERFACE
213  SUBROUTINE calcot(ZZ,HH)
216  IMPLICIT NONE
217  DOUBLE PRECISION, INTENT(IN) :: HH(npoin2)
218  DOUBLE PRECISION, INTENT(INOUT) :: ZZ(npoin2,nplan)
219  END SUBROUTINE
220  END INTERFACE
221 !
222 !-----------------------------------------------------------------------
223 !
224  INTERFACE
225  SUBROUTINE check
226  &(ikle2,nbor,nelbor,iklbor,neleb,nelebx,ikle3,nelbo3,nulone,
227  & dim1nul,dim2nul,nbor3,nelem2,nptfr,nelem3,nptfr3,info)
229  IMPLICIT NONE
230  INTEGER, INTENT(IN) :: NELEM2,NPTFR,NELEM3
231  INTEGER, INTENT(IN) :: NPTFR3,NELEB,NELEBX,DIM1NUL,DIM2NUL
232  INTEGER, INTENT(IN) :: NELBOR(nptfr),NBOR(nptfr)
233  INTEGER, INTENT(IN) :: IKLE2(nelem2,3)
234  INTEGER, INTENT(IN) :: IKLBOR(nelebx,*),IKLE3(nelem3,*)
235  INTEGER, INTENT(IN) :: NELBO3(nelebx)
236  INTEGER, INTENT(IN) :: NULONE(dim1nul,dim2nul)
237  INTEGER, INTENT(IN) :: NBOR3(nptfr3)
238  LOGICAL, INTENT(IN) :: INFO
239  END SUBROUTINE
240  END INTERFACE
241 !
242 !-----------------------------------------------------------------------
243 !
244  INTERFACE
245  SUBROUTINE clsedi
246  &( atabof , btabof ,
247  & wc ,
248  & z , hn , deltar ,
249  & tob , densi , s3d_epai, s3d_cfdep,
250  & s3d_conc, s3d_hdep, s3d_fluer, s3d_fludpt, litabf ,
251  & klog , npoin3 , npoin2 , nplan ,
252  & s3d_ncouch, dt , rho0 , s3d_rhos,
253  & s3d_tocd, s3d_mpart, s3d_toce, uetcar , grav ,
254  & s3d_sedco, s3d_dmoy, s3d_cref, zref , cf ,
255  & s3d_ac , s3d_kspratio, s3d_icr, s3d_icq , rugof ,
256  & s3d_setdep, hmin , s3d_wcs, s3d_epaico, s3d_epainco,
257  & s3d_mixte, s3d_sednco, s3d_fludptc, s3d_fludptnc, s3d_fluerc,
258  & s3d_fluernc, ntrac , itrac)
259  USE bief
261  IMPLICIT NONE
262  INTEGER, INTENT(IN) :: NPOIN2,NPOIN3,KLOG,S3D_ICQ, ITRAC, NTRAC
263  INTEGER, INTENT(IN) :: S3D_NCOUCH,NPLAN,S3D_ICR
264  DOUBLE PRECISION, INTENT(INOUT) :: ATABOF(npoin2), BTABOF(npoin2)
265  DOUBLE PRECISION, INTENT(IN) :: Z(npoin3)
266  DOUBLE PRECISION, INTENT(IN) :: S3D_CFDEP
267  DOUBLE PRECISION, INTENT(IN) :: WC(npoin3), DELTAR(npoin3)
268  DOUBLE PRECISION, INTENT(IN) :: S3D_WCS(*)
269  TYPE(bief_obj), INTENT(INOUT) :: TOB,S3D_CREF,ZREF,RUGOF
270  TYPE(bief_obj), INTENT(IN) :: S3D_DMOY,HN,CF
271  DOUBLE PRECISION, INTENT(INOUT) :: S3D_EPAI(npoin2,s3d_ncouch)
272  DOUBLE PRECISION, INTENT(IN) :: S3D_EPAICO(*), S3D_EPAINCO(*)
273  DOUBLE PRECISION, INTENT(IN) :: S3D_CONC(npoin2,s3d_ncouch)
274  DOUBLE PRECISION, INTENT(INOUT) :: DENSI(npoin2)
275  DOUBLE PRECISION, INTENT(INOUT) :: UETCAR(npoin2)
276  DOUBLE PRECISION, INTENT(INOUT) :: S3D_HDEP(npoin2)
277  DOUBLE PRECISION, INTENT(INOUT) :: S3D_FLUER(npoin2)
278  DOUBLE PRECISION, INTENT(INOUT) :: S3D_FLUERC(*), S3D_FLUERNC(*)
279  DOUBLE PRECISION, INTENT(INOUT) :: S3D_FLUDPT(npoin2)
280  DOUBLE PRECISION, INTENT(INOUT) :: S3D_FLUDPTC(*)
281  DOUBLE PRECISION, INTENT(INOUT) :: S3D_FLUDPTNC(*)
282  DOUBLE PRECISION, INTENT(IN) :: DT, RHO0, S3D_RHOS, HMIN
283  DOUBLE PRECISION, INTENT(IN) :: S3D_TOCD, GRAV
284  DOUBLE PRECISION, INTENT(IN) :: S3D_MPART
285  DOUBLE PRECISION, INTENT(IN) :: S3D_TOCE(npoin2,s3d_ncouch)
286  INTEGER, INTENT(INOUT) :: LITABF(npoin2)
287  LOGICAL, INTENT(IN) :: S3D_SEDCO, S3D_MIXTE, S3D_SEDNCO
288  INTEGER, INTENT(IN) :: S3D_SETDEP
289  DOUBLE PRECISION, INTENT(IN) :: S3D_AC, S3D_KSPRATIO
290  END SUBROUTINE
291  END INTERFACE
292 !
293 !-----------------------------------------------------------------------
294 !
295  INTERFACE
296  SUBROUTINE coef
297  & (s3d_ivide, s3d_epai, tra01 ,
298  & s3d_npfmax, imax , ndeb ,
299  & s3d_rhos, grav , s3d_dtc, dsig1 )
301  IMPLICIT NONE
302  INTEGER, INTENT(IN) :: S3D_NPFMAX, IMAX,NDEB
303  DOUBLE PRECISION, INTENT(INOUT) :: TRA01(s3d_npfmax,6)
304  DOUBLE PRECISION, INTENT(IN) :: S3D_EPAI(s3d_npfmax-1)
305  DOUBLE PRECISION, INTENT(IN) :: S3D_IVIDE(s3d_npfmax)
306  DOUBLE PRECISION, INTENT(IN) :: S3D_RHOS, GRAV ,S3D_DTC, DSIG1
307  END SUBROUTINE
308  END INTERFACE
309 !
310 !-----------------------------------------------------------------------
311 !
312  INTERFACE
313  SUBROUTINE condim
315  IMPLICIT NONE
316  END SUBROUTINE
317  END INTERFACE
318 !
319 !-----------------------------------------------------------------------
320 !
321  INTERFACE
322  SUBROUTINE user_mesh_transf
324  IMPLICIT NONE
325  END SUBROUTINE
326  END INTERFACE
327 !
328 !-----------------------------------------------------------------------
329 !
330  INTERFACE
331  SUBROUTINE user_condi3d_h
332  USE bief
336  IMPLICIT NONE
337  END SUBROUTINE
338  END INTERFACE
339 !
340 !-----------------------------------------------------------------------
341 !
342  INTERFACE
343  SUBROUTINE user_condi3d_uvw
344  USE bief
346  IMPLICIT NONE
347  END SUBROUTINE
348  END INTERFACE
349 !
350 !-----------------------------------------------------------------------
351 !
352  INTERFACE
353  SUBROUTINE user_condi3d_trac
354  USE bief
356  IMPLICIT NONE
357  END SUBROUTINE
358  END INTERFACE
359 !
360 !-----------------------------------------------------------------------
361 !
362  INTERFACE
363  SUBROUTINE user_condi3d_kep
365  IMPLICIT NONE
366  END SUBROUTINE
367  END INTERFACE
368 !
369 !-----------------------------------------------------------------------
370 !
371  INTERFACE
372  SUBROUTINE user_condi3d_p
374  IMPLICIT NONE
375  END SUBROUTINE
376  END INTERFACE
377 !
378 !-----------------------------------------------------------------------
379 !
380  INTERFACE
381  SUBROUTINE condis
382  &(s3d_ivide, s3d_epai, s3d_trest, s3d_conc, s3d_temp , s3d_hdep ,
383  & zr , zf , x , y , npoin2 ,
384  & npf , s3d_ncouch, s3d_tasse, s3d_itass, s3d_rhos , s3d_xkv ,
385  & s3d_cfdep, s3d_esomt, s3d_toce, s3d_sedco, s3d_conc_layer,
386  & s3d_toce_layer, s3d_es_layer, s3d_sednco, s3d_mixte, s3d_epaico,
387  & s3d_epainco, s3d_pvsco ,
388  & s3d_pvsnco, s3d_pvsnco0)
389  USE bief_def
391  IMPLICIT NONE
392  INTEGER, INTENT(IN) :: NPOIN2,S3D_NCOUCH
393  DOUBLE PRECISION, INTENT(OUT) :: S3D_IVIDE(*), S3D_CFDEP
394 !
395  DOUBLE PRECISION, INTENT(INOUT) :: S3D_EPAI(npoin2,s3d_ncouch)
396  DOUBLE PRECISION, INTENT(INOUT) :: S3D_EPAICO(*), S3D_EPAINCO(*)
397  DOUBLE PRECISION, INTENT(INOUT) :: S3D_PVSCO(*), S3D_PVSNCO(*)
398  DOUBLE PRECISION, INTENT(INOUT) :: S3D_CONC(npoin2,s3d_ncouch)
399 !
400  DOUBLE PRECISION, INTENT(INOUT) :: S3D_TEMP(*)
401 !
402  DOUBLE PRECISION, INTENT(INOUT) :: S3D_HDEP(npoin2)
403  DOUBLE PRECISION, INTENT(INOUT) :: ZR(npoin2)
404  DOUBLE PRECISION, INTENT(IN) :: ZF(npoin2)
405  DOUBLE PRECISION, INTENT(IN) :: X(npoin2),Y(npoin2)
406  DOUBLE PRECISION, INTENT(INOUT) :: S3D_TREST(s3d_ncouch)
407  DOUBLE PRECISION, INTENT(INOUT) :: S3D_TOCE(npoin2,s3d_ncouch)
408  DOUBLE PRECISION, INTENT(IN) :: S3D_CONC_LAYER(s3d_ncouch)
409  DOUBLE PRECISION, INTENT(IN) :: S3D_ES_LAYER(s3d_ncouch)
410  DOUBLE PRECISION, INTENT(IN) :: S3D_TOCE_LAYER(s3d_ncouch)
411  INTEGER, INTENT(INOUT) :: NPF(npoin2)
412  TYPE(bief_obj), INTENT (INOUT) :: S3D_ESOMT
413  LOGICAL, INTENT(IN) :: S3D_TASSE
414  LOGICAL, INTENT(IN) :: S3D_SEDCO, S3D_SEDNCO
415  LOGICAL, INTENT(IN) :: S3D_MIXTE
416  INTEGER, INTENT(IN) :: S3D_ITASS
417  DOUBLE PRECISION, INTENT(IN) :: S3D_RHOS,S3D_XKV, S3D_PVSNCO0
418  END SUBROUTINE
419  END INTERFACE
420 !
421 !-----------------------------------------------------------------------
422 !
423  INTERFACE
424  SUBROUTINE t3d_corfon
425  &(szf, st1, st2, zf, t1, t2, x, y, prive, npoin2,
426  & lisfon, lisfon_after, msk, maskel, matr2d, mesh2d, s)
427  USE bief_def
429  IMPLICIT NONE
430  INTEGER, INTENT(IN) :: NPOIN2, LISFON
431  LOGICAL, INTENT(IN) :: LISFON_AFTER,MSK
432  type(bief_obj), INTENT(INOUT) :: szf, st1, st2
433  DOUBLE PRECISION, DIMENSION(NPOIN2), INTENT(INOUT) :: ZF, T1, T2
434  DOUBLE PRECISION, DIMENSION(NPOIN2), INTENT(IN) :: X,Y
435  type(bief_obj), INTENT(INOUT) :: prive
436  type(bief_obj), INTENT(IN) :: maskel
437  type(bief_obj), INTENT(INOUT) :: matr2d
438  type(bief_mesh), INTENT(INOUT) :: mesh2d
439  type(bief_obj), INTENT(IN) :: s
440  END SUBROUTINE
441  END INTERFACE
442 !
443 !-----------------------------------------------------------------------
444 !
445  INTERFACE
446  SUBROUTINE correction_depth_3d(GLOSEG,DIMGLO)
449  IMPLICIT NONE
450  INTEGER, INTENT(IN) :: DIMGLO
451  INTEGER, INTENT(IN) :: GLOSEG(dimglo,2)
452  END SUBROUTINE
453  END INTERFACE
454 !
455 !-----------------------------------------------------------------------
456 !
457  INTERFACE
458  SUBROUTINE cstkep
460  IMPLICIT NONE
461  END SUBROUTINE
462  END INTERFACE
463 !
464 !-----------------------------------------------------------------------
465 !
466  INTERFACE
467  SUBROUTINE cvdf3d
468  &(fd,fc,fn,viscf,sigmaf,s0f,yas0f,s1f,yas1f,
469  & fborl,fborf,fbors,afborl,afborf,afbors,
470  & bfborl,bfborf,bfbors,lifbol,lifbof,lifbos,
471  & fluxb,fluxf,fluext,fluextpar,fmin,climin,fmax,climax,
472  & schcf,schdf,slvdif,trbaf,infor,newdif,calflu,
473  & t2_01,t2_03,
474  & t3_01,t3_02,t3_03,t3_04,mesh3d,ikle3,maskel,mtra1,
475  & nptfr3,mmurd,murd_tf,volu,volupar,volun,volunpar,
476  & nbor3,npoin3,npoin2,dt,msk,nelem3,
477  & nplan,ielm3,msupg,ielm2h,ielm2v,mdiff,mtra2,
478  & inchyd,maskbr,maskpt,sem3d,yasem3d,svide,it1,
479  & trav3,mesh2d,optban,tetadi,
480  & yawchu,wchu,s3d_wchu,agglod,nsce,sources,fsce,numliq,dirflu,
481  & nfrliq,volut,zt,zprop,rain,pluie,parapluie,train,
482  & flodel,flopar,sigmag,ipbot,maxadv,fludpt,fludp,fluer,
483  & volu2d,v2dpar,setdep,s3d_fludpt,s3d_fludp,s3d_fluer,
484  & s3d_setdep,optsou,zn,optadv,nco_dist,
485  & nsp_dist,tb2)
486  USE bief_def
488  USE declarations_telemac3d, ONLY : maxfro
489  IMPLICIT NONE
490  TYPE(bief_obj), INTENT(INOUT) :: FD, FC, FN
491  TYPE(bief_obj), INTENT(INOUT) :: S1F, VISCF
492  TYPE(bief_obj), TARGET, INTENT(INOUT) :: S0F
493  TYPE(bief_obj), INTENT(INOUT) :: LIFBOL, LIFBOF, LIFBOS
494  TYPE(bief_obj), INTENT(INOUT) :: FBORL, FBORF, FBORS
495  TYPE(bief_obj), INTENT(IN) :: AFBORL, AFBORF, AFBORS
496  TYPE(bief_obj), INTENT(IN) :: BFBORL, BFBORF, BFBORS
497  TYPE(bief_obj), INTENT(IN) :: FLUEXT,PLUIE,PARAPLUIE
498  TYPE(bief_obj), INTENT(IN) :: FLUEXTPAR
499  DOUBLE PRECISION, INTENT(IN) :: SIGMAF,FMIN,FMAX,DT,TRAIN
500  DOUBLE PRECISION, INTENT(IN) :: AGGLOD
501  DOUBLE PRECISION, INTENT(INOUT) :: FLUXB(*)
502  DOUBLE PRECISION, INTENT(INOUT) :: FLUXF,TETADI
503  INTEGER, INTENT(IN) :: SCHCF,SCHDF,TRBAF,NPTFR3,NFRLIQ
504  INTEGER, INTENT(IN) :: NUMLIQ(*),DIRFLU(0:nfrliq)
505  INTEGER, INTENT(IN) :: OPTSOU,OPTADV,NCO_DIST,NSP_DIST
506  LOGICAL, INTENT(IN) :: CLIMIN,CLIMAX,RAIN,YAS0F,YAS1F
507  LOGICAL, INTENT(IN) :: INFOR,NEWDIF,CALFLU,MSK,SIGMAG
508  TYPE(slvcfg) :: SLVDIF
509  TYPE(bief_obj), INTENT(IN) :: MASKEL,IKLE3,FLODEL,FLOPAR
510  TYPE(bief_obj), INTENT(IN) :: NBOR3,WCHU,SOURCES,ZPROP
511  TYPE(bief_obj), INTENT(IN) :: S3D_WCHU
512  TYPE(bief_obj), INTENT(INOUT) :: T3_01,T3_02,T3_03,T3_04
513  TYPE(bief_obj), INTENT(INOUT) :: T2_01,T2_03,ZT,TB2
514  TYPE(bief_obj), TARGET, INTENT(INOUT) :: VOLUT
515  TYPE(bief_mesh), INTENT(INOUT) :: MESH3D
516  INTEGER, INTENT(IN) :: NPOIN3,NPOIN2,MAXADV
517  INTEGER, INTENT(IN) :: IPBOT(npoin2)
518  INTEGER, INTENT(IN) :: NPLAN,NELEM3
519  INTEGER, INTENT(IN) :: OPTBAN
520  TYPE(bief_obj), INTENT(INOUT) :: MMURD,MURD_TF,MTRA1
521  TYPE(bief_obj), INTENT(IN) :: VOLUN,VOLUNPAR,VOLUPAR
522  TYPE(bief_obj), TARGET, INTENT(INOUT) :: VOLU
523  LOGICAL, INTENT(IN) :: INCHYD,YASEM3D
524  LOGICAL, INTENT(INOUT) :: YAWCHU
525  TYPE(bief_obj), INTENT(IN) :: MASKPT,MASKBR,SVIDE
526  TYPE(bief_mesh), INTENT(INOUT) :: MESH2D
527  INTEGER, INTENT(IN) :: IELM3,IELM2H,IELM2V,NSCE
528  TYPE(bief_obj), INTENT(INOUT) :: SEM3D,IT1,TRAV3,MTRA2
529  TYPE(bief_obj), INTENT(INOUT) :: MSUPG,MDIFF
530  DOUBLE PRECISION, INTENT(IN) :: FSCE(nsce)
531  TYPE(bief_obj), INTENT(IN) :: VOLU2D,V2DPAR
532  TYPE(bief_obj), INTENT(INOUT) :: S3D_FLUDPT,S3D_FLUDP,S3D_FLUER
533  INTEGER, INTENT(IN) :: S3D_SETDEP
534  TYPE(bief_obj), INTENT(INOUT) :: FLUDPT,FLUDP,FLUER
535  INTEGER, INTENT(IN) :: SETDEP
536  DOUBLE PRECISION, INTENT(IN) :: ZN(npoin3)
537  END SUBROUTINE
538  END INTERFACE
539 !
540 !-----------------------------------------------------------------------
541 !
542  INTERFACE
543  SUBROUTINE debimp3d
544  &(q,ubor,vbor,wbor,u,v,h,numliq,ifrliq,
545  & t3_01,t3_02,t3_03,
546  & nptfr,netage,mask,mesh,formul,npoin2,
547  & ielm2v,sigmag,svide,maskbr,zprop)
548  USE bief_def
550  IMPLICIT NONE
551  INTEGER, INTENT(IN) :: NPTFR,NETAGE,NPOIN2,IFRLIQ
552  INTEGER, INTENT(IN) :: NUMLIQ(nptfr)
553  DOUBLE PRECISION, INTENT(INOUT) :: UBOR(*),VBOR(*),WBOR(*)
554  DOUBLE PRECISION, INTENT(IN) :: MASK(*)
555  DOUBLE PRECISION, INTENT(IN) :: Q
556  CHARACTER(LEN=16) FORMUL
557  INTEGER, INTENT(IN) :: IELM2V
558  LOGICAL, INTENT(IN) :: SIGMAG
559  TYPE(bief_mesh) :: MESH
560  TYPE(bief_obj), INTENT(INOUT) :: MASKBR
561  TYPE(bief_obj) , INTENT(INOUT):: H,U,V
562  TYPE(bief_obj) , INTENT(INOUT):: T3_01,T3_02,T3_03
563  TYPE(bief_obj) , INTENT(INOUT) :: ZPROP
564  TYPE(bief_obj) , INTENT(INOUT) :: SVIDE
565  END SUBROUTINE
566  END INTERFACE
567 !
568 !-----------------------------------------------------------------------
569 !
570  INTERFACE
571  SUBROUTINE debimp_3d
572  &(q,ubor,vbor,u,v,numliq,numliq_elm,ifrliq,t3_02,
573  & nptfr,netage,mask,mesh,formul,ielm2v,svide,maskbr,neleb)
574  USE bief_def
576  IMPLICIT NONE
577  INTEGER, INTENT(IN) :: NPTFR,NETAGE,IFRLIQ,NELEB
578  INTEGER, INTENT(IN) :: NUMLIQ(nptfr),NUMLIQ_ELM(neleb)
579  DOUBLE PRECISION, INTENT(INOUT) :: UBOR(*),VBOR(*)
580  DOUBLE PRECISION, INTENT(IN) :: Q
581  CHARACTER(LEN=16) FORMUL
582  INTEGER, INTENT(IN) :: IELM2V
583  TYPE(bief_mesh) :: MESH
584  TYPE(bief_obj), INTENT(IN) :: MASK
585  TYPE(bief_obj), INTENT(INOUT) :: MASKBR
586  TYPE(bief_obj) , INTENT(INOUT) :: U,V
587  TYPE(bief_obj) , INTENT(INOUT) :: T3_02
588  TYPE(bief_obj) , INTENT(INOUT) :: SVIDE
589  END SUBROUTINE
590  END INTERFACE
591 !
592 !-----------------------------------------------------------------------
593 !
594  INTERFACE
595  SUBROUTINE dessed
596  & (npf,s3d_ivide,s3d_epai,s3d_hdep,s3d_temp,zr,npoin2,
597  & s3d_npfmax,s3d_ncouch, graprd,lt,s3d_dtc,s3d_tasse,
598  & s3d_gibson,nrsed,titcas,s3d_birsed,gradeb)
600  IMPLICIT NONE
601  INTEGER, INTENT(IN) :: NPOIN2, S3D_NPFMAX, NRSED
602  INTEGER, INTENT(IN) :: LT, S3D_NCOUCH
603  INTEGER, INTENT(IN) :: GRAPRD, GRADEB
604  INTEGER, INTENT(IN) :: NPF(npoin2)
605  DOUBLE PRECISION, INTENT(IN) :: S3D_EPAI((s3d_npfmax-1)*npoin2)
606  DOUBLE PRECISION, INTENT(IN) :: S3D_IVIDE(s3d_npfmax*npoin2)
607  DOUBLE PRECISION, INTENT(IN) :: S3D_HDEP(npoin2), ZR(npoin2)
608  DOUBLE PRECISION, INTENT(IN) :: S3D_TEMP(s3d_ncouch*npoin2)
609  DOUBLE PRECISION, INTENT(IN) :: S3D_DTC
610  LOGICAL, INTENT(IN) :: S3D_TASSE,S3D_GIBSON
611  CHARACTER(LEN=72), INTENT(IN):: TITCAS
612  CHARACTER(LEN=3), INTENT(IN) :: S3D_BIRSED
613  END SUBROUTINE
614  END INTERFACE
615 !
616 !-----------------------------------------------------------------------
617 !
618  INTERFACE
619  SUBROUTINE diag_murd
620  &(diag,xm,nelem,nelmax,npoin3,ikle,ielm3,dim1x)
622  IMPLICIT NONE
623  INTEGER, INTENT(IN) :: NELEM,NELMAX,NPOIN3,IELM3,DIM1X
624  INTEGER, INTENT(IN) :: IKLE(nelmax,*)
625  DOUBLE PRECISION, INTENT(INOUT) :: DIAG(npoin3)
626  DOUBLE PRECISION, INTENT(IN) :: XM(dim1x,nelmax)
627  END SUBROUTINE
628  END INTERFACE
629 !
630 !-----------------------------------------------------------------------
631 !
632  INTERFACE
633  SUBROUTINE diff3d
634  &(fd,fc,fn,viscf,sigmaf,s0f,yas0f,s1f,yas1f,
635  & fborl,fborf,fbors,afborl,afborf,afbors,
636  & bfborl,bfborf,bfbors,lifbof,lifbol,lifbos,
637  & fmin,climin,fmax,climax,schcf,schdf,slvdif,trbaf,info,
638  & newdif,dt,t2_01,t2_03,t3_01,t3_02,t3_03,t3_04,
639  & npoin2,npoin3,inchyd,sem3d,yasem3d,it1,nptfr3,nbor3,maskpt,
640  & trav3,mesh2d,mesh3d,mtra1,mtra2,ielm3,msupg,ielm2h,ielm2v,
641  & mdiff,maskbr,svide,msk,maskel,
642  & nplan,optban,tetadi,yawchu,wchu,s3d_wchu,agglod,volu,
643  & yasce,nsce,fsce,sources,tetasupg,rain,pluie,train,
644  & sigmag,ipbot,s3d_setdep,optsou,setdep)
645  USE bief_def
647  IMPLICIT NONE
648  INTEGER, INTENT(IN) :: SCHCF,SCHDF,TRBAF,NSCE
649  INTEGER, INTENT(IN) :: NPOIN2,S3D_SETDEP,OPTSOU
650  INTEGER, INTENT(IN) :: SETDEP
651  TYPE(bief_obj), INTENT(INOUT) :: FD,FC,FN,S0F,S1F,VISCF
652  TYPE(bief_obj), INTENT(IN) :: LIFBOL,LIFBOF,LIFBOS
653  TYPE(bief_obj), INTENT(IN) :: FBORL,FBORF,FBORS
654  TYPE(bief_obj), INTENT(IN) :: AFBORL,AFBORF,AFBORS
655  TYPE(bief_obj), INTENT(IN) :: BFBORL,BFBORF,BFBORS,WCHU
656  TYPE(bief_obj), INTENT(IN) :: S3D_WCHU
657  DOUBLE PRECISION, INTENT(IN) :: SIGMAF,FMIN,FMAX,DT,AGGLOD
658  DOUBLE PRECISION, INTENT(IN) :: FSCE(nsce),TETASUPG
659  DOUBLE PRECISION, INTENT(INOUT) :: TETADI
660  LOGICAL, INTENT(IN) :: CLIMIN,CLIMAX,YASCE,YAS0F
661  LOGICAL, INTENT(IN) :: INFO,NEWDIF,YASEM3D,YAS1F
662  LOGICAL, INTENT(IN) :: SIGMAG
663  TYPE(slvcfg) :: SLVDIF
664  LOGICAL, INTENT(IN) :: INCHYD,MSK,YAWCHU,RAIN
665  TYPE(bief_obj), INTENT(IN) :: MASKPT,MASKBR,MASKEL,VOLU
666  TYPE(bief_obj), INTENT(IN) :: NBOR3,SVIDE,SOURCES
667  TYPE(bief_obj), INTENT(INOUT) :: T3_01,T3_02,T3_03,T3_04
668  TYPE(bief_obj), INTENT(INOUT) :: T2_01,T2_03
669  TYPE(bief_mesh), INTENT(INOUT) :: MESH3D,MESH2D
670  INTEGER, INTENT(IN) :: NPOIN3,IELM3,IELM2H,IELM2V
671  INTEGER, INTENT(IN) :: NPTFR3,NPLAN,OPTBAN
672  INTEGER, INTENT(IN) :: IPBOT(npoin2)
673  TYPE(bief_obj), INTENT(INOUT) :: SEM3D,IT1,TRAV3,MTRA1,MTRA2
674  TYPE(bief_obj), INTENT(INOUT) :: MSUPG,MDIFF
675  DOUBLE PRECISION, INTENT(IN) :: PLUIE(*),TRAIN
676  END SUBROUTINE
677  END INTERFACE
678 !
679 !-----------------------------------------------------------------------
680 !
681  INTERFACE
682  SUBROUTINE drialg(FRV,FRT,RI,NPOIN3)
684  IMPLICIT NONE
685  INTEGER , INTENT(IN) :: NPOIN3
686  DOUBLE PRECISION, INTENT(INOUT) :: FRV(npoin3), FRT(npoin3)
687  DOUBLE PRECISION, INTENT(INOUT) :: RI(npoin3)
688  END SUBROUTINE
689  END INTERFACE
690 !
691 !-----------------------------------------------------------------------
692 !
693  INTERFACE
694  SUBROUTINE dricv(FRI,FRT,RI,NPOIN3)
696  IMPLICIT NONE
697  INTEGER, INTENT(IN) :: NPOIN3
698  DOUBLE PRECISION, INTENT(INOUT) :: FRI(npoin3),FRT(npoin3)
699  DOUBLE PRECISION, INTENT(IN) :: RI(npoin3)
700  END SUBROUTINE
701  END INTERFACE
702 !
703 !-----------------------------------------------------------------------
704 !
705  INTERFACE
706  SUBROUTINE driuti(FRI,RI,ITYP,ITRAC,NPOIN3)
708  IMPLICIT NONE
709  INTEGER, INTENT(IN) :: ITYP, ITRAC, NPOIN3
710  DOUBLE PRECISION, INTENT(INOUT) :: FRI(npoin3)
711  DOUBLE PRECISION, INTENT(INOUT) :: RI(npoin3)
712  END SUBROUTINE
713  END INTERFACE
714 !
715 !-----------------------------------------------------------------------
716 !
717  INTERFACE
718  SUBROUTINE user_driuti(FRI,RI,ITYP,ITRAC,NPOIN3)
720  IMPLICIT NONE
721  INTEGER, INTENT(IN) :: ITYP, ITRAC, NPOIN3
722  DOUBLE PRECISION, INTENT(INOUT) :: FRI(npoin3)
723  DOUBLE PRECISION, INTENT(INOUT) :: RI(npoin3)
724  END SUBROUTINE
725  END INTERFACE
726 !
727 !-----------------------------------------------------------------------
728 !
729  INTERFACE
730  SUBROUTINE drsurr
731  &( deltar,ta,betac,t0ac,rho,rho0,xmvs0,s3d_rhos,denlaw,s3d_sedi,
732  & ntrac,ind_t,ind_s, ind_sed, nsusp_tel,s3d_mixte,
733  & num_isusp_icla,nsicla)
734  USE bief_def
736  IMPLICIT NONE
737  INTEGER, INTENT(IN) :: NTRAC, DENLAW,IND_T,IND_S
738  INTEGER, INTENT(IN) :: IND_SED,NSUSP_TEL
739  INTEGER, INTENT(IN) :: NSICLA
740  DOUBLE PRECISION, INTENT(IN) :: RHO0,XMVS0(nsicla),S3D_RHOS
741  DOUBLE PRECISION, INTENT(IN) :: BETAC(ntrac),T0AC(ntrac)
742  TYPE(bief_obj), INTENT(INOUT) :: DELTAR
743  TYPE(bief_obj), INTENT(IN) :: TA
744  TYPE(bief_obj), INTENT(INOUT) :: RHO
745  LOGICAL, INTENT(IN) :: S3D_SEDI,S3D_MIXTE
746  INTEGER, INTENT(IN) :: NUM_ISUSP_ICLA(nsicla)
747  END SUBROUTINE
748  END INTERFACE
749 !
750 !-----------------------------------------------------------------------
751 !
752  INTERFACE
753  SUBROUTINE erodc
754  &( s3d_conc, s3d_epai, s3d_fluer, tob ,
755  & s3d_mpart, dt , npoin2 , s3d_ncouch,s3d_toce, hn, hmin,
756  & s3d_mixte, s3d_epaico)
758  IMPLICIT NONE
759  INTEGER, INTENT(IN) :: NPOIN2, S3D_NCOUCH
760  DOUBLE PRECISION, INTENT(IN) :: S3D_CONC(npoin2,s3d_ncouch)
761  DOUBLE PRECISION, INTENT(IN) :: HN(npoin2)
762  DOUBLE PRECISION, INTENT(IN) :: S3D_TOCE(npoin2,s3d_ncouch)
763  DOUBLE PRECISION, INTENT(INOUT) :: S3D_EPAI(npoin2,s3d_ncouch)
764  DOUBLE PRECISION, INTENT(IN) :: S3D_EPAICO(*)
765  DOUBLE PRECISION, INTENT(INOUT) :: S3D_FLUER(npoin2)
766  DOUBLE PRECISION, INTENT(IN) :: TOB(npoin2)
767  LOGICAL, INTENT(IN) :: S3D_MIXTE
768  DOUBLE PRECISION, INTENT(IN) :: S3D_MPART, DT, HMIN
769  END SUBROUTINE
770  END INTERFACE
771 !
772 !-----------------------------------------------------------------------
773 !
774  INTERFACE
775  SUBROUTINE erodnc
776  &(s3d_cfdep, s3d_wcs, s3d_hdep , s3d_fluer, tob , dt ,
777  & npoin2 , npoin3 , s3d_ac , s3d_rhos, rho0 , hn ,
778  & grav , s3d_dmoy, s3d_cref , zref , s3d_icq, rugof,
779  & z , uetcar , s3d_setdep, s3d_epainco, s3d_mixte)
780  USE bief_def
782  IMPLICIT NONE
783  INTEGER, INTENT(IN) :: NPOIN2,NPOIN3,S3D_ICQ
784  INTEGER, INTENT(IN) :: S3D_SETDEP
785  DOUBLE PRECISION, INTENT(INOUT) :: S3D_HDEP(npoin2)
786  DOUBLE PRECISION, INTENT(INOUT) :: S3D_FLUER(npoin2)
787  DOUBLE PRECISION, INTENT(IN) :: S3D_EPAINCO(*)
788  DOUBLE PRECISION, INTENT(IN) :: DT,S3D_CFDEP,GRAV,S3D_RHOS,RHO0
789  DOUBLE PRECISION, INTENT(IN) :: S3D_AC
790  TYPE(bief_obj) , INTENT(IN) :: S3D_DMOY,TOB,HN
791  TYPE(bief_obj) , INTENT(INOUT) :: S3D_CREF,ZREF,RUGOF
792  DOUBLE PRECISION, INTENT(IN) :: S3D_WCS(npoin3)
793  LOGICAL, INTENT(IN) :: S3D_MIXTE
794  DOUBLE PRECISION, INTENT(IN) :: Z(npoin3), UETCAR(npoin2)
795  END SUBROUTINE
796  END INTERFACE
797 !
798 !-----------------------------------------------------------------------
799 !
800  INTERFACE
801  SUBROUTINE extmsk(MASKBR,MASK,NETAGE,NELEB)
804  IMPLICIT NONE
805  INTEGER, INTENT(IN) :: NETAGE,NELEB
806  DOUBLE PRECISION, INTENT(IN) :: MASK(*)
807  TYPE(bief_obj), INTENT(INOUT) :: MASKBR
808  END SUBROUTINE
809  END INTERFACE
810 !
811 !-----------------------------------------------------------------------
812 !
813  INTERFACE
814  SUBROUTINE findksce(NPOIN2,NPLAN,Z,NSCE,ISCE,ZSCE,KSCE,INFO)
816  IMPLICIT NONE
817  INTEGER, INTENT(IN) :: NPOIN2,NPLAN,NSCE
818  INTEGER, INTENT(IN) :: ISCE(nsce)
819  INTEGER, INTENT(INOUT) :: KSCE(nsce)
820  DOUBLE PRECISION, INTENT(IN) :: Z(npoin2,nplan)
821  DOUBLE PRECISION, INTENT(IN) :: ZSCE(nsce)
822  LOGICAL, INTENT(IN) :: INFO
823  END SUBROUTINE
824  END INTERFACE
825 !
826 !-----------------------------------------------------------------------
827 !
828  INTERFACE
829  SUBROUTINE flot3d
830  &(xflot,yflot,zflot,nflot,nflot_max,x,y,z,ikle,nelem,nelmax,npoin,
831  & nplan,tagflo,clsflo,shpflo,shzflo,eltflo,etaflo,mesh3d,lt,nit,at)
832  USE bief_def
834  IMPLICIT NONE
835  INTEGER, INTENT(IN) :: NPOIN,NIT,NFLOT_MAX,LT,NPLAN
836  INTEGER, INTENT(IN) :: NELEM,NELMAX
837  INTEGER, INTENT(IN) :: IKLE(nelmax,*)
838  INTEGER, INTENT(INOUT) :: NFLOT
839  INTEGER, INTENT(INOUT) :: TAGFLO(nflot_max)
840  INTEGER, INTENT(INOUT) :: CLSFLO(nflot_max)
841  INTEGER, INTENT(INOUT) :: ELTFLO(nflot_max)
842  INTEGER, INTENT(INOUT) :: ETAFLO(nflot_max)
843  DOUBLE PRECISION, INTENT(IN) :: X(npoin),Y(npoin),Z(npoin),AT
844  DOUBLE PRECISION, INTENT(INOUT) :: XFLOT(nflot_max)
845  DOUBLE PRECISION, INTENT(INOUT) :: YFLOT(nflot_max)
846  DOUBLE PRECISION, INTENT(INOUT) :: ZFLOT(nflot_max)
847  DOUBLE PRECISION, INTENT(INOUT) :: SHPFLO(3,nflot_max)
848  DOUBLE PRECISION, INTENT(INOUT) :: SHZFLO(nflot_max)
849  TYPE(bief_mesh) , INTENT(INOUT) :: MESH3D
850  END SUBROUTINE
851  END INTERFACE
852 !
853 !-----------------------------------------------------------------------
854 !
855  INTERFACE
856  SUBROUTINE user_flot3d
857  &(xflot,yflot,zflot,nflot,nflot_max,x,y,z,ikle,nelem,nelmax,npoin,
858  & nplan,tagflo,clsflo,shpflo,shzflo,eltflo,etaflo,mesh3d,lt,nit,at)
859  USE bief_def
860  IMPLICIT NONE
861  INTEGER, INTENT(IN) :: NPOIN,NIT,NFLOT_MAX,LT,NPLAN
862  INTEGER, INTENT(IN) :: NELEM,NELMAX
863  INTEGER, INTENT(IN) :: IKLE(nelmax,*)
864  INTEGER, INTENT(INOUT) :: NFLOT
865  INTEGER, INTENT(INOUT) :: TAGFLO(nflot_max)
866  INTEGER, INTENT(INOUT) :: CLSFLO(nflot_max)
867  INTEGER, INTENT(INOUT) :: ELTFLO(nflot_max)
868  INTEGER, INTENT(INOUT) :: ETAFLO(nflot_max)
869  DOUBLE PRECISION, INTENT(IN) :: X(npoin),Y(npoin),Z(npoin),AT
870  DOUBLE PRECISION, INTENT(INOUT) :: XFLOT(nflot_max)
871  DOUBLE PRECISION, INTENT(INOUT) :: YFLOT(nflot_max)
872  DOUBLE PRECISION, INTENT(INOUT) :: ZFLOT(nflot_max)
873  DOUBLE PRECISION, INTENT(INOUT) :: SHPFLO(3,nflot_max)
874  DOUBLE PRECISION, INTENT(INOUT) :: SHZFLO(nflot_max)
875  TYPE(bief_mesh) , INTENT(INOUT) :: MESH3D
876  END SUBROUTINE
877  END INTERFACE
878 !
879 !-----------------------------------------------------------------------
880 !
881  INTERFACE
882  SUBROUTINE flused
883  &(atabof , btabof ,
884  & litabf , wc ,
885  & hn ,
886  & tob , s3d_fludpt, s3d_fluer, s3d_tocd,
887  & npoin3 , npoin2 , nplan , klog ,
888  & hmin , s3d_sedco, s3d_setdep, s3d_sednco,
889  & s3d_wcs, s3d_mixte, s3d_fludptc, s3d_fludptnc)
891  IMPLICIT NONE
892  INTEGER, INTENT(IN) :: NPOIN3,NPOIN2,NPLAN,KLOG,S3D_SETDEP
893  LOGICAL, INTENT(IN) :: S3D_SEDCO, S3D_SEDNCO, S3D_MIXTE
894  INTEGER, INTENT(IN) :: LITABF(npoin2)
895  DOUBLE PRECISION, INTENT(INOUT) :: ATABOF(npoin2), BTABOF(npoin2)
896  DOUBLE PRECISION, INTENT(IN) :: WC(npoin3)
897  DOUBLE PRECISION, INTENT(IN) :: HN(npoin2)
898  DOUBLE PRECISION, INTENT(INOUT) :: TOB(npoin2)
899  DOUBLE PRECISION, INTENT(INOUT) :: S3D_FLUDPT(npoin2)
900  DOUBLE PRECISION, INTENT(INOUT) :: S3D_FLUER(npoin2)
901  DOUBLE PRECISION, INTENT(INOUT) :: S3D_FLUDPTC(*)
902  DOUBLE PRECISION, INTENT(INOUT) :: S3D_FLUDPTNC(*)
903  DOUBLE PRECISION, INTENT(IN) :: S3D_TOCD
904  DOUBLE PRECISION, INTENT(IN) :: S3D_WCS(*)
905  DOUBLE PRECISION, INTENT(IN) :: HMIN
906  END SUBROUTINE
907  END INTERFACE
908 !
909 !-----------------------------------------------------------------------
910 !
911  INTERFACE
912  SUBROUTINE flupri(VEC,XMUL,U,V,W,X,Y,Z,IKLE,
913  & NELMAX,NELEM2D,NPOIN2,NPOIN3,T1,T2,T3)
915  IMPLICIT NONE
916  INTEGER, INTENT(IN) :: NELMAX,NELEM2D,NPOIN2,NPOIN3
917  DOUBLE PRECISION, INTENT(INOUT) :: VEC(npoin3)
918  INTEGER, INTENT(IN) :: IKLE(nelmax,*)
919  DOUBLE PRECISION, INTENT(IN) :: X(npoin3),Y(npoin3),Z(npoin3)
920  DOUBLE PRECISION, INTENT(IN) :: XMUL
921  DOUBLE PRECISION, INTENT(INOUT) :: T1(nelem2d)
922  DOUBLE PRECISION, INTENT(INOUT) :: T2(nelem2d)
923  DOUBLE PRECISION, INTENT(INOUT) :: T3(nelem2d)
924  DOUBLE PRECISION, INTENT(IN) :: U(*),V(*),W(*)
925 !
926  END SUBROUTINE
927  END INTERFACE
928 !
929 !-----------------------------------------------------------------------
930 !
931  INTERFACE
932  SUBROUTINE fluver_2
933  &(fluver2,up,vp,wp,gradzf,volu2d,dssudt,nplan,npoin2)
934  USE bief_def
936  IMPLICIT NONE
937  INTEGER, INTENT(IN) :: NPLAN,NPOIN2
938  TYPE(bief_obj), INTENT(INOUT) :: FLUVER2
939  TYPE(bief_obj), INTENT(IN) :: UP,VP,WP,GRADZF,VOLU2D,DSSUDT
940  END SUBROUTINE
941  END INTERFACE
942 !
943 !-----------------------------------------------------------------------
944 !
945  INTERFACE
946  SUBROUTINE flux_cor
947  &(fc,finsub,fi_i,zstart,zend,dfdt,xb,dim1xb,teta,ikle3,
948  & mesh3,nelem3,nelmax,npoin3,ielm3,schcf)
949  USE bief_def
950  IMPLICIT NONE
951  INTEGER, INTENT(IN) :: SCHCF,NELEM3,NPOIN3
952  INTEGER, INTENT(IN) :: IELM3,DIM1XB,NELMAX
953  INTEGER, INTENT(IN) :: IKLE3(nelmax,*)
954  DOUBLE PRECISION, INTENT(IN) :: FC(npoin3),FINSUB(npoin3)
955  DOUBLE PRECISION, INTENT(INOUT) :: FI_I(npoin3)
956  DOUBLE PRECISION, INTENT(IN) :: ZSTART(npoin3),ZEND(npoin3)
957  DOUBLE PRECISION, INTENT(IN) :: TETA
958  DOUBLE PRECISION, INTENT(IN) :: DFDT(npoin3)
959  TYPE(bief_mesh), INTENT(INOUT) :: MESH3
960  DOUBLE PRECISION, INTENT(INOUT) :: XB(dim1xb,nelem3)
961  END SUBROUTINE
962  END INTERFACE
963 !
964 !-----------------------------------------------------------------------
965 !
966  INTERFACE
967  SUBROUTINE flux_imp3d
968  &(nelem3,nelmax,eltseg,oriseg,fxmatpar,nseg3,
969  & ikle,npoin3,fn,fi_i,surfac,dfdt,teta,zn,zp,sur2vol)
970  IMPLICIT NONE
971  INTEGER, INTENT(IN) :: NELEM3,NPOIN3,NSEG3
972  INTEGER, INTENT(IN) :: NELMAX
973  INTEGER, INTENT(IN) :: IKLE(nelmax,6)
974  INTEGER, INTENT(IN) :: ELTSEG(nelmax,15)
975  INTEGER, INTENT(IN) :: ORISEG(nelmax,15)
976  DOUBLE PRECISION, INTENT(IN) :: TETA(npoin3)
977  DOUBLE PRECISION, INTENT(IN) :: FXMATPAR(nseg3)
978  DOUBLE PRECISION, INTENT(INOUT) :: FI_I(npoin3)
979  DOUBLE PRECISION, INTENT(IN) :: SURFAC(nelem3),DFDT(npoin3)
980  DOUBLE PRECISION, INTENT(IN) :: FN(npoin3),ZN(npoin3)
981  DOUBLE PRECISION, INTENT(IN) :: ZP(npoin3),SUR2VOL(nseg3)
982  END SUBROUTINE
983  END INTERFACE
984 !
985 !-----------------------------------------------------------------------
986 !
987  INTERFACE
988  SUBROUTINE flux3d
989  &(fluint,fluext,fluextpar,uconv,vconv,tra02,
990  & nplan,ielm3,ielm2v,svide,mesh3,
991  & msk,maskel,mask_3d,lihbor,kent,nptfr,dt,volu,volun,
992  & mesh2,sigmag,npoin2,npoin3,dm1,grazco,
993  & flbor,pluie,rain,flodel,opt_hneg,flulim,yacvvf,bypass,
994  & n_adv,wel)
995  USE bief_def
997  IMPLICIT NONE
998  INTEGER, INTENT(IN) :: NPLAN,NPOIN2,NPOIN3
999  INTEGER, INTENT(IN) :: IELM3,IELM2V,OPT_HNEG
1000  INTEGER, INTENT(IN) :: KENT,NPTFR
1001  INTEGER, INTENT(IN) :: LIHBOR(nptfr),N_ADV(0:15)
1002  TYPE(bief_obj), INTENT(INOUT) :: FLUINT,FLUEXT,FLUEXTPAR
1003  TYPE(bief_obj), INTENT(IN) :: VOLU,VOLUN,DM1,GRAZCO
1004  TYPE(bief_obj), INTENT(IN) :: UCONV,VCONV,PLUIE,MASK_3D
1005  TYPE(bief_obj), INTENT(INOUT) :: MASKEL,WEL
1006  TYPE(bief_obj), INTENT(INOUT) :: FLULIM
1007  TYPE(bief_obj), INTENT(INOUT), TARGET :: FLODEL
1008  TYPE(bief_obj), INTENT(INOUT) :: FLBOR
1009  TYPE(bief_obj), INTENT(INOUT) :: SVIDE,TRA02
1010  TYPE(bief_mesh), INTENT(INOUT):: MESH3, MESH2
1011  DOUBLE PRECISION, INTENT(IN) :: DT
1012  LOGICAL, INTENT(IN) :: MSK,SIGMAG,RAIN,YACVVF,BYPASS
1013  END SUBROUTINE
1014  END INTERFACE
1015 !
1016 !-----------------------------------------------------------------------
1017 !
1018  INTERFACE
1019  SUBROUTINE fonvas
1020  &(s3d_epai, s3d_conc, s3d_hdep,
1021  & s3d_fludp, s3d_fludpt, s3d_fluer, zf , ta ,
1022  & npoin2, npoin3 ,
1023  & s3d_ncouch, dt ,
1024  & s3d_zf_s, s3d_esomt,
1025  & volu2d , s3d_masdep, s3d_setdep, zr , ts , s3d_fludptc,
1026  & s3d_fludptnc, s3d_fluerc, s3d_fluernc, s3d_mixte, s3d_fludpc,
1027  & s3d_fludpnc, s3d_pvsco, s3d_pvsnco, s3d_cfdep, s3d_epaico,
1028  & s3d_epainco)
1029  USE bief_def
1031  IMPLICIT NONE
1032  INTEGER, INTENT(IN) :: NPOIN2,NPOIN3
1033  INTEGER, INTENT(IN) :: S3D_NCOUCH
1034  DOUBLE PRECISION, INTENT(INOUT) :: S3D_HDEP(npoin2)
1035  DOUBLE PRECISION, INTENT(INOUT) :: S3D_EPAI(npoin2,s3d_ncouch)
1036  DOUBLE PRECISION, INTENT(INOUT) :: S3D_EPAICO(*), S3D_EPAINCO(*)
1037  DOUBLE PRECISION, INTENT(IN) :: S3D_CONC(npoin2,s3d_ncouch)
1038  DOUBLE PRECISION, INTENT(IN) :: ZR(npoin2)
1039  DOUBLE PRECISION, INTENT(INOUT) :: ZF(npoin2)
1040  DOUBLE PRECISION, INTENT(IN) :: TA(npoin3)
1041  DOUBLE PRECISION, INTENT(IN) :: TS(npoin3)
1042  DOUBLE PRECISION, INTENT(IN) :: S3D_FLUDPT(npoin2)
1043  DOUBLE PRECISION, INTENT(IN) :: S3D_FLUER(npoin2)
1044  DOUBLE PRECISION, INTENT(IN) :: S3D_FLUDPTC(*),S3D_FLUERC(*)
1045  DOUBLE PRECISION, INTENT(IN) :: S3D_FLUDPTNC(*)
1046  DOUBLE PRECISION, INTENT(IN) :: S3D_FLUERNC(*)
1047  DOUBLE PRECISION, INTENT(INOUT) :: S3D_FLUDP(npoin2)
1048  DOUBLE PRECISION, INTENT(INOUT) :: S3D_ZF_S(npoin2)
1049  DOUBLE PRECISION, INTENT(INOUT) :: S3D_FLUDPC(*), S3D_FLUDPNC(*)
1050  DOUBLE PRECISION, INTENT(INOUT) :: S3D_PVSCO(*), S3D_PVSNCO(*)
1051  DOUBLE PRECISION, INTENT(INOUT) :: S3D_ESOMT(npoin2)
1052  DOUBLE PRECISION, INTENT(IN) :: DT
1053  DOUBLE PRECISION, INTENT(IN) :: S3D_CFDEP
1054  DOUBLE PRECISION, INTENT(INOUT) :: S3D_MASDEP
1055  LOGICAL, INTENT(IN) :: S3D_MIXTE
1056  INTEGER, INTENT(IN) :: S3D_SETDEP
1057  TYPE(bief_obj), INTENT(IN) :: VOLU2D
1058  END SUBROUTINE
1059  END INTERFACE
1060 !
1061 !-----------------------------------------------------------------------
1062 !
1063  INTERFACE
1064  SUBROUTINE fsgrad
1065  &(gradzs,zflats,z,zf,ielm2h,mesh2d,msk,maskel,unsv2d,t2_01,
1066  & npoin2,optban,s)
1067  USE bief_def
1069  IMPLICIT NONE
1070  INTEGER, INTENT(IN) :: IELM2H,NPOIN2,OPTBAN
1071  DOUBLE PRECISION, TARGET, INTENT(IN) :: Z(npoin2)
1072  LOGICAL, INTENT(IN) :: MSK
1073  TYPE(bief_obj), INTENT(INOUT) :: GRADZS,ZFLATS,T2_01
1074  TYPE(bief_obj), INTENT(IN) :: ZF,UNSV2D,S,MASKEL
1075  TYPE(bief_mesh), INTENT(INOUT) :: MESH2D
1076 !
1077  END SUBROUTINE
1078  END INTERFACE
1079 !
1080 !-----------------------------------------------------------------------
1081 !
1082  INTERFACE
1083  SUBROUTINE grad2d
1084  &(dfdx,dfdy,fu,nplan,s,unsv2d,fu2,fu3,fu4,ielm2,mesh2d,msk,maskel)
1085  USE bief_def
1087  IMPLICIT NONE
1088  TYPE(bief_obj), INTENT(INOUT) :: DFDX, DFDY
1089  TYPE(bief_obj), INTENT(IN) :: FU
1090  TYPE(bief_obj), INTENT(INOUT) :: UNSV2D,S
1091  TYPE(bief_obj), INTENT(IN) :: MASKEL
1092  TYPE(bief_mesh), INTENT(INOUT):: MESH2D
1093  INTEGER, INTENT(IN) :: NPLAN, IELM2
1094  LOGICAL, INTENT(IN) :: MSK
1095 ! FU2,3,4 MUST BE 2D WORK FIELD - NO CHECKING
1096  TYPE(bief_obj), INTENT(INOUT) :: FU2,FU3,FU4
1097  END SUBROUTINE
1098  END INTERFACE
1099 !
1100 !-----------------------------------------------------------------------
1101 !
1102  INTERFACE
1103  SUBROUTINE ifab3d
1104  &(ifabor,liubof,liubol,liubos,kp1bor,nelbor,nulone,
1105  & ikle2,nelem2,nelmax2,npoin2,nptfr,nplan,netage,klog,transf)
1107  IMPLICIT NONE
1108  INTEGER, INTENT(IN) :: NELEM2,NPOIN2,NETAGE,NPLAN,TRANSF
1109  INTEGER, INTENT(IN) :: NPTFR,NELMAX2
1110  INTEGER, INTENT(INOUT) :: IFABOR(nelem2,5,netage)
1111  INTEGER, INTENT(IN) :: LIUBOF(npoin2),LIUBOS(npoin2)
1112  INTEGER, INTENT(IN) :: LIUBOL(nptfr,nplan)
1113  INTEGER, INTENT(IN) :: IKLE2(nelmax2,3)
1114  INTEGER, INTENT(IN) :: NULONE(nptfr,netage,4)
1115  INTEGER, INTENT(IN) :: KP1BOR(nptfr), NELBOR(nptfr)
1116  INTEGER, INTENT(IN) :: KLOG
1117  END SUBROUTINE
1118  END INTERFACE
1119 !
1120 !-----------------------------------------------------------------------
1121 !
1122  INTERFACE
1123  SUBROUTINE ifab3dt
1124  &(ifabor,liubof,liubos,
1125  & ikle2,ikle,nelem2,nelmax2,nelmax,
1126  & npoin2,netage,klog)
1128  IMPLICIT NONE
1129  INTEGER, INTENT(IN) :: NELEM2,NPOIN2,NETAGE
1130  INTEGER, INTENT(IN) :: KLOG,NELMAX,NELMAX2
1131  INTEGER, INTENT(INOUT) :: IFABOR(nelmax,4)
1132  INTEGER, INTENT(IN) :: LIUBOF(npoin2),LIUBOS(npoin2)
1133  INTEGER, INTENT(IN) :: IKLE2(nelmax2,3),IKLE(nelmax,4)
1134  END SUBROUTINE
1135  END INTERFACE
1136 !
1137 !-----------------------------------------------------------------------
1138 !
1139  INTERFACE
1140  SUBROUTINE impsed
1141  &(s3d_ivide, s3d_epai, s3d_conc, s3d_temp, s3d_hdep, pdepot,
1142  & s3d_fluer, zr , zf , ta , wc , x ,
1143  & y , npoin2, npoin3, s3d_npfmax, s3d_ncouch, npf ,
1144  & lt , s3d_rhos, s3d_cfmax, s3d_cfdep, s3d_epai0,
1145  & s3d_tasse, s3d_gibson, prive , lisprd)
1146  USE bief_def
1148  IMPLICIT NONE
1149  INTEGER, INTENT(IN) :: NPOIN2,NPOIN3,S3D_NPFMAX,S3D_NCOUCH,LT
1150  INTEGER, INTENT(IN) :: LISPRD
1151  DOUBLE PRECISION, INTENT(IN) :: S3D_EPAI(s3d_ncouch,npoin2)
1152  DOUBLE PRECISION, INTENT(IN) :: S3D_IVIDE(s3d_npfmax,npoin2)
1153  DOUBLE PRECISION, INTENT(IN) :: S3D_HDEP(npoin2)
1154  DOUBLE PRECISION, INTENT(IN) :: PDEPOT(npoin2)
1155  DOUBLE PRECISION, INTENT(IN) :: S3D_FLUER(npoin2)
1156  DOUBLE PRECISION, INTENT(IN) :: S3D_CONC(s3d_ncouch)
1157  DOUBLE PRECISION, INTENT(IN) :: S3D_TEMP(*)
1158  DOUBLE PRECISION, INTENT(IN) :: ZR(npoin2), ZF(npoin2)
1159  DOUBLE PRECISION, INTENT(IN) :: TA(npoin3)
1160  DOUBLE PRECISION, INTENT(IN) :: WC(npoin3)
1161  DOUBLE PRECISION, INTENT(IN) :: X(npoin3), Y(npoin3)
1162  TYPE(bief_obj), INTENT(INOUT) :: PRIVE
1163  DOUBLE PRECISION, INTENT(IN) :: S3D_RHOS,S3D_CFMAX,S3D_CFDEP
1164  DOUBLE PRECISION, INTENT(IN) :: S3D_EPAI0
1165  INTEGER, INTENT(IN) :: NPF(npoin2)
1166  LOGICAL, INTENT(IN) :: S3D_TASSE, S3D_GIBSON
1167  END SUBROUTINE
1168  END INTERFACE
1169 !
1170 !-----------------------------------------------------------------------
1171 !
1172  INTERFACE
1173  SUBROUTINE user_impsed
1174  &(s3d_ivide, s3d_epai, s3d_conc, s3d_temp, s3d_hdep, pdepot,
1175  & s3d_fluer, zr , zf , ta , wc , x ,
1176  & y , npoin2, npoin3, s3d_npfmax, s3d_ncouch, npf ,
1177  & lt , s3d_rhos, s3d_cfmax, s3d_cfdep, s3d_epai0,
1178  & s3d_tasse, s3d_gibson, prive, lisprd)
1179  USE bief_def
1181  IMPLICIT NONE
1182  INTEGER, INTENT(IN) :: NPOIN2,NPOIN3,S3D_NPFMAX,S3D_NCOUCH,LT
1183  INTEGER, INTENT(IN) :: LISPRD
1184  DOUBLE PRECISION, INTENT(IN) :: S3D_EPAI(s3d_ncouch,npoin2)
1185  DOUBLE PRECISION, INTENT(IN) :: S3D_IVIDE(s3d_npfmax,npoin2)
1186  DOUBLE PRECISION, INTENT(IN) :: S3D_HDEP(npoin2)
1187  DOUBLE PRECISION, INTENT(IN) :: PDEPOT(npoin2)
1188  DOUBLE PRECISION, INTENT(IN) :: S3D_FLUER(npoin2)
1189  DOUBLE PRECISION, INTENT(IN) :: S3D_CONC(s3d_ncouch)
1190  DOUBLE PRECISION, INTENT(IN) :: S3D_TEMP(*)
1191  DOUBLE PRECISION, INTENT(IN) :: ZR(npoin2), ZF(npoin2)
1192  DOUBLE PRECISION, INTENT(IN) :: TA(npoin3)
1193  DOUBLE PRECISION, INTENT(IN) :: WC(npoin3)
1194  DOUBLE PRECISION, INTENT(IN) :: X(npoin3), Y(npoin3)
1195  TYPE(bief_obj), INTENT(INOUT) :: PRIVE
1196  DOUBLE PRECISION, INTENT(IN) :: S3D_RHOS,S3D_CFMAX,S3D_CFDEP
1197  DOUBLE PRECISION, INTENT(IN) :: S3D_EPAI0
1198  INTEGER, INTENT(IN) :: NPF(npoin2)
1199  LOGICAL, INTENT(IN) :: S3D_TASSE, S3D_GIBSON
1200  END SUBROUTINE
1201  END INTERFACE
1202 !
1203 !-----------------------------------------------------------------------
1204 !
1205  INTERFACE
1206  SUBROUTINE kepcl3
1207  & (kborf,eborf,likbof,liebof,
1208  & kborl,eborl,likbol,liebol,liubol,
1209  & kbors,ebors,likbos,liebos,
1210  & disbor,ak,h,z,nbor,npoin2,nplan,nptfr,
1211  & karman,cmu,
1212  & kmin,emin,kent,kentu,ksort,kadh,klog,
1213  & uetcar,fictif)
1215  IMPLICIT NONE
1216  INTEGER, INTENT(IN) :: NPTFR, NPLAN, NPOIN2,KENTU
1217  INTEGER, INTENT(IN) :: KENT,KSORT,KADH,KLOG
1218  INTEGER, INTENT(INOUT) :: LIKBOF(npoin2), LIKBOS(npoin2)
1219  INTEGER, INTENT(INOUT) :: LIKBOL(nptfr,nplan)
1220  INTEGER, INTENT(INOUT) :: LIEBOF(npoin2), LIEBOS(npoin2)
1221  INTEGER, INTENT(INOUT) :: LIEBOL(nptfr,nplan)
1222  INTEGER, INTENT(INOUT) :: LIUBOL(nptfr,nplan)
1223  INTEGER, INTENT(IN) :: NBOR(nptfr)
1224  DOUBLE PRECISION, INTENT(IN) :: Z(npoin2,nplan),AK(npoin2,nplan)
1225  DOUBLE PRECISION, INTENT(IN) :: H(npoin2) , UETCAR(npoin2)
1226  DOUBLE PRECISION, INTENT(INOUT) :: KBORF(npoin2), KBORS(npoin2)
1227  DOUBLE PRECISION, INTENT(INOUT) :: KBORL(nptfr,nplan)
1228  DOUBLE PRECISION, INTENT(INOUT) :: EBORF(npoin2), EBORS(npoin2)
1229  DOUBLE PRECISION, INTENT(INOUT) :: EBORL(nptfr,nplan)
1230  DOUBLE PRECISION, INTENT(IN) :: DISBOR(nptfr)
1231  DOUBLE PRECISION, INTENT(IN) :: KARMAN
1232  DOUBLE PRECISION, INTENT(IN) :: CMU
1233  DOUBLE PRECISION, INTENT(IN) :: KMIN, EMIN
1234  DOUBLE PRECISION, INTENT(IN) :: FICTIF
1235  END SUBROUTINE
1236  END INTERFACE
1237 !
1238 !-----------------------------------------------------------------------
1239 !
1240  INTERFACE
1241  SUBROUTINE kepicl
1242  & (likbof,liebof,liubof,likbol,liebol,liubol,likbos,liebos,
1243  & nptfr,nplan,npoin2,kent,ksort,kentu)
1245  IMPLICIT NONE
1246  INTEGER, INTENT(IN) :: NPTFR, NPLAN, NPOIN2
1247  INTEGER, INTENT(IN) :: KENT, KSORT, KENTU
1248  INTEGER, INTENT(IN) :: LIUBOF(npoin2)
1249  INTEGER, INTENT(IN) :: LIUBOL(nptfr,nplan)
1250  INTEGER, INTENT(INOUT) :: LIKBOF(npoin2), LIKBOS(npoin2)
1251  INTEGER, INTENT(INOUT) :: LIKBOL(nptfr,nplan)
1252  INTEGER, INTENT(INOUT) :: LIEBOF(npoin2), LIEBOS(npoin2)
1253  INTEGER, INTENT(INOUT) :: LIEBOL(nptfr,nplan)
1254  END SUBROUTINE
1255  END INTERFACE
1256 !
1257 !-----------------------------------------------------------------------
1258 !
1259  INTERFACE
1260  SUBROUTINE kepini
1261  &(ak,ep,u,v,z,zf,npoin2,nplan,dnuvih,dnuviv,karman,cmu,kmin,emin)
1263  IMPLICIT NONE
1264  INTEGER, INTENT(IN) :: NPOIN2,NPLAN
1265  DOUBLE PRECISION, INTENT(INOUT):: AK(npoin2,nplan)
1266  DOUBLE PRECISION, INTENT(INOUT):: EP(npoin2,nplan)
1267  DOUBLE PRECISION, INTENT(IN) :: U(npoin2,nplan), V(npoin2,nplan)
1268  DOUBLE PRECISION, INTENT(IN) :: Z(npoin2,nplan)
1269  DOUBLE PRECISION, INTENT(IN) :: ZF(npoin2)
1270  DOUBLE PRECISION, INTENT(IN) :: KARMAN, DNUVIH, DNUVIV
1271  DOUBLE PRECISION, INTENT(IN) :: CMU
1272  DOUBLE PRECISION, INTENT(IN) :: KMIN, EMIN
1273  END SUBROUTINE
1274  END INTERFACE
1275 !
1276 !-----------------------------------------------------------------------
1277 !
1278  INTERFACE
1279  SUBROUTINE user_kepini
1280  &(ak,ep,u,v,z,zf,npoin2,nplan,dnuvih,dnuviv,karman,cmu,kmin,emin)
1282  IMPLICIT NONE
1283  INTEGER, INTENT(IN) :: NPOIN2,NPLAN
1284  DOUBLE PRECISION, INTENT(INOUT):: AK(npoin2,nplan)
1285  DOUBLE PRECISION, INTENT(INOUT):: EP(npoin2,nplan)
1286  DOUBLE PRECISION, INTENT(IN) :: U(npoin2,nplan), V(npoin2,nplan)
1287  DOUBLE PRECISION, INTENT(IN) :: Z(npoin2,nplan)
1288  DOUBLE PRECISION, INTENT(IN) :: ZF(npoin2)
1289  DOUBLE PRECISION, INTENT(IN) :: KARMAN, DNUVIH, DNUVIV
1290  DOUBLE PRECISION, INTENT(IN) :: CMU
1291  DOUBLE PRECISION, INTENT(IN) :: KMIN, EMIN
1292  END SUBROUTINE
1293  END INTERFACE
1294 !
1295 !-----------------------------------------------------------------------
1296 !
1297  INTERFACE
1298  SUBROUTINE komcl3
1299  & (kborf,eborf,likbof,liebof,liubof,
1300  & kborl,eborl,likbol,liebol,liubol,
1301  & ebors,liebos,
1302  & disbor,ak,u,v,h,z,nbor,npoin2,nplan,nptfr,
1303  & karman,betas,omstar,
1304  & kmin,emin,kentu,kent,kadh,klog,
1305  & uetcar,uetcal)
1307  IMPLICIT NONE
1308  INTEGER, INTENT(IN) :: NPTFR, NPLAN, NPOIN2
1309  INTEGER, INTENT(IN) :: KENTU,KENT,KADH,KLOG
1310  INTEGER, INTENT(INOUT) :: LIKBOF(npoin2)
1311  INTEGER, INTENT(INOUT) :: LIKBOL(nptfr,nplan)
1312  INTEGER, INTENT(INOUT) :: LIEBOF(npoin2), LIEBOS(npoin2)
1313  INTEGER, INTENT(INOUT) :: LIEBOL(nptfr,nplan)
1314  INTEGER, INTENT(INOUT) :: LIUBOF(npoin2)
1315  INTEGER, INTENT(INOUT) :: LIUBOL(nptfr,nplan)
1316  INTEGER, INTENT(IN) :: NBOR(nptfr)
1317  DOUBLE PRECISION, INTENT(IN) :: U(npoin2,nplan), V(npoin2,nplan)
1318  DOUBLE PRECISION, INTENT(IN) :: Z(npoin2,nplan)
1319  DOUBLE PRECISION, INTENT(IN) :: AK(npoin2,nplan)
1320  DOUBLE PRECISION, INTENT(IN) :: H(npoin2),UETCAR(npoin2)
1321  DOUBLE PRECISION, INTENT(INOUT) :: KBORF(npoin2)
1322  DOUBLE PRECISION, INTENT(INOUT) :: KBORL(nptfr,nplan)
1323  DOUBLE PRECISION, INTENT(INOUT) :: EBORF(npoin2), EBORS(npoin2)
1324  DOUBLE PRECISION, INTENT(INOUT) :: EBORL(nptfr,nplan)
1325  DOUBLE PRECISION, INTENT(IN) :: UETCAL(nptfr,nplan)
1326  DOUBLE PRECISION, INTENT(IN) :: DISBOR(nptfr)
1327  DOUBLE PRECISION, INTENT(IN) :: KARMAN
1328  DOUBLE PRECISION, INTENT(IN) :: BETAS,OMSTAR
1329  DOUBLE PRECISION, INTENT(IN) :: KMIN, EMIN
1330  END SUBROUTINE
1331  END INTERFACE
1332 !
1333 !-----------------------------------------------------------------------
1334 !
1335  INTERFACE
1336  SUBROUTINE lecdon_telemac3d(MOTCAR,FILE_DESC,PATH,NCAR,
1337  & CAS_FILE,DICO_FILE,GAIA_CAS_FILE,GAIA_DICO_FILE)
1339  IMPLICIT NONE
1340  CHARACTER(LEN=PATH_LEN), INTENT(INOUT) :: MOTCAR(maxkeyword)
1341  CHARACTER(LEN=PATH_LEN), INTENT(INOUT) ::
1342  & file_desc(4,maxkeyword)
1343  CHARACTER(LEN=PATH_LEN), INTENT(IN) :: PATH
1344  INTEGER, INTENT(IN) :: NCAR
1345  CHARACTER(LEN=PATH_LEN), INTENT(IN) :: CAS_FILE
1346  CHARACTER(LEN=PATH_LEN), INTENT(IN) :: DICO_FILE
1347  CHARACTER(LEN=PATH_LEN), OPTIONAL, INTENT(IN) :: GAIA_CAS_FILE
1348  CHARACTER(LEN=PATH_LEN), OPTIONAL, INTENT(IN) :: GAIA_DICO_FILE
1349  END SUBROUTINE
1350  END INTERFACE
1351 !
1352 !-----------------------------------------------------------------------
1353 !
1354  INTERFACE
1355  SUBROUTINE lichek(LIMPRP,NPTFR,IKLBOR,NELEB2,NELEBX2)
1357  IMPLICIT NONE
1358  INTEGER, INTENT(IN) :: NPTFR,NELEB2,NELEBX2
1359  INTEGER, INTENT(INOUT) :: IKLBOR(nelebx2,2),LIMPRP(nelebx2,6)
1360  END SUBROUTINE
1361  END INTERFACE
1362 !
1363 !-----------------------------------------------------------------------
1364 !
1365  INTERFACE
1366  SUBROUTINE longmb
1367  &(lm,z,hn,npoin3,npoin2,nplan,u,v,x,y,p1,p2,p3,ntrac,ta,karman,zf)
1369  IMPLICIT NONE
1370  INTEGER, INTENT(IN) :: NPOIN3, NPOIN2, NPLAN, NTRAC
1371  DOUBLE PRECISION, INTENT(INOUT) :: LM(npoin3) ! POINTER
1372  DOUBLE PRECISION, INTENT(IN) :: Z(npoin3), HN(npoin2),KARMAN
1373  DOUBLE PRECISION, INTENT(IN) :: U(npoin3), V(npoin3)
1374  DOUBLE PRECISION, INTENT(IN) :: X(npoin3), Y(npoin3)
1375  DOUBLE PRECISION, INTENT(INOUT) :: P1(npoin3), P2(npoin3)
1376  DOUBLE PRECISION, INTENT(INOUT) :: P3(npoin3)
1377  DOUBLE PRECISION, INTENT(IN) :: TA(npoin3),ZF(npoin2)
1378  END SUBROUTINE
1379  END INTERFACE
1380 !
1381 !-----------------------------------------------------------------------
1382 !
1383  INTERFACE
1384  SUBROUTINE longml
1385  & (lm2,z,hn,npoin3,npoin2,nplan,mixing,karman)
1387  IMPLICIT NONE
1388  INTEGER, INTENT(IN) :: NPOIN3,NPOIN2,NPLAN,MIXING
1389  DOUBLE PRECISION, INTENT(INOUT) :: LM2(npoin3)
1390  DOUBLE PRECISION, INTENT(IN) :: Z(npoin3),HN(npoin2),KARMAN
1391  END SUBROUTINE
1392  END INTERFACE
1393 !
1394 !-----------------------------------------------------------------------
1395 !
1396  INTERFACE
1397  SUBROUTINE make_zconv
1398  &(zconv,grazco,zflats,dh,hn,zf,tetazcomp,tetah,nelem2,nelmax2,
1399  & optban,ikle2,mesh2d)
1400  USE bief_def
1402  IMPLICIT NONE
1403  INTEGER, INTENT(IN) :: NELEM2,OPTBAN,NELMAX2
1404  INTEGER, INTENT(IN) :: IKLE2(nelmax2,3)
1405  DOUBLE PRECISION, INTENT(IN) :: TETAH,TETAZCOMP
1406  TYPE(bief_obj), INTENT(INOUT) :: ZCONV,GRAZCO
1407  TYPE(bief_obj), INTENT(IN) :: DH,ZFLATS,HN,ZF
1408  TYPE(bief_mesh), INTENT(INOUT) :: MESH2D
1409  END SUBROUTINE
1410  END INTERFACE
1411 !
1412 !-----------------------------------------------------------------------
1413 !
1414  INTERFACE
1415  SUBROUTINE mask3d
1416  &(ifabor3d,maskel,maskpt,maskbr,
1417  & x,y,zf,zfe,h,hmin,at,lt,itra01,nelbo3,
1418  & nelma2,nelem2,npoin2,nptfr,nplan,netage,ielm3,mesh2d)
1419  USE bief_def
1421  IMPLICIT NONE
1422  INTEGER, INTENT(IN) :: NELEM2, NPOIN2, NETAGE, NPLAN
1423  INTEGER, INTENT(IN) :: NELMA2, NPTFR
1424  INTEGER, INTENT(INOUT) :: IFABOR3D(nelem2,5,netage)
1425  DOUBLE PRECISION, INTENT(INOUT) :: MASKEL(nelem2,netage)
1426  DOUBLE PRECISION, INTENT(INOUT) :: MASKBR(nptfr,netage)
1427  DOUBLE PRECISION, INTENT(IN) :: X(npoin2), Y(npoin2)
1428  DOUBLE PRECISION, INTENT(IN) :: ZF(npoin2), H(npoin2)
1429  DOUBLE PRECISION, INTENT(IN) :: ZFE(nelem2)
1430  INTEGER, INTENT(IN) :: NELBO3(nptfr,netage)
1431  INTEGER, INTENT(INOUT) :: ITRA01(nelem2)
1432  INTEGER, INTENT(IN) :: LT, IELM3
1433  DOUBLE PRECISION, INTENT(IN) :: HMIN, AT
1434  TYPE(bief_mesh), INTENT(INOUT) :: MESH2D
1435  TYPE(bief_obj) , INTENT(INOUT) :: MASKPT
1436  END SUBROUTINE
1437  END INTERFACE
1438 !
1439 !-----------------------------------------------------------------------
1440 !
1441  INTERFACE
1442  SUBROUTINE mass3d(INFO)
1444  IMPLICIT NONE
1445  LOGICAL, INTENT(IN) :: INFO
1446  END SUBROUTINE
1447  END INTERFACE
1448 !
1449 !-----------------------------------------------------------------------
1450 !
1451  INTERFACE
1452  SUBROUTINE massed
1453  &(s3d_masbed,s3d_epai,s3d_conc,tra02,npoin2,
1454  & s3d_ncouch,volu2d,
1455  & s3d_cfdep,s3d_epaico,s3d_epainco,s3d_mixte)
1456  USE bief_def
1458  IMPLICIT NONE
1459  INTEGER, INTENT(IN) :: NPOIN2,S3D_NCOUCH
1460  DOUBLE PRECISION, INTENT(IN) :: S3D_CFDEP
1461  DOUBLE PRECISION, INTENT(INOUT) :: S3D_MASBED
1462  DOUBLE PRECISION, INTENT(IN) :: S3D_EPAI(npoin2,s3d_ncouch)
1463  DOUBLE PRECISION, INTENT(IN) :: S3D_EPAICO(*), S3D_EPAINCO(*)
1464  DOUBLE PRECISION, INTENT(IN) :: VOLU2D(npoin2)
1465  DOUBLE PRECISION, INTENT(IN) :: S3D_CONC(npoin2,s3d_ncouch)
1466  DOUBLE PRECISION, INTENT(INOUT) :: TRA02(npoin2)
1467  LOGICAL, INTENT(IN) :: S3D_MIXTE
1468  END SUBROUTINE
1469  END INTERFACE
1470 !
1471 !-----------------------------------------------------------------------
1472 !
1473  INTERFACE
1474  SUBROUTINE mesh_prop
1475  &(hprop ,hn,h,prolin,haulin,teta,nsousi,zprop,
1476  & ipbot,npoin2,nplan,optban,sigmag,opt_hneg,
1477  & mesh3d,volu3d,volu3dpar,unsv3d,maskel,ielm3)
1478  USE bief_def
1480  IMPLICIT NONE
1481  INTEGER, INTENT(IN) :: NSOUSI,NPOIN2,NPLAN,OPT_HNEG
1482  INTEGER, INTENT(IN) :: OPTBAN,IELM3
1483  LOGICAL, INTENT(IN) :: PROLIN,SIGMAG
1484  DOUBLE PRECISION, INTENT(IN) :: TETA,HAULIN
1485  TYPE(bief_obj), INTENT(IN) :: HN,H,MASKEL
1486  TYPE(bief_obj), INTENT(INOUT):: IPBOT
1487  TYPE(bief_obj), INTENT(INOUT) :: HPROP,ZPROP,UNSV3D,VOLU3D
1488  TYPE(bief_obj), INTENT(INOUT) :: VOLU3DPAR
1489  TYPE(bief_mesh), INTENT(INOUT) :: MESH3D
1490  END SUBROUTINE
1491  END INTERFACE
1492 !
1493 !-----------------------------------------------------------------------
1494 !
1495  INTERFACE
1496  SUBROUTINE mitcl2
1497  & (h,lihbor,nbor,hbor,at,npoin2,nptfr,kent,ksort,kadh,klog,kdeb)
1499  IMPLICIT NONE
1500  INTEGER, INTENT(IN) :: KENT,KSORT,KADH,KDEB,KLOG,NPTFR,NPOIN2
1501  INTEGER, INTENT(IN) :: LIHBOR(nptfr),NBOR(nptfr)
1502  DOUBLE PRECISION, INTENT(INOUT) :: H(npoin2)
1503  DOUBLE PRECISION, INTENT(IN) :: HBOR(nptfr),AT
1504  END SUBROUTINE
1505  END INTERFACE
1506 !
1507 !-----------------------------------------------------------------------
1508 !
1509  INTERFACE
1510  SUBROUTINE mittit(IETAPE,AT,LT)
1512  IMPLICIT NONE
1513  INTEGER, INTENT(IN) :: IETAPE,LT
1514  DOUBLE PRECISION, INTENT(IN) :: AT
1515  END SUBROUTINE
1516  END INTERFACE
1517 !
1518 !-----------------------------------------------------------------------
1519 !
1520  INTERFACE
1521  SUBROUTINE mudstress3d
1522  &(ngeo,fformat,s3d_laytoce,s3d_ncouch,mesh)
1523  USE bief
1524  TYPE(bief_mesh), INTENT(IN) :: MESH
1525  TYPE(bief_obj), INTENT(INOUT):: S3D_LAYTOCE
1526  INTEGER, INTENT(IN) :: NGEO
1527  INTEGER, INTENT(IN) :: S3D_NCOUCH
1528  CHARACTER(LEN=8), INTENT(IN) :: FFORMAT
1529  END SUBROUTINE
1530  END INTERFACE
1531 !
1532 !-----------------------------------------------------------------------
1533 !
1534  INTERFACE
1535  SUBROUTINE murd3d
1536  &(sfc,fc,fn,volu,volun,volu2,svolu2,b,db,xb,dim1xb,
1537  & tra01,tra02,tra03,stra01,stra02,stra03,ikle3,mesh2d,mesh3d,
1538  & nelem3,nelmax,npoin3,dt,schcf,infor,calflu,fluxb,flux,
1539  & fluext,s0f,nsce,isce,ksce,sources,
1540  & fsce,rain,pluie,parapluie,train,npoin2,minfc,maxfc,maskpt,
1541  & optban,flodel,flopar,gloseg,dimglo,nseg,nplan,ielm3,optsou,
1542  & nptfr3,nbor3,fluextpar,fborl,zn,fi_i,zstart,zend,finsub,
1543  & t2_01,bedbou,bedflu,optadv,nco_dist)
1544  USE bief_def
1546  IMPLICIT NONE
1547  INTEGER, INTENT(IN) :: SCHCF,NELEM3,NPOIN3,NPOIN2
1548  INTEGER, INTENT(IN) :: IELM3,DIM1XB,OPTSOU,NPTFR3
1549  INTEGER, INTENT(IN) :: NELMAX
1550  INTEGER, INTENT(IN) :: IKLE3(nelmax,*),NSCE,OPTBAN
1551  INTEGER, INTENT(IN) :: NSEG,NPLAN,DIMGLO,NBOR3(nptfr3)
1552  INTEGER, INTENT(IN) :: GLOSEG(dimglo,2)
1553  INTEGER, INTENT(IN) :: ISCE(nsce),KSCE(nsce)
1554  INTEGER, INTENT(IN) :: OPTADV,NCO_DIST
1555  DOUBLE PRECISION, INTENT(INOUT) :: FC(npoin3),FBORL(nptfr3)
1556  DOUBLE PRECISION, INTENT(IN) :: FN(npoin3)
1557  DOUBLE PRECISION, INTENT(IN) :: FLUEXT(npoin3)
1558  DOUBLE PRECISION, INTENT(IN) :: FLUEXTPAR(npoin3)
1559  DOUBLE PRECISION, INTENT(IN) :: VOLUN(npoin3),VOLU(npoin3)
1560  DOUBLE PRECISION, INTENT(IN) :: FSCE(nsce),MASKPT(*)
1561  DOUBLE PRECISION, INTENT(IN) :: DT,TRAIN
1562  DOUBLE PRECISION, INTENT(INOUT) :: VOLU2(npoin3)
1563  DOUBLE PRECISION, INTENT(INOUT) :: TRA01(npoin3)
1564  DOUBLE PRECISION, INTENT(INOUT) :: TRA02(npoin3),TRA03(npoin3)
1565  DOUBLE PRECISION, INTENT(INOUT) :: FLUX
1566  DOUBLE PRECISION, INTENT(INOUT) :: FLUXB(*)
1567  DOUBLE PRECISION, INTENT(INOUT) :: FINSUB(npoin3)
1568  DOUBLE PRECISION, INTENT(INOUT) :: ZSTART(npoin3),ZEND(npoin3)
1569  DOUBLE PRECISION, INTENT(INOUT) :: DB(npoin3),XB(dim1xb,nelem3)
1570  TYPE(bief_obj), INTENT(INOUT) :: SVOLU2,MINFC,MAXFC,T2_01,B,SFC
1571  TYPE(bief_obj), INTENT(IN) :: SOURCES,S0F,PLUIE,PARAPLUIE
1572  TYPE(bief_obj), INTENT(INOUT) :: STRA01,STRA02,STRA03,FI_I
1573  TYPE(bief_obj), INTENT(INOUT) :: BEDFLU
1574  TYPE(bief_mesh), INTENT(INOUT) :: MESH2D,MESH3D
1575  DOUBLE PRECISION, INTENT(IN) :: FLODEL(*),FLOPAR(*)
1576  DOUBLE PRECISION, INTENT(IN) :: ZN(npoin3)
1577  LOGICAL, INTENT(IN) :: INFOR,CALFLU,RAIN,BEDBOU
1578  END SUBROUTINE
1579  END INTERFACE
1580 !
1581 !-----------------------------------------------------------------------
1582 !
1583  INTERFACE
1584  SUBROUTINE murd3d_lips
1585  &(sfc,fc,fn,volu,volun,xb,dim1xb,
1586  & fnsub,tra02,sfnsub,stra02,stra03,ikle3,mesh2d,mesh3d,
1587  & nelem3,nelmax,npoin3,dt,infor,calflu,fluxb,flux,fluext,s0f,nsce,
1588  & isce,ksce,sources,fsce,rain,pluie,train,npoin2,minfc,maxfc,
1589  & gloseg,dimglo,nseg,nplan,ielm3,optsou,
1590  & nptfr3,nbor3,fluextpar,fborl,zn,fi_i,trav10,
1591  & tetaf_var,bedbou,bedflu,nco_dist,nsp_dist,
1592  & slvdif,oriseg,mtra1,eltseg,tb2,
1593  & vnp1mt,denom,volun_sub,volu_sub,zsubn,zsubp)
1594  USE bief_def
1595  IMPLICIT NONE
1596  INTEGER, INTENT(IN) :: NELEM3,NPOIN3,NPOIN2,DIM1XB
1597  INTEGER, INTENT(IN) :: IELM3,OPTSOU,NPTFR3,NELMAX
1598  INTEGER, INTENT(IN) :: IKLE3(nelmax,*),NSCE
1599  INTEGER, INTENT(IN) :: NSEG,NPLAN,DIMGLO,NBOR3(nptfr3)
1600  INTEGER, INTENT(IN) :: GLOSEG(dimglo,2)
1601  INTEGER, INTENT(IN) :: ORISEG(nelmax,15)
1602  INTEGER, INTENT(IN) :: ELTSEG(nelmax,15)
1603  INTEGER, INTENT(IN) :: ISCE(nsce),KSCE(nsce)
1604  INTEGER, INTENT(IN) :: NCO_DIST,NSP_DIST
1605  DOUBLE PRECISION, INTENT(INOUT) :: FC(npoin3),FBORL(nptfr3)
1606  DOUBLE PRECISION, INTENT(IN) :: FN(npoin3),PLUIE(*)
1607  DOUBLE PRECISION, INTENT(IN) :: FLUEXT(npoin3)
1608  DOUBLE PRECISION, INTENT(IN) :: FLUEXTPAR(npoin3)
1609  DOUBLE PRECISION, INTENT(IN) :: VOLUN(npoin3),VOLU(npoin3)
1610  DOUBLE PRECISION, INTENT(IN) :: FSCE(nsce)
1611  DOUBLE PRECISION, INTENT(IN) :: DT,TRAIN
1612  DOUBLE PRECISION, INTENT(INOUT) :: FNSUB(npoin3)
1613  DOUBLE PRECISION, INTENT(INOUT) :: TRA02(npoin3)
1614  DOUBLE PRECISION, INTENT(INOUT) :: FLUX
1615  DOUBLE PRECISION, INTENT(INOUT) :: FLUXB(*)
1616  DOUBLE PRECISION, INTENT(INOUT) :: TETAF_VAR(npoin3)
1617  DOUBLE PRECISION, INTENT(INOUT) :: XB(dim1xb,nelem3)
1618  DOUBLE PRECISION, INTENT(INOUT) :: ZSUBN(npoin3),ZSUBP(npoin3)
1619  TYPE(bief_obj), INTENT(INOUT) :: TRAV10,TB2
1620  TYPE(bief_obj), INTENT(INOUT) :: MTRA1
1621  TYPE(bief_obj), INTENT(INOUT) :: MINFC,MAXFC,SFC
1622  TYPE(bief_obj), INTENT(IN) :: SOURCES,S0F
1623  TYPE(bief_obj), INTENT(INOUT) :: SFNSUB,STRA02,STRA03,FI_I
1624  TYPE(bief_obj), INTENT(INOUT) :: BEDFLU,VNP1MT,DENOM
1625  TYPE(bief_obj), INTENT(INOUT) :: VOLUN_SUB,VOLU_SUB
1626  TYPE(bief_mesh), INTENT(INOUT) :: MESH2D,MESH3D
1627  TYPE(slvcfg), INTENT(IN) :: SLVDIF
1628  DOUBLE PRECISION, INTENT(IN) :: ZN(npoin3)
1629  LOGICAL, INTENT(IN) :: INFOR,CALFLU,RAIN,BEDBOU
1630  END SUBROUTINE
1631  END INTERFACE
1632 !
1633 !-----------------------------------------------------------------------
1634 !
1635  INTERFACE
1636  SUBROUTINE murd3d_pos
1637  &(fc,fn,volu,volun,svolun,volu2,svolu2,rmass,
1638  & tra01,tra02,tra03,stra01,stra02,stra03,mesh2,mesh3,
1639  & npoin3,dt,schcf,infor,calflu,fluxb,flux,fluext,
1640  & fluextpar,fborl,nptfr3,nbor3,
1641  & s0f,nsce,sources,fsce,rain,pluie,train,npoin2,
1642  & flopar,gloseg,dimglo,nseg,nplan,
1643  & t5,flux_removed,saved_volu2,saved_f,option,ielm3,nitmax,optsou)
1644  USE bief_def
1645  IMPLICIT NONE
1646  INTEGER, INTENT(IN) :: SCHCF,NPOIN3,NPOIN2
1647  INTEGER, INTENT(IN) :: NSCE,NSEG,NPLAN,DIMGLO
1648  INTEGER, INTENT(IN) :: OPTION,IELM3
1649  INTEGER, INTENT(IN) :: NITMAX,OPTSOU,NPTFR3
1650  INTEGER, INTENT(IN) :: GLOSEG(dimglo,2),NBOR3(nptfr3)
1651  DOUBLE PRECISION, INTENT(INOUT) :: FC(npoin3)
1652  DOUBLE PRECISION, INTENT(IN) :: FN(npoin3),PLUIE(*)
1653  DOUBLE PRECISION, INTENT(IN) :: FLUEXT(npoin3)
1654  DOUBLE PRECISION, INTENT(IN) :: FLUEXTPAR(npoin3)
1655  DOUBLE PRECISION, INTENT(IN) :: VOLUN(npoin3)
1656  DOUBLE PRECISION, INTENT(INOUT) :: VOLU(npoin3)
1657  DOUBLE PRECISION, INTENT(INOUT) :: VOLU2(npoin3),FBORL(nptfr3)
1658  DOUBLE PRECISION, INTENT(INOUT) :: TRA01(npoin3),FLUX
1659  DOUBLE PRECISION, INTENT(INOUT) :: FLUXB(*)
1660  DOUBLE PRECISION, INTENT(INOUT) :: TRA02(npoin3)
1661  DOUBLE PRECISION, INTENT(INOUT) :: TRA03(npoin3)
1662  DOUBLE PRECISION, INTENT(IN) :: DT,TRAIN,FSCE(nsce)
1663  TYPE(bief_obj), INTENT(INOUT) :: SVOLU2
1664  TYPE(bief_obj), INTENT(INOUT) :: FLUX_REMOVED
1665  TYPE(bief_obj), INTENT(INOUT) :: SAVED_VOLU2,SAVED_F,T5
1666  TYPE(bief_obj), INTENT(IN) :: SOURCES,S0F,SVOLUN
1667  TYPE(bief_obj), INTENT(INOUT) :: STRA01,STRA02,STRA03
1668  TYPE(bief_mesh), INTENT(INOUT) :: MESH2,MESH3
1669  DOUBLE PRECISION, INTENT(IN) :: FLOPAR(*)
1670  DOUBLE PRECISION, INTENT(INOUT) :: RMASS(*)
1671  LOGICAL, INTENT(IN) :: INFOR,CALFLU,RAIN
1672  END SUBROUTINE
1673  END INTERFACE
1674 !
1675 !-----------------------------------------------------------------------
1676 !
1677  INTERFACE
1678  SUBROUTINE nomvar_2d_in_3d
1679  &(texte,textpr,mnemo,ntrac,maxtra,nametrac,
1680  & n_names_priv2d,names_prive2d)
1682  IMPLICIT NONE
1683  INTEGER, INTENT(IN) :: NTRAC,N_NAMES_PRIV2D,MAXTRA
1684  CHARACTER(LEN=32), INTENT(INOUT) :: TEXTE(*),TEXTPR(*)
1685  CHARACTER(LEN=8) , INTENT(INOUT) :: MNEMO(*)
1686  CHARACTER(LEN=32), INTENT(IN) :: NAMETRAC(maxtra)
1687  CHARACTER(LEN=32), INTENT(IN) :: NAMES_PRIVE2D(4)
1688  END SUBROUTINE
1689  END INTERFACE
1690 !
1691 !-----------------------------------------------------------------------
1692 !
1693  INTERFACE
1694  SUBROUTINE nomvar_telemac3d(TEXT3,TEXTP3,MNEMO,NTRAC,MAXTRA,
1695  & NAMETRAC)
1697  IMPLICIT NONE
1698  INTEGER, INTENT(IN) :: NTRAC,MAXTRA
1699 ! 100 = MAXVAR IN DECLARATIONS_TELEMAC3D
1700  CHARACTER(LEN=32), INTENT(INOUT) :: TEXT3(100),TEXTP3(100)
1701  CHARACTER(LEN=32), INTENT(IN) :: NAMETRAC(maxtra)
1702  CHARACTER(LEN=8), INTENT(INOUT) :: MNEMO(100)
1703  END SUBROUTINE
1704  END INTERFACE
1705 !
1706 !-----------------------------------------------------------------------
1707 !
1708  INTERFACE
1709  SUBROUTINE numliq_3d
1710  &(numliq,numliq_elm,nplan,nptfr2,iklbor,neleb,nelebx)
1711  USE bief_def
1713  IMPLICIT NONE
1714  INTEGER, INTENT(IN) :: NPTFR2,NPLAN,NELEB,NELEBX
1715  INTEGER, INTENT(IN) :: IKLBOR(nelebx,2)
1716  INTEGER, INTENT(INOUT) :: NUMLIQ(nptfr2*nplan)
1717  TYPE(bief_obj), INTENT(INOUT) :: NUMLIQ_ELM
1718  END SUBROUTINE
1719  END INTERFACE
1720 !
1721 !-----------------------------------------------------------------------
1722 !
1723  INTERFACE
1724  SUBROUTINE nuwave_p0
1725  &(nuwave,dm1,z,dz,ikle,npoin2,nplan,nelem,nelmax,nelem2,xmul,ielm3,
1726  & x,y,surfac)
1728  IMPLICIT NONE
1729  INTEGER, INTENT(IN) :: NPOIN2,NPLAN,NELEM,NELMAX
1730  INTEGER, INTENT(IN) :: NELEM2,IELM3
1731  INTEGER, INTENT(IN) :: IKLE(nelmax,*)
1732  DOUBLE PRECISION, INTENT(INOUT) :: NUWAVE(nelem2),DZ(npoin2*nplan)
1733  DOUBLE PRECISION, INTENT(IN) :: DM1(npoin2*nplan),XMUL
1734  DOUBLE PRECISION, INTENT(IN) :: Z(npoin2*nplan),X(*),Y(*)
1735  DOUBLE PRECISION, INTENT(IN) :: SURFAC(nelem2)
1736  END SUBROUTINE
1737  END INTERFACE
1738 !
1739 !-----------------------------------------------------------------------
1740 !
1741  INTERFACE
1742  SUBROUTINE phstat
1743  & (ph, deltar, z, tra01, tra02, rho0, grav,
1744  & npoin3, npoin2, nplan )
1745  USE bief_def
1747  IMPLICIT NONE
1748  INTEGER, INTENT(IN) :: NPOIN3, NPOIN2, NPLAN
1749  DOUBLE PRECISION, INTENT(INOUT) :: PH(npoin3)
1750  DOUBLE PRECISION, INTENT(IN) :: DELTAR(npoin3), Z(npoin3)
1751  DOUBLE PRECISION,INTENT(INOUT) :: TRA01(npoin3), TRA02(npoin3)
1752  DOUBLE PRECISION, INTENT(IN) :: RHO0, GRAV
1753  END SUBROUTINE
1754  END INTERFACE
1755 !
1756 !-----------------------------------------------------------------------
1757 !
1758  INTERFACE
1759  SUBROUTINE plane_bottom(IPBOT,Z,NPOIN2,NPLAN,SIGMAG,OPTBAN)
1761  IMPLICIT NONE
1762  INTEGER, INTENT(IN) :: NPOIN2,NPLAN,OPTBAN
1763  INTEGER, INTENT(INOUT) :: IPBOT(npoin2)
1764  DOUBLE PRECISION, INTENT(IN) :: Z(npoin2,nplan)
1765  LOGICAL, INTENT(IN) :: SIGMAG
1766  END SUBROUTINE
1767  END INTERFACE
1768 !
1769 !-----------------------------------------------------------------------
1770 !
1771  INTERFACE
1772  SUBROUTINE preadv(W,WS,ZPROP,ISOUSI,LT,VOLU,VOLUN)
1775  IMPLICIT NONE
1776  TYPE(bief_obj), INTENT(INOUT) :: WS,ZPROP
1777  TYPE(bief_obj), INTENT(IN) :: VOLU,VOLUN
1778  TYPE(bief_obj), INTENT(INOUT), TARGET :: W
1779  INTEGER, INTENT(IN) :: ISOUSI,LT
1780  END SUBROUTINE
1781  END INTERFACE
1782 !
1783 !-----------------------------------------------------------------------
1784 !
1785  INTERFACE
1786  SUBROUTINE prediv(PD,UP,VP,WP,INFO,BC,OPT,DIRSUR,DIRBOT,DIRLAT)
1789  IMPLICIT NONE
1790  INTEGER, INTENT(IN) :: OPT
1791  TYPE(bief_obj), INTENT(INOUT) :: PD
1792  TYPE(bief_obj), INTENT(IN) :: UP,VP,WP
1793  LOGICAL, INTENT(IN) :: INFO,BC
1794  LOGICAL, INTENT(IN) :: DIRSUR,DIRBOT,DIRLAT
1795  END SUBROUTINE
1796  END INTERFACE
1797 !
1798 !-----------------------------------------------------------------------
1799 !
1800  INTERFACE
1801  SUBROUTINE prepare_advection(FN,S0F,FBORL,LIFBOL,FLUXF,
1802  & SCHCF,CALFLU,MESH3D,MASKEL,NPTFR3,VOLUNPAR,FLUEXT,FLUEXTPAR,
1803  & NBOR3,DT,MSK,IELM3,NUMLIQ,DIRFLU,NFRLIQ)
1804  USE bief_def
1806  IMPLICIT NONE
1807  TYPE(bief_obj), INTENT(INOUT) :: FN,S0F,LIFBOL,FBORL
1808  TYPE(bief_obj), INTENT(IN) :: FLUEXT,FLUEXTPAR
1809  DOUBLE PRECISION, INTENT(IN) :: DT
1810  DOUBLE PRECISION, INTENT(INOUT) :: FLUXF
1811  INTEGER, INTENT(IN) :: SCHCF,NPTFR3,NFRLIQ,IELM3
1812  INTEGER, INTENT(IN) :: NUMLIQ(*),DIRFLU(0:nfrliq)
1813  LOGICAL, INTENT(IN) :: CALFLU,MSK
1814  TYPE(bief_obj), INTENT(IN) :: MASKEL,NBOR3,VOLUNPAR
1815  TYPE(bief_mesh), INTENT(INOUT) :: MESH3D
1816  END SUBROUTINE
1817  END INTERFACE
1818 !
1819 !-----------------------------------------------------------------------
1820 !
1821  INTERFACE
1822  SUBROUTINE preres_telemac3d()
1824  IMPLICIT NONE
1825  END SUBROUTINE
1826  END INTERFACE
1827 !
1828 !-----------------------------------------------------------------------
1829 !
1830  INTERFACE
1831  SUBROUTINE user_preres_telemac3d(LEO)
1832  IMPLICIT NONE
1833  LOGICAL, INTENT(IN) :: LEO
1834  END SUBROUTINE
1835  END INTERFACE
1836 !
1837 !-----------------------------------------------------------------------
1838 !
1839  INTERFACE
1840  DOUBLE PRECISION FUNCTION q3( I , AT , INFOGR )
1842  IMPLICIT NONE
1843  INTEGER , INTENT(IN) :: I
1844  DOUBLE PRECISION , INTENT(IN) :: AT
1845  LOGICAL , INTENT(IN) :: INFOGR
1846  END FUNCTION
1847  END INTERFACE
1848 !
1849 !-----------------------------------------------------------------------
1850 !
1851  INTERFACE
1852  SUBROUTINE user_q3( Q3, I , AT , INFOGR )
1854  IMPLICIT NONE
1855  DOUBLE PRECISION , INTENT(INOUT) :: Q3
1856  INTEGER , INTENT(IN) :: I
1857  DOUBLE PRECISION , INTENT(IN) :: AT
1858  LOGICAL , INTENT(IN) :: INFOGR
1859  END SUBROUTINE
1860  END INTERFACE
1861 !
1862 !-----------------------------------------------------------------------
1863 !
1864  INTERFACE
1865  SUBROUTINE rhs_pressure
1866  &(divu,up,vp,wp,ielm3,dm1,zconv,svide,mesh3d,msk,maskel,fluext,
1867  & nsce,rain,pluie,sources,gradzf,volu2d,dssudt,npoin2,npoin3,nplan,
1868  & optsou)
1869  USE bief_def
1871  IMPLICIT NONE
1872  INTEGER, INTENT(IN) :: IELM3,NSCE,NPOIN2,NPOIN3,NPLAN
1873  INTEGER, INTENT(IN) :: OPTSOU
1874  LOGICAL, INTENT(IN) :: MSK,RAIN
1875  TYPE(bief_obj), INTENT(INOUT) :: DIVU
1876  TYPE(bief_obj), INTENT(IN) :: UP,VP,WP,PLUIE,SOURCES,GRADZF
1877  TYPE(bief_obj), INTENT(IN) :: DM1,ZCONV,SVIDE,MASKEL,FLUEXT
1878  TYPE(bief_obj), INTENT(IN) :: VOLU2D,DSSUDT
1879  TYPE(bief_mesh), INTENT(INOUT) :: MESH3D
1880  END SUBROUTINE
1881  END INTERFACE
1882 !
1883 !-----------------------------------------------------------------------
1884 !
1885  INTERFACE
1886  SUBROUTINE sacl3
1887  &(nuborf,linubof,
1888  & nuborl,linubol,liubol,
1889  & h,z,nbor,npoin2,nplan,nptfr,
1890  & karman,uetcar,
1891  & numin,kent,kentu,ksort,kadh,klog,fictif)
1892  IMPLICIT NONE
1893  INTEGER, INTENT(IN) :: NPTFR, NPLAN, NPOIN2,KENTU
1894  INTEGER, INTENT(IN) :: KENT,KSORT,KADH,KLOG
1895  INTEGER, INTENT(INOUT) :: LINUBOF(npoin2)
1896  INTEGER, INTENT(INOUT) :: LINUBOL(nptfr,nplan)
1897  INTEGER, INTENT(INOUT) :: LIUBOL(nptfr,nplan)
1898  INTEGER, INTENT(IN) :: NBOR(nptfr)
1899  DOUBLE PRECISION, INTENT(IN) :: Z(npoin2,nplan)
1900  DOUBLE PRECISION, INTENT(IN) :: H(npoin2) ,UETCAR(npoin2)
1901  DOUBLE PRECISION, INTENT(INOUT) :: NUBORF(npoin2)
1902  DOUBLE PRECISION, INTENT(INOUT) :: NUBORL(nptfr,nplan)
1903  DOUBLE PRECISION, INTENT(IN) :: NUMIN, KARMAN, FICTIF
1904  END SUBROUTINE
1905  END INTERFACE
1906 !
1907 !-----------------------------------------------------------------------
1908 !
1909  INTERFACE
1910  SUBROUTINE saini
1911  &(nu,u,v,w,z,npoin2,nplan,karman,numin,
1912  & uetcar,h,kfrot,iturb,strain,msk,maskel,s,mesh3d)
1913  USE bief_def
1915  IMPLICIT NONE
1916  LOGICAL, INTENT(IN) :: MSK
1917  INTEGER, INTENT(IN) :: NPOIN2,NPLAN,KFROT,ITURB
1918  DOUBLE PRECISION, INTENT(INOUT):: NU(npoin2,nplan)
1919  DOUBLE PRECISION, INTENT(IN) :: Z(npoin2,nplan),H(npoin2)
1920  DOUBLE PRECISION, INTENT(IN) :: UETCAR(npoin2)
1921  DOUBLE PRECISION, INTENT(IN) :: KARMAN
1922  DOUBLE PRECISION, INTENT(IN) :: NUMIN
1923  TYPE(bief_obj) , INTENT(IN ):: S,MASKEL,U,V,W
1924  TYPE(bief_obj) , INTENT(INOUT):: STRAIN
1925  type(bief_mesh), INTENT(INOUT) :: mesh3d
1926  END SUBROUTINE
1927  END INTERFACE
1928 !
1929 !-----------------------------------------------------------------------
1930 !
1931  INTERFACE
1932  SUBROUTINE sed3d
1933  &(s3d_masbed, s3d_masbed0, s3d_masdep,s3d_epai,
1934  & s3d_conc,tra02,
1935  & npoin2,s3d_ncouch,
1936  & at,volu2d,
1937  & s3d_cfdep,s3d_epaico,s3d_epainco,s3d_mixte)
1938  USE bief_def
1940  IMPLICIT NONE
1941  INTEGER, INTENT(IN) :: S3D_NCOUCH,NPOIN2
1942  DOUBLE PRECISION, INTENT(INOUT) :: S3D_MASBED,S3D_MASDEP
1943  DOUBLE PRECISION, INTENT(IN) :: VOLU2D(npoin2)
1944  DOUBLE PRECISION, INTENT(IN) :: S3D_EPAI(npoin2,s3d_ncouch)
1945  DOUBLE PRECISION, INTENT(IN) :: S3D_EPAICO(*), S3D_EPAINCO(*)
1946  DOUBLE PRECISION, INTENT(IN) :: S3D_CONC(npoin2,s3d_ncouch)
1947  DOUBLE PRECISION, INTENT(INOUT) :: TRA02(npoin2)
1948  DOUBLE PRECISION, INTENT(IN) :: AT,S3D_CFDEP
1949  DOUBLE PRECISION, INTENT(IN) :: S3D_MASBED0
1950  LOGICAL, INTENT(IN) :: S3D_MIXTE
1951  END SUBROUTINE
1952  END INTERFACE
1953 !
1954 !-----------------------------------------------------------------------
1955 !
1956  INTERFACE
1957  SUBROUTINE set_dif
1958  &(fc,volu2d,z,npoin2,npoin3,dt,flux,
1959  & nplan,wchu,fludpt,fludp,fluer,ipbot,viscta)
1960 !
1963  IMPLICIT NONE
1964  INTEGER, INTENT(IN) :: NPOIN3,NPOIN2
1965  INTEGER, INTENT(IN) :: NPLAN
1966  INTEGER, INTENT(IN) :: IPBOT(npoin2)
1967  DOUBLE PRECISION, INTENT(INOUT) :: FC(npoin3)
1968  DOUBLE PRECISION, INTENT(INOUT) :: FLUX
1969  DOUBLE PRECISION, INTENT(IN) :: DT,Z(npoin3)
1970  TYPE(bief_obj), INTENT(IN) :: WCHU,FLUDPT,VOLU2D
1971  TYPE(bief_obj), INTENT(INOUT) :: FLUDP,FLUER
1972  TYPE(bief_obj), INTENT(IN) :: VISCTA
1973 !
1974  END SUBROUTINE
1975  END INTERFACE
1976 !-----------------------------------------------------------------------
1977 !-----------------------------------------------------------------------
1978 !
1979  INTERFACE
1980  SUBROUTINE sed_fall
1981  &(fc,fn,wcc,mesh2d,mesh3d,dt,volu,npoin2,npoin3,nplan,t1)
1982  USE bief_def
1984  IMPLICIT NONE
1985  INTEGER , INTENT(IN) :: NPOIN2,NPOIN3,NPLAN
1986  DOUBLE PRECISION, INTENT(IN) :: DT
1987  TYPE(bief_obj) , INTENT(IN) :: FN,WCC,VOLU
1988  TYPE(bief_obj) , INTENT(INOUT) :: FC,T1
1989  TYPE(bief_mesh) , INTENT(INOUT) :: MESH3D,MESH2D
1990  END SUBROUTINE
1991  END INTERFACE
1992 !
1993 !-----------------------------------------------------------------------
1994 !
1995  INTERFACE
1996  DOUBLE PRECISION FUNCTION sl3( I , AT , N , INFOGR )
1998  IMPLICIT NONE
1999  INTEGER , INTENT(IN) :: I,N
2000  DOUBLE PRECISION , INTENT(IN) :: AT
2001  LOGICAL , INTENT(IN) :: INFOGR
2002  END FUNCTION
2003  END INTERFACE
2004 !
2005 !-----------------------------------------------------------------------
2006 !
2007  INTERFACE
2008  SUBROUTINE smago3d
2009  &(u,v,w,trav1,trav2,trav3,trav4,trav5,trav6,
2010  & svide,mesh3,ielm3,msk,maskel)
2011  USE bief_def
2013  IMPLICIT NONE
2014  INTEGER, INTENT(IN) :: IELM3
2015  LOGICAL, INTENT(IN) :: MSK
2016  type(bief_obj), INTENT(IN) :: u, v, w
2017  type(bief_obj), INTENT(INOUT) :: trav1, trav2, trav3, trav4,trav6
2018  type(bief_obj), INTENT(INOUT) :: trav5
2019  type(bief_obj), INTENT(IN) :: maskel
2020  type(bief_obj), INTENT(INOUT) :: svide
2021  type(bief_mesh) :: mesh3
2022  END SUBROUTINE
2023  END INTERFACE
2024 !
2025 !-----------------------------------------------------------------------
2026 !
2027  INTERFACE
2028  SUBROUTINE smago(U,V,T1,T2,T3,T4,NUSMAG,MESH3,IELM3,MSK,MASKEL)
2031  IMPLICIT NONE
2032  INTEGER, INTENT(IN) :: IELM3
2033  LOGICAL, INTENT(IN) :: MSK
2034  type(bief_obj), INTENT(IN) :: u, v
2035  type(bief_obj), INTENT(INOUT) :: t1,t2,t3,t4
2036  type(bief_obj), INTENT(INOUT) :: nusmag
2037  type(bief_obj), INTENT(IN) :: maskel
2038  type(bief_mesh), INTENT(INOUT):: mesh3
2039  END SUBROUTINE
2040  END INTERFACE
2041 !
2042 !-----------------------------------------------------------------------
2043 !
2044  INTERFACE
2045  SUBROUTINE soukep
2046  &(cv1,cv2,s1k,s1e,u,v,w,deltar,ri,
2047  & dudx,dudy,dudz,dvdx,dvdy,dvdz,dwdx,dwdy,dwdz,dtadz,
2048  & ak,ep,c1,c2,cmu,grav,npoin3,msk,maskel,mesh3d,ielm3,s,
2049  & vent,windx,windy,npoin2,kmin,prandtl)
2050  USE bief_def
2052  IMPLICIT NONE
2053  INTEGER, INTENT(IN) :: NPOIN3,IELM3,NPOIN2
2054  DOUBLE PRECISION, INTENT(INOUT) :: CV1(npoin3),CV2(npoin3)
2055  DOUBLE PRECISION, INTENT(INOUT) :: S1K(npoin3),S1E(npoin3)
2056  DOUBLE PRECISION, INTENT(INOUT) :: AK(npoin3),EP(npoin3)
2057  DOUBLE PRECISION, INTENT(INOUT) :: RI(npoin3)
2058  type(bief_obj), INTENT(INOUT), TARGET :: dudx,dudy,dudz
2059  type(bief_obj), INTENT(INOUT), TARGET :: dvdx,dvdy,dvdz
2060  type(bief_obj), INTENT(INOUT), TARGET :: dwdx,dwdy,dwdz,dtadz
2061  type(bief_obj), INTENT(IN) :: maskel,u,v,w,deltar,s
2062  type(bief_obj), INTENT(IN) :: windx,windy
2063  DOUBLE PRECISION, INTENT(IN) :: C1,C2,CMU,GRAV,KMIN
2064  DOUBLE PRECISION, INTENT(IN) :: PRANDTL
2065  LOGICAL, INTENT(IN) :: MSK,VENT
2066  type(bief_mesh), INTENT(INOUT) :: mesh3d
2067  END SUBROUTINE
2068  END INTERFACE
2069 !
2070 !-----------------------------------------------------------------------
2071 !
2072  INTERFACE
2073  SUBROUTINE soukom(CV1,CV2,S1K,S1E,U,V,W,DELTAR,
2074  & DUDX,DUDY,DUDZ,DVDX,DVDY,DVDZ,DWDX,DWDY,DWDZ,DTADZ,
2075  & DKDX,DKDY,DKDZ,DODX,DODY,DODZ,ROTAT,
2076  & AK,EP,ALPHA,BETA,BETAS,GRAV,TR,NPOIN3,MSK,MASKEL,MESH3D,IELM3,S)
2077  USE bief_def
2079  IMPLICIT NONE
2080  INTEGER, INTENT(IN) :: NPOIN3,IELM3
2081  TYPE(bief_obj), INTENT(INOUT) :: CV1,CV2,S1K,S1E
2082  TYPE(bief_obj), INTENT(IN) :: AK,EP
2083  TYPE(bief_obj), INTENT(INOUT) :: ROTAT
2084  TYPE(bief_obj), INTENT(INOUT) :: DUDX,DUDY,DUDZ
2085  TYPE(bief_obj), INTENT(INOUT) :: DVDX,DVDY,DVDZ
2086  TYPE(bief_obj), INTENT(INOUT) :: DWDX,DWDY,DWDZ
2087  TYPE(bief_obj), INTENT(INOUT) :: DKDX,DKDY,DKDZ
2088  TYPE(bief_obj), INTENT(INOUT) :: DODX,DODY,DODZ
2089  TYPE(bief_obj), INTENT(INOUT) :: DTADZ,TR
2090  TYPE(bief_obj), INTENT(IN) :: MASKEL,U,V,W,DELTAR,S
2091  DOUBLE PRECISION, INTENT(IN) :: GRAV,ALPHA,BETA,BETAS
2092  LOGICAL, INTENT(IN) :: MSK
2093  TYPE(bief_mesh), INTENT(INOUT) :: MESH3D
2094  END SUBROUTINE
2095  END INTERFACE
2096 !
2097 !-----------------------------------------------------------------------
2098 !
2099  INTERFACE
2100  SUBROUTINE soulsbyfloc3d
2101  &(wchu, fc, mesh3, npoin2, npoin3, nplan, hn, uetcar)
2102  USE bief_def
2104  IMPLICIT NONE
2105  TYPE(bief_obj), INTENT(INOUT) :: WCHU
2106  TYPE(bief_mesh), INTENT(INOUT):: MESH3
2107  TYPE(bief_obj), INTENT(IN) :: HN
2108  INTEGER, INTENT(IN) :: NPOIN2,NPOIN3,NPLAN
2109  DOUBLE PRECISION, INTENT(IN) :: UETCAR(npoin2),FC(npoin3)
2110  END SUBROUTINE
2111  END INTERFACE
2112 !
2113 !-----------------------------------------------------------------------
2114 !
2115  INTERFACE
2116  SUBROUTINE source
2117  & (s0u,s0v,s0w,s1u,s1v,s1w,
2118  & un3,vn3,wsn3,wn3,
2119  & volu,volun,t3,npoin3,ntrac,lt,at,dt,prive,nonhyd,
2120  & npoin2,nsce,isce,ksce,qsce,usce,vsce,maxsce)
2121  USE bief_def
2123  IMPLICIT NONE
2124  INTEGER, INTENT(IN) :: NPOIN3, NTRAC, LT, MAXSCE
2125  TYPE(bief_obj), INTENT(IN) :: UN3, VN3, WSN3, WN3
2126  TYPE(bief_obj), INTENT(INOUT) :: S0U,S0V,S1U,S1V,S0W,S1W
2127  TYPE(bief_obj), INTENT(INOUT) :: T3
2128  TYPE(bief_obj), INTENT(IN) :: VOLU, VOLUN,PRIVE
2129  DOUBLE PRECISION, INTENT(IN) :: AT,DT
2130  LOGICAL, INTENT(IN) :: NONHYD
2131  INTEGER, INTENT(IN) :: NPOIN2
2132  INTEGER, INTENT(IN) :: NSCE
2133  INTEGER, INTENT(IN) :: ISCE(nsce)
2134  INTEGER, INTENT(IN) :: KSCE(nsce)
2135  DOUBLE PRECISION, INTENT(IN) :: QSCE(nsce)
2136  DOUBLE PRECISION, INTENT(IN) :: USCE(nsce)
2137  DOUBLE PRECISION, INTENT(IN) :: VSCE(nsce)
2138  END SUBROUTINE
2139  END INTERFACE
2140 !
2141 !-----------------------------------------------------------------------
2142 !
2143  INTERFACE
2144  SUBROUTINE user_source
2145  & (s0u,s0v,s0w,s1u,s1v,s1w,
2146  & un3,vn3,wsn3,wn3,
2147  & volu,volun,t3,npoin3,ntrac,lt,at,dt,prive,nonhyd,
2148  & npoin2,nsce,isce,ksce,qsce,usce,vsce,maxsce)
2149  USE bief_def
2151  IMPLICIT NONE
2152  INTEGER, INTENT(IN) :: NPOIN3, NTRAC, LT, MAXSCE
2153  TYPE(bief_obj), INTENT(IN) :: UN3, VN3, WSN3, WN3
2154  TYPE(bief_obj), INTENT(INOUT) :: S0U,S0V,S1U,S1V,S0W,S1W
2155  TYPE(bief_obj), INTENT(INOUT) :: T3
2156  TYPE(bief_obj), INTENT(IN) :: VOLU,VOLUN,PRIVE
2157  DOUBLE PRECISION, INTENT(IN) :: AT,DT
2158  LOGICAL, INTENT(IN) :: NONHYD
2159  INTEGER, INTENT(IN) :: NPOIN2
2160  INTEGER, INTENT(IN) :: NSCE
2161  INTEGER, INTENT(IN) :: ISCE(nsce)
2162  INTEGER, INTENT(IN) :: KSCE(nsce)
2163  DOUBLE PRECISION, INTENT(IN) :: QSCE(nsce)
2164  DOUBLE PRECISION, INTENT(IN) :: USCE(nsce)
2165  DOUBLE PRECISION, INTENT(IN) :: VSCE(nsce)
2166  END SUBROUTINE
2167  END INTERFACE
2168 !
2169 !-----------------------------------------------------------------------
2170 !
2171  INTERFACE
2172  SUBROUTINE source_trac()
2173  IMPLICIT NONE
2174  END SUBROUTINE
2175  END INTERFACE
2176 !
2177 !-----------------------------------------------------------------------
2178 !
2179  INTERFACE
2180  SUBROUTINE sousa(S0NU,S1NU,U,V,W,ROTAN,STRAIN,TRNU,
2181  & NU,NPOIN3,MSK,MASKEL,MESH3D,IELM3,S,WDIST,
2182  & NPOIN2,ITURB)
2183  USE bief_def
2184  IMPLICIT NONE
2185  INTEGER, INTENT(IN) :: NPOIN3,IELM3,NPOIN2,ITURB
2186  DOUBLE PRECISION, INTENT(INOUT) :: S0NU(npoin3)
2187  DOUBLE PRECISION, INTENT(INOUT) :: S1NU(npoin3)
2188  type(bief_obj), INTENT(INOUT) :: nu,rotan,strain,trnu
2189  type(bief_obj), INTENT(IN) :: maskel,u,v,w,s
2190  type(bief_obj), INTENT(IN) :: wdist
2191  LOGICAL, INTENT(IN) :: MSK
2192  type(bief_mesh), INTENT(INOUT) :: mesh3d
2193  END SUBROUTINE
2194  END INTERFACE
2195 !
2196 !-----------------------------------------------------------------------
2197 !
2198  INTERFACE
2199  SUBROUTINE suised
2200  &(s3d_epai,s3d_hdep,zr,zf,t2,npoin2,s3d_ncouch,s3d_itass,
2201  & nsuis,fformat)
2202  USE bief_def
2204  IMPLICIT NONE
2205  TYPE(bief_obj), INTENT(INOUT) :: T2
2206  INTEGER, INTENT(IN) :: NPOIN2,S3D_NCOUCH
2207  INTEGER, INTENT(IN) :: S3D_ITASS, NSUIS
2208  DOUBLE PRECISION, INTENT(INOUT) :: S3D_EPAI(npoin2,s3d_ncouch)
2209  DOUBLE PRECISION, INTENT(OUT) :: ZR(npoin2)
2210  DOUBLE PRECISION, INTENT(IN) :: ZF(npoin2)
2211  DOUBLE PRECISION, INTENT(INOUT) :: S3D_HDEP(npoin2)
2212  CHARACTER(LEN=8), INTENT(IN) :: FFORMAT
2213  END SUBROUTINE
2214  END INTERFACE
2215 !
2216 !-----------------------------------------------------------------------
2217 !
2218  INTERFACE
2219  SUBROUTINE sumver(FINT,F,NPLAN,NPTFR)
2220  IMPLICIT NONE
2221  INTEGER, INTENT(IN) :: NPLAN,NPTFR
2222  DOUBLE PRECISION, INTENT(INOUT) :: FINT(nptfr)
2223  DOUBLE PRECISION, INTENT(IN) :: F(nptfr,nplan)
2224  END SUBROUTINE
2225  END INTERFACE
2226 !
2227 !-----------------------------------------------------------------------
2228 !
2229  INTERFACE
2230  SUBROUTINE tbord
2231  & (auborl,
2232  & rugol,disbor,nelbor,nulone,ikle,nelmax2,
2233  & u,v,w,nbor,npoin2,nplan,nptfr,
2234  & dnuvih,dnuviv,karman,lisrul,kfrotl,
2235  & uetcal,nonhyd,utang,mesh2d)
2236  USE bief_def
2238  IMPLICIT NONE
2239  INTEGER, INTENT(IN) :: NPTFR,NPLAN,NPOIN2,NELMAX2
2240  INTEGER, INTENT(IN) :: LISRUL,KFROTL
2241  INTEGER, INTENT(IN) :: NBOR(nptfr),NELBOR(nptfr),NULONE(nptfr)
2242  INTEGER, INTENT(IN) :: IKLE(nelmax2,3)
2243  DOUBLE PRECISION, INTENT(IN) :: U(npoin2,nplan),V(npoin2,nplan)
2244  DOUBLE PRECISION, INTENT(IN) :: W(npoin2,nplan)
2245  DOUBLE PRECISION, INTENT(INOUT) :: UETCAL(nptfr,nplan)
2246  DOUBLE PRECISION, INTENT(INOUT) :: AUBORL(nptfr,nplan)
2247  DOUBLE PRECISION, INTENT(INOUT) :: UTANG(nptfr)
2248  DOUBLE PRECISION, INTENT(IN) :: DISBOR(nptfr)
2249  DOUBLE PRECISION, INTENT(IN) :: RUGOL(nptfr,nplan)
2250  DOUBLE PRECISION, INTENT(IN) :: DNUVIH, DNUVIV, KARMAN
2251  LOGICAL, INTENT(IN) :: NONHYD
2252  TYPE(bief_mesh), INTENT(INOUT) :: MESH2D
2253  END SUBROUTINE
2254  END INTERFACE
2255 !
2256 !-----------------------------------------------------------------------
2257 !
2258  INTERFACE
2259  SUBROUTINE tfond
2260  &(aubor,cf,u2d,v2d,u3d,v3d,w3d,karman,lisrug,propnu,z,npoin,kfrot,
2261  & rugof,uetcar,nonhyd,optban,hn,grav,ipbot,nplan)
2263  IMPLICIT NONE
2264  INTEGER, INTENT(IN) :: LISRUG,NPOIN,KFROT,OPTBAN,NPLAN
2265  INTEGER, INTENT(IN) :: IPBOT(npoin)
2266  DOUBLE PRECISION, INTENT(IN) :: KARMAN,PROPNU,GRAV
2267  DOUBLE PRECISION, INTENT(INOUT) :: AUBOR(npoin),UETCAR(npoin)
2268  DOUBLE PRECISION, INTENT(IN) :: HN(npoin)
2269  DOUBLE PRECISION, INTENT(IN) :: CF(*),U2D(*),V2D(*)
2270  DOUBLE PRECISION, INTENT(IN) :: RUGOF(*),U3D(*),V3D(*),W3D(*),Z(*)
2271  LOGICAL, INTENT(IN) :: NONHYD
2272  END SUBROUTINE
2273  END INTERFACE
2274 !
2275 !-----------------------------------------------------------------------
2276 !
2277  INTERFACE
2278  SUBROUTINE thomps_bc(OPTION)
2280  IMPLICIT NONE
2281  INTEGER, INTENT(IN) :: OPTION
2282  END SUBROUTINE
2283  END INTERFACE
2284 !
2285 !-----------------------------------------------------------------------
2286 !
2287  INTERFACE
2288  SUBROUTINE transf_zchar(TRANSF,ZCHAR,ZSTAR,TRANSF_PLANE,NPLAN)
2291  IMPLICIT NONE
2292  INTEGER, INTENT(IN) :: NPLAN,TRANSF
2293  TYPE(bief_obj), INTENT(INOUT) :: ZCHAR,TRANSF_PLANE
2294  TYPE(bief_obj), INTENT(IN) :: ZSTAR
2295  END SUBROUTINE
2296  END INTERFACE
2297 !
2298 !-----------------------------------------------------------------------
2299 !
2300  INTERFACE
2301  DOUBLE PRECISION FUNCTION tr3( I , ITRAC , N , AT , INFOGR )
2303  IMPLICIT NONE
2304  INTEGER, INTENT(IN) :: I,ITRAC,N
2305  DOUBLE PRECISION, INTENT(IN) :: AT
2306  LOGICAL, INTENT(IN) :: INFOGR
2307  END FUNCTION
2308  END INTERFACE
2309 !
2310 !-----------------------------------------------------------------------
2311 !
2312  INTERFACE
2313  SUBROUTINE user_tr3( TR3, I , ITRAC , N , AT , INFOGR )
2315  IMPLICIT NONE
2316  DOUBLE PRECISION, INTENT(INOUT) :: TR3
2317  INTEGER, INTENT(IN) :: I,ITRAC,N
2318  DOUBLE PRECISION, INTENT(IN) :: AT
2319  LOGICAL, INTENT(IN) :: INFOGR
2320  END SUBROUTINE
2321  END INTERFACE
2322 !
2323 !-----------------------------------------------------------------------
2324 !
2325  INTERFACE
2326  DOUBLE PRECISION FUNCTION tra_prof_z
2327  & (i,ipoin2,iplan,iopt,itrac)
2329  IMPLICIT NONE
2330  INTEGER , INTENT(IN) :: I,IPOIN2,IPLAN,IOPT
2331  INTEGER , INTENT(IN) :: ITRAC
2332  END FUNCTION
2333  END INTERFACE
2334 !
2335 !-----------------------------------------------------------------------
2336 !
2337  INTERFACE
2338  SUBROUTINE user_tra_prof_z
2339  & (tra_prof_z,i,ipoin2,iplan,iopt,itrac)
2341  IMPLICIT NONE
2342  DOUBLE PRECISION, INTENT(INOUT) :: TRA_PROF_Z
2343  INTEGER , INTENT(IN) :: I,IPOIN2,IPLAN,IOPT
2344  INTEGER , INTENT(IN) :: ITRAC
2345  END SUBROUTINE
2346  END INTERFACE
2347 !
2348 !-----------------------------------------------------------------------
2349 !
2350  INTERFACE
2351  SUBROUTINE tridw2
2352  &(wsconv,volu,volun,sem2d,fluint,fluext,sources,nsce,netage,npoin2,
2353  & dt,unsv2d,mesh2d,optsou)
2354  USE bief_def
2356  IMPLICIT NONE
2357  INTEGER, INTENT(IN) :: NSCE,NETAGE,NPOIN2,OPTSOU
2358  DOUBLE PRECISION, INTENT(IN) :: DT
2359  TYPE(bief_obj), INTENT(INOUT) :: WSCONV,SEM2D
2360  TYPE(bief_obj), INTENT(IN) :: VOLU,VOLUN,FLUINT,FLUEXT
2361  TYPE(bief_obj), INTENT(IN) :: SOURCES,UNSV2D
2362  TYPE(bief_mesh), INTENT(INOUT):: MESH2D
2363  END SUBROUTINE
2364  END INTERFACE
2365 !
2366 !-----------------------------------------------------------------------
2367 !
2368  INTERFACE
2369  SUBROUTINE tridw3
2370  &(wsconv,fluver,sumflu,error,pressure,cor_int,cor_ver,
2371  & volu,volun,u,uconv,vconv,wconv,dt,npoin3,
2372  & sigmag,optban,mesh3d,mtra1,maskel,npoin2,t2_01,nplan,
2373  & fluext,nsce,sources,rain,pluie,fluint,netage,unsv2d,svide,
2374  & nelem2,msk,n_adv,volu2d,infogr,dssudt,ielm3,dm1,
2375  & grazco,mesh2d,sem3d,nelem3,gradzf,optsou)
2376  USE bief_def
2378  IMPLICIT NONE
2379  INTEGER, INTENT(IN) :: NPOIN2,NPOIN3,IELM3,NELEM3,NETAGE
2380  INTEGER, INTENT(IN) :: NPLAN,NSCE,OPTBAN,N_ADV(0:15)
2381  INTEGER, INTENT(IN) :: NELEM2,OPTSOU
2382  LOGICAL, INTENT(IN) :: RAIN,MSK,INFOGR,SIGMAG
2383  DOUBLE PRECISION, INTENT(IN) :: DT
2384  TYPE(bief_obj), INTENT(INOUT) :: WSCONV,FLUVER,SUMFLU,ERROR
2385  TYPE(bief_obj), INTENT(INOUT) :: PRESSURE,MTRA1,SEM3D,UCONV,FLUINT
2386  TYPE(bief_obj), INTENT(IN) :: U,VCONV,WCONV,MASKEL
2387  TYPE(bief_obj), INTENT(INOUT) :: COR_INT,COR_VER,T2_01
2388  TYPE(bief_obj), INTENT(IN) :: VOLU,VOLUN,FLUEXT,SOURCES,DSSUDT
2389  TYPE(bief_obj), INTENT(IN) :: DM1,GRAZCO,GRADZF,PLUIE
2390  TYPE(bief_obj), INTENT(IN) :: UNSV2D,VOLU2D,SVIDE
2391  TYPE(bief_mesh), INTENT(INOUT):: MESH2D,MESH3D
2392  END SUBROUTINE
2393  END INTERFACE
2394 !
2395 !-----------------------------------------------------------------------
2396 !
2397  INTERFACE
2398  SUBROUTINE trisou
2399  & (cv1, cv2, scv1, scv2, un3, vn3, x, y, z, zs,
2400  & deltar,mesh3,fcor,coriol,ntrac,at,surfac,
2401  & t1,st1, w1, w2, w3, grav, npoin3, nelem3, npoin2,
2402  & nelem2, nplan, netage, ikle3, lv, msk, maskel, inchyd,
2403  & svolu,svide,ielm3,smaskel,nrejeu,isce,ksce,qsce,usce,vsce,
2404  & gradzsx,gradzsy,mesh2d, st2,t2,st3,t3,
2405  & longit, yasem3d,schcvi,denlaw,fxh,fyh,
2406  & courou,npth,t3d_files,t3dbi1)
2407  USE bief_def
2410  IMPLICIT NONE
2411  INTEGER, INTENT(IN) :: NPOIN3,NELEM3,NPOIN2,NELEM2
2412  INTEGER, INTENT(IN) :: NPLAN,NETAGE,NTRAC,NPTH,T3DBI1
2413  INTEGER, INTENT(IN) :: LV,NREJEU,IELM3,SCHCVI,DENLAW
2414  INTEGER, INTENT(IN) :: IKLE3(nelem3,*)
2415  DOUBLE PRECISION, INTENT(IN) :: MASKEL(*)
2416  DOUBLE PRECISION, INTENT(IN) :: LONGIT
2417  DOUBLE PRECISION, INTENT(INOUT) :: CV1(npoin3),CV2(npoin3)
2418  TYPE(bief_obj), INTENT(INOUT) :: SCV1,SCV2,FXH,FYH
2419  DOUBLE PRECISION, INTENT(IN) :: UN3(npoin3), VN3(npoin3)
2420  DOUBLE PRECISION, INTENT(IN) :: SURFAC(nelem2)
2421  DOUBLE PRECISION, INTENT(IN) :: X(npoin3), Y(npoin3), Z(npoin3)
2422  DOUBLE PRECISION, INTENT(INOUT) :: ZS(npoin3)
2423  DOUBLE PRECISION, INTENT(INOUT) :: W1(nelem3,*), W2(nelem3,*)
2424  DOUBLE PRECISION, INTENT(INOUT) :: W3(nelem3,*)
2425  DOUBLE PRECISION, INTENT(INOUT) :: T1(npoin3)
2426  DOUBLE PRECISION, INTENT(INOUT) :: T2(npoin3), T3(npoin3)
2427  TYPE(bief_obj), INTENT(INOUT) :: ST1, ST2, ST3
2428  TYPE(bief_obj), INTENT(INOUT) :: DELTAR
2429  TYPE(bief_mesh), INTENT(INOUT) :: MESH3
2430  TYPE(bief_obj), INTENT(INOUT) :: GRADZSX
2431  TYPE(bief_obj), INTENT(INOUT) :: GRADZSY
2432  TYPE(bief_mesh), INTENT(INOUT) :: MESH2D
2433  TYPE(bief_obj), INTENT(IN) :: SMASKEL
2434  TYPE(bief_obj), INTENT(INOUT) :: SVIDE
2435  TYPE(bief_obj), INTENT(INOUT) :: SVOLU
2436  INTEGER, INTENT(IN) :: ISCE(*),KSCE(*)
2437  DOUBLE PRECISION, INTENT(IN) :: QSCE(*),USCE(*),VSCE(*)
2438  DOUBLE PRECISION, INTENT(IN) :: GRAV, AT, FCOR
2439  LOGICAL, INTENT(IN) :: CORIOL, MSK, INCHYD,COUROU
2440  LOGICAL, INTENT(INOUT) :: YASEM3D
2441  TYPE(bief_file), INTENT(IN) :: T3D_FILES(*)
2442  END SUBROUTINE
2443  END INTERFACE
2444 !
2445 !-----------------------------------------------------------------------
2446 !
2447  INTERFACE
2448  SUBROUTINE tvf_imp_3d
2449  &(f,fc,fxmat,fxmatpar,dt,volunp1mt,nseg3,npoin3,fluext,fluextpar,
2450  & nptfr3,nbor3,sizglo,gloseg,
2451  & tetaf,psiexp,fbor,mesh3d,icor,ncor,predictor,corrector,
2452  & infogt,sf,sm,am2,slvpsi,bb,rain,train,
2453  & pluie,npoin2,optsou,nsce,isce,ksce,fsce,sources)
2454  USE bief_def
2455  IMPLICIT NONE
2456  INTEGER, INTENT(IN) :: NSEG3,NPOIN3,NPTFR3,NPOIN2
2457  INTEGER, INTENT(IN) :: SIZGLO,OPTSOU,NSCE
2458  INTEGER, INTENT(IN) :: ICOR,NCOR
2459  INTEGER, INTENT(IN) :: GLOSEG(sizglo,2),NBOR3(nptfr3)
2460  INTEGER, INTENT(IN) :: ISCE(nsce),KSCE(nsce)
2461  DOUBLE PRECISION, INTENT(IN) :: VOLUNP1MT(npoin3),DT,TRAIN
2462  DOUBLE PRECISION, INTENT(IN) :: FLUEXT(npoin3)
2463  DOUBLE PRECISION, INTENT(IN) :: FLUEXTPAR(npoin3)
2464  DOUBLE PRECISION, INTENT(IN) :: TETAF(npoin3)
2465  DOUBLE PRECISION, INTENT(IN) :: FXMAT(nseg3),FXMATPAR(nseg3)
2466  DOUBLE PRECISION, INTENT(IN) :: PSIEXP(npoin3),FBOR(nptfr3)
2467  DOUBLE PRECISION, INTENT(IN) :: FC(npoin3),PLUIE(*)
2468  DOUBLE PRECISION, INTENT(IN) :: FSCE(nsce)
2469  DOUBLE PRECISION, INTENT(INOUT) :: F(npoin3)
2470  LOGICAL, INTENT(IN) :: PREDICTOR,CORRECTOR,INFOGT,RAIN
2471  TYPE(bief_obj), INTENT(INOUT) :: SF,SM,AM2,BB
2472  TYPE(bief_obj), INTENT(IN) :: SOURCES
2473  TYPE(bief_mesh), INTENT(INOUT) :: MESH3D
2474  TYPE(slvcfg), INTENT(INOUT) :: SLVPSI
2475  END SUBROUTINE
2476  END INTERFACE
2477 !
2478 !-----------------------------------------------------------------------
2479 !
2480  INTERFACE
2481  DOUBLE PRECISION FUNCTION t3d_debsce( TIME , I , DISCE )
2483  IMPLICIT NONE
2484  DOUBLE PRECISION, INTENT(IN) :: TIME,DISCE(*)
2485  INTEGER , INTENT(IN) :: I
2486  END FUNCTION
2487  END INTERFACE
2488 !
2489 !-----------------------------------------------------------------------
2490 !
2491  INTERFACE
2492  SUBROUTINE user_t3d_debsce( T3D_DEBSCE, TIME , I , DISCE )
2494  IMPLICIT NONE
2495  DOUBLE PRECISION, INTENT(INOUT) :: T3D_DEBSCE
2496  DOUBLE PRECISION, INTENT(IN) :: TIME,DISCE(*)
2497  INTEGER , INTENT(IN) :: I
2498  END SUBROUTINE
2499  END INTERFACE
2500 !
2501 !-----------------------------------------------------------------------
2502 !
2503  INTERFACE
2504  DOUBLE PRECISION FUNCTION t3d_trsce( TIME , I , ITRAC )
2506  IMPLICIT NONE
2507  DOUBLE PRECISION, INTENT(IN) :: TIME
2508  INTEGER , INTENT(IN) :: I,ITRAC
2509  END FUNCTION
2510  END INTERFACE
2511 !
2512 !-----------------------------------------------------------------------
2513 !
2514  INTERFACE
2515  SUBROUTINE user_t3d_trsce( T3D_TRSCE, TIME , I , ITRAC )
2516  IMPLICIT NONE
2517  DOUBLE PRECISION, INTENT(INOUT) :: T3D_TRSCE
2518  DOUBLE PRECISION, INTENT(IN) :: TIME
2519  INTEGER , INTENT(IN) :: I,ITRAC
2520  END SUBROUTINE
2521  END INTERFACE
2522 !
2523 !-----------------------------------------------------------------------
2524 !
2525  INTERFACE
2526  SUBROUTINE t3d_stress
2527  &(sem3d,op,t2,t3,bfborl,bfborf,bfbors,npoin2,npoin3,mesh2d,
2528  & mesh3d,ielm2h,ielm2v,sv,msk,maskbr,maskel,ipbot,sigmag,
2529  & optban,nplan)
2530  USE bief
2532  IMPLICIT NONE
2533  TYPE(bief_obj), INTENT(IN) :: BFBORL,BFBORF,BFBORS
2534  TYPE(bief_obj), INTENT(IN) :: MASKBR,MASKEL,SV
2535  TYPE(bief_obj), INTENT(INOUT) :: T3,T2
2536  TYPE(bief_mesh), INTENT(INOUT) :: MESH2D,MESH3D
2537  INTEGER, INTENT(IN) :: NPOIN2,NPOIN3,OPTBAN
2538  INTEGER, INTENT(IN) :: IELM2H,IELM2V,NPLAN
2539  INTEGER, INTENT(IN) :: IPBOT(npoin2)
2540  TYPE(bief_obj), INTENT(INOUT) :: SEM3D
2541  LOGICAL, INTENT(IN) :: MSK,SIGMAG
2542  CHARACTER(LEN=8), INTENT(IN) :: OP
2543  END SUBROUTINE
2544  END INTERFACE
2545 !
2546 !-----------------------------------------------------------------------
2547 !
2548  INTERFACE
2549  SUBROUTINE upwind(M,WCC,DELTA,MESH2D,MESH3D,NPLAN)
2552  IMPLICIT NONE
2553  TYPE(bief_obj), INTENT(INOUT) :: M
2554  TYPE(bief_obj), INTENT(IN) :: WCC
2555  DOUBLE PRECISION, INTENT(IN) :: DELTA
2556  TYPE(bief_mesh), INTENT(IN) :: MESH3D,MESH2D
2557  INTEGER, INTENT(IN) :: NPLAN
2558  END SUBROUTINE
2559  END INTERFACE
2560 !
2561 !-----------------------------------------------------------------------
2562 !
2563  INTERFACE
2564  SUBROUTINE upwindebe
2565  & (d,x,ikle,nelmax,nelem2,surfac,nplan,wcc,ext,delta)
2566  USE bief_def
2568  IMPLICIT NONE
2569  INTEGER, INTENT(IN) :: NELMAX,NELEM2,NPLAN
2570  INTEGER, INTENT(IN) :: IKLE(nelmax,6)
2571  DOUBLE PRECISION, INTENT(IN ) :: SURFAC(nelmax),WCC(*),DELTA
2572  DOUBLE PRECISION, INTENT(INOUT) :: D(*),X(nelmax,30)
2573  CHARACTER(LEN=1), INTENT(IN) :: EXT
2574  END SUBROUTINE
2575  END INTERFACE
2576 !
2577 !-----------------------------------------------------------------------
2578 !
2579  INTERFACE
2580  SUBROUTINE upwindseg
2581  & (d,x,ikle,nelmax,nelem2,surfac,nplan,wcc,nseg2d,nseg3d,
2582  & ext,delta)
2583  USE bief_def
2585  IMPLICIT NONE
2586  INTEGER, INTENT(IN) :: NELMAX,NELEM2,NPLAN
2587  INTEGER, INTENT(IN) :: IKLE(nelmax,6),NSEG2D
2588  INTEGER, INTENT(IN) :: NSEG3D
2589  DOUBLE PRECISION, INTENT(IN ) :: SURFAC(nelmax),WCC(*),DELTA
2590  DOUBLE PRECISION, INTENT(INOUT) :: D(*),X(*)
2591  CHARACTER(LEN=1), INTENT(IN) :: EXT
2592  END SUBROUTINE
2593  END INTERFACE
2594 !
2595 !-----------------------------------------------------------------------
2596 !
2597  INTERFACE
2598  SUBROUTINE utimp(GRADEBL,GRAPRDL,LISDEBL,LISPRDL)
2600  IMPLICIT NONE
2601  INTEGER, INTENT(IN) :: GRADEBL,GRAPRDL,LISDEBL,LISPRDL
2602  END SUBROUTINE
2603  END INTERFACE
2604 !
2605 !-----------------------------------------------------------------------
2606 !
2607  INTERFACE
2608  DOUBLE PRECISION FUNCTION vel_prof_z
2609  &( i , ipoin2 , iplan , iopt )
2611  IMPLICIT NONE
2612  INTEGER , INTENT(IN) :: I,IPOIN2,IPLAN,IOPT
2613  END FUNCTION
2614  END INTERFACE
2615 !
2616 !-----------------------------------------------------------------------
2617 !
2618  INTERFACE
2619  SUBROUTINE user_vel_prof_z
2620  &( vel_prof_z, i , ipoin2 , iplan , iopt )
2622  IMPLICIT NONE
2623  DOUBLE PRECISION, INTENT(INOUT) :: VEL_PROF_Z
2624  INTEGER , INTENT(IN) :: I,IPOIN2,IPLAN,IOPT
2625  END SUBROUTINE
2626  END INTERFACE
2627 !
2628 !-----------------------------------------------------------------------
2629 !
2630  INTERFACE
2631  SUBROUTINE velres
2632  &(u,v,w,dp,px,py,pz,msk,maskel,mesh3d,s,ielm3,optban,
2633  & unsvol,do_unsvol,npoin3,npoin2,sigmag,ipbot,aggloh,ksort,nptfr3,
2634  & liubol,concor)
2635  USE bief_def
2637  IMPLICIT NONE
2638  INTEGER, INTENT(IN) :: IELM3,OPTBAN,NPOIN3,NPOIN2
2639  INTEGER, INTENT(IN) :: KSORT,NPTFR3
2640  DOUBLE PRECISION, INTENT(IN) :: AGGLOH
2641  TYPE(bief_obj), INTENT(IN) :: S,DP,LIUBOL
2642  TYPE(bief_obj), INTENT(INOUT) :: UNSVOL,PX,PY,PZ,U,V,W
2643  TYPE(bief_mesh), INTENT(INOUT) :: MESH3D
2644  INTEGER, INTENT(IN) :: IPBOT(npoin2)
2645  LOGICAL, INTENT(IN) :: MSK,SIGMAG,DO_UNSVOL,CONCOR
2646  TYPE(bief_obj), INTENT(INOUT) :: MASKEL
2647  END SUBROUTINE
2648  END INTERFACE
2649 !
2650 !-----------------------------------------------------------------------
2651 !
2652  INTERFACE
2653  SUBROUTINE vermoy
2654  & (fint1,fint2,f1,f2,nfonc,z,tra01,tra02,tra03,
2655  & iplan1,iplan2,npoin2,nplan,optban)
2657  IMPLICIT NONE
2658  INTEGER, INTENT(IN) :: NPOIN2,NPLAN,NFONC,IPLAN1,IPLAN2,OPTBAN
2659  DOUBLE PRECISION, INTENT(INOUT) :: FINT1(npoin2),FINT2(npoin2)
2660  DOUBLE PRECISION, INTENT(IN) :: F1(npoin2,nplan)
2661  DOUBLE PRECISION, INTENT(IN) :: F2(npoin2,nplan)
2662  DOUBLE PRECISION, INTENT(IN) :: Z(npoin2,nplan)
2663  DOUBLE PRECISION, INTENT(INOUT) :: TRA01(npoin2,nplan)
2664  DOUBLE PRECISION, INTENT(INOUT) :: TRA02(npoin2,nplan)
2665  DOUBLE PRECISION, INTENT(INOUT) :: TRA03(npoin2,nplan)
2666  END SUBROUTINE
2667  END INTERFACE
2668 
2669 !
2670 !-----------------------------------------------------------------------
2671 !
2672  INTERFACE
2673  SUBROUTINE viscsa
2674  &(viscvi,viscnu,nu,
2675  & dnuvih,dnuviv,ak,ep,strain)
2676  USE bief_def
2678  IMPLICIT NONE
2679  DOUBLE PRECISION, INTENT(IN) :: DNUVIH, DNUVIV
2680  TYPE(bief_obj), INTENT(INOUT):: VISCVI,VISCNU,AK,EP
2681  TYPE(bief_obj), INTENT(IN) :: NU,STRAIN
2682  END SUBROUTINE
2683  END INTERFACE
2684 !
2685 !-----------------------------------------------------------------------
2686 !
2687  INTERFACE
2688  SUBROUTINE viscke
2689  & (viscvi,viscta,ak,ep,ntrac,cmu,
2690  & dnuvih,dnuviv,dnutah,dnutav,emin,iturbh,iturbv,prandtl)
2691  USE bief_def
2693  IMPLICIT NONE
2694  INTEGER, INTENT(IN) :: NTRAC,ITURBH,ITURBV
2695  DOUBLE PRECISION, INTENT(IN) :: CMU,PRANDTL
2696  DOUBLE PRECISION, INTENT(IN) :: DNUVIH,DNUVIV
2697  DOUBLE PRECISION, INTENT(IN) :: DNUTAH(ntrac),DNUTAV(ntrac)
2698  DOUBLE PRECISION, INTENT(IN) :: EMIN
2699  TYPE(bief_obj), INTENT(INOUT):: VISCVI,VISCTA
2700  TYPE(bief_obj), INTENT(IN) :: AK,EP
2701  END SUBROUTINE
2702  END INTERFACE
2703 !
2704 !-----------------------------------------------------------------------
2705 !
2706  INTERFACE
2707  SUBROUTINE viscko
2708  &(viscvi,viscta,rotat,ak,ep,ntrac,dnuvih,dnuviv,dnutah,dnutav,
2709  & iturbh,iturbv,t1,t2)
2710  USE bief_def
2711  IMPLICIT NONE
2712  INTEGER, INTENT(IN) :: NTRAC,ITURBV,ITURBH
2713  DOUBLE PRECISION, INTENT(IN) :: DNUVIH, DNUVIV
2714  DOUBLE PRECISION, INTENT(IN) :: DNUTAH(ntrac),DNUTAV(ntrac)
2715  TYPE(bief_obj), INTENT(INOUT):: VISCVI, VISCTA,T1,T2
2716  TYPE(bief_obj), INTENT(IN) :: ROTAT, AK, EP
2717  END SUBROUTINE
2718  END INTERFACE
2719 !
2720 !-----------------------------------------------------------------------
2721 !
2722  INTERFACE
2723  SUBROUTINE visclip
2724  & (viscvi,viscta,h,nplan,npoin2,ntrac,hlim)
2725  USE bief_def
2727  IMPLICIT NONE
2728  INTEGER, INTENT(IN) :: NPOIN2, NPLAN
2729  INTEGER, INTENT(IN) :: NTRAC
2730  DOUBLE PRECISION, INTENT(IN) :: HLIM
2731  type(bief_obj), INTENT(INOUT) :: viscvi, viscta
2732  type(bief_obj), INTENT(IN) :: h
2733  END SUBROUTINE
2734  END INTERFACE
2735 !
2736 !-----------------------------------------------------------------------
2737 !
2738  INTERFACE
2739  SUBROUTINE visclm
2740  &(viscvi,viscta,ri,u,v,deltar,z,hn,trav1,trav2,trav3,
2741  & trav4,trav5,trav7,mesh3d,ielm3,grav,
2742  & nplan,npoin3,npoin2,ntrac,msk,maskel,mixing,
2743  & damping,dnuviv,dnutav,karman,prandtl,kfrot,
2744  & rugof,zf,linlog,ipbot)
2745  USE bief_def
2747  IMPLICIT NONE
2748  INTEGER, INTENT(IN) :: NPOIN3,NPOIN2,NPLAN,KFROT
2749  INTEGER, INTENT(IN) :: NTRAC,DAMPING,LINLOG
2750  INTEGER, INTENT(IN) :: IELM3,MIXING
2751  INTEGER, INTENT(IN) :: IPBOT(npoin2)
2752  DOUBLE PRECISION, INTENT(IN) :: GRAV,DNUVIV,DNUTAV(ntrac),KARMAN
2753  DOUBLE PRECISION, INTENT(IN) :: PRANDTL
2754  LOGICAL, INTENT(IN) :: MSK
2755  type(bief_obj), INTENT(INOUT) :: viscvi,viscta
2756  type(bief_obj), INTENT(IN) :: rugof,zf
2757  type(bief_obj), INTENT(INOUT) :: ri
2758  type(bief_obj), INTENT(IN) :: u,v,deltar,z,hn
2759  type(bief_obj), INTENT(INOUT) :: trav1,trav2,trav3,trav4
2760  type(bief_obj), INTENT(INOUT) :: trav5,trav7
2761  type(bief_obj), INTENT(IN) :: maskel
2762  type(bief_mesh) :: mesh3d
2763  END SUBROUTINE
2764  END INTERFACE
2765 !
2766 !-----------------------------------------------------------------------
2767 !
2768  INTERFACE
2769  SUBROUTINE viscos
2770  &(viscvi,viscta,dnutav,dnutah,dnuviv,dnuvih,
2771  & ntrac,iturbh,iturbv)
2772  USE bief_def
2774  IMPLICIT NONE
2775  INTEGER, INTENT(IN) :: NTRAC
2776  INTEGER, INTENT(IN) :: ITURBH,ITURBV
2777  type(bief_obj), INTENT(INOUT) :: viscvi, viscta
2778  DOUBLE PRECISION, INTENT(IN) :: DNUVIH, DNUVIV
2779  DOUBLE PRECISION, INTENT(IN) :: DNUTAH(ntrac),DNUTAV(ntrac)
2780  END SUBROUTINE
2781  END INTERFACE
2782 !
2783 !-----------------------------------------------------------------------
2784 !
2785  INTERFACE
2786  SUBROUTINE vissma
2787  & (viscvi,viscta,dnutah,dnuvih,dnuviv,dnutav,
2788  & u,v,w,trav1,trav2,trav3,trav4,trav5,trav6,
2789  & svide,mesh3,ielm3,ntrac,msk,maskel,iturbv)
2790  USE bief_def
2792  IMPLICIT NONE
2793  INTEGER, INTENT(IN) :: NTRAC,ITURBV
2794  INTEGER, INTENT(IN) :: IELM3
2795  LOGICAL, INTENT(IN) :: MSK
2796  type(bief_obj), INTENT(IN) :: u, v, w
2797  type(bief_obj), INTENT(INOUT) :: viscvi, viscta
2798  type(bief_obj), INTENT(INOUT) :: trav1, trav2, trav3, trav4
2799  type(bief_obj), INTENT(INOUT) :: trav5 ! NUSMAG
2800  type(bief_obj), INTENT(INOUT) :: trav6
2801  type(bief_obj), INTENT(IN) :: maskel
2802  type(bief_obj), INTENT(INOUT) :: svide
2803  type(bief_mesh) :: mesh3
2804  DOUBLE PRECISION, INTENT(IN) :: DNUVIH,DNUVIV
2805  DOUBLE PRECISION, INTENT(IN) :: DNUTAH(ntrac),DNUTAV(ntrac)
2806  END SUBROUTINE
2807  END INTERFACE
2808 !
2809 !-----------------------------------------------------------------------
2810 !
2811  INTERFACE
2812  DOUBLE PRECISION FUNCTION vit3( I , AT , N , INFOGR )
2814  IMPLICIT NONE
2815  INTEGER , INTENT(IN) :: I,N
2816  DOUBLE PRECISION , INTENT(IN) :: AT
2817  LOGICAL , INTENT(IN) :: INFOGR
2818  END FUNCTION
2819  END INTERFACE
2820  !
2821  !-----------------------------------------------------------------------
2822  !
2823  INTERFACE
2824  SUBROUTINE user_vit3( VIT3, I , AT , N , INFOGR )
2826  IMPLICIT NONE
2827  DOUBLE PRECISION , INTENT(INOUT) :: VIT3
2828  INTEGER , INTENT(IN) :: I,N
2829  DOUBLE PRECISION , INTENT(IN) :: AT
2830  LOGICAL , INTENT(IN) :: INFOGR
2831  END SUBROUTINE
2832  END INTERFACE
2833 !
2834 !-----------------------------------------------------------------------
2835 !
2836  INTERFACE
2837  SUBROUTINE compute_settling_vel
2838  &(wchu,u,v,
2839  & trav1,trav2,trav3,s,mesh3d,ielm3,npoin2,npoin3,nplan,
2840  & msk,maskel,uetcar,ta,hn)
2841  USE bief
2843  IMPLICIT NONE
2844  TYPE(bief_mesh),INTENT(INOUT) :: MESH3D
2845  TYPE(bief_obj), INTENT(INOUT) :: WCHU,TRAV1,TRAV2,TRAV3
2846  TYPE(bief_obj), INTENT(IN) :: MASKEL,S,HN,U,V
2847  TYPE(bief_obj), INTENT(IN) :: TA,UETCAR
2848  LOGICAL, INTENT(IN) :: MSK
2849  INTEGER, INTENT(IN) :: NPOIN2,NPOIN3,NPLAN,IELM3
2850  END SUBROUTINE
2851  END INTERFACE
2852 !
2853 !-----------------------------------------------------------------------
2854 !
2855  INTERFACE
2856  SUBROUTINE vitchu
2857  & (s3d_wchu,s3d_wchu0,u,v,s3d_turba,
2858  & s3d_turbb,trav1,trav2,trav3,s,mesh3d,ielm3,npoin2,npoin3,nplan,
2859  & ntrac,msk,maskel,uetcar,ta,hn,s3d_floc, s3d_floc_type,
2860  & s3d_hinder,s3d_hind_type,s3d_cgel,s3d_cini)
2861  USE bief
2863  IMPLICIT NONE
2864  TYPE(bief_mesh),INTENT(INOUT) :: MESH3D
2865  TYPE(bief_obj), INTENT(INOUT) :: S3D_WCHU,TRAV1,TRAV2,TRAV3
2866  TYPE(bief_obj), INTENT(IN) :: MASKEL,S,HN,U,V
2867  TYPE(bief_obj), INTENT(IN) :: TA,UETCAR
2868  LOGICAL, INTENT(IN) :: MSK,S3D_HINDER
2869  LOGICAL, INTENT(IN) :: S3D_FLOC
2870  INTEGER, INTENT(IN) :: NPOIN2,NPOIN3,NPLAN,IELM3
2871  INTEGER, INTENT(IN) :: NTRAC,S3D_HIND_TYPE
2872  INTEGER, INTENT(IN) :: S3D_FLOC_TYPE
2873  DOUBLE PRECISION, INTENT(IN) :: S3D_WCHU0,S3D_TURBA,S3D_TURBB
2874  DOUBLE PRECISION, INTENT(IN) :: S3D_CGEL,S3D_CINI
2875  END SUBROUTINE
2876  END INTERFACE
2877 !
2878 !-----------------------------------------------------------------------
2879 !
2880  INTERFACE
2881  SUBROUTINE wave_equation(ISOUSI)
2883  IMPLICIT NONE
2884  INTEGER, INTENT(IN) :: ISOUSI
2885  END SUBROUTINE
2886  END INTERFACE
2887 !
2888 !-----------------------------------------------------------------------
2889 !
2890  INTERFACE
2891  SUBROUTINE wchind
2892  &(wchu,c,cini,cgel,npoin3,hind_type)
2893  USE bief_def
2895  IMPLICIT NONE
2896  TYPE(bief_obj), INTENT(INOUT) :: C
2897  INTEGER, INTENT(IN) :: HIND_TYPE, NPOIN3
2898  DOUBLE PRECISION, INTENT(INOUT) :: WCHU(npoin3)
2899  DOUBLE PRECISION, INTENT(IN) :: CINI, CGEL
2900  END SUBROUTINE
2901  END INTERFACE
2902 !
2903 !-----------------------------------------------------------------------
2904 !
2905  INTERFACE
2906  SUBROUTINE wcturb
2907  &(wchu, wchu0, u, v, trav1, trav2,trav3,
2908  & s, mesh3, ielm3, npoin2, nplan, turba, turbb, msk, maskel,
2909  & uetcar)
2910  USE bief_def
2912  IMPLICIT NONE
2913  INTEGER, INTENT(IN) :: NPOIN2,NPLAN,IELM3
2914  DOUBLE PRECISION, INTENT(IN) :: WCHU0,TURBA, TURBB
2915  LOGICAL, INTENT(IN) :: MSK
2916  TYPE(bief_mesh), INTENT(INOUT):: MESH3
2917  TYPE(bief_obj), INTENT(INOUT) :: WCHU,TRAV1,TRAV2,TRAV3
2918  TYPE(bief_obj), INTENT(IN) :: MASKEL,S,UETCAR,U,V
2919  END SUBROUTINE
2920  END INTERFACE
2921 !
2922 !-----------------------------------------------------------------------
2923 !
2924  INTERFACE
2925  SUBROUTINE wstarw(WW,WSS,WUP,WDOWN,SOMMEW)
2928  IMPLICIT NONE
2929  TYPE(bief_obj), INTENT(IN) :: WSS
2930  TYPE(bief_obj), INTENT(INOUT) :: WW
2931  DOUBLE PRECISION,INTENT(INOUT) :: WUP(*),WDOWN(*),SOMMEW(*)
2932  END SUBROUTINE
2933  END INTERFACE
2934 !
2935 !-----------------------------------------------------------------------
2936 !
2937  INTERFACE
2938  SUBROUTINE wstar(WS,HWSTAR,Z,NPOIN2,NPLAN)
2941  IMPLICIT NONE
2942  TYPE(bief_obj), INTENT(IN ) :: HWSTAR
2943  TYPE(bief_obj), INTENT(INOUT) :: WS
2944  DOUBLE PRECISION, INTENT(IN ) :: Z(*)
2945  INTEGER, INTENT(IN ) :: NPOIN2,NPLAN
2946  END SUBROUTINE
2947  END INTERFACE
2948 !
2949 !-----------------------------------------------------------------------
2950 !
2951  INTERFACE
2952  SUBROUTINE telemac3d(PASS,NIT_ORI)
2953  IMPLICIT NONE
2954  INTEGER, INTENT(IN) :: PASS
2955  INTEGER, INTENT(IN) :: NIT_ORI
2956  END SUBROUTINE
2957  END INTERFACE
2958 !
2959 !-----------------------------------------------------------------------
2960 !
2961  INTERFACE
2962  SUBROUTINE telemac3d_init
2963  IMPLICIT NONE
2964  END SUBROUTINE
2965  END INTERFACE
2966 !
2967 !=======================================================================
2968 !
2969  END MODULE interface_telemac3d
subroutine diff3d(FD, FC, FN, VISCF, SIGMAF, S0F, YAS0F, S1F, YAS1F, FBORL, FBORF, FBORS, AFBORL, AFBORF, AFBORS, BFBORL, BFBORF, BFBORS, LIFBOF, LIFBOL, LIFBOS, FMIN, CLIMIN, FMAX, CLIMAX, SCHCF, SCHDF, SLVDIF, TRBAF, INFO, NEWDIF, DT, T2_01, T2_03, T3_01, T3_02, T3_03, T3_04, NPOIN2, NPOIN3, INCHYD, SEM3D, YASEM3D, IT1, NPTFR3, NBOR3, MASKPT, TRAV3, MESH2D, MESH3D, MTRA1, MTRA2, IELM3, MSUPG, IELM2H, IELM2V, MDIFF, MASKBR, SVIDE, MSK, MASKEL, NPLAN, OPTBAN, TETADI, YAWCHU, WCHU, S3D_WCHU, AGGLOD, VOLU, YASCE, NSCE, FSCE, SOURCES, TETASUPG, RAIN, PLUIE, TRAIN, SIGMAG, IPBOT, S3D_SETDEP, OPTSOU, SETDEP)
Definition: diff3d.F:17
subroutine smago3d(U, V, W, TRAV1, TRAV2, TRAV3, TRAV4, TRAV5, TRAV6, SVIDE, MESH3, IELM3, MSK, MASKEL)
Definition: smago3d.f:8
subroutine prepare_advection(FN, S0F, FBORL, LIFBOL, FLUXF, SCHCF, CALFLU, MESH3D, MASKEL, NPTFR3, VOLUNPAR, FLUEXT, FLUEXTPAR, NBOR3, DT, MSK, IELM3, NUMLIQ, DIRFLU, NFRLIQ)
subroutine dricv(FRI, FRT, RI, NPOIN3)
Definition: dricv.f:7
subroutine erodnc(S3D_CFDEP, S3D_WCS, S3D_HDEP, S3D_FLUER, TOB, DT, NPOIN2, NPOIN3, S3D_AC, S3D_RHOS, RHO0, HN, GRAV, S3D_DMOY, S3D_CREF, ZREF, S3D_ICQ, RUGOF, Z, UETCAR, S3D_SETDEP, S3D_EPAINCO, S3D_MIXTE)
Definition: erodnc.f:10
subroutine bypass_crushed_points_ebe(SVOLU, SVOLUN, FLUX, TRA01, MESH3, NELEM2, NELEM3, NELMAX, NPLAN, IKLE)
double precision function vit3(I, TIME, N, ENTET)
Definition: vit3.f:7
subroutine flot3d(XFLOT, YFLOT, ZFLOT, NFLOT, NFLOT_MAX, X, Y, Z, IKLE, NELEM, NELMAX, NPOIN, NPLAN, TAGFLO, CLSFLO, SHPFLO, SHZFLO, ELTFLO, ETAFLO, MESH3D, LT, NIT, AT)
Definition: flot3d.f:8
subroutine fsgrad(GRADZS, ZFLATS, Z, ZF, IELM2H, MESH2D, MSK, MASKEL, UNSV2D, T2_01, NPOIN2, OPTBAN, S)
Definition: fsgrad.f:8
subroutine calcot(ZZ, HH)
Definition: calcot.f:7
subroutine longml(LM2, Z, HN, NPOIN3, NPOIN2, NPLAN, MIXING, KARMAN)
Definition: longml.f:7
subroutine wchind(WCHU, C, CINI, CGEL, NPOIN3, HIND_TYPE)
Definition: wchind.f:7
subroutine source(S0U, S0V, S0W, S1U, S1V, S1W, UN3, VN3, WSN3, WN3, VOLU, VOLUN, T3, NPOIN3, NTRAC, LT, AT, DT, PRIVE, NONHYD, NPOIN2, NSCE, ISCE, KSCE, QSCE, USCE, VSCE, MAXSCE)
Definition: source.f:10
subroutine vitchu(S3D_WCHU, S3D_WCHU0, U, V, S3D_TURBA, S3D_TURBB, TRAV1, TRAV2, TRAV3, S, MESH3D, IELM3, NPOIN2, NPOIN3, NPLAN, NTRAC, MSK, MASKEL, UETCAR, TA, HN, S3D_FLOC, S3D_FLOC_TYPE, S3D_HINDER, S3D_HIND_TYPE, S3D_CGEL, S3D_CINI)
Definition: vitchu.f:10
subroutine vissma(VISCVI, VISCTA, DNUTAH, DNUVIH, DNUVIV, DNUTAV, U, V, W, TRAV1, TRAV2, TRAV3, TRAV4, TRAV5, TRAV6, SVIDE, MESH3, IELM3, NTRAC, MSK, MASKEL, ITURBV)
Definition: vissma.f:9
subroutine sed_fall(FC, FN, WCHU, MESH3D, DT, VOLU, NPOIN2, NPOIN3, NPLAN, T1)
Definition: sed_fall.f:7
subroutine vermoy(FINT1, FINT2, F1, F2, NFONC, Z, TRA01, TRA02, TRA03, IPLAN1, IPLAN2, NPOIN2, NPLAN, OPTBAN)
Definition: vermoy.f:8
subroutine flused(ATABOF, BTABOF, LITABF, WC, HN, TOB, S3D_FLUDPT, S3D_FLUER, S3D_TOCD, NPOIN3, NPOIN2, NPLAN, KLOG, HMIN, S3D_SEDCO, S3D_SETDEP, S3D_SEDNCO, S3D_WCS, S3D_MIXTE, S3D_FLUDPTC, S3D_FLUDPTNC)
Definition: flused.f:13
subroutine viscos(VISCVI, VISCTA, DNUTAV, DNUTAH, DNUVIV, DNUVIH, NTRAC, ITURBH, ITURBV)
Definition: viscos.f:7
double precision function vel_prof_z(I, IPOIN2, IPLAN, IOPT)
Definition: vel_prof_z.f:7
subroutine user_mesh_transf
subroutine findksce(NPOIN2, NPLAN, Z, NSCE, ISCE, ZSCE, KSCE, INFO)
Definition: findksce.f:7
subroutine flux_cor(FC, FINSUB, FI_I, ZSTART, ZEND, DFDT, XB, DIM1XB, TETA, IKLE3, MESH3, NELEM3, NELMAX, NPOIN3, IELM3, SCHCF)
Definition: flux_cor.f:8
subroutine flupri(VEC, XMUL, U, V, W, X, Y, Z, IKLE, NELMAX, NELEM2D, NPOIN2, NPOIN3, T1, T2, T3)
Definition: flupri.f:8
subroutine nuwave_p0(NUWAVE, DM1, Z, DZ, IKLE, NPOIN2, NPLAN, NELEM, NELMAX, NELEM2, XMUL, IELM3, X, Y, SURFAC)
Definition: nuwave_p0.f:8
subroutine bord3d(NFRLIQ)
Definition: bord3d.f:7
subroutine airwik2(LIHBOR, UBORF, VBORF, WBORF, LIUBOF, LIVBOF, LIWBOF, UBORL, VBORL, WBORL, LIUBOL, LIVBOL, LIWBOL, UBORS, VBORS, WBORS, LIUBOS, LIVBOS, LIWBOS, U, V, W, XNEBOR, YNEBOR, NBOR, NPTFR, NPLAN, NPOIN2, KENT, KADH, KLOG, KDEB, VELPROLAT)
Definition: airwik2.f:10
subroutine user_vit3(VIT3, I, TIME, N, ENTET)
Definition: user_vit3.f:7
subroutine upwind(M, WCC, DELTA, MESH2D, MESH3D, NPLAN)
Definition: upwind.f:7
subroutine condis(S3D_IVIDE, S3D_EPAI, S3D_TREST, S3D_CONC, S3D_TEMP, S3D_HDEP,
Definition: condis.f:7
subroutine prediv(PD, UP, VP, WP, INFO, BC, OPT, DIRSUR, DIRBOT, DIRLAT)
Definition: prediv.F:7
subroutine kepcl3(KBORF, EBORF, LIKBOF, LIEBOF, KBORL, EBORL, LIKBOL, LIEBOL, LIUBOL, KBORS, EBORS, LIKBOS, LIEBOS, DISBOR, AK, H, Z, NBOR, NPOIN2, NPLAN, NPTFR, KARMAN, CMU, KMIN, EMIN, KENT, KENTU, KSORT, KADH, KLOG, UETCAR, FICTIF)
Definition: kepcl3.f:13
double precision function sl3(I, TIME, N, ENTET)
Definition: sl3.f:7
subroutine soukep(CV1, CV2, S1K, S1E, U, V, W, DELTAR, RI, DUDX, DUDY, DUDZ, DVDX, DVDY, DVDZ, DWDX, DWDY, DWDZ, DTADZ, AK, EP, C1, C2, CMU, GRAV, NPOIN3, MSK, MASKEL, MESH3D, IELM3, S, VENT, WINDX, WINDY, NPOIN2, KMIN, PRANDTL)
Definition: soukep.f:10
subroutine telemac3d_init
Definition: telemac3d_init.F:4
subroutine cstkep
Definition: cstkep.f:4
subroutine upwindseg(D, X, IKLE, NELMAX, NELEM2, SURFAC, NPLAN, WCC, NSEG2D, NSEG3D, EXT, DELTA)
Definition: upwindseg.f:8
subroutine bypass_crushed_points_seg(SVOLU, SVOLUN, FLUX, TRA01, MESH3, SCHCF, NPOIN2, GLOSEG, DIMGLO, NSEG, NPLAN)
double precision function t3d_debsce(TIME, I, DISCE)
Definition: t3d_debsce.f:7
subroutine trisou(CV1, CV2, SCV1, SCV2, UN3, VN3, X, Y, Z, ZS, DELTAR, MESH3, FCOR, CORIOL, NTRAC, AT, SURFAC, T1, ST1, W1, W2, W3, GRAV, NPOIN3, NELEM3, NPOIN2, NELEM2, NPLAN, NETAGE, IKLE3, LV, MSK, MASKEL, INCHYD, SVOLU, SVIDE, IELM3, SMASKEL, NREJEU, ISCE, KSCE, QSCE, USCE, VSCE, GRADZSX, GRADZSY, MESH2D, ST2, T2, ST3, T3, LONGIT, YASEM3D, SCHCVI, DENLAW, FXH, FYH, COUROU, NPTH, T3D_FILES, T3DBI1)
Definition: trisou.f:14
subroutine cvdf3d(FD, FC, FN, VISCF, SIGMAF, S0F, YAS0F, S1F, YAS1F, FBORL, FBORF, FBORS, AFBORL, AFBORF, AFBORS, BFBORL, BFBORF, BFBORS, LIFBOL, LIFBOF, LIFBOS, FLUXB, FLUXF, FLUEXT, FLUEXTPAR, FMIN, CLIMIN, FMAX, CLIMAX, SCHCF, SCHDF, SLVDIF, TRBAF, INFOR, NEWDIF, CALFLU, T2_01, T2_03, T3_01, T3_02, T3_03, T3_04, MESH3D, IKLE3, MASKEL, MTRA1, NPTFR3, MMURD, MURD_TF, VOLU, VOLUPAR, VOLUN, VOLUNPAR, NBOR3, NPOIN3, NPOIN2, DT, MSK, NELEM3, NPLAN, IELM3, MSUPG, IELM2H, IELM2V, MDIFF, MTRA2, INCHYD, MASKBR, MASKPT, SEM3D, YASEM3D, SVIDE, IT1, TRAV3, MESH2D, OPTBAN, TETADI, YAWCHU, WCHU, S3D_WCHU, AGGLOD, NSCE, SOURCES, FSCE, NUMLIQ, DIRFLU, NFRLIQ, VOLUT, ZT, ZPROP, RAIN, PLUIE, PARAPLUIE, TRAIN, FLODEL, FLOPAR, SIGMAG, IPBOT, MAXADV, FLUDPT, FLUDP, FLUER, VOLU2D, V2DPAR, SETDEP, S3D_FLUDPT, S3D_FLUDP, S3D_FLUER, S3D_SETDEP, OPTSOU, ZN, OPTADV, NCO_DIST, NSP_DIST, TB2)
Definition: cvdf3d.f:24
subroutine trid1d(X, AA, BB, CC, DD, GAM, IMAX)
Definition: trid1d.f:7
subroutine user_condi3d_h
Definition: user_condi3d_h.f:4
subroutine tbord(AUBORL, RUGOL, DISBOR, NELBOR, NULONE, IKLE, NELMAX2, U, V, W, NBOR, NPOIN2, NPLAN, NPTFR, DNUVIH, DNUVIV, KARMAN, LISRUL, KFROTL, UETCAL, NONHYD, UTANG, MESH2D)
Definition: tbord.f:11
subroutine check(IKLE2, NBOR, NELBOR, IKLBOR, NELEB, NELEBX, IKLE3, NELBO3, NULONE, DIM1NUL, DIM2NUL, NBOR3, NELMAX2, NPTFR, NELMAX, NPTFR3, INFO)
Definition: check.f:8
integer, parameter maxkeyword
double precision function t3d_trsce(TIME, I, ITRAC)
Definition: t3d_trsce.f:7
subroutine rhs_pressure(DIVU, UP, VP, WP, IELM3, DM1, GRAZCO, SVIDE, MESH3D, MSK, MASKEL, FLUEXT, NSCE, RAIN, PLUIE, SOURCES, GRADZF, VOLU2D, DSSUDT, NPOIN2, NPOIN3, NPLAN, OPTSOU)
Definition: rhs_pressure.f:9
subroutine condim
Definition: condim.f:4
subroutine diag_murd(DIAG, XM, NELEM, NELMAX, NPOIN3, IKLE, IELM3, DIM1X)
Definition: diag_murd.f:7
subroutine calcg(TRAV2, TRAV3, UETCAR, NPOIN2, NPLAN)
Definition: calcg.f:7
subroutine ifab3d(IFABOR, LIUBOF, LIUBOL, LIUBOS, KP1BOR, NELBOR, NULONE, IKLE2, NELEM2, NELMAX2, NPOIN2, NPTFR, NPLAN, NETAGE, KLOG, TRANSF)
Definition: ifab3d.f:8
subroutine fonvas(S3D_EPAI, S3D_CONC, S3D_HDEP, S3D_FLUDP, S3D_FLUDPT, S3D_FLUER, ZF, TA, NPOIN2, NPOIN3, S3D_NCOUCH, DT, S3D_ZF_S, S3D_ESOMT, VOLU2D, S3D_MASDEP, S3D_SETDEP, ZR, TS, S3D_FLUDPTC, S3D_FLUDPTNC, S3D_FLUERC, S3D_FLUERNC, S3D_MIXTE, S3D_FLUDPC, S3D_FLUDPNC, S3D_PVSCO, S3D_PVSNCO, S3D_CFDEP, S3D_EPAICO, S3D_EPAINCO)
Definition: fonvas.f:15
subroutine impsed(S3D_IVIDE, S3D_EPAI, S3D_CONC, S3D_TEMP, S3D_HDEP, PDEPOT, S3D_FLUER, ZR, ZF, TA, WC, X, Y, NPOIN2, NPOIN3, S3D_NPFMAX, S3D_NCOUCH, NPF, LT, S3D_RHOS, S3D_CFMAX, S3D_CFDEP, S3D_EPAI0, S3D_TASSE, S3D_GIBSON, PRIVE, LISPRD)
Definition: impsed.f:11
double precision function tr3(I, ITRAC, N, TIME, ENTET)
Definition: tr3.f:7
subroutine erodc(S3D_CONC, S3D_EPAI, S3D_FLUER, TOB, S3D_MPART, DT, NPOIN2, S3D_NCOUCH, S3D_TOCE, HN, HMIN, S3D_MIXTE, S3D_EPAICO)
Definition: erodc.f:9
subroutine murd3d_pos(FC, FN, VOLU, VOLUN, SVOLUN, VOLU2, SVOLU2, RMASS, TRA01, TRA02, TRA03, STRA01, STRA02, STRA03, MESH2, MESH3, NPOIN3, DT, SCHCF, INFOR, CALFLU, FLUXB, FLUX, FLUEXT, FLUEXTPAR, FBORL, NPTFR3, NBOR3, S0F, NSCE, SOURCES, FSCE, RAIN, PLUIE, TRAIN, NPOIN2, FLOPAR, GLOSEG, DIMGLO, NSEG, NPLAN, T5, FLUX_REMOVED, SAVED_VOLU2, SAVED_F, OPTION, IELM3, NITMAX, OPTSOU)
Definition: murd3d_pos.f:13
subroutine mask3d(IFABOR3D, MASKEL, MASKPT, MASKBR, X, Y, ZF, ZFE, H, HMIN, AT, LT, ITRA01, NELBO3, NELMA2, NELEM2, NPOIN2, NELEB2D, NPLAN, NETAGE, IELM3, MESH2D)
Definition: mask3d.f:9
subroutine user_q3(Q3, I, TIME, ENTET)
Definition: user_q3.f:7
subroutine viscko(VISCVI, VISCTA, ROTAT, AK, EP, NTRAC, DNUVIH, DNUVIV, DNUTAH, DNUTAV, ITURBH, ITURBV, T1, T2)
Definition: viscko.f:8
subroutine user_impsed(S3D_IVIDE, S3D_EPAI, S3D_CONC, S3D_TEMP, S3D_HDEP, PDEPOT, S3D_FLUER, ZR, ZF, TA, WC, X, Y, NPOIN2, NPOIN3, S3D_NPFMAX, S3D_NCOUCH, NPF, LT, S3D_RHOS, S3D_CFMAX, S3D_CFDEP, S3D_EPAI0, S3D_TASSE, S3D_GIBSON, PRIVE, LISPRD)
Definition: user_impsed.f:11
subroutine user_condi3d_p
Definition: user_condi3d_p.f:4
subroutine extmsk(MASKBR, MASK, NETAGE, NELEB)
Definition: extmsk.f:7
subroutine t3d_stress(SEM3D, OP, T2, T3, BFBORL, BFBORF, BFBORS, NPOIN2, NPOIN3, MESH2D, MESH3D, IELM2H, IELM2V, SV, MSK, MASKBR, MASKEL, IPBOT, SIGMAG, OPTBAN, NPLAN)
Definition: t3d_stress.f:9
subroutine debimp_3d(Q, UBOR, VBOR, U, V, NUMLIQ, NUMLIQ_ELM, IFRLIQ, T3_02, NPTFR, NETAGE, MASK, MESH, FORMUL, IELM2V, SVIDE, MASKBR, NELEB)
Definition: debimp_3d.f:8
subroutine drsurr(DELTAR, TA, BETAC, T0AC, RHO, RHO0, XMVS0, S3D_RHOS, DENLAW, S3D_SEDI, NTRAC, IND_T, IND_S, IND_SED, NSUSP_TEL, S3D_MIXTE, NUM_ISUSP_ICLA, NSICLA)
Definition: drsurr.f:9
subroutine fluver_2(FLUVER2, UP, VP, WP, GRADZF, VOLU2D, DSSUDT, NPLAN, NPOIN2)
Definition: fluver_2.f:7
subroutine t3d_corfon(SZF, ST1, ST2, ZF, T1, T2, X, Y, PRIVE, NPOIN2, LISFON, LISFON_AFTER, MSK, MASKEL, MATR2D, MESH2D, S)
Definition: t3d_corfon.f:8
subroutine grad2d(DFDX, DFDY, FU, NPLAN, S, UNSV2D, FU2, FU3, FU4, IELM2, MESH2D, MSK, MASKEL)
Definition: grad2d.f:7
subroutine drialg(FRV, FRT, RI, NPOIN3)
Definition: drialg.f:7
subroutine velres(U, V, W, DP, PX, PY, PZ, MSK, MASKEL, MESH3D, S, IELM3, OPTBAN, UNSVOL, DO_UNSVOL, NPOIN3, NPOIN2, SIGMAG, IPBOT, AGGLOH, KSORT, NPTFR3, LIUBOL, CONCOR)
Definition: velres.f:9
subroutine clsedi(ATABOF, BTABOF, WC, Z, HN, DELTAR, TOB, DENSI, S3D_EPAI, S3D_CFDEP, S3D_CONC, S3D_HDEP, S3D_FLUER, S3D_FLUDPT, LITABF, KLOG, NPOIN3, NPOIN2, NPLAN, S3D_NCOUCH, DT, RHO0, S3D_RHOS, S3D_TOCD, S3D_MPART, S3D_TOCE, UETCAR, GRAV, S3D_SEDCO, S3D_DMOY, S3D_CREF, ZREF, CF, S3D_AC, S3D_KSPRATIO, S3D_ICR, S3D_ICQ, RUGOF, S3D_SETDEP, HMIN, S3D_WCS, S3D_EPAICO, S3D_EPAINCO, S3D_MIXTE, S3D_SEDNCO, S3D_FLUDPTC, S3D_FLUDPTNC, S3D_FLUERC, S3D_FLUERNC, NTRAC, ITRAC)
Definition: clsedi.f:19
double precision function tra_prof_z(I, IPOIN2, IPLAN, IOPT, ITRAC)
Definition: tra_prof_z.f:7
subroutine user_t3d_debsce(T3D_DEBSCE, TIME, I, DISCE)
subroutine correction_depth_3d(GLOSEG, DIMGLO)
subroutine compute_settling_vel(WCHU, U, V, TRAV1, TRAV2, TRAV3, S, MESH3D, IELM3, NPOIN2, NPOIN3, NPLAN, MSK, MASKEL, UETCAR, TA, HN)
subroutine user_vel_prof_z(VEL_PROF_Z, I, IPOIN2, IPLAN, IOPT)
subroutine viscsa(VISCVI, VISCNU, NU, DNUVIH, DNUVIV, AK, EP, STRAIN)
Definition: viscsa.f:8
subroutine saini(NU, U, V, W, Z, NPOIN2, NPLAN, KARMAN, NUMIN, UETCAR, H, KFROT, ITURB, STRAIN, MSK, MASKEL, S, MESH3D)
Definition: saini.f:8
subroutine tvf_imp_3d(F, FC, FXMAT, FXMATPAR, DT, VOLUNP1MT, NSEG3, NPOIN3, FLUEXT, FLUEXTPAR, NPTFR3, NBOR3, SIZGLO, GLOSEG, TETAF, PSIEXP, FBOR, MESH3D, ICOR, NCOR, PREDICTOR, CORRECTOR, INFOGT, SF, SM, AM2, SLVPSI, BB, RAIN, TRAIN, PLUIE, NPOIN2, OPTSOU, NSCE, ISCE, KSCE, FSCE, SOURCES)
Definition: tvf_imp_3d.F:11
subroutine murd3d_lips(SFC, FC, FN, VOLU, VOLUN, XB, DIM1XB, FNSUB, TRA02, SFNSUB, STRA02, STRA03, IKLE3, MESH2D, MESH3D, NELEM3, NELMAX, NPOIN3, DT, INFOR, CALFLU, FLUXB, FLUX, FLUEXT, S0F, NSCE, ISCE, KSCE, SOURCES, FSCE, RAIN, PLUIE, TRAIN, NPOIN2, MINFC, MAXFC, GLOSEG, DIMGLO, NSEG, NPLAN, IELM3, OPTSOU, NPTFR3, NBOR3, FLUEXTPAR, FBORL, ZN, FI_I, TRAV10, TETAF_VAR, BEDBOU, BEDFLU, NCO_DIST, NSP_DIST, SLVDIF, ORISEG, MTRA1, ELTSEG, TB2, VNP1MT, DENOM, VOLUN_SUB, VOLU_SUB, ZSUBN, ZSUBP)
Definition: murd3d_lips.f:15
subroutine visclip(VISCVI, VISCTA, H, NPLAN, NPOIN2, NTRAC, HLIM)
Definition: visclip.f:7
subroutine nomvar_2d_in_3d(TEXTE, TEXTPR, MNEMO, NTRAC, MAXTRA, NAMETRAC, N_NAMES_PRIV2D, NAMES_PRIVE2D)
subroutine numliq_3d(NUMLIQ, NUMLIQ_ELM, NPLAN, NPTFR2, IKLBOR, NELEB, NELEBX)
Definition: numliq_3d.f:7
subroutine plane_bottom(IPBOT, Z, NPOIN2, NPLAN, SIGMAG, OPTBAN)
Definition: plane_bottom.f:7
subroutine transf(FA, FR, XK, KNEW, NEWF, NEWF1, TAUX1, TAUX2, NPOIN2, NDIRE, NF)
Definition: transf.f:8
subroutine mittit(IETAPE, AT, LT)
Definition: mittit.f:7
subroutine nomvar_telemac3d(TEXT3, TEXTP3, MNEMO, NTRAC, MAXTRA, NAMETRAC)
subroutine user_source(S0U, S0V, S0W, S1U, S1V, S1W, UN3, VN3, WSN3, WN3, VOLU, VOLUN, T3, NPOIN3, NTRAC, LT, AT, DT, PRIVE, NONHYD, NPOIN2, NSCE, ISCE, KSCE, QSCE, USCE, VSCE, MAXSCE)
Definition: user_source.f:10
subroutine thomps_bc(OPTION)
Definition: thomps_bc.f:7
subroutine tridw2(WSCONV, VOLU, VOLUN, SEM2D, FLUINT, FLUEXT, SOURCES, NSCE, NETAGE, NPOIN2, DT, UNSV2D, MESH2D, OPTSOU)
Definition: tridw2.f:8
subroutine tridw3(WSCONV, FLUVER, SUMFLU, ERROR, PRESSURE, COR_INT, COR_VER, VOLU, VOLUN, U, UCONV, VCONV, WCONV, DT, NPOIN3, SIGMAG, OPTBAN, MESH3D, MTRA1, MASKEL, NPOIN2, T2_01, NPLAN, FLUEXT, NSCE, SOURCES, RAIN, PLUIE, FLUINT, NETAGE, UNSV2D, SVIDE, NELEM2, MSK, N_ADV, VOLU2D, INFOGR, DSSUDT, IELM3, DM1, GRAZCO, MESH2D, SEM3D, NELEM3, GRADZF, OPTSOU)
Definition: tridw3.f:12
subroutine user_driuti(FRI, RI, ITYP, ITRAC, NPOIN3)
Definition: user_driuti.f:7
subroutine sumver(FINT, F, NPLAN, NPTFR)
Definition: sumver.f:7
subroutine set_dif(FC, VOLU2D, Z, NPOIN2, NPOIN3, DT, FLUX, NPLAN, WCHU, FLUDPT, FLUDP, FLUER, IPBOT, VISCTA)
Definition: set_dif.f:8
subroutine make_zconv(ZCONV, GRAZCO, ZFLATS, DH, HN, ZF, TETAZCOMP, TETAH, NELEM2, NELMAX2, OPTBAN, IKLE2, MESH2D)
Definition: make_zconv.f:8
subroutine user_condi3d_uvw
subroutine mesh_prop(HPROP, HN, H, PROLIN, HAULIN, TETA, NSOUSI, ZPROP, IPBOT, NPOIN2, NPLAN, OPTBAN, SIGMAG, OPT_HNEG, MESH3D, VOLU3D, VOLU3DPAR, UNSV3D, MASKEL, IELM3)
Definition: mesh_prop.f:9
subroutine amr_plan(ZVALS, OBJSOL, REFTYPE, NPOIN2, NPLAN, NSEG2, GLOSEG, DIMGLO, Z0, NEWZ, ZEXT, INTSOL, MONITOR, SSMONITOR, SMONITOR, NEXTR, SNNEIGH, NNEIGH, MCOEFF, MESH2D, MESH3D)
Definition: amr_plan.f:9
subroutine source_trac
Definition: source_trac.f:4
subroutine utimp(GRADEBL, GRAPRDL, LISDEBL, LISPRDL)
Definition: utimp.f:7
subroutine user_condi3d_kep
subroutine transf_zchar(TRANSF, ZCHAR, ZSTAR, TRANSF_PLANE, NPLAN)
Definition: transf_zchar.f:7
subroutine soulsbyfloc3d(WCHU, FC, MESH3, NPOIN2, NPOIN3, NPLAN, HN, UETCAR)
Definition: soulsbyfloc3d.f:7
subroutine user_tra_prof_z(TRA_PROF_Z, I, IPOIN2, IPLAN, IOPT, ITRAC)
subroutine suised(S3D_EPAI, S3D_HDEP, ZR, ZF, T2, NPOIN2, S3D_NCOUCH, S3D_ITASS, NSUIS, FFORMAT)
Definition: suised.f:8
subroutine soukom(CV1, CV2, S1K, S1E, U, V, W, DELTAR, DUDX, DUDY, DUDZ, DVDX, DVDY, DVDZ, DWDX, DWDY, DWDZ, DTADZ, DKDX, DKDY, DKDZ, DODX, DODY, DODZ, ROTAT, AK, EP, ALPHA, BETA, BETAS, GRAV, TR, NPOIN3, MSK, MASKEL, MESH3D, IELM3, S)
Definition: soukom.f:10
subroutine lichek(LIMPRP, NPTFR, IKLBOR, NELEB2, NELEBX2)
Definition: lichek.f:7
subroutine phstat(PH, DELTAR, Z, TRA01, TRA02, RHO0, GRAV, NPOIN3, NPOIN2, NPLAN)
Definition: phstat.f:8
subroutine bil3d(LT, NIT, IKLBORL, NPTFR, NETAG)
Definition: bil3d.f:7
subroutine sacl3(NUBORF, LINUBOF, NUBORL, LINUBOL, LIUBOL, H, Z, NBOR, NPOIN2, NPLAN, NPTFR, KARMAN, UETCAR, NUMIN, KENT, KENTU, KSORT, KADH, KLOG, FICTIF)
Definition: sacl3.f:11
subroutine user_preres_telemac3d(LEO)
subroutine user_t3d_trsce(T3D_TRSCE, TIME, I, ITRAC)
Definition: user_t3d_trsce.f:7
subroutine visclm(VISCVI, VISCTA, RI, U, V, DELTAR, Z, HN, TRAV1, TRAV2, TRAV3, TRAV4, TRAV5, TRAV7, MESH3D, IELM3, GRAV, NPLAN, NPOIN3, NPOIN2, NTRAC, MSK, MASKEL, MIXING, DAMPING, DNUVIV, DNUTAV, KARMAN, PRANDTL, KFROT, RUGOF, ZF, LINLOG, IPBOT)
Definition: visclm.f:11
double precision function q3(I, TIME, ENTET)
Definition: q3.f:7
subroutine massed(S3D_MASBED, S3D_EPAI, S3D_CONC, TRA02, NPOIN2, S3D_NCOUCH, VOLU2D, S3D_CFDEP, S3D_EPAICO, S3D_EPAINCO, S3D_MIXTE)
Definition: massed.f:9
subroutine lecdon_telemac3d(MOTCAR, FILE_DESC, PATH, NCAR, CAS_FILE, DICO_FILE, GAIA_CAS_FILE, GAIA_DICO_FILE)
subroutine sousa(S0NU, S1NU, U, V, W, ROTAN, STRAIN, TRNU, NU, NPOIN3, MSK, MASKEL, MESH3D, IELM3, S, WDIST, NPOIN2, ITURB)
Definition: sousa.f:9
subroutine preadv(W, WS, ZPROP, ISOUSI, LT, VOLU, VOLUN)
Definition: preadv.f:7
subroutine airwik3(LIHBOR, U, V, XNEBOR, YNEBOR, NBOR, NPTFR, NPLAN, NPOIN2, KLOG)
Definition: airwik3.f:7
subroutine flux3d(FLUINT, FLUEXT, FLUEXTPAR, UCONV, VCONV, TRA02, NPLAN, IELM3, IELM2V, SVIDE, MESH3, MSK, MASKEL, MASK_3D, LIHBOR, KENT, NPTFR, DT, VOLU, VOLUN, MESH2, SIGMAG, NPOIN2, NPOIN3, DM1, GRAZCO, FLBOR, PLUIE, RAIN, FLODEL, OPT_HNEG, FLULIM, YACVVF, BYPASS, N_ADV, WEL)
Definition: flux3d.f:12
subroutine flux_imp3d(NELEM3, NELMAX, ELTSEG, ORISEG, FXMATPAR, NSEG3, IKLE, NPOIN3, FN, FI_I, SURFAC, DFDT, TETA, ZN, ZP, SUR2VOL)
Definition: flux_imp3d.f:8
subroutine tfond(AUBOR, CF, U2D, V2D, U3D, V3D, W3D, KARMAN, LISRUF, PROPNU, Z, NPOIN, KFROT, RUGOF, UETCAR, NONHYD, OPTBAN, HN, GRAV, IPBOT, NPLAN)
Definition: tfond.f:8
double precision function q(I)
Definition: q.f:7
subroutine wave_equation(ISOUSI)
Definition: wave_equation.F:7
subroutine user_condi3d_trac
subroutine mass3d(INFO)
Definition: mass3d.f:7
subroutine debimp3d(Q, UBOR, VBOR, WBOR, U, V, H, NUMLIQ, IFRLIQ, T3_01, T3_02, T3_03, NPTFR, NETAGE, MASK, MESH, FORMUL, NPOIN2, IELM2V, SIGMAG, SVIDE, MASKBR, ZPROP)
Definition: debimp3d.f:10
subroutine viscke(VISCVI, VISCTA, AK, EP, NTRAC, CMU, DNUVIH, DNUVIV, DNUTAH, DNUTAV, EMIN, ITURBH, ITURBV, PRANDTL)
Definition: viscke.f:8
subroutine ifab3dt(IFABOR, LIUBOF, LIUBOS, IKLE2, IKLE, NELEM2, NELMAX2, NELMAX, NPOIN2, NETAGE, KLOG)
Definition: ifab3dt.f:9
subroutine upwindebe(D, X, IKLE, NELMAX, NELEM2, SURFAC, NPLAN, WCC, EXT, DELTA)
Definition: upwindebe.f:7
subroutine user_flot3d(XFLOT, YFLOT, ZFLOT, NFLOT, NFLOT_MAX, X, Y, Z, IKLE, NELEM, NELMAX, NPOIN, NPLAN, TAGFLO, CLSFLO, SHPFLO, SHZFLO, ELTFLO, ETAFLO, MESH3D, LT, NIT, AT)
Definition: user_flot3d.f:8
subroutine murd3d(SFC, FC, FN, VOLU, VOLUN, VOLU2, SVOLU2, B, DB, XB, DIM1XB, TRA01, TRA02, TRA03, STRA01, STRA02, STRA03, IKLE3, MESH2D, MESH3D, NELEM3, NELMAX, NPOIN3, DT, SCHCF, INFOR, CALFLU, FLUXB, FLUX, FLUEXT, S0F, NSCE, ISCE, KSCE, SOURCES, FSCE, RAIN, PLUIE, PARAPLUIE, TRAIN, NPOIN2, MINFC, MAXFC, MASKPT, OPTBAN, FLODEL, FLOPAR, GLOSEG, DIMGLO, NSEG, NPLAN, IELM3, OPTSOU, NPTFR3, NBOR3, FLUEXTPAR, FBORL, ZN, FI_I, ZSTART, ZEND, FINSUB, T2_01, BEDBOU, BEDFLU, OPTADV, NCO_DIST)
Definition: murd3d.f:14
subroutine driuti(FRI, RI, ITYP, ITRAC, NPOIN3)
Definition: driuti.f:7
subroutine wstarw(WW, WSS, WUP, WDOWN, SOMMEW)
Definition: wstarw.f:7
subroutine user_kepini(AK, EP, U, V, Z, ZF, NPOIN2, NPLAN, DNUVIH, DNUVIV, KARMAN, CMU, KMIN, EMIN)
Definition: user_kepini.f:7
subroutine wstar(WS, HWSTAR, Z, NPOIN2, NPLAN)
Definition: wstar.f:7
subroutine telemac3d(PASS, NIT_ORI)
Definition: telemac3d.F:7
subroutine kepicl(LIKBOF, LIEBOF, LIUBOF, LIKBOL, LIEBOL, LIUBOL, LIKBOS, LIEBOS, NPTFR, NPLAN, NPOIN2, KENT, KSORT, KENTU)
Definition: kepicl.f:8
subroutine preres_telemac3d
subroutine dessed(NPF, S3D_IVIDE, S3D_EPAI, S3D_HDEP, S3D_TEMP, ZR, NPOIN2, S3D_NPFMAX, S3D_NCOUCH, GRAPRD, LT, S3D_DTC, S3D_TASSE, S3D_GIBSON, NRSED, TITCAS, FMTRSED, GRADEB)
Definition: dessed.f:9
subroutine smago(U, V, T1, T2, T3, T4, NUSMAG, MESH3, IELM3, MSK, MASKEL)
Definition: smago.f:7
subroutine sed3d(S3D_MASBED, S3D_MASBED0, S3D_MASDEP, S3D_EPAI, S3D_CONC, TRA02, NPOIN2, S3D_NCOUCH, AT, VOLU2D, S3D_CFDEP, S3D_EPAICO, S3D_EPAINCO, S3D_MIXTE)
Definition: sed3d.f:11
subroutine user_tr3(TR3, I, ITRAC, N, TIME, ENTET)
Definition: user_tr3.f:7
subroutine komcl3(KBORF, EBORF, LIKBOF, LIEBOF, LIUBOF, KBORL, EBORL, LIKBOL, LIEBOL, LIUBOL, EBORS, LIEBOS, DISBOR, AK, U, V, H, Z, NBOR, NPOIN2, NPLAN, NPTFR, KARMAN, BETAS, OMSTAR, KMIN, EMIN, KENTU, KENT, KADH, KLOG, UETCAR, UETCAL)
Definition: komcl3.f:13
subroutine kepini(AK, EP, U, V, Z, ZF, NPOIN2, NPLAN, DNUVIH, DNUVIV, KARMAN, CMU, KMIN, EMIN)
Definition: kepini.f:7
subroutine coef(S3D_IVIDE, S3D_EPAI, TRA01, S3D_NPFMAX, IMAX, NDEB, S3D_RHOS, GRAV, S3D_DTC, DSIG1)
Definition: coef.f:9
subroutine mudstress3d(NGEO, FFORMAT, S3D_LAYTOCE, S3D_NCOUCH, MESH)
Definition: mudstress3d.f:7
subroutine wcturb(WC, WCHU0, U, V, TRAV1, TRAV2, TRAV3, S, MESH3, IELM3, NPOIN2, NPLAN, TURBA, TURBB, MSK, MASKEL, UETCAR)
Definition: wcturb.f:9
Definition: bief.f:3