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