5 &(nsicla,elay,zf,zr,npoin,avail,fracsed_gf,ava0,
6 & lgrafed,calwc,xmvs,xmve,grav,vce,xwc,fdm,
7 & calac,ac,sedco,es,es_sable, es_vase ,nomblay,conc_vase,
8 & ms_sable,ms_vase,acladm,unladm,toce_sable,
116 & ,alt_model, pro_max_max, cvsmpperiod,nit,voltot,volu2d,volini
117 & ,rmascl,vcumucl,volnestorcl
125 INTEGER,
INTENT(IN) :: NSICLA,NPOIN,NOMBLAY
126 TYPE(bief_obj),
INTENT(INOUT) :: ELAY,ZF,ZR
127 TYPE(bief_obj),
INTENT(INOUT) :: MS_SABLE, MS_VASE
128 TYPE(bief_obj),
INTENT(INOUT) :: ACLADM, UNLADM
129 LOGICAL,
INTENT(IN) :: LGRAFED,CALWC
130 LOGICAL,
INTENT(IN) :: CALAC
131 DOUBLE PRECISION,
INTENT(IN) :: XMVS,XMVE,GRAV,VCE
132 DOUBLE PRECISION,
INTENT(INOUT) :: AVA0(nsicla)
133 DOUBLE PRECISION,
INTENT(INOUT) :: AVAIL(npoin,nomblay,nsicla)
134 DOUBLE PRECISION,
INTENT(INOUT) :: FRACSED_GF(nsicla)
135 DOUBLE PRECISION,
INTENT(INOUT) :: FDM(nsicla),XWC(nsicla)
136 DOUBLE PRECISION,
INTENT(INOUT) :: AC(nsicla),TOCE_SABLE
137 LOGICAL,
INTENT(IN) :: SEDCO(nsicla), DEBU
138 LOGICAL,
INTENT(IN) :: MIXTE
139 DOUBLE PRECISION,
INTENT(IN) :: CONC_VASE(nomblay)
140 DOUBLE PRECISION,
INTENT(INOUT) :: ES(npoin,nomblay)
141 DOUBLE PRECISION,
INTENT(INOUT) :: ES_SABLE(npoin,nomblay)
142 DOUBLE PRECISION,
INTENT(INOUT) :: ES_VASE(npoin,nomblay)
143 DOUBLE PRECISION,
INTENT(INOUT) :: CONC(npoin,nomblay)
148 DOUBLE PRECISION :: DENS,DSTAR
158 CALL os(
'X=Y-Z ',x=elay,y=zf,z=zr)
168 IF(nomblay.EQ.1)
THEN 177 voltot(1) = voltot(1) + elay%R(j)*volu2d%R(j)
180 voltot(1) =
p_dsum(voltot(1))
182 volini(1) = voltot(1)
189 IF(sedco(1))
CALL init_mixte(xmvs,npoin,avail,nsicla,es,
191 & elay%R,nomblay,conc_vase,
192 & ms_sable%R,ms_vase%R,zf%R,
193 & zr%R,ava0,conc,debu,.false.)
209 IF(avail(j,1,i).GT.0.d0)
THEN 210 acladm%R(j) = acladm%R(j) + fdm(i)*avail(j,1,i)
211 unladm%R(j) = unladm%R(j) + fdm(i)*avail(j,2,i)
214 acladm%R(j)=max(acladm%R(j),0.d0)
215 unladm%R(j)=max(unladm%R(j),0.d0)
220 & es_sable, es_vase, elay%R,
221 & nomblay,conc_vase,ms_sable%R,
222 & ms_vase%R,zf%R,zr%R,ava0,conc,debu,mixte)
232 fracsed_gf(i)=ava0(i)
239 dens = (xmvs - xmve) / xmve
248 dens = (xmvs - xmve )/ xmve
250 dstar = fdm(i)*(grav*dens/vce**2)**(1.d0/3.d0)
251 IF (dstar <= 4.d0)
THEN 253 ELSEIF (dstar <= 10.d0)
THEN 254 ac(i) = 0.14d0*dstar**(-0.64d0)
255 ELSEIF (dstar <= 20.d0)
THEN 256 ac(i) = 0.04d0*dstar**(-0.1d0)
259 ELSEIF (dstar <= 72.d0)
THEN 260 ac(i) = 0.013d0*dstar**0.29d0
271 IF(mixte) toce_sable=ac(1)*fdm(1)*grav*(xmvs - xmve)
277 WRITE(
lu,*)
'--------------------------------------------------' 278 WRITE(
lu,*)
'C-VSM MODEL' 279 WRITE(
lu,*)
'CONTINUOUS VERTICAL GRAIN SORTING STRATIGRAPHY' 281 WRITE(
lu,*)
'ACTIVE LAYER THICKNESS MODEL:', alt_model
283 IF (pro_max_max .GT. 250)
THEN 284 WRITE(
lu,*)
'HIGH NUMBER OF SECTIONS IS EXPENSIVE',pro_max_max
285 WRITE(
lu,*)
'BETTER < 250 and > 4 + 4 x NUMBER OF FRACTIONS' 288 IF ((cvsmpperiod / nit) .GT. 5)
THEN 289 WRITE(
lu,*)
'HIGH NUMBER OF FULL CVSM PRINTOUTS' 290 WRITE(
lu,*)
'ATTENTION: DISK SPACE AND SIMULATION TIME' 291 WRITE(
lu,*)
'ADAPT C-VSM FULL PRINTOUT PERIOD' 296 WRITE(
lu,*)
'CVSM INITIALISED!' 297 WRITE(
lu,*)
'--------------------------------------------------'
subroutine vitchu_sisyphe(WS, DENS, DM, GRAV, VCE)
double precision function p_dsum(MYPART)
subroutine init_mixte(XMVS, NPOIN, AVAIL, NSICLA, ES, ES_SABLE, ES_VASE, ELAY, NOMBLAY, CONC_VASE, MS_SABLE, MS_VASE, ZF, ZR, AVA0, CONC, DEBU, MIXTE)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
subroutine init_sediment(NSICLA, ELAY, ZF, ZR, NPOIN, AVAIL, FRACSED_GF, AVA0, LGRAFED, CALWC, XMVS, XMVE, GRAV, VCE, XWC, FDM, CALAC, AC, SEDCO, ES, ES_SABLE, ES_VASE, NOMBLAY, CONC_VASE, MS_SABLE, MS_VASE, ACLADM, UNLADM, TOCE_SABLE, CONC, DEBU, MIXTE)