Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
D
DOUAR WSMP
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
HUGG
DOUAR WSMP
Commits
d960748b
Commit
d960748b
authored
13 years ago
by
Janice Allen
Browse files
Options
Downloads
Patches
Plain Diff
with start and stop times for sedimentation and erosion
parent
c029c532
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
src/DOUAR.f90
+28
-10
28 additions, 10 deletions
src/DOUAR.f90
src/module_definitions.f90
+4
-0
4 additions, 0 deletions
src/module_definitions.f90
src/read_input_file.f90
+24
-0
24 additions, 0 deletions
src/read_input_file.f90
src/sedimentation.f90
+6
-6
6 additions, 6 deletions
src/sedimentation.f90
with
62 additions
and
16 deletions
src/DOUAR.f90
+
28
−
10
View file @
d960748b
...
...
@@ -1051,8 +1051,10 @@ do while (istep.le.params%nstep)
if
(
material0
.eq.
0.
and
.
params
%
erosion
)
then
call
int_to_char
(
ic
,
2
,
is
)
call
show_time
(
total
,
step
,
inc
,
1
,
'Erode surface '
//
ic
(
1
:
2
)//
'$'
)
if
(
current_time
+
tiny
(
current_time
)
.ge.
surface
(
is
)
%
activation_time
)
then
call
erosion
(
surface
(
is
),
olsf
,
is
,
params
)
if
(
current_time
+
tiny
(
current_time
)
.ge.
surface
(
is
)
%
activation_time
)
then
if
(
current_time
+
tiny
(
current_time
)
.ge.
params
%
er_start
.and.
current_time
.lt.
params
%
er_end
)
then
call
erosion
(
surface
(
is
),
olsf
,
is
,
params
)
endif
else
if
(
iproc
.eq.
0
)
write
(
8
,
*
)
'Surface '
,
is
,
' is attached to Surface0'
surface
(
is
)
%
z
=
surface
(
1
)
%
z
...
...
@@ -1060,9 +1062,18 @@ do while (istep.le.params%nstep)
elseif
(
material0
.eq.
0.
and
.
params
%
sedimentation
)
then
call
int_to_char
(
ic
,
2
,
is
)
call
show_time
(
total
,
step
,
inc
,
1
,
'Apply sediment to surface '
//
ic
(
1
:
2
)//
'$'
)
if
(
current_time
+
tiny
(
current_time
)
.ge.
surface
(
is
)
%
activation_time
)
then
if
(
iproc
.eq.
0
)
write
(
*
,
*
)
'Calling sedimentation with surface '
,
is
call
sedimentation
(
surface
(
is
),
olsf
,
is
,
params
,
current_time
)
if
(
iproc
.eq.
0
)
write
(
*
,
*
)
'current time: '
,
current_time
if
(
iproc
.eq.
0
)
write
(
*
,
*
)
'sed_start: '
,
params
%
sed_start
if
(
iproc
.eq.
0
)
write
(
*
,
*
)
'sed_end: '
,
params
%
sed_end
if
(
iproc
.eq.
0
)
write
(
*
,
*
)
'activation time: '
,
surface
(
is
)
%
activation_time
if
(
current_time
+
tiny
(
current_time
)
.ge.
surface
(
is
)
%
activation_time
)
then
if
(
iproc
.eq.
0
)
write
(
*
,
*
)
'current time: '
,
current_time
if
(
iproc
.eq.
0
)
write
(
*
,
*
)
'sed_start: '
,
params
%
sed_start
if
(
iproc
.eq.
0
)
write
(
*
,
*
)
'sed_end: '
,
params
%
sed_end
if
(
current_time
+
tiny
(
current_time
)
.ge.
params
%
sed_start
.and.
current_time
.lt.
params
%
sed_end
)
then
if
(
iproc
.eq.
0
)
write
(
*
,
*
)
'Calling sedimentation with surface '
,
is
call
sedimentation
(
surface
(
is
),
olsf
,
is
,
params
,
current_time
,
params
%
dt
/
2.d0
)
endif
else
if
(
iproc
.eq.
0
)
write
(
8
,
*
)
'Surface '
,
is
,
' is attached to Surface0'
surface
(
is
)
%
z
=
surface
(
1
)
%
z
...
...
@@ -1365,8 +1376,10 @@ do while (istep.le.params%nstep)
! We apply erosion
if
(
material0
.eq.
0.
and
.
params
%
erosion
)
then
call
show_time
(
total
,
step
,
inc
,
1
,
'Erode surface '
//
ic
(
1
:
2
)//
'$'
)
if
(
current_time
+
tiny
(
current_time
)
.ge.
surface
(
is
)
%
activation_time
)
then
call
erosion
(
surface
(
is
),
olsf
,
is
,
params
)
if
(
current_time
+
tiny
(
current_time
)
.ge.
surface
(
is
)
%
activation_time
)
then
if
(
current_time
+
tiny
(
current_time
)
.ge.
params
%
er_start
.and.
current_time
.lt.
params
%
er_end
)
then
call
erosion
(
surface
(
is
),
olsf
,
is
,
params
)
endif
else
if
(
iproc
.eq.
0
)
write
(
8
,
*
)
'Surface '
,
is
,
' is attached to Surface0'
surface
(
is
)
%
z
=
surface
(
1
)
%
z
...
...
@@ -1374,12 +1387,17 @@ do while (istep.le.params%nstep)
elseif
(
material0
.eq.
0.
and
.
params
%
sedimentation
)
then
! call int_to_char(ic,2,is)
call
show_time
(
total
,
step
,
inc
,
1
,
'Apply sedimentation to surface '
//
ic
(
1
:
2
)//
'$'
)
if
(
current_time
+
tiny
(
current_time
)
.ge.
surface
(
is
)
%
activation_time
)
then
call
sedimentation
(
surface
(
is
),
olsf
,
is
,
params
,
current_time
)
if
(
current_time
+
tiny
(
current_time
)
.ge.
surface
(
is
)
%
activation_time
)
then
if
(
iproc
.eq.
0
)
write
(
*
,
*
)
'current time: '
,
current_time
if
(
iproc
.eq.
0
)
write
(
*
,
*
)
'sed_start: '
,
params
%
sed_start
if
(
iproc
.eq.
0
)
write
(
*
,
*
)
'sed_end: '
,
params
%
sed_end
if
(
current_time
+
tiny
(
current_time
)
.ge.
params
%
sed_start
.and.
current_time
.lt.
params
%
sed_end
)
then
call
sedimentation
(
surface
(
is
),
olsf
,
is
,
params
,
current_time
,
0
)
endif
else
if
(
iproc
.eq.
0
)
write
(
8
,
*
)
'Surface '
,
is
,
' is attached to Surface0'
surface
(
is
)
%
z
=
surface
(
1
)
%
z
endif
endif
end
if
if
(
iproc
.eq.
0
)
write
(
8
,
*
)
'Min-Max z surf '
,
is
,
':'
,
minval
(
surface
(
is
)
%
z
),
maxval
(
surface
(
is
)
%
z
)
...
...
This diff is collapsed.
Click to expand it.
src/module_definitions.f90
+
4
−
0
View file @
d960748b
...
...
@@ -279,6 +279,10 @@ module definitions
double precision
minp
double precision
pressure0
double precision
damp_factor
double precision
er_start
double precision
er_end
double precision
sed_start
double precision
sed_end
double precision
zaggrade_init
double precision
x_agg_start
double precision
x_agg_end
...
...
This diff is collapsed.
Click to expand it.
src/read_input_file.f90
+
24
−
0
View file @
d960748b
...
...
@@ -985,6 +985,22 @@ if (iproc==0) call scanfile (params%infile,'zerosion',params%zerosion,ires)
params
%
zerosion
=
params
%
zerosion
/
params
%
vex
call
mpi_bcast
(
params
%
zerosion
,
1
,
mpi_double_precision
,
0
,
mpi_comm_world
,
ierr
)
params
%
er_start
=
0.d0
if
(
iproc
==
0
)
call
scanfile
(
params
%
infile
,
'er_start'
,
params
%
er_start
,
ires
)
call
mpi_bcast
(
params
%
er_start
,
1
,
mpi_double_precision
,
0
,
mpi_comm_world
,
ierr
)
params
%
er_end
=
0.d0
if
(
iproc
==
0
)
call
scanfile
(
params
%
infile
,
'er_end'
,
params
%
er_end
,
ires
)
call
mpi_bcast
(
params
%
er_end
,
1
,
mpi_double_precision
,
0
,
mpi_comm_world
,
ierr
)
params
%
sed_start
=
0.d0
if
(
iproc
==
0
)
call
scanfile
(
params
%
infile
,
'sed_start'
,
params
%
sed_start
,
ires
)
call
mpi_bcast
(
params
%
sed_start
,
1
,
mpi_double_precision
,
0
,
mpi_comm_world
,
ierr
)
params
%
sed_end
=
0.d0
if
(
iproc
==
0
)
call
scanfile
(
params
%
infile
,
'sed_end'
,
params
%
sed_end
,
ires
)
call
mpi_bcast
(
params
%
sed_end
,
1
,
mpi_double_precision
,
0
,
mpi_comm_world
,
ierr
)
params
%
sedimentation_type
=
1
if
(
iproc
==
0
)
call
scanfile
(
params
%
infile
,
'sedimentation_type'
,
params
%
sedimentation_type
,
ires
)
call
mpi_bcast
(
params
%
sedimentation_type
,
1
,
mpi_integer
,
0
,
mpi_comm_world
,
ierr
)
...
...
@@ -1180,6 +1196,10 @@ if (params%debug.gt.0 .and. iproc.eq.0) then
write
(
*
,
'(a,e11.4)'
)
shift
//
'e2d0 '
,
params
%
e2d0
write
(
*
,
'(a,e11.4)'
)
shift
//
'minp '
,
params
%
minp
write
(
*
,
'(a,e11.4)'
)
shift
//
'pressure0 '
,
params
%
pressure0
write
(
*
,
'(a,e11.4)'
)
shift
//
'er_start '
,
params
%
er_start
write
(
*
,
'(a,e11.4)'
)
shift
//
'er_end '
,
params
%
er_end
write
(
*
,
'(a,e11.4)'
)
shift
//
'sed_start '
,
params
%
sed_start
write
(
*
,
'(a,e11.4)'
)
shift
//
'sed_end '
,
params
%
sed_end
write
(
*
,
'(a,e11.4)'
)
shift
//
'zaggrade_init '
,
params
%
zaggrade_init
write
(
*
,
'(a,e11.4)'
)
shift
//
'x_agg_start '
,
params
%
x_agg_start
write
(
*
,
'(a,e11.4)'
)
shift
//
'x_agg_end '
,
params
%
x_agg_end
...
...
@@ -1428,6 +1448,10 @@ if (params%debug.gt.1) then
write
(
threadinfo
%
Logunit
,
'(a32,e11.4)'
)
'e2d0 '
,
params
%
e2d0
write
(
threadinfo
%
Logunit
,
'(a32,e11.4)'
)
'minp '
,
params
%
minp
write
(
threadinfo
%
Logunit
,
'(a32,e11.4)'
)
'pressure0 '
,
params
%
pressure0
write
(
threadinfo
%
Logunit
,
'(a32,e11.4)'
)
'er_start '
,
params
%
er_start
write
(
threadinfo
%
Logunit
,
'(a32,e11.4)'
)
'er_end '
,
params
%
er_end
write
(
threadinfo
%
Logunit
,
'(a32,e11.4)'
)
'sed_start '
,
params
%
sed_start
write
(
threadinfo
%
Logunit
,
'(a32,e11.4)'
)
'sed_end '
,
params
%
sed_end
write
(
threadinfo
%
Logunit
,
'(a32,e11.4)'
)
'zaggrade_init '
,
params
%
zaggrade_init
write
(
threadinfo
%
Logunit
,
'(a32,e11.4)'
)
'x_agg_start '
,
params
%
x_agg_start
write
(
threadinfo
%
Logunit
,
'(a32,e11.4)'
)
'x_agg_end '
,
params
%
x_agg_end
...
...
This diff is collapsed.
Click to expand it.
src/sedimentation.f90
+
6
−
6
View file @
d960748b
...
...
@@ -16,7 +16,7 @@
!------------------------------------------------------------------------------|
!------------------------------------------------------------------------------|
subroutine
sedimentation
(
surface
,
olsf
,
is
,
params
,
current_time
)
subroutine
sedimentation
(
surface
,
olsf
,
is
,
params
,
current_time
,
time_step
)
!------------------------------------------------------------------------------|
!(((((((((((((((( Purpose of the routine ))))))))))))))))))))))))))))))))))))))
...
...
@@ -62,6 +62,7 @@ type (octreelsf) olsf
type
(
parameters
)
params
integer
is
double precision
current_time
double precision
time_step
!------------------------------------------------------------------------------|
!(((((((((((((((( declaration of the subroutine internal variables )))))))))))))
...
...
@@ -138,7 +139,7 @@ x_prog_start=params%x_prog_start
x_prog_end
=
params
%
x_prog_end
prog_rate_u
=
params
%
prog_rate_u
x_prog_length
=
params
%
x_prog_length
dt
=
params
%
dt
!
dt=params%dt
if
(
is
.ne.
1
)
then
...
...
@@ -247,10 +248,9 @@ endif
! change this to have a flag (0/1) so that current time has dt/2 added for
!minpoint call
zaggrade_current
=
zaggrade_init
+
aggrade_rate
*
current_time
x_prog1
=
x_prog_start
+
prog_rate_u
*
current_time
x_prog2
=
x_prog_end
+
prog_rate_u
*
current_time
zaggrade_current
=
zaggrade_init
+
aggrade_rate
*
(
current_time
+
time_step
)
x_prog1
=
x_prog_start
+
prog_rate_u
*
(
current_time
+
time_step
)
x_prog2
=
x_prog_end
+
prog_rate_u
*
(
current_time
+
time_step
)
!zaggrade_current2=zaggrade_init2+aggrade_rate*current_time
!if (iproc.eq.0) write(*,*) 'zaggrade_current: ', zaggrade_current
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment