1 ! -*- f90 -*- 2 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC 3 ! C 4 ! Module: fldvar C 5 ! Purpose: Common block containing field variables data C 6 ! C 7 ! Author: M. Syamlal Date: dd-mmm-yy C 8 ! Reviewer: Date: dd-mmm-yy C 9 ! C 10 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C 11 MODULE fldvar 12 13 14 ! Void fraction 15 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: EP_g 16 ! Store the void/volume fraction or value of 1 depending on setting of 17 ! governing equations 18 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: epg_jfac 19 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: epg_ifac 20 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: eps_ifac 21 22 ! Previous-time-step value of Void fraction 23 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: EP_go 24 25 ! Gas pressure 26 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: P_g 27 28 ! Previous-time-step value of Gas pressure 29 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: P_go 30 31 ! Gas density 32 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: RO_g 33 34 ! Previous-time-step value of Gas density 35 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: RO_go 36 37 ! Macroscopic gas density 38 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: ROP_g 39 40 ! Previous-time-step value of macroscopic gas density 41 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: ROP_go 42 43 44 ! Solids phase densities 45 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: RO_S 46 47 ! Previous-time-step value Solids phase densities 48 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: RO_So 49 50 ! Macroscopic density of solids phases 51 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: ROP_s 52 53 ! Previous-time-step value of macroscopic density of solids phases 54 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: ROP_so 55 56 ! Macroscopic density of particle diameter 57 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: D_p 58 59 ! Previous-time-step value of particle diameter 60 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: D_po 61 62 ! Gas phase temperature 63 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: T_g 64 65 ! Solids phase temperature 66 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: T_s 67 68 ! Previous-time-step value of Gas phase temperature 69 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: T_go 70 71 ! Previous-time-step value of Solids phase temperature 72 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: T_so 73 74 ! Gas species mass fraction 75 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: X_g 76 77 ! Solids species mass fraction 78 DOUBLE PRECISION, DIMENSION(:, :, :), ALLOCATABLE :: X_s 79 80 ! Previous-time-step value of Gas species mass fraction 81 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: X_go 82 83 ! Previous-time-step value of Solids species mass fraction 84 DOUBLE PRECISION, DIMENSION(:, :, :), ALLOCATABLE :: X_so 85 86 ! x-component of gas velocity 87 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: U_g 88 89 ! Previous-time-step value of x-component of gas velocity 90 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: U_go 91 92 ! x-component of solids phase velocity 93 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: U_s 94 95 ! Previous-time-step value of x-component of solids phase velocity 96 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: U_so 97 98 ! y-component of gas velocity 99 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: V_g 100 101 ! Previous time-step value of y-component of gas velocity 102 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: V_go 103 104 ! y-component of solids phase velocity 105 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: V_s 106 107 ! Previous time-step value of y-component of solids phase velocity 108 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: V_so 109 110 ! z-component of gas velocity 111 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: W_g 112 113 ! Previous time-step value of z-component of gas velocity 114 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: W_go 115 116 ! z-component of solids phase velocity 117 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: W_s 118 119 ! Previous time-step value of z-component of solids phase velocity 120 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: W_so 121 122 ! Solids pressure as a result of granular motion 123 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: P_s 124 125 ! Solids pressure as a result of granular motion 126 ! Collisional Contribution 127 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: P_s_c 128 129 ! Solids pressure as a result of granular motion 130 ! Viscous Contribution 131 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: P_s_v 132 133 ! Solids pressure as a result of granular motion 134 ! Frictional Contribution 135 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: P_s_f 136 137 ! Solids pressure as a result of granular motion 138 ! Plastic Contribution 139 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: P_s_p 140 141 ! Solids pressure that maintains EP_g >= EP_star 142 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: P_star 143 144 ! Previous-time-step value of Solids pressure that maintains 145 ! EP_g >= EP_star 146 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: P_staro 147 148 ! Granular temperature of mth phase 149 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: THETA_m 150 151 ! Previous-time-step value of Granular temperature of mth phase 152 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: THETA_mo 153 154 ! User-defined Scalars 155 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: Scalar 156 157 ! Previous time-step value of User-defined Scalars 158 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: Scalaro 159 160 ! K and Epsilon for Gas turbulence 161 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: K_Turb_G 162 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: E_Turb_G 163 164 ! Previous time-step value of K and Epsilon 165 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: K_Turb_Go 166 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: E_Turb_Go 167 168 169 !--------------------------------------------------------------------------> J.Musser TBR 170 DOUBLE PRECISION, DIMENSION(:, :, :), ALLOCATABLE :: EP_SS 171 DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: ERR_ARRAY 172 173 174 CONTAINS 175 176 ! Function to calculate the solids phase M volume fraction. 177 DOUBLE PRECISION FUNCTION EP_s(IJK, xxM) 178 IMPLICIT NONE 179 INTEGER, INTENT(IN) :: IJK ! spatial index 180 INTEGER, INTENT(IN) :: xxM ! solids phase index 181 EP_s = ROP_s(IJK, xxM)/RO_S(IJK,xxM) 182 END FUNCTION 183 184 185 !!!HPF$ align EP_g(:) with TT(:) 186 !!!HPF$ align EP_go(:) with TT(:) 187 !!!HPF$ align P_g(:) with TT(:) 188 !!!HPF$ align P_go(:) with TT(:) 189 !!!HPF$ align RO_g(:) with TT(:) 190 !!!HPF$ align RO_go(:) with TT(:) 191 !!!HPF$ align ROP_g(:) with TT(:) 192 !!!HPF$ align ROP_go(:) with TT(:) 193 !!!HPF$ align D_p(:, *) with TT(:) 194 !!!HPF$ align D_po(:, *) with TT(:) 195 !!!HPF$ align ROP_s(:, *) with TT(:) 196 !!!HPF$ align ROP_so(:, *) with TT(:) 197 !!!HPF$ align T_g(:) with TT(:) 198 !!!HPF$ align T_s(:, *) with TT(:) 199 !!!HPF$ align T_go(:) with TT(:) 200 !!!HPF$ align T_so(:, *) with TT(:) 201 !!!HPF$ align X_g(:, *) with TT(:) 202 !!!HPF$ align X_s(:, *, *) with TT(:) 203 !!!HPF$ align X_go(:, *) with TT(:) 204 !!!HPF$ align X_so(:, *, *) with TT(:) 205 !!!HPF$ align U_g(:) with TT(:) 206 !!!HPF$ align U_go(:) with TT(:) 207 !!!HPF$ align U_s(:, *) with TT(:) 208 !!!HPF$ align U_so(:, *) with TT(:) 209 !!!HPF$ align V_g(:) with TT(:) 210 !!!HPF$ align V_go(:) with TT(:) 211 !!!HPF$ align V_s(:, *) with TT(:) 212 !!!HPF$ align V_so(:, *) with TT(:) 213 !!!HPF$ align W_g(:) with TT(:) 214 !!!HPF$ align W_go(:) with TT(:) 215 !!!HPF$ align W_s(:, *) with TT(:) 216 !!!HPF$ align W_so(:, *) with TT(:) 217 !!!HPF$ align P_s(:, *) with TT(:) 218 !!!HPF$ align P_s_c(:, *) with TT(:) 219 !!!HPF$ align P_star(:) with TT(:) 220 !!!HPF$ align P_staro(:) with TT(:) 221 !!!HPF$ align THETA_m(:, *) with TT(:) 222 !!!HPF$ align THETA_mo(:, *) with TT(:) 223 224 225 END MODULE fldvar 226