1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC 2 ! C 3 ! Module name: VAVG_V_g C 4 ! Purpose: Volume average V_g 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_V_G () 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 bc 31 USE compar 32 USE fldvar 33 USE functions 34 USE geometry 35 USE indices 36 USE mpi_utility 37 USE parallel 38 USE param 39 USE param1 40 USE physprop 41 USE run 42 USE utilities, ONLY: mfix_isnan 43 44 IMPLICIT NONE 45 !----------------------------------------------- 46 ! G l o b a l P a r a m e t e r s 47 !----------------------------------------------- 48 !----------------------------------------------- 49 ! L o c a l P a r a m e t e r s 50 !----------------------------------------------- 51 !----------------------------------------------- 52 ! L o c a l V a r i a b l e s 53 !----------------------------------------------- 54 ! 55 ! Indices 56 INTEGER IJK 57 ! 58 ! Integral of V_g*EP_g for entire volume 59 DOUBLE PRECISION SUM_V_g 60 ! 61 ! Total volume of computational cells 62 DOUBLE PRECISION SUM_VOL 63 64 ! Integrate the velocity values for the whole domain 65 ! 66 SUM_V_G = ZERO 67 SUM_VOL = ZERO 68 69 !!!!$omp parallel do private(IJK) reduction(+:SUM_VOL,SUM_V_G) 70 DO IJK = IJKSTART3, IJKEND3 71 IF(.NOT.IS_ON_myPE_wobnd(I_OF(IJK), J_OF(IJK), K_OF(IJK))) CYCLE 72 IF (FLUID_AT(IJK)) THEN 73 SUM_VOL = SUM_VOL + VOL_V(IJK) 74 SUM_V_G = SUM_V_G + V_G(IJK)*EP_G(IJK)*VOL_V(IJK) 75 ENDIF 76 END DO 77 78 CALL GLOBAL_ALL_SUM(SUM_VOL) 79 CALL GLOBAL_ALL_SUM(SUM_V_G) 80 81 VAVG_V_G = SUM_V_G/SUM_VOL 82 ! 83 ! uncomment the following lines to enable trapping NaN's. 84 ! IF(mfix_isnan(VAVG_V_G) ) THEN 85 ! write(*,*) VAVG_V_G, ' NaN being caught in VAVG_V_G.f ' 86 ! AUTOMATIC_RESTART = .TRUE. 87 ! ENDIF 88 89 RETURN 90 END FUNCTION VAVG_V_G 91 92 DOUBLE PRECISION FUNCTION VAVG_Flux_V_G () 93 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98 94 !...Switches: -xf 95 ! 96 !----------------------------------------------- 97 ! M o d u l e s 98 !----------------------------------------------- 99 USE param 100 USE param1 101 USE parallel 102 USE run 103 USE fldvar 104 USE bc 105 USE geometry 106 USE physprop 107 USE indices 108 USE compar 109 USE mpi_utility 110 USE mflux 111 USE functions 112 113 IMPLICIT NONE 114 !----------------------------------------------- 115 ! G l o b a l P a r a m e t e r s 116 !----------------------------------------------- 117 !----------------------------------------------- 118 ! L o c a l P a r a m e t e r s 119 !----------------------------------------------- 120 !----------------------------------------------- 121 ! L o c a l V a r i a b l e s 122 !----------------------------------------------- 123 ! 124 ! Indices 125 INTEGER IJK 126 ! 127 ! Integral of V_g*EP_g for entire volume 128 DOUBLE PRECISION SUM_V_g 129 ! 130 ! Total volume of computational cells 131 DOUBLE PRECISION SUM_AREA 132 133 ! Integrate the velocity values for the whole domain 134 ! 135 SUM_V_G = ZERO 136 SUM_AREA = ZERO 137 138 !!!!$omp parallel do private(IJK) reduction(+:SUM_AREA,SUM_V_G) 139 DO IJK = IJKSTART3, IJKEND3 140 IF(.NOT.IS_ON_myPE_wobnd(I_OF(IJK), J_OF(IJK), K_OF(IJK))) CYCLE 141 IF (FLUID_AT(IJK)) THEN 142 IF(.NOT.ADDED_MASS) THEN 143 SUM_V_G = SUM_V_G + Flux_gN(IJK) 144 ELSE 145 SUM_V_G = SUM_V_G + Flux_gSN(IJK) 146 ENDIF 147 SUM_AREA = SUM_AREA + AXZ(IJK) 148 ENDIF 149 END DO 150 151 CALL GLOBAL_ALL_SUM(SUM_AREA) 152 CALL GLOBAL_ALL_SUM(SUM_V_G) 153 154 VAVG_Flux_V_G = SUM_V_G/SUM_AREA 155 ! 156 RETURN 157 END FUNCTION VAVG_Flux_V_G 158