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