MFIX  2016-1
parse_resid_string.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2 ! C
3 ! Module name: Parse_RESID_string(IER) C
4 ! Purpose: Initialize residuals C
5 ! C
6 ! C
7 ! Author: M. Syamlal Date:12-MAY-97 C
8 ! Reviewer: Date: C
9 ! C
10 ! C
11 ! Literature/Document References: C
12 ! C
13 ! Variables referenced: C
14 ! Variables modified: C
15 ! C
16 ! Local variables: C
17 ! C
18 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
19 !
20  SUBROUTINE parse_resid_string()
21 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98
22 !...Switches: -xf
23 !
24 ! Include param.inc file to specify parameter values
25 !
26 !-----------------------------------------------
27 ! M o d u l e s
28 !-----------------------------------------------
29  USE param
30  USE param1
31  USE physprop
32  USE residual
33  USE funits
34  USE compar
35  IMPLICIT NONE
36 !-----------------------------------------------
37 ! G l o b a l P a r a m e t e r s
38 !-----------------------------------------------
39 !-----------------------------------------------
40 ! D u m m y A r g u m e n t s
41 !-----------------------------------------------
42 !-----------------------------------------------
43 ! L o c a l P a r a m e t e r s
44 !-----------------------------------------------
45 !-----------------------------------------------
46 ! L o c a l V a r i a b l e s
47 !-----------------------------------------------
48 
49 !
50 ! local index
51  INTEGER L, L1
52 !
53 ! error message
54  CHARACTER(LEN=80) LINE
55 !
56 ! LOGICAL
57  LOGICAL STRING_DEFINED
58 
59 !
60 !-----------------------------------------------
61 !
62 !
63 !
64 !
65 ! If user did not define any residual strings use default values
66 !
67 
68  IF(group_resid) THEN
69 
70  resid_grp_string(hydro_grp) = 'HYDRO'
71  resid_grp_string(theta_grp) = 'THETA'
72  resid_grp_string(energy_grp) = 'ENERGY'
73  resid_grp_string(species_grp) = 'SPECIES'
74  resid_grp_string(scalar_grp) = 'SCALAR'
75  resid_grp_string(ke_grp) = 'K-EPS.'
76 
79 
80  RETURN
81  ENDIF
82 
83  string_defined = .false.
84  DO l = 1, max_resid_index
85  IF (resid_string(l) /= undefined_c) string_defined = .true.
86  END DO
87  IF (.NOT.string_defined) THEN
88  resid_string(1) = 'P0'
89  resid_string(2) = 'P1'
90  resid_string(3) = 'U0'
91  resid_string(4) = 'V0'
92  resid_string(5) = 'U1'
93  resid_string(6) = 'V1'
94  ENDIF
95 !
96 !C
97  DO l = 1, max_resid_index
99  string_defined = .false.
100  DO l1 = 1, nprefix
101 !
102  IF (resid_string(l)(1:1) == resid_prefix(l1)) THEN
103  resid_index(l,1) = l1
104  string_defined = .true.
105  EXIT
106  ENDIF
107  END DO
108  IF (string_defined) THEN
109 !
110  resid_index(l,2) = ichar(resid_string(l)(2:2)) - 48
111  !print *,"RESID_INDEX(L,2) = ",RESID_INDEX(L,2)
112  IF (resid_index(l,2)<0 .OR. resid_index(l,2)>mmax) THEN
113  WRITE (line, '(A, A1, A, A4, A)') 'Error: Phase index ', &
114  resid_string(l)(2:2), ' in RESID_STRING ', resid_string(l), &
115  ' out of bounds.'
116  CALL write_error ('PARSE_RESID_STRING', line, 1)
117  ENDIF
118 !
119  IF (resid_string(l)(1:1)=='G' .AND. resid_index(l,2)==0) THEN
120 !
121  WRITE (line, '(A, A1, A, A4, A)') 'Error: Phase index ', &
122  resid_string(l)(2:2), ' in RESID_STRING ', resid_string(l), &
123  ' should be > 0.'
124  CALL write_error ('PARSE_RESID_STRING', line, 1)
125  ENDIF
126  IF (resid_string(l)(1:1) == 'X') resid_index(l,1) = resid_x + &
127  (ichar(resid_string(l)(3:3)) - 48) * 10 &
128  + ichar(resid_string(l)(4:4)) - 48 - 1
129  ENDIF
130  END DO
131  RETURN
132  END SUBROUTINE parse_resid_string
133 
134 !// Comments on the modifications for DMP version implementation
135 !// 001 Include header file and common declarations for parallelization
integer, parameter hydro_grp
Definition: residual_mod.f:24
subroutine write_error(NAME, LINE, LMAX)
Definition: write_error.f:21
integer, parameter scalar_grp
Definition: residual_mod.f:28
logical group_resid
Definition: residual_mod.f:58
character, dimension(nprefix), parameter resid_prefix
Definition: residual_mod.f:32
integer, parameter species_grp
Definition: residual_mod.f:27
integer, dimension(max_resid_index, 2) resid_index
Definition: residual_mod.f:66
integer, parameter nprefix
Definition: residual_mod.f:21
integer mmax
Definition: physprop_mod.f:19
integer, parameter max_resid_index
Definition: residual_mod.f:8
Definition: param_mod.f:2
integer, parameter energy_grp
Definition: residual_mod.f:26
integer, parameter theta_grp
Definition: residual_mod.f:25
character(len=4), dimension(max_resid_index) resid_string
Definition: residual_mod.f:62
integer, parameter undefined_i
Definition: param1_mod.f:19
subroutine parse_resid_string()
character(len=8), dimension(6) resid_grp_string
Definition: residual_mod.f:63
integer, parameter resid_x
Definition: residual_mod.f:20
integer, parameter ke_grp
Definition: residual_mod.f:29
character, parameter undefined_c
Definition: param1_mod.f:20