MFIX
2016-1
Main Page
Modules
Data Types List
Files
File List
File Members
mfix.f
Go to the documentation of this file.
1
! -*- f90 -*-
2
!vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
3
! !
4
! Subroutine: MFIX !
5
! Author: M. Syamlal Date: 29-JAN-92 !
6
! !
7
! Purpose: The main module in the MFIX program !
8
! !
9
!^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
10
!
62
63
PROGRAM
mfix
64
65
!-----------------------------------------------
66
! Modules
67
!-----------------------------------------------
68
USE
discretelement
, ONLY
: des_continuum_coupled, discrete_element
69
USE
iterate
, ONLY
:
converged
,
diverged
,
adjustdt
70
USE
iterate
, ONLY
:
iterate_init
,
do_iteration
,
post_iterate
71
USE
iterate
, ONLY
:
log_converged
,
log_diverged
,
nit
,
max_nit
72
USE
main
, ONLY
:
add_command_line_argument
,
initialize
,
finalize
,
exit_signal
73
USE
run
, ONLY
:
dt
,
ier
,
dem_solids
,
pic_solids
,
steady_state
,
time
,
tstop
74
USE
step
, ONLY
:
time_step_init
,
time_step_end
75
76
IMPLICIT NONE
77
78
!-----------------------------------------------
79
! Local variables
80
!-----------------------------------------------
81
82
INTEGER
:: II
83
CHARACTER(LEN=80)
:: tmp
84
85
DO
ii=1, command_argument_count()
86
CALL
get_command_argument(ii,tmp)
87
CALL
add_command_line_argument
(tmp)
88
ENDDO
89
90
! Initialize the simulation
91
CALL
initialize
92
93
! Time march loop.
94
95
IF
(discrete_element .AND. .NOT.des_continuum_coupled)
THEN
96
97
! Uncoupled discrete element simulations
98
IF
(
dem_solids
)
CALL
des_time_march
99
IF
(
pic_solids
)
CALL
pic_time_march
100
101
ELSE
102
103
! Transient or steady state simulation
104
DO
WHILE
(
time
+ 0.1d0*
dt
<
tstop
.AND. .NOT.
exit_signal
)
105
CALL
time_step_init
106
DO
107
CALL
iterate_init
108
DO
WHILE
(
nit
<
max_nit
.AND. .NOT.(converged.OR.diverged))
109
nit
=
nit
+ 1
110
CALL
do_iteration
111
ENDDO
112
113
CALL
post_iterate
114
115
IF
(
steady_state
)
EXIT
116
IF
(.NOT.adjustdt())
EXIT
117
ENDDO
118
CALL
time_step_end
119
IF
(
steady_state
)
EXIT
120
ENDDO
121
122
ENDIF
123
CALL
finalize
124
125
stop
126
END PROGRAM
mfix
pic_time_march
subroutine pic_time_march
Definition:
time_march_pic.f:8
run::dem_solids
logical dem_solids
Definition:
run_mod.f:257
run::steady_state
logical steady_state
Definition:
run_mod.f:57
iterate::log_converged
subroutine log_converged
Definition:
iterate.f:546
step
Definition:
time_step.f:2
des_time_march
subroutine des_time_march
Definition:
des_time_march.f:10
main::initialize
subroutine initialize
Definition:
main.f:42
run::dt
double precision dt
Definition:
run_mod.f:51
mfix
program mfix
Definition:
mfix.f:63
iterate::nit
integer nit
Definition:
iterate.f:12
run::ier
integer ier
Definition:
run_mod.f:265
step::time_step_end
subroutine time_step_end
Definition:
time_step.f:116
iterate::adjustdt
logical function adjustdt()
Definition:
iterate.f:817
main::add_command_line_argument
subroutine add_command_line_argument(ARG)
Definition:
main.f:949
run::tstop
double precision tstop
Definition:
run_mod.f:48
iterate::do_iteration
subroutine do_iteration
Definition:
iterate.f:144
step::time_step_init
subroutine time_step_init
Definition:
time_step.f:19
main::finalize
subroutine finalize
Definition:
main.f:426
run
Definition:
run_mod.f:13
iterate::post_iterate
subroutine post_iterate
Definition:
iterate.f:461
iterate::diverged
logical diverged
Definition:
iterate.f:17
iterate
Definition:
iterate.f:2
iterate::log_diverged
subroutine log_diverged
Definition:
iterate.f:499
iterate::max_nit
integer max_nit
Definition:
iterate.f:15
main
Definition:
main.f:10
main::exit_signal
logical exit_signal
Definition:
main.f:34
iterate::converged
logical converged
Definition:
iterate.f:17
run::time
double precision time
Definition:
run_mod.f:45
run::pic_solids
logical pic_solids
Definition:
run_mod.f:258
iterate::iterate_init
subroutine iterate_init
Definition:
iterate.f:44
mfix.f
Generated by
1.8.11