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

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