File: N:\mfix\model\check_data\check_run_control.f
1
2
3
4
5
6
7
8
9
10 SUBROUTINE CHECK_RUN_CONTROL
11
12
13
14
15
16 USE run, only: RUN_TYPE
17
18 USE run, only: DESCRIPTION
19
20 USE run, only: UNITS
21
22 USE run, only: TIME, TSTOP
23
24 USE run, only: DT, ODT, STEADY_STATE
25
26 USE run, only: K_EPSILON
27 USE run, only: ishii, jackson
28
29 use constant, only: L_SCALE0, MU_GMAX
30
31
32
33 USE param1, only: UNDEFINED, UNDEFINED_C
34 USE param1, only: ONE, ZERO
35
36
37
38 USE error_manager
39
40 IMPLICIT NONE
41
42
43
44
45
46
47
48
49
50
51 CALL INIT_ERR_MSG("CHECK_RUN_CONTROL")
52
53
54
55 IF (DESCRIPTION == UNDEFINED_C) DESCRIPTION = ' '
56
57
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
67 IF (DT < ZERO) THEN
68 WRITE(ERR_MSG,1002) 'DT', DT
69 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
70
71
72 ELSEIF(DT == UNDEFINED .OR. DT == ZERO) THEN
73 STEADY_STATE = .TRUE.
74 DT = ZERO
75 ODT = ZERO
76 TIME = ZERO
77
78
79 ELSE
80 STEADY_STATE = .FALSE.
81
82 = ONE/DT
83
84 IF (TIME == UNDEFINED) THEN
85 WRITE(ERR_MSG,1000) 'TIME'
86 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
87
88 ELSEIF (TSTOP == UNDEFINED) THEN
89 WRITE(ERR_MSG,1000) 'TSTOP'
90 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
91
92 ELSEIF (TIME < ZERO) THEN
93 WRITE(ERR_MSG,1002)'TIME', TIME
94 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
95
96 ELSEIF (TSTOP < ZERO) THEN
97 WRITE(ERR_MSG,1002) 'TSTOP', TSTOP
98 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
99 ENDIF
100 ENDIF
101
102
103 IF(.NOT.(RUN_TYPE=='NEW' .OR. RUN_TYPE=='RESTART_1' &
104 .OR. RUN_TYPE=='RESTART_2')) THEN
105 WRITE(ERR_MSG,1001) 'RUN_TYPE', RUN_TYPE
106 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
107 ENDIF
108
109
110 IF (K_Epsilon .AND. L_SCALE0 /= ZERO) THEN
111 WRITE(ERR_MSG,2001)
112 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
113 2001 FORMAT('Error 2001: Cannot set K_EPSILON = .T. and specify ', &
114 'L_SCALE0 /= ZERO')
115 ENDIF
116
117
118 IF (ISHII .AND. JACKSON) THEN
119 WRITE(ERR_MSG,2002)
120 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
121 2002 FORMAT('Error 2002: Cannot set both ISHII = .T. and JACKSON = ',&
122 '.T.',/,'Please correct the mfix.dat file.')
123 ENDIF
124
125
126 IF (K_Epsilon .AND. MU_GMAX==UNDEFINED) THEN
127 WRITE(ERR_MSG, 1000) 'MU_GMAX'
128 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
129 ENDIF
130
131
132 CALL FINL_ERR_MSG
133
134 RETURN
135
136 1000 FORMAT('Error 1000: Required input not specified: ',A,/'Please ',&
137 'correct the mfix.dat file.')
138
139 1001 FORMAT('Error 1001: Illegal or unknown input: ',A,' = ',A,/ &
140 'Please correct the mfix.dat file.')
141
142 1002 FORMAT('Error 1002: Illegal or unknown input: ',A,' = ',G14.4,/ &
143 'Please correct the mfix.dat file.')
144
145 1003 FORMAT('Error 1003: Illegal or unknown input: ',A,' = ',I4,/ &
146 'Please correct the mfix.dat file.')
147
148 END SUBROUTINE CHECK_RUN_CONTROL
149
150
151
152