1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC 2 ! C 3 ! Module name: VAVG_U_s(M) C 4 ! Purpose: Volume average U_s C 5 ! C 6 ! Author: M. Syamlal Date: 28-APR-94 C 7 ! Reviewer: Date: dd-mmm-yy C 8 ! C 9 ! Revision Number: C 10 ! Purpose: C 11 ! Author: Date: dd-mmm-yy C 12 ! Reviewer: Date: dd-mmm-yy C 13 ! C 14 ! Literature/Document References: C 15 ! C 16 ! Variables referenced: C 17 ! Variables modified: C 18 ! C 19 ! Local variables: C 20 ! C 21 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C 22 ! 23 DOUBLE PRECISION FUNCTION VAVG_U_S (M) 24 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98 25 !...Switches: -xf 26 ! 27 !----------------------------------------------- 28 ! M o d u l e s 29 !----------------------------------------------- 30 USE param 31 USE param1 32 USE parallel 33 USE fldvar 34 USE bc 35 USE geometry 36 USE physprop 37 USE indices 38 USE compar 39 USE mpi_utility 40 USE functions 41 42 IMPLICIT NONE 43 !----------------------------------------------- 44 ! G l o b a l P a r a m e t e r s 45 !----------------------------------------------- 46 !----------------------------------------------- 47 ! D u m m y A r g u m e n t s 48 !----------------------------------------------- 49 INTEGER M 50 ! 51 ! Indices 52 INTEGER IJK 53 ! 54 ! Integral of U_s*EP_s for entire volume 55 DOUBLE PRECISION SUM_U_s 56 ! 57 ! Total volume of computational cells 58 DOUBLE PRECISION SUM_VOL 59 60 ! Integrate the velocity values for the whole domain, 61 ! 62 SUM_U_S = ZERO 63 SUM_VOL = ZERO 64 65 !!!!$omp parallel do private(IJK) reduction(+:SUM_VOL,SUM_U_S) 66 DO IJK = IJKSTART3, IJKEND3 67 IF(.NOT.IS_ON_myPE_wobnd(I_OF(IJK), J_OF(IJK), K_OF(IJK))) CYCLE 68 IF (FLUID_AT(IJK)) THEN 69 SUM_VOL = SUM_VOL + VOL_U(IJK) 70 SUM_U_S = SUM_U_S + U_S(IJK,M)*EP_S(IJK,M)*VOL_U(IJK) 71 ENDIF 72 END DO 73 74 CALL GLOBAL_ALL_SUM(SUM_VOL) 75 CALL GLOBAL_ALL_SUM(SUM_U_S) 76 VAVG_U_S = SUM_U_S/SUM_VOL 77 ! 78 RETURN 79 END FUNCTION VAVG_U_S 80 81 !// Comments on the modifications for DMP version implementation 82 !// 001 Include header file and common declarations for parallelization 83 !// 350 Changed do loop limits: 1,ijkmax2-> ijkstart3, ijkend3 84 !// 400 Added mpi_utility module and other global reduction (sum) calls 85