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