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