File: /nfs/home/0/users/jenkins/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     ! Turbulence lenghth scale.
28           use constant, only: L_SCALE0
29     
30     
31     ! Global Parameters:
32     !---------------------------------------------------------------------//
33           USE param1, only: UNDEFINED, UNDEFINED_C
34           USE param1, only: ONE, ZERO
35     
36     ! Global Module proceedures:
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     
115     ! Clear the error manager
116           CALL FINL_ERR_MSG
117     
118     
119           RETURN
120     
121      1000 FORMAT('Error 1000: Required input not specified: ',A,/'Please ',&
122              'correct the mfix.dat file.')
123     
124      1001 FORMAT('Error 1001: Illegal or unknown input: ',A,' = ',A,/      &
125              'Please correct the mfix.dat file.')
126     
127      1002 FORMAT('Error 1002: Illegal or unknown input: ',A,' = ',G14.4,/  &
128              'Please correct the mfix.dat file.')
129     
130      1003 FORMAT('Error 1003: Illegal or unknown input: ',A,' = ',I4,/     &
131              'Please correct the mfix.dat file.')
132     
133           END SUBROUTINE CHECK_RUN_CONTROL
134     
135     
136     
137