File: RELATIVE:/../../../mfix.git/model/check_data/check_run_control.f

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
2     !                                                                      !
3     !  Subroutine: CHECK_RUN_CONTROL                                       !
4     !  Purpose: Check the run control namelist section                     !
5     !                                                                      !
6     !  Author: P.Nicoletti                                Date: 27-NOV-91  !
7     !          J.Musser                                   Date: 31-JAN-14  !
8     !                                                                      !
9     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
10           SUBROUTINE CHECK_RUN_CONTROL
11     
12     
13     ! Global Variables:
14     !---------------------------------------------------------------------//
15     ! New or restart
16           USE run, only: RUN_TYPE
17     ! Brief description of simulation.
18           USE run, only: DESCRIPTION
19     ! Simulation units: SI, CGS
20           USE run, only: UNITS
21     ! Simulation start/stop times.
22           USE run, only: TIME, TSTOP
23     ! Time step size, one over time step size.
24           USE run, only: DT, ODT
25     ! Flag: Use K-Epsilon turbulence model.
26           USE run, only: K_EPSILON
27           USE run, only: ishii, jackson
28     ! Turbulence lenghth scale and viscosity bound.
29           use constant, only: L_SCALE0, MU_GMAX
30     
31     ! Global Parameters:
32     !---------------------------------------------------------------------//
33           USE param1, only: UNDEFINED, UNDEFINED_C
34           USE param1, only: ONE, ZERO
35     
36     ! Global Module procedures:
37     !---------------------------------------------------------------------//
38           USE error_manager
39     
40           IMPLICIT NONE
41     
42     
43     ! Local Variables:
44     !---------------------------------------------------------------------//
45     
46     
47     !......................................................................!
48     
49     
50     ! Initialize the error manager.
51           CALL INIT_ERR_MSG("CHECK_RUN_CONTROL")
52     
53     
54     ! Clear out the run description if not specified.
55           IF (DESCRIPTION == UNDEFINED_C) DESCRIPTION = ' '
56     
57     ! Verify UNITS input.
58           IF(UNITS == UNDEFINED_C) THEN
59              WRITE(ERR_MSG,1000) 'UNITS'
60              CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
61           ELSEIF((UNITS /= 'CGS') .AND. (UNITS /= 'SI')) THEN
62              WRITE(ERR_MSG,1001) 'UNITS', UNITS
63              CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
64           ENDIF
65     
66     ! Verify that DT is valid.
67           IF (DT < ZERO) THEN
68              WRITE(ERR_MSG,1002) 'DT', DT
69              CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
70     
71     ! Steady-state simulation.
72           ELSEIF(DT == UNDEFINED .OR. DT == ZERO) THEN
73              ODT = ZERO
74              TIME = ZERO
75     
76     ! Transient simulation.
77           ELSE
78     ! Calculate one over the initial timestep.
79              ODT = ONE/DT
80     ! Verify the remaining time settings.
81              IF (TIME == UNDEFINED) THEN
82                 WRITE(ERR_MSG,1000) 'TIME'
83                 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
84     
85              ELSEIF (TSTOP == UNDEFINED) THEN
86                 WRITE(ERR_MSG,1000) 'TSTOP'
87                 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
88     
89              ELSEIF (TIME < ZERO) THEN
90                 WRITE(ERR_MSG,1002)'TIME', TIME
91                 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
92     
93              ELSEIF (TSTOP < ZERO) THEN
94                 WRITE(ERR_MSG,1002) 'TSTOP', TSTOP
95                 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
96              ENDIF
97           ENDIF
98     
99     ! Verify the run type.
100           IF(.NOT.(RUN_TYPE=='NEW' .OR. RUN_TYPE=='RESTART_1'              &
101              .OR. RUN_TYPE=='RESTART_2')) THEN
102              WRITE(ERR_MSG,1001) 'RUN_TYPE', RUN_TYPE
103              CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
104           ENDIF
105     
106     ! Turbulence model:
107           IF (K_Epsilon .AND. L_SCALE0 /= ZERO) THEN
108              WRITE(ERR_MSG,2001)
109              CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
110      2001 FORMAT('Error 2001: Cannot set K_EPSILON = .T. and specify ',    &
111              'L_SCALE0 /= ZERO')
112           ENDIF
113     
114     ! Ishii and jackson form of governing equations cannot both be invoked
115           IF (ISHII .AND. JACKSON) THEN
116              WRITE(ERR_MSG,2002)
117              CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
118      2002 FORMAT('Error 2002: Cannot set both ISHII = .T. and JACKSON = ',&
119                  '.T.',/,'Please correct the mfix.dat file.')
120           ENDIF
121     
122     !  Check whether MU_gmax is specified for turbulence (sof)
123           IF (K_Epsilon .AND. MU_GMAX==UNDEFINED) THEN
124              WRITE(ERR_MSG, 1000) 'MU_GMAX'
125              CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
126           ENDIF
127     
128     ! Clear the error manager
129           CALL FINL_ERR_MSG
130     
131           RETURN
132     
133      1000 FORMAT('Error 1000: Required input not specified: ',A,/'Please ',&
134              'correct the mfix.dat file.')
135     
136      1001 FORMAT('Error 1001: Illegal or unknown input: ',A,' = ',A,/      &
137              'Please correct the mfix.dat file.')
138     
139      1002 FORMAT('Error 1002: Illegal or unknown input: ',A,' = ',G14.4,/  &
140              'Please correct the mfix.dat file.')
141     
142      1003 FORMAT('Error 1003: Illegal or unknown input: ',A,' = ',I4,/     &
143              'Please correct the mfix.dat file.')
144     
145           END SUBROUTINE CHECK_RUN_CONTROL
146     
147     
148     
149