The TELEMAC-MASCARET system  trunk
bedload_evol_gaia.f
Go to the documentation of this file.
1 ! ****************************
2  SUBROUTINE bedload_evol_gaia
3 ! ****************************
4 !
5  &(s,coefpn,calfa,salfa,limtec,ebor,maskel,mask,v2dpar,
6  & unsv2d,debug,npoin,nptfr,ielmt,kent,kdir,kddl,
7  & dt,xmvs,vf,entets,msk,mesh,qs,
8  & t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,breach,qsx,qsy,
9  & slopeff,icla,flbcla,liqbor,qbor,maxadv,mass_sand,
10  & ratio_sand,evcl_mb)
11 !
12 !***********************************************************************
13 ! GAIA
14 !***********************************************************************
15 !
17 !
18 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 !
70  USE interface_gaia, ex_bedload_evol => bedload_evol_gaia
71  USE bief
73  IMPLICIT NONE
74 !
75 !!-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
76 !
77  TYPE(bief_obj), INTENT(IN) :: S,UNSV2D
78  TYPE(bief_obj), INTENT(IN) :: COEFPN,CALFA,SALFA
79  TYPE(bief_obj), INTENT(IN) :: MASKEL,MASK,V2DPAR
80  INTEGER, INTENT(IN) :: DEBUG,SLOPEFF,NPOIN,NPTFR,ICLA
81  INTEGER, INTENT(IN) :: IELMT,KENT,KDIR,KDDL
82  INTEGER, INTENT(IN) :: MAXADV
83  DOUBLE PRECISION, INTENT(IN) :: DT
84  DOUBLE PRECISION, INTENT(IN) :: XMVS
85  DOUBLE PRECISION, INTENT(IN) :: RATIO_SAND(npoin)
86  LOGICAL, INTENT(IN) :: VF,ENTETS,MSK
87  TYPE(bief_mesh), INTENT(INOUT) :: MESH
88  TYPE(bief_obj), INTENT(INOUT) :: QS,EBOR,FLBCLA
89  TYPE(bief_obj), INTENT(INOUT) :: T1, T2, T3, T4, T5, T6, T7
90  TYPE(bief_obj), INTENT(INOUT) :: T8, T9, T10, T11, T12, T13
91  TYPE(bief_obj), INTENT(INOUT) :: BREACH, QSX, QSY, LIMTEC
92  TYPE(bief_obj), INTENT(IN) :: LIQBOR,QBOR
93  TYPE(bief_obj), INTENT(INOUT) :: EVCL_MB
94  DOUBLE PRECISION, INTENT(IN) :: MASS_SAND(npoin)
95 !
96 !!-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
97 !
98  INTEGER :: J
99  DOUBLE PRECISION, POINTER :: FLULIM(:)
100 !
101 !=======================================================================
102 ! PROGRAM
103 !=======================================================================
104 !
105 ! POINTER TO A WORK ARRAY
106 !
107  flulim => mesh%MSEG%X%R(mesh%NSEG+1:2*mesh%NSEG)
108 !
109 ! SLOPE EFFECT
110 !
111  IF(slopeff.EQ.1) CALL os('X=XY ', x=qs , y=coefpn)
112  CALL os('X=YZ ', x=qsx, y=qs, z=calfa)
113  CALL os('X=YZ ', x=qsy, y=qs, z=salfa)
114 !
115 ! TREATMENT OF NON ERODABLE BOTTOM
116 !
117  IF(vf) THEN
118  IF(debug.GT.0) WRITE(lu,*) 'CALLING BEDLOAD_NERBED_VF_GAIA'
120  & (mesh,limtec,kddl,v2dpar%R,qsx,qsy,
121  & npoin,mesh%NSEG,nptfr,dt,qs,t1,t2,t3,breach,
122  & mesh%NUBO%I,mesh%VNOIN%R,mass_sand)
123  IF(debug.GT.0) WRITE(lu,*) 'RETURN FROM BEDLOAD_NERBED_VF_GAIA'
124  CALL os('X=YZ ', x=qsx, y=qs, z=calfa)
125  CALL os('X=YZ ', x=qsy, y=qs, z=salfa)
126  ENDIF
127 !
128 ! SOLVES THE BED-EVOLUTION EQUATION : F.V.
129 !
130  IF(vf) THEN
131  IF(debug.GT.0) WRITE(lu,*) 'CALLING BEDLOAD_SOLVS_VF_GAIA'
132  CALL bedload_solvs_vf_gaia(mesh,qsx,qsy,limtec,unsv2d,ebor,
133  & breach,mesh%NSEG,nptfr,npoin,
134  & kent,kdir,kddl,dt,t11,
135  & flbcla%ADR(icla)%P,
136  & liqbor,qbor,mesh%NUBO%I,mesh%VNOIN%R,
137  & evcl_mb,ratio_sand,xmvs)
138  IF(debug.GT.0) WRITE(lu,*) 'RETURN FROM BEDLOAD_SOLVS_VF_GAIA'
139 !
140 ! SOLVES THE BED-EVOLUTION EQUATION : F.E.
141 !
142  ELSE
143  DO j=1,npoin
144 ! T13 IS THE MASS OF THE ACTIVE LAYER (FOR THIS SEDIMENT CLASS)
145  t13%R(j)=mass_sand(j)
146  ENDDO
147  IF(debug.GT.0) WRITE(lu,*) 'BEDLOAD_SOLVS_FE_GAIA'
148  CALL bedload_solvs_fe_gaia(mesh,s,ebor,maskel,mask,
149  & qsx,qsy,ielmt,npoin,nptfr,kent,kdir,kddl,
150  & limtec,dt,msk,entets,t1,t2,t3,t4,t8,
151  & t12,t13,mesh%GLOSEG%I,
152  & mesh%GLOSEG%DIM1,mesh%MSEG%X,
153  & flulim,mesh%NSEG,unsv2d,icla,
154  & flbcla%ADR(icla)%P,ratio_sand,liqbor,qbor,
155  & maxadv,evcl_mb,xmvs)
156  IF(debug.GT.0) WRITE(lu,*) 'END_BEDLOAD_SOLVS_FE'
157  ENDIF
158 !
159 !======================================================================!
160 !======================================================================!
161 !
162  RETURN
163  END
164 
subroutine bedload_nerbed_vf_gaia(MESH, LIEBOR, KSORT, V2DPAR, QSX, QSY, NPOIN, NSEG, NPTFR, DT, QS, T1, T2, T3, BREACH, NUBO, VNOIN, MASS_SAND)
subroutine breach
Definition: breach.f:4
subroutine bedload_evol_gaia(S, COEFPN, CALFA, SALFA, LIMTEC, EBOR, MASKEL, MASK, V2DPAR, UNSV2D, DEBUG, NPOIN, NPTFR, IELMT, KENT, KDIR, KDDL, DT, XMVS, VF, ENTETS, MSK, MESH, QS, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, BREACH, QSX, QSY, SLOPEFF, ICLA, FLBCLA, LIQBOR, QBOR, MAXADV, MASS_SAND, RATIO_SAND, EVCL_MB)
subroutine bedload_solvs_vf_gaia(MESH, QSX, QSY, LIMTEC, UNSV2D, EBOR, BREACH, NSEG, NPTFR, NPOIN, KENT, KDIR, KDDL, DT, FLUX, FLBCLA, LIQBOR, QBOR, NUBO, VNOIN, EVCL_MB, RATIO_SAND, XMVS)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
Definition: os.f:7
subroutine bedload_solvs_fe_gaia(MESH, S, EBOR, MASKEL, MASK, QSX, QSY, IELMT, NPOIN, NPTFR, KENT, KDIR, KDDL, LIMTEC, DT, MSK, ENTET, T1, T2, T3, T4, T8, HZ, HZN, GLOSEG, DIMGLO, FLODEL, FLULIM, NSEG, UNSV2D, ICLA, FLBCLA, RATIO_SAND, LIQBOR, QBOR, MAXADV, EVCL_MB, XMVS)
Definition: bief.f:3