The TELEMAC-MASCARET system  trunk
interface_gaia.f
Go to the documentation of this file.
1 !
2  MODULE interface_gaia
3 !
4 !
5 !***********************************************************************
6 ! GAIA
7 !***********************************************************************
8 !
9 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11 !
14 !
15  INTERFACE
16  SUBROUTINE affect_mat(IELMU)
18  IMPLICIT NONE
19  INTEGER, INTENT(IN) :: IELMU
20  END SUBROUTINE
21  END INTERFACE
22 !
23  INTERFACE
24  SUBROUTINE gai_arret
25  &(esm,emax,hn,varsor,npoin,mn,nres,fmtres,maxvar,at0,rc,hist,
26  & binresgai,texte,sorleo,sorimp,t1,t2)
27  USE bief_def
28  IMPLICIT NONE
29  TYPE(bief_obj), INTENT(IN) :: ESM, EMAX, HN, VARSOR
30  INTEGER, INTENT(IN) :: NPOIN, MN, NRES, MAXVAR
31  DOUBLE PRECISION, INTENT(IN) :: AT0, RC, HIST(1)
32  CHARACTER(LEN=3), INTENT(IN) :: BINRESGAI
33  CHARACTER(LEN=32), INTENT(IN) :: TEXTE(maxvar)
34  CHARACTER(LEN=8), INTENT(IN) :: FMTRES
35  LOGICAL, INTENT(IN) :: SORLEO(*), SORIMP(*)
36  TYPE(bief_obj), INTENT(INOUT) :: T1, T2
37  END SUBROUTINE
38  END INTERFACE
39 !
40  INTERFACE
41  SUBROUTINE mass_balance
42  &(dt,nptfr,entet,nsicla,numliq,nfrliq,flbcla,
43  & lt,nit,npoin,volu2d,charr,susp,evcl_mb,evcl_ms,masstot,
44  & mass0tot)
45  USE bief_def
46  IMPLICIT NONE
47  INTEGER, INTENT(IN) :: NPTFR,NFRLIQ,NSICLA,LT,NIT
48  INTEGER, INTENT(IN) :: NPOIN,NUMLIQ(nptfr)
49  DOUBLE PRECISION, INTENT(IN) :: DT
50  LOGICAL, INTENT(IN) :: ENTET,SUSP,CHARR
51  DOUBLE PRECISION, INTENT(IN) :: MASSTOT(nsicla)
52  DOUBLE PRECISION, INTENT(IN) :: MASS0TOT(nsicla)
53  TYPE(bief_obj), INTENT(IN) :: VOLU2D
54  TYPE(bief_obj), INTENT(IN) :: EVCL_MB,EVCL_MS
55  TYPE(bief_obj), INTENT(INOUT) :: FLBCLA
56  END SUBROUTINE
57  END INTERFACE
58 !
59  INTERFACE
60  SUBROUTINE calcuw_gaia( UW, H, HW, TW, GRAV ,NPOIN, TYPE_HOULE)
61  IMPLICIT NONE
62  INTEGER, INTENT(IN) :: NPOIN
63  DOUBLE PRECISION, INTENT(INOUT) :: UW(npoin)
64  DOUBLE PRECISION, INTENT(IN) :: H(npoin)
65  DOUBLE PRECISION, INTENT(IN) :: TW(npoin),HW(npoin)
66  DOUBLE PRECISION, INTENT(IN) :: GRAV
67  INTEGER, INTENT(IN) :: TYPE_HOULE
68  END SUBROUTINE
69  END INTERFACE
70 !
71  INTERFACE
72  SUBROUTINE coefro_gaia
73  & (cf,h,ks,npoin,karman)
74  USE bief_def
75  IMPLICIT NONE
76  INTEGER, INTENT(IN):: NPOIN
77  DOUBLE PRECISION,INTENT(IN):: KARMAN
78  TYPE(bief_obj), INTENT(INOUT) :: CF
79  TYPE(bief_obj),INTENT(IN) :: KS,H
80  END SUBROUTINE
81  END INTERFACE
82 !
83  INTERFACE
84  SUBROUTINE user_forcing_gaia
85  IMPLICIT NONE
86  END SUBROUTINE
87  END INTERFACE
88 !
89  INTERFACE
90  SUBROUTINE conlit_gaia
92  IMPLICIT NONE
93  END SUBROUTINE
94  END INTERFACE
95 !
96  INTERFACE
97  DOUBLE PRECISION FUNCTION cgl_gaia( I , AT)
98  IMPLICIT NONE
99  INTEGER, INTENT(IN) :: I
100  DOUBLE PRECISION, INTENT(IN):: AT
101  END FUNCTION
102  END INTERFACE
103 !
104  INTERFACE
105  DOUBLE PRECISION FUNCTION qgl_gaia( I , AT)
106  IMPLICIT NONE
107  INTEGER, INTENT(IN) :: I
108  DOUBLE PRECISION, INTENT(IN):: AT
109  END FUNCTION
110  END INTERFACE
111 !
112  INTERFACE
113  SUBROUTINE corstr_gaia
114  IMPLICIT NONE
115  END SUBROUTINE
116  END INTERFACE
117 !
118  INTERFACE
119  SUBROUTINE debug_gaia (NAME, ILOOP, NLOOP)
121  IMPLICIT NONE
122  INTEGER, PARAMETER :: SIZE =100
123  CHARACTER(LEN=SIZE) , INTENT(IN) :: NAME
124  INTEGER, INTENT(IN), OPTIONAL :: ILOOP, NLOOP
125  END SUBROUTINE
126  END INTERFACE
127 !
128  INTERFACE
129  SUBROUTINE disimp_gaia
130  &(q,q2bor,numliq,ifrliq,nsoldis,work1,qbor,nptfr,mask,mesh)
131  USE bief_def
132  IMPLICIT NONE
133  INTEGER, INTENT(IN) :: NPTFR,IFRLIQ,NSOLDIS
134  INTEGER, INTENT(IN) :: NUMLIQ(nptfr)
135  DOUBLE PRECISION, INTENT(IN) :: MASK(nptfr),Q
136  TYPE(bief_mesh), INTENT(INOUT) :: MESH
137  TYPE(bief_obj), INTENT(INOUT) :: WORK1,QBOR
138  TYPE(bief_obj), INTENT(IN) :: Q2BOR
139  END SUBROUTINE
140  END INTERFACE
141 !
142  INTERFACE
143  SUBROUTINE entete_gaia(IETAPE,AT,LT)
144  IMPLICIT NONE
145  DOUBLE PRECISION, INTENT(IN) :: AT
146  INTEGER, INTENT(IN):: LT,IETAPE
147  END SUBROUTINE
148  END INTERFACE
149 !
150  INTERFACE
151  SUBROUTINE flusec_gaia
152  &(u,v,h,qsxc,qsyc,charr,susp,
153  & ikle,nelmax,nelem,x,y,dt,ncp,ctrlsc,info,tps)
154  USE bief_def
155  IMPLICIT NONE
156  INTEGER, INTENT(IN) :: NELMAX,NELEM,NCP
157  INTEGER, INTENT(IN) :: IKLE(nelmax,*)
158  INTEGER, INTENT(IN) :: CTRLSC(ncp)
159  DOUBLE PRECISION, INTENT(IN) :: X(*),Y(*),TPS,DT
160  LOGICAL, INTENT(IN) :: INFO,SUSP,CHARR
161  TYPE(bief_obj), INTENT(IN) :: U,V,H,QSXC,QSYC
162  END SUBROUTINE
163  END INTERFACE
164 !
165  INTERFACE
166  SUBROUTINE fluxpr_gaia
167  &(nsec, ctrlsc, flx, volneg, volpos, info, tps, nseg, ncsize, !JAJ #### TPS
168  & flxs,volnegs,volposs,susp,flxc,volnegc,volposc,charr)
169  IMPLICIT NONE
170  INTEGER, INTENT(IN) :: NSEC,NCSIZE
171  INTEGER, INTENT(IN) :: CTRLSC(*)
172  INTEGER, INTENT(IN) :: NSEG(nsec)
173  LOGICAL, INTENT(IN) :: INFO,SUSP,CHARR
174  DOUBLE PRECISION, INTENT(IN) :: FLX(nsec), TPS !JAJ #### TPS
175  DOUBLE PRECISION, INTENT(IN) :: VOLNEG(nsec),VOLPOS(nsec)
176  DOUBLE PRECISION, INTENT(IN) :: FLXS(nsec),FLXC(nsec)
177  DOUBLE PRECISION, INTENT(IN) :: VOLNEGS(nsec),VOLPOSS(nsec)
178  DOUBLE PRECISION, INTENT(IN) :: VOLNEGC(nsec),VOLPOSC(nsec)
179  END SUBROUTINE
180  END INTERFACE
181 !
182  INTERFACE
183  SUBROUTINE gaia_step
184  &(loopcount,grafcount,listcount,telnit,
185  & u_tel,v_tel,h_tel,zf_tel,uetcar,deltar,
186  & cf_tel,ks_tel,
187  & code,u3d,v3d,t_tel,visc_tel,dt_tel,charr_tel,susp_tel,
188  & xmve_tel,grav_tel,
189  & thetaw_tel,hw_tel,tw_tel,uw_tel,yagout,api_iter,grcomp)
190  USE bief_def
191  IMPLICIT NONE
192  INTEGER, INTENT(IN) :: LOOPCOUNT,GRAFCOUNT
193  INTEGER, INTENT(IN) :: LISTCOUNT,TELNIT
194  CHARACTER(LEN=24), INTENT(IN) :: CODE
195  TYPE(bief_obj), INTENT(IN) :: U_TEL,V_TEL,H_TEL
196  TYPE(bief_obj), INTENT(INOUT) :: ZF_TEL,UETCAR,KS_TEL
197  TYPE(bief_obj), INTENT(IN) :: DELTAR
198  TYPE(bief_obj), INTENT(IN) :: U3D,V3D,VISC_TEL
199  TYPE(bief_obj), INTENT(INOUT) :: CF_TEL
200  DOUBLE PRECISION, INTENT(IN) :: T_TEL,XMVE_TEL,GRAV_TEL
201  LOGICAL, INTENT(INOUT) :: CHARR_TEL,SUSP_TEL
202  DOUBLE PRECISION, INTENT(IN) :: DT_TEL
203  TYPE(bief_obj), INTENT(IN) :: THETAW_TEL,HW_TEL,TW_TEL
204  TYPE(bief_obj), INTENT(IN) :: UW_TEL
205  LOGICAL, INTENT(IN) :: YAGOUT
206  INTEGER, OPTIONAL, INTENT(IN) :: API_ITER,GRCOMP
207  END SUBROUTINE
208  END INTERFACE
209 !
210  INTERFACE
211  SUBROUTINE gaia_init
212  &(grafcount,listcount,telnit,u_tel,v_tel,h_tel,zf_tel,uetcar,
213  & deltar,cf_tel,ks_tel,
214  & code,u3d,v3d,t_tel,dt_tel,charr_tel,susp_tel,
215  & thetaw_tel,hw_tel,tw_tel,uw_tel,yagout,xmve_tel,grav_tel)
216  USE bief_def
217  IMPLICIT NONE
218  INTEGER, INTENT(IN) :: GRAFCOUNT,LISTCOUNT
219  INTEGER, INTENT(IN) :: TELNIT
220  CHARACTER(LEN=24), INTENT(IN) :: CODE
221  TYPE(bief_obj), INTENT(IN) :: U_TEL,V_TEL,H_TEL
222  TYPE(bief_obj), INTENT(INOUT) :: ZF_TEL,UETCAR,KS_TEL
223  TYPE(bief_obj), INTENT(IN) :: DELTAR
224  TYPE(bief_obj), INTENT(IN) :: U3D,V3D
225  TYPE(bief_obj), INTENT(INOUT) :: CF_TEL
226  DOUBLE PRECISION, INTENT(IN) :: T_TEL,XMVE_TEL,GRAV_TEL
227  LOGICAL, INTENT(INOUT) :: CHARR_TEL,SUSP_TEL
228  DOUBLE PRECISION, INTENT(IN) :: DT_TEL
229  TYPE(bief_obj), INTENT(IN) :: THETAW_TEL,HW_TEL,TW_TEL
230  TYPE(bief_obj), INTENT(IN) :: UW_TEL
231  LOGICAL, INTENT(IN) :: YAGOUT
232  END SUBROUTINE
233  END INTERFACE
234 !
235  INTERFACE
236  SUBROUTINE gf_user(TBEG_GF,TEND_GF,AT0)
237  IMPLICIT NONE
238  DOUBLE PRECISION, INTENT(INOUT) :: TBEG_GF, TEND_GF
239  DOUBLE PRECISION, INTENT(IN) :: AT0
240  END SUBROUTINE
241  END INTERFACE
242 !
243  INTERFACE
244  SUBROUTINE ks_gaia
245  &(iks,ks,ksp,ksr,kspratio,houle,grav,xmve,xmvs,vce,
246  & hn,acladm,unorm,uw,tw,npoin)
247  USE bief_def
248  IMPLICIT NONE
249  INTEGER, INTENT(IN) :: NPOIN,IKS
250  LOGICAL, INTENT(IN) :: HOULE
251  DOUBLE PRECISION, INTENT(IN) :: XMVE,XMVS, VCE,GRAV
252  DOUBLE PRECISION, INTENT(IN) :: KSPRATIO
253  TYPE(bief_obj), INTENT(IN) :: HN,UNORM
254  TYPE(bief_obj), INTENT(IN) :: TW,UW
255  TYPE(bief_obj), INTENT(INOUT) :: KS,KSP,KSR
256  TYPE(bief_obj), INTENT(IN) :: ACLADM
257  END SUBROUTINE
258  END INTERFACE
259 !
260 
261  INTERFACE
262  SUBROUTINE init_constant_gaia
263  & (karim_holly_yang, karman, pi)
264  IMPLICIT NONE
265  DOUBLE PRECISION, INTENT(INOUT) :: KARIM_HOLLY_YANG
266  DOUBLE PRECISION, INTENT(INOUT) :: KARMAN
267  DOUBLE PRECISION, INTENT(INOUT) :: PI
268 !
269  END SUBROUTINE
270  END INTERFACE
271 !
272  INTERFACE
273  SUBROUTINE bed1_init_sediment_gaia
274  &(nsicla,elay,zf,zr,npoin,xmvs0,es,nomblay,
275  & debu,volu2d,numstrat,maxvar)
276  USE bief
278  & mass_mud_tot,mass_sand_tot,
279  & ratio_sand,ratio_mud,ratio_mud_sand,nsand,nmud,
280  & masstot,num_imud_icla,num_isand_icla,
281  & elay0,debu_mass,mass0tot,ava0,xkv0,
282  & conc_mud0,conc_mud,toce_mud0,toce_mud,
283  & trans_mass0,trans_mass,partheniades0,partheniades,hirano,
284  & flux_neg_mud_activ_layer,flux_pos_mud_activ_layer,
285  & flux_neg_sand_activ_layer,flux_pos_sand_activ_layer,bed_model
287  IMPLICIT NONE
288  INTEGER, INTENT(IN) :: NSICLA,NPOIN,NOMBLAY,MAXVAR
289  INTEGER, INTENT(IN) :: NUMSTRAT
290  TYPE(bief_obj), INTENT(INOUT) :: ELAY,ZF,ZR
291  TYPE(bief_obj), INTENT(INOUT) :: VOLU2D
292  DOUBLE PRECISION, INTENT(IN) :: XMVS0(nsicla)
293  LOGICAL, INTENT(IN) :: DEBU
294  DOUBLE PRECISION, INTENT(INOUT) :: ES(npoin,nomblay)
295  END SUBROUTINE
296  END INTERFACE
297 !
298 !
299  INTERFACE
300  SUBROUTINE bed1_update
301  & (zr,zf,volu2d)
302  USE bief
304  & mass_mud_tot,mass_mud,mass_sand,nsand,nmud,ratio_mud,ratio_sand,
305  & ratio_mud_sand,nomblay,conc_mud,es,xkv0,xmvs0,min_sed_mass_comp,
306  & npoin,masstot,num_icla_imud,num_icla_isand,nsicla,elay,
307  & num_isand_icla
309  IMPLICIT NONE
310  type(bief_obj), INTENT(INOUT) :: zr,zf
311  type(bief_obj), INTENT(IN) :: volu2d
312 !
313  END SUBROUTINE
314  END INTERFACE
315 !
316 !
317  INTERFACE
318  SUBROUTINE init_transport_gaia
319  & (hiding,nsicla,npoin,t1,t2,t3,t4,t5,t6,t7,t8,t9,
320  & t10,t11,t12,t14,charr,qs_c,qsxc,qsyc,calfa_cl,salfa_cl,
321  & coefpn,slopeff,susp,qs,qscl,qscl_c,qscl_s,unorm,u2d,v2d,hn,cf,mu,
322  & tob,tobw,uw,tw,thetaw,fw,houle,acladm,unladm,ksp,ksr,
323  & icf,hidfac,xmvs0,xmve,grav,vce,hmin,karman,zero,pi,ac,cstaeq,
324  & seccurrent,bijk,ielmt,mesh,dcla,xwc,sedco,u3d,v3d,code,h_tel,
325  & hw,thetac,tobcw_mean,tobcw_max)
326  USE bief
328  IMPLICIT NONE
329  INTEGER, INTENT(IN) :: NSICLA,NPOIN
330  INTEGER, INTENT(IN) :: ICF,HIDFAC,IELMT,SLOPEFF
331  LOGICAL, INTENT(IN) :: CHARR,SUSP,HOULE
332  LOGICAL, INTENT(IN) :: SECCURRENT,SEDCO(*)
333  TYPE(bief_obj), INTENT(IN) :: U2D,V2D,UNORM,HN,CF
334  TYPE(bief_obj), INTENT(IN) :: MU,TOB,TOBW,UW,TW,THETAW,FW
335  TYPE(bief_obj), INTENT(IN) :: ACLADM,UNLADM,KSP,KSR
336  TYPE(bief_obj), INTENT(IN) :: H_TEL
337  TYPE(bief_obj), INTENT(INOUT) :: HIDING,CSTAEQ
338  TYPE(bief_obj), INTENT(INOUT) :: QS_C, QSXC, QSYC
339  TYPE(bief_obj), INTENT(INOUT) :: CALFA_CL,SALFA_CL
340  TYPE(bief_obj), INTENT(INOUT) :: T1,T2,T3,T4,T5,T6,T7,T8
341  TYPE(bief_obj), INTENT(INOUT) :: T9,T10,T11,T12,T14
342  TYPE(bief_obj), INTENT(INOUT) :: QS,QSCL_C,QSCL_S
343  TYPE(bief_obj), INTENT(INOUT) :: COEFPN
344  TYPE(bief_obj), INTENT(INOUT) :: QSCL
345  TYPE(bief_mesh), INTENT(INOUT) :: MESH
346  DOUBLE PRECISION, INTENT(IN) :: XMVS0(nsicla),XMVE,GRAV,VCE
347  DOUBLE PRECISION, INTENT(IN) :: HMIN,KARMAN,ZERO,PI
348  DOUBLE PRECISION, INTENT(IN) :: BIJK,XWC(nsicla)
349  DOUBLE PRECISION, INTENT(INOUT) :: AC(nsicla),DCLA(nsicla)
350  TYPE(bief_obj), INTENT(IN) :: U3D,V3D
351  CHARACTER(LEN=24), INTENT(IN) :: CODE
352  TYPE(bief_obj), INTENT(IN) :: HW, THETAC
353  TYPE(bief_obj), INTENT(INOUT) :: TOBCW_MEAN, TOBCW_MAX
354  END SUBROUTINE
355  END INTERFACE
356 !
357  INTERFACE
358  SUBROUTINE integ_gaia ( A , B , IEIN , NPOIN)
359  IMPLICIT NONE
360  INTEGER, INTENT(IN):: NPOIN
361  DOUBLE PRECISION, INTENT(IN)::A(npoin), B(npoin)
362  DOUBLE PRECISION, INTENT(INOUT)::IEIN(npoin)
363  END SUBROUTINE
364  END INTERFACE
365 !
366  INTERFACE
367  SUBROUTINE lecdon_gaia(MOTCAR,FILE_DESC,PATH,NCAR,CODE,
368  & CAS_FILE,DICO_FILE)
370  IMPLICIT NONE
371  INTEGER,INTENT(IN) :: NCAR
372  CHARACTER(LEN=24),INTENT(IN) :: CODE
373  CHARACTER(LEN=PATH_LEN),INTENT(IN) ::PATH
374  CHARACTER(LEN=PATH_LEN),INTENT(INOUT)::MOTCAR(maxkeyword)
375  CHARACTER(LEN=PATH_LEN),INTENT(INOUT)::FILE_DESC(4,maxkeyword)
376 ! API
377  CHARACTER(LEN=PATH_LEN),INTENT(IN) :: CAS_FILE
378  CHARACTER(LEN=PATH_LEN),INTENT(IN) :: DICO_FILE
379  END SUBROUTINE
380  END INTERFACE
381 !
382  INTERFACE
383  SUBROUTINE maskab_gaia(HN , Q , QU , QV , NPOIN)
384  IMPLICIT NONE
385  INTEGER, INTENT(IN):: NPOIN
386  DOUBLE PRECISION , INTENT(IN)::HN(npoin)
387  DOUBLE PRECISION, INTENT(INOUT):: Q(npoin),QU(npoin),QV(npoin)
388  END SUBROUTINE
389  END INTERFACE
390 !
391  INTERFACE
392  SUBROUTINE maxslope_gaia
393  IMPLICIT NONE
394  END SUBROUTINE
395  END INTERFACE
396 !
397  INTERFACE
398  SUBROUTINE mean_grain_size_gaia
399  USE bief
400  IMPLICIT NONE
401  END SUBROUTINE
402  END INTERFACE
403 !
404  INTERFACE
405  SUBROUTINE nomvar_gaia
408  IMPLICIT NONE
409  END SUBROUTINE
410  END INTERFACE
411 !
412  INTERFACE
413  SUBROUTINE predes_gaia(LLT,AAT,YAGOUT,CODE,LISTCOUNT)
414  IMPLICIT NONE
415  INTEGER, INTENT(IN) :: LLT,LISTCOUNT
416  DOUBLE PRECISION, INTENT(IN) :: AAT
417  CHARACTER(LEN=24), INTENT(IN) :: CODE
418  LOGICAL,INTENT(IN) :: YAGOUT
419  END SUBROUTINE
420  END INTERFACE
421 !
422  INTERFACE
423  SUBROUTINE read_fic_conc_gaia(CGL_GAIA, WHAT, AT, NFIC, LISTIN,
424  & FOUND )
425  IMPLICIT NONE
426  CHARACTER(LEN=9) , INTENT(IN) :: WHAT
427  DOUBLE PRECISION, INTENT(IN) :: AT
428  DOUBLE PRECISION, INTENT(INOUT) :: CGL_GAIA
429  INTEGER , INTENT(IN) :: NFIC
430  LOGICAL , INTENT(IN) :: LISTIN
431  LOGICAL , INTENT(OUT) :: FOUND
432  END SUBROUTINE
433  END INTERFACE
434 !
435  INTERFACE
436  SUBROUTINE rescue_gaia
437  &(h,s,zf,zr,es,hw,tw,thetaw,npoin,nomblay,
438  & trouve,alire,pass,icf,listi,maxvar)
439  IMPLICIT NONE
440  INTEGER, INTENT(IN) :: MAXVAR,NOMBLAY
441  INTEGER, INTENT(IN) :: ALIRE(maxvar),NPOIN,ICF
442  LOGICAL, INTENT(IN) :: PASS,LISTI
443  DOUBLE PRECISION, INTENT(IN) :: ES(npoin,nomblay)
444  INTEGER, INTENT(INOUT) :: TROUVE(maxvar)
445  DOUBLE PRECISION, INTENT(INOUT) :: S(npoin) , ZF(npoin), H(npoin)
446  DOUBLE PRECISION, INTENT(INOUT) :: ZR(npoin)
447  DOUBLE PRECISION, INTENT(INOUT) :: HW(npoin), TW(npoin)
448  DOUBLE PRECISION, INTENT(INOUT) :: THETAW(npoin)
449  END SUBROUTINE
450  END INTERFACE
451 !
452  INTERFACE
453  SUBROUTINE ride_gaia
454  & (ks,tw,uw,unorm,grav,xmve,xmvs,vce,npoin,kspratio,acladm)
455  IMPLICIT NONE
456  INTEGER, INTENT(IN) ::NPOIN
457  DOUBLE PRECISION, INTENT(INOUT) :: KS(npoin)
458  DOUBLE PRECISION, INTENT(IN) :: GRAV,XMVE,XMVS, VCE
459  DOUBLE PRECISION, INTENT(IN) :: UNORM(npoin)
460  DOUBLE PRECISION, INTENT(IN) :: UW(npoin), TW(npoin)
461  DOUBLE PRECISION, INTENT(IN) :: KSPRATIO
462  DOUBLE PRECISION, INTENT(IN) :: ACLADM(npoin)
463  END SUBROUTINE
464  END INTERFACE
465 !
466  INTERFACE
467  SUBROUTINE ride_vr_gaia
468  & (ksr,ks,unorm,hn,grav,xmve,xmvs,npoin,acladm)
469  IMPLICIT NONE
470  INTEGER, INTENT(IN) :: NPOIN
471  DOUBLE PRECISION, INTENT(IN) :: GRAV,XMVE,XMVS
472  DOUBLE PRECISION, INTENT(INOUT):: KSR(npoin),KS(npoin)
473  DOUBLE PRECISION, INTENT(IN) :: HN(npoin), UNORM(npoin)
474  DOUBLE PRECISION, INTENT(IN) :: ACLADM(npoin)
475  END SUBROUTINE
476  END INTERFACE
477 !
478  INTERFACE
479  SUBROUTINE tassement_2_gaia
480  &(zf,npoin,dt,elay,dzf_tass,t2,lt,xmvs,xmve,grav,nomblay,
481  & es,conc_mud,ms_vase,xwc,coef_n,conc_gel,conc_max)
482  USE bief_def
483  USE bief
484  IMPLICIT NONE
485  INTEGER,INTENT(IN) :: NPOIN
486  INTEGER, INTENT(IN) :: LT,NOMBLAY
487  DOUBLE PRECISION, INTENT(IN) :: DT
488  DOUBLE PRECISION, INTENT(IN) :: XMVS,XMVE,GRAV
489  type(bief_obj), INTENT(INOUT) :: dzf_tass,elay,t2,zf
490  DOUBLE PRECISION, INTENT(INOUT) :: MS_VASE(npoin,nomblay)
491  DOUBLE PRECISION, INTENT(INOUT) :: ES(npoin,nomblay)
492  DOUBLE PRECISION, INTENT(IN) :: CONC_MUD(nomblay)
493  DOUBLE PRECISION, INTENT(IN) :: XWC
494  DOUBLE PRECISION, INTENT(IN) :: COEF_N,CONC_GEL,CONC_MAX
495  END SUBROUTINE
496  END INTERFACE
497 !
498 !
499  INTERFACE
500  SUBROUTINE tobw_gaia
501  & (tobw ,cf, fw, uw,tw,hn,npoin,xmve)
502  IMPLICIT NONE
503  INTEGER, INTENT(IN) :: NPOIN
504  DOUBLE PRECISION, INTENT(IN) :: CF(npoin)
505  DOUBLE PRECISION, INTENT(IN) :: UW(npoin),TW(npoin),HN(npoin)
506  DOUBLE PRECISION, INTENT(IN) :: XMVE
507  DOUBLE PRECISION, INTENT(INOUT) :: TOBW(npoin),FW(npoin)
508  END SUBROUTINE
509  END INTERFACE
510 !
511  INTERFACE
512  SUBROUTINE tob_gaia
513  & (tob, tobw, tobcw_mean, tobcw_max, thetac, thetaw, mu,
514  & ks,ksp, ksr,cf,fw,uetcar,cf_tel,ks_tel,code,
515  & icr, kspratio, houle,grav,xmve,xmvs, vce, karman,
516  & zero,hmin,hn, acladm, unorm,uw, tw, npoin,kscalc,iks,
517  & deltar, h_tel)
518  USE bief
519  IMPLICIT NONE
520  INTEGER, INTENT(IN) :: NPOIN,ICR, IKS
521  LOGICAL, INTENT(IN) :: KSCALC
522  LOGICAL, INTENT(IN) :: HOULE
523  CHARACTER(LEN=24), INTENT(IN) :: CODE
524  DOUBLE PRECISION, INTENT(IN) :: XMVE,XMVS, VCE,GRAV,KARMAN
525  DOUBLE PRECISION, INTENT(IN) :: ZERO,HMIN,KSPRATIO
526  TYPE(bief_obj), INTENT(IN) :: UETCAR
527  TYPE(bief_obj), INTENT(IN) :: DELTAR
528  TYPE(bief_obj), INTENT(IN) :: HN,UNORM
529  TYPE(bief_obj), INTENT(IN) :: TW,UW
530  TYPE(bief_obj), INTENT(INOUT) :: KS,KSP,KSR,KS_TEL
531  TYPE(bief_obj), INTENT(INOUT) :: MU
532  TYPE(bief_obj), INTENT(IN) :: ACLADM
533  TYPE(bief_obj), INTENT(INOUT) :: CF
534  TYPE(bief_obj), INTENT(INOUT) :: FW
535  TYPE(bief_obj), INTENT(IN ) :: THETAC, THETAW
536  TYPE(bief_obj), INTENT(INOUT) :: TOB,TOBW
537  TYPE(bief_obj), INTENT(INOUT) :: TOBCW_MEAN,TOBCW_MAX
538  TYPE(bief_obj), INTENT(IN) :: CF_TEL
539  TYPE(bief_obj), INTENT(IN) :: H_TEL
540  END SUBROUTINE
541  END INTERFACE
542 !
543  INTERFACE
544  SUBROUTINE tobcw_gaia
545  & (tob, tobw, thetac, thetaw, tobcw_mean, tobcw_max, npoin)
547  IMPLICIT NONE
548  INTEGER, INTENT(IN) :: NPOIN
549  DOUBLE PRECISION, INTENT(IN) :: THETAC(npoin), THETAW(npoin)
550  DOUBLE PRECISION, INTENT(IN) :: TOB(npoin),TOBW(npoin)
551  DOUBLE PRECISION, INTENT(INOUT) :: TOBCW_MEAN(npoin)
552  DOUBLE PRECISION, INTENT(INOUT) :: TOBCW_MAX(npoin)
553  END SUBROUTINE
554  END INTERFACE
555 !
556  INTERFACE
557  SUBROUTINE gaia_write_results
558  &(code,grafcount,grcomp,comp,listcount,yagout,t_tel)
559  IMPLICIT NONE
560  CHARACTER(LEN=24), INTENT(IN) :: CODE
561  INTEGER, INTENT(IN) :: GRAFCOUNT
562  INTEGER, INTENT(IN) :: LISTCOUNT
563  LOGICAL, INTENT(IN) :: YAGOUT
564  INTEGER, INTENT(IN) :: GRCOMP
565  LOGICAL, INTENT(IN) :: COMP
566  DOUBLE PRECISION, INTENT(IN) :: T_TEL
567  END SUBROUTINE
568  END INTERFACE
569 !
570  INTERFACE
571  SUBROUTINE gaia_prepare_step
572  &(h_tel, u_tel, v_tel, cf_tel, charr_tel, code, deltar, dt_tel,
573  & hw_tel, ks_tel, listcount, loopcount, susp_tel,
574  & t_tel, thetaw_tel, tw_tel, uetcar, uw_tel, zf_tel)
575  USE bief_def
576  IMPLICIT NONE
577  INTEGER, INTENT(IN) :: LOOPCOUNT
578  INTEGER, INTENT(IN) :: LISTCOUNT
579  CHARACTER(LEN=24), INTENT(IN) :: CODE
580  TYPE(bief_obj), INTENT(IN) :: U_TEL,V_TEL,H_TEL
581  TYPE(bief_obj), INTENT(INOUT) :: ZF_TEL,UETCAR,KS_TEL
582  TYPE(bief_obj), INTENT(IN) :: DELTAR
583  TYPE(bief_obj), INTENT(INOUT) :: CF_TEL
584  DOUBLE PRECISION, INTENT(IN) :: T_TEL
585  LOGICAL, INTENT(INOUT) :: CHARR_TEL,SUSP_TEL
586  DOUBLE PRECISION, INTENT(IN) :: DT_TEL
587  TYPE(bief_obj), INTENT(IN) :: THETAW_TEL,HW_TEL,TW_TEL
588  TYPE(bief_obj), INTENT(IN) :: UW_TEL
589  END SUBROUTINE
590  END INTERFACE
591 !
592  INTERFACE
593  SUBROUTINE gaia_suspension_deposit
594  &(code)
595  IMPLICIT NONE
596  CHARACTER(LEN=24), INTENT(IN) :: CODE
597  END SUBROUTINE
598  END INTERFACE
599 !
600  INTERFACE
601  SUBROUTINE gaia_balance
602  &(zf_tel)
603  USE bief_def
604  IMPLICIT NONE
605  TYPE(bief_obj), INTENT(INOUT) :: ZF_TEL
606  END SUBROUTINE
607  END INTERFACE
608 !
609 !======================================================================!
610 !======================================================================!
611 !
612  END MODULE interface_gaia
subroutine gaia_write_results(CODE, GRAFCOUNT, GRCOMP, COMP, LISTCOUNT, YAGOUT, T_TEL)
subroutine maxslope_gaia
Definition: maxslope_gaia.f:4
subroutine flusec_gaia(U, V, H, QSXC, QSYC, CHARR, SUSP, IKLE, NELMAX, NELEM, X, Y, DT, NCP, CTRLSC, INFO, TPS)
Definition: flusec_gaia.f:8
subroutine tobcw_gaia(TOB, TOBW, THETAC, THETAW, TOBCW_MEAN, TOBCW_MAX, NPOIN)
Definition: tobcw_gaia.f:7
subroutine integ_gaia(A, B, IEIN, NPOIN)
Definition: integ_gaia.f:7
double precision, dimension(:,:,:), allocatable, target mass_mud
Surface mass of mud (kg/m2), for imud,ilayer,ipoin.
subroutine bed1_init_sediment_gaia(NSICLA, ELAY, ZF, ZR, NPOIN, XMVS0, ES, NOMBLAY, DEBU, VOLU2D, NUMSTRAT, MAXVAR)
integer, target nomblay
Number of bed load model layers = NUMSTRAT+1 to take the active layer into account.
subroutine gaia_prepare_step(H_TEL, U_TEL, V_TEL, CF_TEL, CHARR_TEL, CODE, DELTAR, DT_TEL, HW_TEL, KS_TEL, LISTCOUNT, LOOPCOUNT, SUSP_TEL, T_TEL, THETAW_TEL, TW_TEL, UETCAR, UW_TEL, ZF_TEL)
subroutine ride_vr_gaia(KSR, KS, UNORM, HN, GRAV, XMVE, XMVS, NPOIN, ACLADM)
Definition: ride_vr_gaia.f:7
subroutine gaia_step(LOOPCOUNT, GRAFCOUNT, LISTCOUNT, TELNIT, U_TEL, V_TEL, H_TEL, ZF_TEL, UETCAR, DELTAR, CF_TEL, KS_TEL, CODE, U3D, V3D, T_TEL, VISC_TEL, DT_TEL, CHARR_TEL, SUSP_TEL, XMVE_TEL, GRAV_TEL, THETAW_TEL, HW_TEL, TW_TEL, UW_TEL, YAGOUT, API_ITER, GRCOMP)
Definition: gaia_step.F:12
double precision, dimension(:,:), allocatable mass_sand_tot
Surface total mass of sand (kg/m2), for ilayer,ipoin.
subroutine tob_gaia(TOB, TOBW, TOBCW_MEAN, TOBCW_MAX, THETAC, THETAW, MU, KS, KSP, KSR, CF, FW, UETCAR, CF_TEL, KS_TEL, CODE, ICR, KSPRATIO, HOULE, GRAV, XMVE, XMVS, VCE, KARMAN, ZERO, HMIN, HN, ACLADM, UNORM, UW, TW, NPOIN, KSCALC, IKS, DELTAR, H_TEL)
Definition: tob_gaia.f:11
subroutine init_transport_gaia(HIDING, NSICLA, NPOIN, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T14, CHARR, QS_C, QSXC, QSYC, CALFA_CL, SALFA_CL, COEFPN, SLOPEFF, SUSP, QS, QSCL, QSCL_C, QSCL_S, UNORM, U2D, V2D, HN, CF, MU, TOB, TOBW, UW, TW, THETAW, FW, HOULE, ACLADM, UNLADM, KSP, KSR, ICF, HIDFAC, XMVS0, XMVE, GRAV, VCE, HMIN, KARMAN, ZERO, PI, AC, CSTAEQ, SECCURRENT, BIJK, IELMT, MESH, DCLA, XWC, SEDCO, U3D, V3D, CODE, H_TEL, HW, THETAC, TOBCW_MEAN, TOBCW_MAX)
subroutine fluxpr_gaia(NSEC, CTRLSC, FLX, VOLNEG, VOLPOS, INFO, TPS, NSEG, NCSIZE, FLXS, VOLNEGS, VOLPOSS, SUSP, FLXC, VOLNEGC, VOLPOSC, CHARR)
Definition: fluxpr_gaia.f:8
integer, parameter maxkeyword
double precision, dimension(:,:,:), allocatable, target mass_sand
Surface mass of sand (kg/m2), for isand,ilayer,ipoin.
subroutine mean_grain_size_gaia
subroutine conlit_gaia
Definition: conlit_gaia.f:4
subroutine tobw_gaia(TOBW, CF, FW, UW, TW, HN, NPOIN, XMVE)
Definition: tobw_gaia.f:7
subroutine mass_balance(DT, NPTFR, ENTET, NSICLA, NUMLIQ, NFRLIQ, FLBCLA, LT, NIT, NPOIN, VOLU2D, CHARR, SUSP, EVCL_MB, EVCL_MS, MASSTOT, MASS0TOT)
Definition: mass_balance.f:9
subroutine lecdon_gaia(MOTCAR, FILE_DESC, PATH, NCAR, CODE, CAS_FILE, DICO_FILE)
Definition: lecdon_gaia.f:7
subroutine predes_gaia(LLT, AAT, YAGOUT, CODE, LISTCOUNT)
Definition: predes_gaia.f:7
subroutine entete_gaia(IETAPE, AT, LT)
Definition: entete_gaia.f:7
subroutine gaia_init(GRAFCOUNT, LISTCOUNT, TELNIT, U_TEL, V_TEL, H_TEL, ZF_TEL, UETCAR, DELTAR, CF_TEL, KS_TEL, CODE, U3D, V3D, T_TEL, DT_TEL, CHARR_TEL, SUSP_TEL, THETAW_TEL, HW_TEL, TW_TEL, UW_TEL, YAGOUT, XMVE_TEL, GRAV_TEL)
Definition: gaia_init.F:10
subroutine init_constant_gaia(KARIM_HOLLY_YANG, KARMAN, PI)
subroutine ks_gaia(IKS, KS, KSP, KSR, KSPRATIO, HOULE, GRAV, XMVE, XMVS, VCE, HN, ACLADM, UNORM, UW, TW, NPOIN)
Definition: ks_gaia.f:8
double precision function cgl_gaia(I, AT)
Definition: cgl_gaia.f:7
subroutine user_forcing_gaia
subroutine corstr_gaia
Definition: corstr_gaia.f:4
type(bief_obj), target mpm_aray
Meyer Peter Mueller factor.
subroutine gaia_suspension_deposit(CODE)
double precision function qgl_gaia(I, AT)
Definition: qgl_gaia.f:7
subroutine ride_gaia(KS, TW, UW, UNORM, GRAV, XMVE, XMVS, VCE, NPOIN, KSPRATIO, ACLADM)
Definition: ride_gaia.f:7
subroutine disimp_gaia(Q, Q2BOR, NUMLIQ, IFRLIQ, NSOLDIS, WORK1, QBOR, NPTFR, MASK, MESH)
Definition: disimp_gaia.f:7
subroutine maskab_gaia(HN, Q, QU, QV, NPOIN)
Definition: maskab_gaia.f:7
double precision function q(I)
Definition: q.f:7
subroutine calcuw_gaia(UW, H, HW, TW, GRAV, NPOIN, TYPE_HOULE)
Definition: calcuw_gaia.f:7
subroutine gaia_balance(ZF_TEL)
Definition: gaia_balance.f:6
subroutine read_fic_conc_gaia(CGL_GAIA, WHAT, AT, NFIC, LISTIN, FOUND)
subroutine nomvar_gaia
Definition: nomvar_gaia.f:4
subroutine rescue_gaia(H, S, ZF, ZR, ES, HW, TW, THETAW, NPOIN, NOMBLAY, TROUVE, ALIRE, PASS, ICF, LISTI, MAXVAR)
Definition: rescue_gaia.f:8
subroutine bed1_update(ZR, ZF, VOLU2D)
Definition: bed1_update.f:7
double precision, target mpm
Meyer Peter Mueller-Coefficient.
double precision, dimension(:,:), allocatable mass_mix_tot
Surface total mass of sediments (kg/m2), for ilayer,ipoin.
subroutine coefro_gaia(CF, H, KS, NPOIN, KARMAN)
Definition: coefro_gaia.f:7
Definition: bief.f:3