File: N:\mfix\model\get_philoss.f

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2     !                                                                      C
3     !  Module name: GET_PHILOSS(LOSS)                                      C
4     !  Purpose: Determine the total loss of sclar Phi through reactor wallsC
5     !                                                                      C
6     !  Author: M. Syamlal                                 Date: 9-MAY-97   C
7     !  Reviewer:                                          Date:            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: IMAX2, JMAX2, KMAX2, MMAX, ROP_s, DX, DY, DZ, C
17     !                        X, IMIN1, JMIN1. KMIN1                        C
18     !  Variables modified: I, J, K, M, IJK                                 C
19     !                                                                      C
20     !  Local variables:  None                                              C
21     !                                                                      C
22     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
23     !
24           SUBROUTINE GET_PHILOSS(PHI,DIFF,BC_PHI_W,BC_HW_PHI,BC_C_PHI,LOSS)
25     !...Translated by Pacific-Sierra Research VAST-90 2.06G5  12:17:31  12/09/98
26     !...Switches: -xf
27     !
28     !  Include param.inc file to specify parameter values
29     !
30     !-----------------------------------------------
31     !   M o d u l e s
32     !-----------------------------------------------
33           USE param
34           USE param1
35           USE physprop
36           USE geometry
37           USE fldvar
38           USE bc
39           USE indices
40           USE energy
41           USE compar
42           USE functions
43           IMPLICIT NONE
44     !-----------------------------------------------
45     !   G l o b a l   P a r a m e t e r s
46     !-----------------------------------------------
47     !-----------------------------------------------
48     !   D u m m y   A r g u m e n t s
49     !-----------------------------------------------
50     !
51     !                      scalar
52           DOUBLE PRECISION Phi(DIMENSION_3)
53     !
54     !                      scalar diffusion coefficient
55           DOUBLE PRECISION Diff(DIMENSION_3)
56     !
57     !                      scalar value at wall
58           DOUBLE PRECISION BC_Phi_w(DIMENSION_BC)
59     !
60     !                      wall transfer coefficient
61           DOUBLE PRECISION BC_hw_Phi(DIMENSION_BC)
62     !
63     !                      wall flux coefficient
64           DOUBLE PRECISION BC_C_Phi(DIMENSION_BC)
65     !
66     !                      scalar loss thorugh wall
67           DOUBLE PRECISION LOSS
68     !
69     !                      Indices
70           INTEGER          L, I, J, K, IJK, IJKE, IJKW, IJKN, IJKS
71           INTEGER          IJKT, IJKB
72     !
73     !                      Indices
74           INTEGER          I1, I2, J1, J2, K1, K2
75     !-----------------------------------------------
76     
77           LOSS = ZERO
78     
79           DO L = 1, DIMENSION_BC
80              IF (BC_DEFINED(L)) THEN
81                 IF (BC_TYPE_ENUM(L)==NO_SLIP_WALL .OR. BC_TYPE_ENUM(L)==FREE_SLIP_WALL&
82                     .OR. BC_TYPE_ENUM(L)==PAR_SLIP_WALL) THEN
83                    I1 = BC_I_W(L)
84                    I2 = BC_I_E(L)
85                    J1 = BC_J_S(L)
86                    J2 = BC_J_N(L)
87                    K1 = BC_K_B(L)
88                    K2 = BC_K_T(L)
89                    DO K = K1, K2
90                       DO J = J1, J2
91                          DO I = I1, I2
92                             IF(.NOT.IS_ON_myPE_Owns(I,J,K)) CYCLE
93                             IF (DEAD_CELL_AT(I,J,K)) CYCLE  ! skip dead cells
94                             IJK = FUNIJK(I,J,K)
95                             IF (FLUID_AT(EAST_OF(IJK))) THEN
96                                IJKE = EAST_OF(IJK)
97                                IF (BC_HW_PHI(L) == UNDEFINED) THEN
98                                   LOSS = LOSS + DIFF(IJKE)*AYZ(IJK)*(PHI(EAST_OF(&
99                                      IJKE))-PHI(IJKE))*ODX_E(IP1(I))
100                                ELSE
101                                   LOSS = LOSS + DIFF(IJKE)*AYZ(IJK)*(BC_HW_PHI(L)*(&
102                                      PHI(IJKE)-BC_PHI_W(L))-BC_C_PHI(L))
103                                ENDIF
104                             ELSE IF (FLUID_AT(WEST_OF(IJK))) THEN
105                                IJKW = WEST_OF(IJK)
106                                IF (BC_HW_PHI(L) == UNDEFINED) THEN
107                                   LOSS = LOSS - DIFF(IJKW)*AYZ(IJKW)*(PHI(IJKW)-PHI&
108                                      (WEST_OF(IJKW)))*ODX_E(IM1(IM1(I)))
109                                ELSE
110                                   LOSS = LOSS + DIFF(IJKW)*AYZ(IJKW)*(BC_HW_PHI(L)*&
111                                      (PHI(IJKW)-BC_PHI_W(L))-BC_C_PHI(L))
112                                ENDIF
113                             ELSE IF (FLUID_AT(NORTH_OF(IJK))) THEN
114                                IJKN = NORTH_OF(IJK)
115                                IF (BC_HW_PHI(L) == UNDEFINED) THEN
116                                   LOSS = LOSS + DIFF(IJKN)*AXZ(IJK)*(PHI(NORTH_OF(&
117                                      IJKN))-PHI(IJKN))*ODY_N(JP1(J))
118                                ELSE
119                                   LOSS = LOSS + DIFF(IJKN)*AXZ(IJK)*(BC_HW_PHI(L)*(&
120                                      PHI(IJKN)-BC_PHI_W(L))-BC_C_PHI(L))
121                                ENDIF
122                             ELSE IF (FLUID_AT(SOUTH_OF(IJK))) THEN
123                                IJKS = SOUTH_OF(IJK)
124                                IF (BC_HW_PHI(L) == UNDEFINED) THEN
125                                   LOSS = LOSS + DIFF(IJKS)*AXZ(JM_OF(IJK))*(PHI(&
126                                      IJKS)-PHI(SOUTH_OF(IJKS)))*ODY_N(JM1(JM1(J)))
127                                ELSE
128                                   LOSS = LOSS + DIFF(IJKS)*AXZ(JM_OF(IJK))*(&
129                                      BC_HW_PHI(L)*(PHI(IJKS)-BC_PHI_W(L))-BC_C_PHI(&
130                                      L))
131                                ENDIF
132                             ELSE IF (FLUID_AT(TOP_OF(IJK))) THEN
133                                IJKT = TOP_OF(IJK)
134                                IF (BC_HW_PHI(L) == UNDEFINED) THEN
135                                   LOSS = LOSS + DIFF(IJKT)*AXY(IJK)*(PHI(TOP_OF(&
136                                      IJKT))-PHI(IJKT))*OX(I)*ODZ_T(KP1(K))
137                                ELSE
138                                   LOSS = LOSS + DIFF(IJKT)*AXY(IJK)*(BC_HW_PHI(L)*(&
139                                      PHI(IJKT)-BC_PHI_W(L))-BC_C_PHI(L))
140                                ENDIF
141                             ELSE IF (FLUID_AT(BOTTOM_OF(IJK))) THEN
142                                IJKB = BOTTOM_OF(IJK)
143                                IF (BC_HW_PHI(L) == UNDEFINED) THEN
144                                   LOSS = LOSS + DIFF(IJKB)*AXY(KM_OF(IJK))*(PHI(&
145                                      IJKB)-PHI(BOTTOM_OF(IJKB)))*OX(I)*ODZ_T(KM1(&
146                                      KM1(K)))
147                                ELSE
148                                   LOSS = LOSS + DIFF(IJKB)*AXY(KM_OF(IJK))*(&
149                                      BC_HW_PHI(L)*(PHI(IJKB)-BC_PHI_W(L))-BC_C_PHI(&
150                                      L))
151                                ENDIF
152                             ENDIF
153                          END DO
154                       END DO
155                    END DO
156                 ENDIF
157              ENDIF
158           END DO
159           RETURN
160           END SUBROUTINE GET_PHILOSS
161     
162     !// Comments on the modifications for DMP version implementation
163     !// 001 Include header file and common declarations for parallelization
164