5 &(npoin,dts,elay,dzf_tass,t2,avail,nsicla,es,xmvs,
6 & xkv,trans_mass,conc_vase,nomblay,ms_sable,ms_vase)
57 INTEGER,
INTENT(IN) :: NPOIN,NSICLA,NOMBLAY
58 type(bief_obj),
INTENT(INOUT) :: dzf_tass,elay,t2
59 DOUBLE PRECISION,
INTENT(INOUT) :: MS_SABLE(npoin,nomblay)
60 DOUBLE PRECISION,
INTENT(INOUT) :: MS_VASE(npoin,nomblay)
61 DOUBLE PRECISION,
INTENT(IN) :: DTS
62 DOUBLE PRECISION,
INTENT(INOUT) :: AVAIL(npoin,nomblay,nsicla)
63 DOUBLE PRECISION,
INTENT(INOUT) :: ES(npoin,nomblay)
64 DOUBLE PRECISION,
INTENT(IN) :: TRANS_MASS(nomblay)
65 DOUBLE PRECISION,
INTENT(IN) :: CONC_VASE(nomblay)
66 DOUBLE PRECISION,
INTENT(IN) :: XMVS,XKV
71 DOUBLE PRECISION CONC_SABLE
74 DOUBLE PRECISION TRANSFERT_MASSE_SABLE(
nlaymax)
87 epai_vase(j)=ms_vase(i,j)/conc_vase(j)
90 epai_sable(j)=ms_sable(i,j)/xmvs
91 es(i,j)=epai_vase(j)+epai_sable(j)
93 t2%R(i)=t2%R(i)+es(i,j)
97 IF(ms_vase(i,j).GE.1.d-6)
THEN 98 transfert_masse_vase(j)=min(ms_vase(i,j),
99 & ms_vase(i,j)*dts*trans_mass(j))
101 taux(j)=transfert_masse_vase(j)/ms_vase(i,j)
102 transfert_masse_sable(j)=taux(j)*ms_sable(i,j)
105 transfert_masse_vase(j)=0.d0
106 IF(nsicla.GT.1) transfert_masse_sable(j)=0.d0
110 IF(nsicla.GT.1.AND.epai_sable(j).GE.es(i,j))
THEN 111 transfert_masse_vase(j) =0.d0
112 transfert_masse_sable(j)=0.d0
117 IF(j.EQ.nomblay)
THEN 118 ms_vase(i,j)=max(0.d0,ms_vase(i,j)
119 & +transfert_masse_vase(j-1))
121 ms_sable(i,j)=max(0.d0,ms_sable(i,j)
122 & +transfert_masse_sable(j-1))
125 ms_vase(i,j)=max(0.d0,ms_vase(i,j)
126 & -transfert_masse_vase(j))
128 ms_sable(i,j)=max(0.d0,ms_sable(i,j)
129 & -transfert_masse_sable(j))
132 ms_vase(i,j)=max(0.d0,ms_vase(i,j)
133 & +transfert_masse_vase(j-1)-transfert_masse_vase(j))
135 ms_sable(i,j)=max(0.d0,ms_sable(i,j)
136 & +transfert_masse_sable(j-1)-transfert_masse_sable(j))
144 epai_vase(j)=ms_vase(i,j)/conc_vase(j)
145 es(i,j) = epai_vase(j)
147 epai_sable(j)=ms_sable(i,j)/xmvs
148 es(i,j)=epai_vase(j)+epai_sable(j)
150 elay%R(i)=elay%R(i) + es(i,j)
155 dzf_tass%R(i)=elay%R(i)-t2%R(i)
159 IF(es(i,j).GE.1.d-6)
THEN 160 avail(i,j,1)=ms_sable(i,j)/xmvs/es(i,j)
161 avail(i,j,2)=ms_vase(i,j)/conc_vase(j)/es(i,j)
subroutine tassement(NPOIN, DTS, ELAY, DZF_TASS, T2, AVAIL, NSICLA, ES, XMVS, XKV, TRANS_MASS, CONC_VASE, NOMBLAY, MS_SABLE, MS_VASE)
integer, parameter nlaymax