File: /nfs/home/0/users/jenkins/mfix.git/model/function3_mod.f

1     MODULE function3
2     
3       USE functions
4     
5       !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
6       !
7       !                      Function for generating the LOCAL 3-D array index IJK
8       !                      from the 1-D indices I, J, and K.
9       !//FUNIJK is moved to compar for debugging purposes - Sreekanth-10/26/99
10       !      INTEGER          FUNIJK3
11       !                      Function for generating the LOCAL 3-D array index IJK
12       !                      from the 1-D indices I, J, K and IPROC.
13       !      INTEGER          FUNIJK3_PROC
14       !                      Function for generating the GLOBAL 3-D array index IJK
15       !                      from the 1-D indices I, J, and K.
16       !      INTEGER          FUNIJK3_GL
17       !
18       !                      Function for calculating IMJK
19       !      INTEGER          IM3_OF
20       !
21       !                      Function for calculating IPJK
22       !      INTEGER          IP3_OF
23       !
24       !                      Function for calculating IJMK
25       !      INTEGER          JM3_OF
26       !
27       !                      Function for calculating IJPK
28       !      INTEGER          JP3_OF
29       !
30       !                      Function for calculating IJKM
31       !      INTEGER          KM3_OF
32       !
33       !                      Function for calculating IJKP
34       !      INTEGER          KP3_OF
35       !
36       !                      Logical function to identify a fluid cell
37       !      LOGICAL          FLUID3_AT
38       !
39       !                      Logical function to identify a cyclic cell
40       !      LOGICAL          CYCLIC3_AT
41       !
42       !                      DUMMY INDICES
43       !      INTEGER          LI3, LJ3, LK3, LIPROC3, IJK3
44       !
45     
46     contains
47     
48       INTEGER FUNCTION FUNIJK3(LI3,LJ3,LK3)
49         USE compar
50         IMPLICIT NONE
51         INTEGER, INTENT(IN) :: LI3,LJ3,LK3
52         FUNIJK3 = LJ3 + c0_3 + LI3*c1_3 + LK3*c2_3
53       END FUNCTION FUNIJK3
54     
55       INTEGER FUNCTION FUNIJK3_PROC(LI3, LJ3, LK3, LIPROC3)
56         USE compar
57         IMPLICIT NONE
58         INTEGER, INTENT(IN) :: LI3,LJ3,LK3,LIPROC3
59         FUNIJK3_PROC = 1 + (LJ3 - jstart4_all(LIPROC3))+ &
60              (LI3-Istart4_all(LIPROC3))*(jend4_all(LIPROC3)-jstart4_all(LIPROC3)+1) &
61              + (LK3-kstart4_all(LIPROC3))*(jend4_all(LIPROC3)-jstart4_all(LIPROC3)+1)* &
62              (iend4_all(LIPROC3)-istart4_all(LIPROC3)+1)
63       END FUNCTION FUNIJK3_PROC
64     
65       INTEGER FUNCTION FUNIJK3_GL (LI3, LJ3, LK3)
66         USE geometry
67         IMPLICIT NONE
68         INTEGER, INTENT(IN) :: LI3,LJ3,LK3
69         FUNIJK3_GL = 1 + (LJ3 - jmin4) + (LI3-imin4)*(jmax4-jmin4+1) &
70              + (LK3-kmin4)*(jmax4-jmin4+1)*(imax4-imin4+1)
71       END FUNCTION FUNIJK3_GL
72     
73       INTEGER FUNCTION IM3_OF  (IJK3)
74         USE indices
75         IMPLICIT NONE
76         INTEGER IJK3
77         IM3_OF       = IJK3 + INCREMENT3_FOR_im(CELL_CLASS3(IJK3))
78       END FUNCTION IM3_OF
79     
80       INTEGER FUNCTION IP3_OF  (IJK3)
81         USE indices
82         IMPLICIT NONE
83         INTEGER IJK3
84         IP3_OF       = IJK3 + INCREMENT3_FOR_ip(CELL_CLASS3(IJK3))
85       END FUNCTION IP3_OF
86     
87       INTEGER FUNCTION JM3_OF (IJK3)
88         USE indices
89         IMPLICIT NONE
90         INTEGER IJK3
91         JM3_OF       = IJK3 + INCREMENT3_FOR_jm(CELL_CLASS3(IJK3))
92       END FUNCTION JM3_OF
93     
94       INTEGER FUNCTION JP3_OF (IJK3)
95         USE indices
96         IMPLICIT NONE
97         INTEGER IJK3
98         JP3_OF       = IJK3 + INCREMENT3_FOR_jp(CELL_CLASS3(IJK3))
99       END FUNCTION JP3_OF
100     
101       INTEGER FUNCTION KM3_OF(IJK3)
102         USE indices
103         IMPLICIT NONE
104         INTEGER IJK3
105         KM3_OF       = IJK3 + INCREMENT3_FOR_km(CELL_CLASS3(IJK3))
106       END FUNCTION KM3_OF
107     
108       INTEGER FUNCTION KP3_OF   (IJK3)
109         USE indices
110         IMPLICIT NONE
111         INTEGER IJK3
112         KP3_OF       = IJK3 + INCREMENT3_FOR_kp(CELL_CLASS3(IJK3))
113       END FUNCTION KP3_OF
114     
115       LOGICAL FUNCTION FLUID3_AT(IJK3)
116         USE geometry
117         IMPLICIT NONE
118         INTEGER IJK3
119         FLUID3_AT    = FLAG3(IJK3) .EQ. 1
120       END FUNCTION FLUID3_AT
121     
122       LOGICAL FUNCTION CYCLIC3_AT(IJK3)
123         USE geometry
124         IMPLICIT NONE
125         INTEGER IJK3
126         CYCLIC3_AT   = FLAG3(IJK3) .EQ. 106 .OR. &
127              FLAG3(IJK3) .EQ. 107
128       END FUNCTION CYCLIC3_AT
129     
130     END MODULE function3
131