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

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2     !                                                                      C
3     !  Subroutine: VF_gs_Z                                                 C
4     !  Purpose: Calculate the average drag coefficient at i, j, k+1/2 and  C
5     !           multiply with W-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_Z(VXF_GS)
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     
38           IMPLICIT NONE
39     !-----------------------------------------------
40     ! Dummy arguments
41     !-----------------------------------------------
42     ! Volume x Drag
43           DOUBLE PRECISION, INTENT(OUT) :: VxF_gs(DIMENSION_3, DIMENSION_M)
44     !-----------------------------------------------
45     ! Local variables
46     !-----------------------------------------------
47     ! Indices
48           INTEGER :: K, IJK, IJKT
49     ! Index of continuum solids phases
50           INTEGER :: M
51     !-----------------------------------------------
52     
53     
54           DO M = 1, SMAX
55              DO IJK = ijkstart3, ijkend3
56                 IF(IP_AT_T(IJK)) THEN
57                    VXF_GS(IJK,M) = ZERO
58                 ELSE
59                    K = K_OF(IJK)
60                    IJKT = TOP_OF(IJK)
61                    VXF_GS(IJK,M) = VOL_W(IJK) *                            &
62                       AVG_Z(F_GS(IJK,M),F_GS(IJKT,M),K)
63                 ENDIF
64              ENDDO
65           ENDDO
66     
67     
68           IF(DISCRETE_ELEMENT .AND. .NOT.DES_ONEWAY_COUPLED) THEN
69              DO IJK = ijkstart3, ijkend3
70                 IF (IP_AT_T(IJK)) THEN
71                    VXF_GDS(IJK) = ZERO
72                 ELSE
73                    K = K_OF(IJK)
74                    IJKT = TOP_OF(IJK)
75                    VXF_GDS(IJK) = VOL_W(IJK) *                             &
76                       AVG_Z(F_GDS(IJK),F_GDS(IJKT),K)
77                 ENDIF
78              ENDDO
79           ENDIF
80     
81     
82           RETURN
83           END SUBROUTINE VF_GS_Z
84     
85     
86     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
87     !                                                                      C
88     !  Subroutine: VF_SS_Z                                                 C
89     !  Purpose: Calculate the average Solid-Solid drag coefficient at      C
90     !           i, j, k+1/2 and multiply with W-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_Z(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 :: K, IJK, IJKT
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(IP_AT_T(IJK)) THEN
143                          VXF_SS(IJK,LM) = ZERO
144                       ELSE     !Impermeable wall
145                          K = K_OF(IJK)
146                          IJKT = TOP_OF(IJK)
147                          VXF_SS(IJK,LM) = AVG_Z(F_SS(IJK,LM),F_SS(IJKT,LM),K)*VOL_W(IJK)
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              DO M = 1, MMAX
156                 DO IJK = ijkstart3, ijkend3
157                    IF(IP_AT_T(IJK)) THEN
158                       VXF_SDS(IJK,M) = ZERO
159                    ELSE
160                       K = K_OF(IJK)
161                       IJKT = TOP_OF(IJK)
162                       VXF_SDS(IJK,M) = AVG_Z(F_SDS(IJK,M),F_SDS(IJKT,M),K)*VOL_W(IJK)
163                    ENDIF
164                 ENDDO      ! end do loop (ijk=ijkstart3,ijkend3)
165              ENDDO   ! end do loop (m=1,mmax)
166           ENDIF   ! end if (discrete_element and des_continuum_hybrid)
167     
168           RETURN
169           END SUBROUTINE VF_SS_Z
170     
171     
172