1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC 2 ! C 3 ! Module name: UNDER_RELAX_S(Var, A_m, B_m, M, UR, IER) C 4 ! Purpose: Underrelax scalar equations C 5 ! C 6 ! C 7 ! Author: M. Syamlal Date: 24-MAY-96 C 8 ! Reviewer: Date: C 9 ! C 10 ! C 11 ! Literature/Document References: C 12 ! C 13 ! Variables referenced: C 14 ! Variables modified: C 15 ! C 16 ! Local variables: C 17 ! C 18 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C 19 ! 20 SUBROUTINE UNDER_RELAX_S(VAR, A_M, B_M, M, UR) 21 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98 22 !...Switches: -xf 23 ! 24 !----------------------------------------------- 25 ! M o d u l e s 26 !----------------------------------------------- 27 USE param 28 USE param1 29 USE geometry 30 USE indices 31 USE compar 32 USE sendrecv 33 USE functions 34 35 IMPLICIT NONE 36 !----------------------------------------------- 37 ! G l o b a l P a r a m e t e r s 38 !----------------------------------------------- 39 !----------------------------------------------- 40 ! D u m m y A r g u m e n t s 41 !----------------------------------------------- 42 ! 43 ! phase index 44 INTEGER M 45 ! 46 ! index 47 INTEGER IJK 48 ! 49 ! Septadiagonal matrix A_m 50 DOUBLE PRECISION A_m(DIMENSION_3, -3:3, 0:DIMENSION_M) 51 ! 52 ! Vector b_m 53 DOUBLE PRECISION B_m(DIMENSION_3, 0:DIMENSION_M) 54 ! 55 ! Variable 56 DOUBLE PRECISION Var(DIMENSION_3) 57 ! 58 ! Under-relaxation factor 59 DOUBLE PRECISION UR 60 ! 61 ! Functions of under-relaxation factor 62 DOUBLE PRECISION f1, f2 63 ! 64 ! center coefficient 65 DOUBLE PRECISION ap 66 67 F1 = ONE/UR 68 F2 = F1 - ONE 69 ! 70 !!!$omp parallel do private(IJK,AP) 71 DO IJK = ijkstart3, ijkend3 72 IF (FLUID_AT(IJK)) THEN 73 AP = A_M(IJK,0,M) 74 IF (AP /= (-ONE)) THEN 75 A_M(IJK,0,M) = AP*F1 76 B_M(IJK,M) = B_M(IJK,M) + AP*VAR(IJK)*F2 77 ENDIF 78 ENDIF 79 END DO 80 RETURN 81 END SUBROUTINE UNDER_RELAX_S 82 ! 83 ! 84 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC 85 ! C 86 ! Module name: UNDER_RELAX_U(Var, A_m, B_m, M, UR, IER) C 87 ! Purpose: Underrelax u-momentum equations C 88 ! C 89 ! C 90 ! Author: M. Syamlal Date: 24-MAY-96 C 91 ! Reviewer: Date: C 92 ! C 93 ! C 94 ! Literature/Document References: C 95 ! C 96 ! Variables referenced: C 97 ! Variables modified: C 98 ! C 99 ! Local variables: C 100 ! C 101 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C 102 ! 103 SUBROUTINE UNDER_RELAX_U(VAR, A_M, B_M, M, UR) 104 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98 105 !...Switches: -xf 106 ! 107 !----------------------------------------------- 108 ! M o d u l e s 109 !----------------------------------------------- 110 USE param 111 USE param1 112 USE geometry 113 USE indices 114 USE compar 115 USE sendrecv 116 USE functions 117 118 IMPLICIT NONE 119 !----------------------------------------------- 120 ! G l o b a l P a r a m e t e r s 121 !----------------------------------------------- 122 !----------------------------------------------- 123 ! D u m m y A r g u m e n t s 124 !----------------------------------------------- 125 ! 126 ! phase index 127 INTEGER M 128 ! 129 ! index 130 INTEGER IJK 131 ! 132 ! Septadiagonal matrix A_m 133 DOUBLE PRECISION A_m(DIMENSION_3, -3:3, 0:DIMENSION_M) 134 ! 135 ! Vector b_m 136 DOUBLE PRECISION B_m(DIMENSION_3, 0:DIMENSION_M) 137 ! 138 ! Variable 139 DOUBLE PRECISION Var(DIMENSION_3) 140 ! 141 ! Under-relaxation factor 142 DOUBLE PRECISION UR 143 ! 144 ! Functions of under-relaxation factor 145 DOUBLE PRECISION f1, f2 146 ! 147 ! center coefficient 148 DOUBLE PRECISION ap 149 150 F1 = ONE/UR 151 F2 = F1 - ONE 152 ! 153 !!!$omp parallel do private(IJK,AP) 154 DO IJK = ijkstart3, ijkend3 155 IF (FLOW_AT_E(IJK)) THEN 156 AP = A_M(IJK,0,M) 157 IF (AP /= (-ONE)) THEN 158 A_M(IJK,0,M) = AP*F1 159 B_M(IJK,M) = B_M(IJK,M) + AP*VAR(IJK)*F2 160 ENDIF 161 ENDIF 162 END DO 163 RETURN 164 END SUBROUTINE UNDER_RELAX_U 165 ! 166 ! 167 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC 168 ! C 169 ! Module name: UNDER_RELAX_V(Var, A_m, B_m, M, UR, IER) C 170 ! Purpose: Underrelax v-momentum equations C 171 ! C 172 ! C 173 ! Author: M. Syamlal Date: 24-MAY-96 C 174 ! Reviewer: Date: C 175 ! C 176 ! C 177 ! Literature/Document References: C 178 ! C 179 ! Variables referenced: C 180 ! Variables modified: C 181 ! C 182 ! Local variables: C 183 ! C 184 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C 185 ! 186 SUBROUTINE UNDER_RELAX_V(VAR, A_M, B_M, M, UR) 187 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98 188 !...Switches: -xf 189 ! 190 !----------------------------------------------- 191 ! M o d u l e s 192 !----------------------------------------------- 193 USE param 194 USE param1 195 USE geometry 196 USE indices 197 USE compar 198 USE sendrecv 199 USE functions 200 201 IMPLICIT NONE 202 !----------------------------------------------- 203 ! G l o b a l P a r a m e t e r s 204 !----------------------------------------------- 205 !----------------------------------------------- 206 ! D u m m y A r g u m e n t s 207 !----------------------------------------------- 208 209 ! phase index 210 INTEGER M 211 ! 212 ! index 213 INTEGER IJK 214 ! 215 ! Septadiagonal matrix A_m 216 DOUBLE PRECISION A_m(DIMENSION_3, -3:3, 0:DIMENSION_M) 217 ! 218 ! Vector b_m 219 DOUBLE PRECISION B_m(DIMENSION_3, 0:DIMENSION_M) 220 ! 221 ! Variable 222 DOUBLE PRECISION Var(DIMENSION_3) 223 ! 224 ! Under-relaxation factor 225 DOUBLE PRECISION UR 226 ! 227 ! Functions of under-relaxation factor 228 DOUBLE PRECISION f1, f2 229 ! 230 ! center coefficient 231 DOUBLE PRECISION ap 232 233 F1 = ONE/UR 234 F2 = F1 - ONE 235 ! 236 !!!$omp parallel do private(IJK,AP) 237 DO IJK = ijkstart3, ijkend3 238 IF (FLOW_AT_N(IJK)) THEN 239 AP = A_M(IJK,0,M) 240 IF (AP /= (-ONE)) THEN 241 A_M(IJK,0,M) = AP*F1 242 B_M(IJK,M) = B_M(IJK,M) + AP*VAR(IJK)*F2 243 ENDIF 244 ENDIF 245 END DO 246 RETURN 247 END SUBROUTINE UNDER_RELAX_V 248 ! 249 ! 250 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC 251 ! C 252 ! Module name: UNDER_RELAX_W(Var, A_m, B_m, M, UR, IER) C 253 ! Purpose: Underrelax w-momentum equations C 254 ! C 255 ! C 256 ! Author: M. Syamlal Date: 24-MAY-96 C 257 ! Reviewer: Date: C 258 ! C 259 ! C 260 ! Literature/Document References: C 261 ! C 262 ! Variables referenced: C 263 ! Variables modified: C 264 ! C 265 ! Local variables: C 266 ! C 267 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C 268 ! 269 SUBROUTINE UNDER_RELAX_W(VAR, A_M, B_M, M, UR) 270 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98 271 !...Switches: -xf 272 ! 273 !----------------------------------------------- 274 ! M o d u l e s 275 !----------------------------------------------- 276 USE param 277 USE param1 278 USE geometry 279 USE indices 280 USE compar 281 USE sendrecv 282 USE functions 283 284 IMPLICIT NONE 285 !----------------------------------------------- 286 ! G l o b a l P a r a m e t e r s 287 !----------------------------------------------- 288 !----------------------------------------------- 289 ! D u m m y A r g u m e n t s 290 !----------------------------------------------- 291 292 ! phase index 293 INTEGER M 294 ! 295 ! index 296 INTEGER IJK 297 ! 298 ! Septadiagonal matrix A_m 299 DOUBLE PRECISION A_m(DIMENSION_3, -3:3, 0:DIMENSION_M) 300 ! 301 ! Vector b_m 302 DOUBLE PRECISION B_m(DIMENSION_3, 0:DIMENSION_M) 303 ! 304 ! Variable 305 DOUBLE PRECISION Var(DIMENSION_3) 306 ! 307 ! Under-relaxation factor 308 DOUBLE PRECISION UR 309 ! 310 ! Functions of under-relaxation factor 311 DOUBLE PRECISION f1, f2 312 ! 313 ! center coefficient 314 DOUBLE PRECISION ap 315 316 F1 = ONE/UR 317 F2 = F1 - ONE 318 ! 319 !!!$omp parallel do private(IJK,AP) 320 DO IJK = ijkstart3, ijkend3 321 IF (FLOW_AT_T(IJK)) THEN 322 AP = A_M(IJK,0,M) 323 IF (AP /= (-ONE)) THEN 324 A_M(IJK,0,M) = AP*F1 325 B_M(IJK,M) = B_M(IJK,M) + AP*VAR(IJK)*F2 326 ENDIF 327 ENDIF 328 END DO 329 RETURN 330 END SUBROUTINE UNDER_RELAX_W 331 332 !// Comments on the modifications for DMP version implementation 333 !// 001 Include header file and common declarations for parallelization 334 !// 350 Changed do loop limits: 1,ijkmax2-> ijkstart3, ijkend3 335