File: /nfs/home/0/users/jenkins/mfix.git/model/parse_resid_string.f

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     
77              RESID_STRING = UNDEFINED_C
78              RESID_INDEX(8,1) = UNDEFINED_I
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
98              RESID_INDEX(L,1) = UNDEFINED_I
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
136