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

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
2     !                                                                      !
3     !  Subroutine: VF_gs_X                                                 !
4     !  Author: M. Syamlal                                 Date: 20-MAY-96  !
5     !                                                                      !
6     !  Purpose: Calculate the average drag coefficient at i+1/2, j, k and  !
7     !           multiply with u-momentum cell volume.                      !
8     !                                                                      !
9     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
10     
11           SUBROUTINE VF_GS_X(VXF_GS)
12     
13     !-----------------------------------------------
14     ! Modules
15     !-----------------------------------------------
16           USE compar
17           USE discretelement
18           USE drag
19           USE fun_avg
20           USE functions
21           USE geometry
22           USE indices
23           USE param
24           USE param1
25           USE physprop
26     
27           IMPLICIT NONE
28     !-----------------------------------------------
29     ! Dummy arguments
30     !-----------------------------------------------
31     ! Volume x Drag
32           DOUBLE PRECISION, INTENT(OUT) :: VxF_gs(DIMENSION_3, DIMENSION_M)
33     !-----------------------------------------------
34     ! Local variables
35     !-----------------------------------------------
36     ! Indices
37           INTEGER :: I, IJK, IJKE
38     ! Index of continuum solids phases
39           INTEGER :: M
40     !-----------------------------------------------
41     
42           DO M = 1, SMAX
43              DO IJK = IJKSTART3, IJKEND3
44                 IF(IP_AT_E(IJK)) THEN
45                    VXF_GS(IJK,M) = ZERO
46                 ELSE
47                    I = I_OF(IJK)
48                    IJKE = EAST_OF(IJK)
49                    VXF_GS(IJK,M) = VOL_U(IJK) * &
50                       AVG_X(F_GS(IJK,M),F_GS(IJKE,M),I)
51                 ENDIF
52              ENDDO
53           ENDDO
54     
55     ! Calculate the combined effect for all discrete solids.
56           IF(DISCRETE_ELEMENT .AND. .NOT.DES_ONEWAY_COUPLED) THEN
57              DO IJK = IJKSTART3, IJKEND3
58                 IF(IP_AT_E(IJK)) THEN
59                    VXF_GDS(IJK) = ZERO
60                 ELSE
61                    I = I_OF(IJK)
62                    IJKE = EAST_OF(IJK)
63                    VXF_GDS(IJK) = VOL_U(IJK) *                             &
64                       AVG_X(F_GDS(IJK),F_GDS(IJKE),I)
65                 ENDIF
66              ENDDO
67           ENDIF
68     
69           RETURN
70           END SUBROUTINE VF_GS_X
71     
72     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
73     !                                                                      C
74     !  Subroutine: VF_SS_X                                                 C
75     !  Purpose: Calculate the average Solid-Solid drag coefficient at      C
76     !           i+1/2, j, k and multiply with u-momentum cell volume.      C
77     !                                                                      C
78     !  Author: S. Dartevelle, LANL                        Date: 28-FEB-04  C
79     !  Reviewer:                                          Date:            C
80     !                                                                      C
81     !  Literature/Document References:                                     C
82     !                                                                      C
83     !  Variables referenced:                                               C
84     !  Variables modified:                                                 C
85     !  Local variables:                                                    C
86     !                                                                      C
87     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
88     
89           SUBROUTINE VF_SS_X(VXF_SS)
90     
91     !-----------------------------------------------
92     ! Modules
93     !-----------------------------------------------
94           USE param
95           USE param1
96           USE geometry
97           USE indices
98           USE physprop
99           USE compar
100           USE drag
101           USE discretelement
102           USE fun_avg
103           USE functions
104     
105           IMPLICIT NONE
106     !-----------------------------------------------
107     ! Dummy arguments
108     !-----------------------------------------------
109     ! Volume x Drag
110           DOUBLE PRECISION, INTENT(OUT) :: VxF_SS(DIMENSION_3, DIMENSION_LM)
111     !-----------------------------------------------
112     ! Local variables
113     !-----------------------------------------------
114     ! Indices
115           INTEGER :: I, IJK, IJKE
116     ! Index of continuum solids phases
117           INTEGER :: L, M, LM
118     !-----------------------------------------------
119     
120     ! initialize every call
121           VXF_SS(:,:) = ZERO
122     
123           DO M = 1, MMAX
124              DO L = 1, MMAX
125                 LM = FUNLM(L,M)
126                 IF (L .NE. M) THEN
127                    DO IJK = ijkstart3, ijkend3
128                       IF (.NOT.IP_AT_E(IJK)) THEN
129                          I = I_OF(IJK)
130                          IJKE = EAST_OF(IJK)
131                          VXF_SS(IJK,LM) = AVG_X(F_SS(IJK,LM),F_SS(IJKE,LM),I)*VOL_U(IJK)
132                       ELSE     !Impermeable wall
133                          VXF_SS(IJK,LM) = ZERO
134                       ENDIF
135                    ENDDO
136                 ENDIF
137              ENDDO   ! end do loop (l=1,mmax)
138           ENDDO   ! end do loop (m=1,mmax
139     
140           IF (DES_CONTINUUM_HYBRID) THEN
141              DO M = 1, MMAX
142                 DO IJK = IJKSTART3, IJKEND3
143                    IF (IP_AT_E(IJK)) THEN
144                       VXF_SDS(IJK,M) = ZERO
145                    ELSE
146                       I = I_OF(IJK)
147                       IJKE = EAST_OF(IJK)
148                       VXF_SDS(IJK,M) = AVG_X(F_SDS(IJK,M),F_SDS(IJKE,M),I)*VOL_U(IJK)
149                    ENDIF
150                 ENDDO   ! end do loop (dm=1,des_mmax)
151              ENDDO   ! end do loop (m=1,mmax)
152           ENDIF   ! end if (discrete_element and des_continuum_hybrid)
153     
154           RETURN
155           END SUBROUTINE VF_SS_X
156     
157