1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC 2 ! C 3 ! Module name: VAVG_W_g C 4 ! Purpose: Calculate volume averaged W_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_W_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 IMPLICIT NONE 44 !----------------------------------------------- 45 ! G l o b a l P a r a m e t e r s 46 !----------------------------------------------- 47 !----------------------------------------------- 48 ! L o c a l P a r a m e t e r s 49 !----------------------------------------------- 50 !----------------------------------------------- 51 ! L o c a l V a r i a b l e s 52 !----------------------------------------------- 53 ! 54 ! Indices 55 INTEGER IJK 56 ! 57 ! Integral of W_g*EP_g for entire volume 58 DOUBLE PRECISION SUM_W_g 59 ! 60 ! Total volume of computational cells 61 DOUBLE PRECISION SUM_VOL 62 63 ! Integrate the velocity values for the whole domain, 64 ! 65 SUM_W_G = ZERO 66 SUM_VOL = ZERO 67 68 !!!!$omp parallel do private(IJK) reduction(+:SUM_VOL,SUM_W_G) 69 DO IJK = IJKSTART3, IJKEND3 70 IF(.NOT.IS_ON_myPE_wobnd(I_OF(IJK), J_OF(IJK), K_OF(IJK))) CYCLE 71 IF (FLUID_AT(IJK)) THEN 72 SUM_VOL = SUM_VOL + VOL_W(IJK) 73 SUM_W_G = SUM_W_G + W_G(IJK)*EP_G(IJK)*VOL_W(IJK) 74 ENDIF 75 END DO 76 77 CALL GLOBAL_ALL_SUM(SUM_VOL) 78 CALL GLOBAL_ALL_SUM(SUM_W_G) 79 VAVG_W_G = SUM_W_G/SUM_VOL 80 ! 81 ! uncomment the following lines to enable trapping NaN's. 82 ! IF( mfix_isnan(VAVG_W_G) ) THEN 83 ! write(*,*) VAVG_W_G, ' NaN being caught in VAVG_W_G.f ' 84 ! AUTOMATIC_RESTART = .TRUE. 85 ! ENDIF 86 ! 87 RETURN 88 END FUNCTION VAVG_W_G 89 90 91 92 DOUBLE PRECISION FUNCTION VAVG_Flux_W_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 IMPLICIT NONE 113 !----------------------------------------------- 114 ! G l o b a l P a r a m e t e r s 115 !----------------------------------------------- 116 !----------------------------------------------- 117 ! L o c a l P a r a m e t e r s 118 !----------------------------------------------- 119 !----------------------------------------------- 120 ! L o c a l V a r i a b l e s 121 !----------------------------------------------- 122 ! 123 ! Indices 124 INTEGER IJK 125 ! 126 ! Integral of W_g*EP_g for entire volume 127 DOUBLE PRECISION SUM_W_g 128 ! 129 ! Total volume of computational cells 130 DOUBLE PRECISION SUM_AREA 131 ! 132 !----------------------------------------------- 133 ! 134 ! Integrate the velocity values for the whole domain, 135 ! 136 SUM_W_G = ZERO 137 SUM_AREA = ZERO 138 139 !!!!$omp parallel do private(IJK) reduction(+:SUM_AREA,SUM_W_G) 140 DO IJK = IJKSTART3, IJKEND3 141 IF(.NOT.IS_ON_myPE_wobnd(I_OF(IJK), J_OF(IJK), K_OF(IJK))) CYCLE 142 IF (FLUID_AT(IJK)) THEN 143 IF(.NOT.ADDED_MASS) THEN 144 SUM_W_G = SUM_W_G + Flux_gT(IJK) 145 ELSE 146 SUM_W_G = SUM_W_G + Flux_gST(IJK) 147 ENDIF 148 SUM_AREA = SUM_AREA + AXY(IJK) 149 ENDIF 150 END DO 151 152 CALL GLOBAL_ALL_SUM(SUM_AREA) 153 CALL GLOBAL_ALL_SUM(SUM_W_G) 154 VAVG_Flux_W_G = SUM_W_G/SUM_AREA 155 ! 156 RETURN 157 END FUNCTION VAVG_Flux_W_G 158