1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC 2 ! C 3 ! Module name: VAVG_U_g C 4 ! Purpose: Volume average U_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_U_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 U_g*EP_g for entire volume 58 DOUBLE PRECISION SUM_U_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_U_G = ZERO 66 SUM_VOL = ZERO 67 68 69 !!!!$omp parallel do private(IJK) reduction(+:SUM_VOL,SUM_U_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_U(IJK) 74 SUM_U_G = SUM_U_G + U_G(IJK)*EP_G(IJK)*VOL_U(IJK) 75 ENDIF 76 END DO 77 78 CALL GLOBAL_ALL_SUM(SUM_VOL) 79 CALL GLOBAL_ALL_SUM(SUM_U_G) 80 81 VAVG_U_G = SUM_U_G/SUM_VOL 82 ! 83 ! uncomment the following lines to enable trapping NaN's. 84 ! IF( mfix_isnan(VAVG_U_G) ) THEN 85 ! write(*,*) VAVG_U_G, ' NaN being caught in VAVG_U_G.f ' 86 ! AUTOMATIC_RESTART = .TRUE. 87 ! ENDIF 88 ! 89 RETURN 90 END FUNCTION VAVG_U_G 91 92 93 94 DOUBLE PRECISION FUNCTION VAVG_Flux_U_G () 95 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98 96 !...Switches: -xf 97 ! 98 !----------------------------------------------- 99 ! M o d u l e s 100 !----------------------------------------------- 101 USE param 102 USE param1 103 USE parallel 104 USE run 105 USE fldvar 106 USE bc 107 USE geometry 108 USE physprop 109 USE indices 110 USE compar 111 USE mpi_utility 112 USE mflux 113 USE functions 114 115 IMPLICIT NONE 116 !----------------------------------------------- 117 ! G l o b a l P a r a m e t e r s 118 !----------------------------------------------- 119 !----------------------------------------------- 120 ! L o c a l P a r a m e t e r s 121 !----------------------------------------------- 122 !----------------------------------------------- 123 ! L o c a l V a r i a b l e s 124 !----------------------------------------------- 125 ! 126 ! Indices 127 INTEGER IJK 128 ! 129 ! Integral of U_g*ROP_g*Area 130 DOUBLE PRECISION SUM_U_g 131 ! 132 ! Total area of computational cells 133 DOUBLE PRECISION SUM_AREA 134 135 ! Integrate the velocity values for the whole domain, 136 ! 137 SUM_U_G = ZERO 138 SUM_AREA = ZERO 139 140 141 !!!!$omp parallel do private(IJK) reduction(+:SUM_AREA,SUM_U_G) 142 DO IJK = IJKSTART3, IJKEND3 143 IF(.NOT.IS_ON_myPE_wobnd(I_OF(IJK), J_OF(IJK), K_OF(IJK))) CYCLE 144 IF (FLUID_AT(IJK)) THEN 145 IF(.NOT.ADDED_MASS) THEN 146 SUM_U_G = SUM_U_G + Flux_gE(IJK) 147 ELSE 148 SUM_U_G = SUM_U_G + Flux_gSE(IJK) 149 ENDIF 150 SUM_AREA = SUM_AREA + AYZ(IJK) 151 ENDIF 152 END DO 153 154 CALL GLOBAL_ALL_SUM(SUM_AREA) 155 CALL GLOBAL_ALL_SUM(SUM_U_G) 156 157 VAVG_Flux_U_G = SUM_U_G/SUM_AREA 158 ! 159 RETURN 160 END FUNCTION VAVG_Flux_U_G 161 162