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

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2     !                                                                      C
3     !  Module name: SET_MAX2                                               C
4     !  Purpose: calculate IMAX1,IMAX2,JMAX1,JMAX2,KMAX1,KMAX2,IJMAX2       C
5     !                     IJKMAX2                                          C
6     !                                                                      C
7     !  Author: P. Nicoletti                               Date: 04-DEC-91  C
8     !  Reviewer: M.SYAMLAL, W.ROGERS, P.NICOLETTI         Date: 24-JAN-92  C
9     !                                                                      C
10     !  Literature/Document References:                                     C
11     !                                                                      C
12     !  Variables referenced: IMAX, JMAX, KMAX, NO_I, NO_J, NO_K            C
13     !  Variables modified: IMAX1, IMAX2, JMAX1, JMAX2, KMAX1, KMAX2        C
14     !                      IJMAX2, IJKMAX2, IMIN1, JMIN1, KMIN1            C
15     !                                                                      C
16     !  Local variables:                                                    C
17     !                                                                      C
18     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
19           SUBROUTINE SET_MAX2
20     
21     ! X-Axix partition specifications.
22           USE compar, only: NODESI
23           USE geometry, only: IMAX,  NO_I,  DO_I
24           USE geometry, only: IMIN1, IMIN2, IMIN3, IMIN4
25           USE geometry, only: IMAX1, IMAX2, IMAX3, IMAX4
26     
27     ! Y-Axix partition specifications.
28           USE compar, only: NODESJ
29           USE geometry, only: JMAX,  NO_J,  DO_J
30           USE geometry, only: JMIN1, JMIN2, JMIN3, JMIN4
31           USE geometry, only: JMAX1, JMAX2, JMAX3, JMAX4
32     
33     ! Z-Axix partition specifications.
34           USE compar, only: NODESK
35           USE geometry, only: KMAX,  NO_K,  DO_K
36           USE geometry, only: KMIN1, KMIN2, KMIN3, KMIN4
37           USE geometry, only: KMAX1, KMAX2, KMAX3, KMAX4
38     
39     ! Calculated array sizes.
40           USE geometry, only: IJMAX2
41           USE geometry, only: IJKMAX1, IJKMIN1
42           USE geometry, only: IJKMAX2, IJKMAX3, IJKMAX4
43     
44           IMPLICIT NONE
45     
46     
47     ! Initialize I's
48           IMIN1=1;  IMIN2=1;  IMIN3=1;  IMIN4=1
49           IMAX1=1;  IMAX2=1;  IMAX3=1;  IMAX4=1
50     
51           DO_I=.NOT.NO_I
52     
53     ! Set the domain specific values.
54           IF(DO_I) THEN
55              IMIN1 = 2
56              IMAX1 = IMAX + 1
57              IMAX2 = IMAX + 2
58              IMIN2 = 1
59              IF(NODESI.NE.1) THEN
60                 IMIN3 = 0
61                 IMAX3 = IMAX + 3
62                 IMIN4 = -1
63                 IMAX4 = IMAX + 4
64              ELSE
65                 IMIN3 = IMIN2
66                 IMAX3 = IMAX2
67                 IMIN4 = IMIN3
68                 IMAX4 = IMAX3
69              ENDIF
70           ENDIF
71     
72     
73     ! Initialize J's
74           JMIN1=1;  JMIN2=1;  JMIN3=1;  JMIN4=1
75           JMAX1=1;  JMAX2=1;  JMAX3=1;  JMAX4=1
76     
77           DO_J=.NOT.NO_J
78     
79     ! Set the domain specific values.
80           IF(DO_J) THEN
81              JMIN1 = 2
82              JMAX1 = JMAX + 1
83              JMAX2 = JMAX + 2
84              JMIN2 = 1
85              IF(NODESJ.NE.1) THEN
86                 JMIN3 = 0
87                 JMAX3 = JMAX + 3
88                 JMIN4 = -1
89                 JMAX4 = JMAX + 4
90              ELSE
91                 JMIN3 = JMIN2
92                 JMAX3 = JMAX2
93                 JMIN4 = JMIN3
94                 JMAX4 = JMAX3
95              ENDIF
96           ENDIF
97     
98     
99     ! Initialize J's
100           KMIN1=1;  KMIN2=1;  KMIN3=1;  KMIN4=1
101           KMAX1=1;  KMAX2=1;  KMAX3=1;  KMAX4=1
102     
103           DO_K=.NOT.NO_K
104     
105     ! Set the domain specific values.
106           IF (DO_K) THEN
107              KMIN1 = 2
108              KMAX1 = KMAX + 1
109              KMAX2 = KMAX + 2
110              KMIN2 = 1
111              IF(NODESK.NE.1) THEN
112                 KMIN3 = 0
113                 KMAX3 = KMAX + 3
114                 KMIN4 = -1
115                 KMAX4 = KMAX + 4
116              ELSE
117                 KMIN3 = KMIN2
118                 KMAX3 = KMAX2
119                 KMIN4 = KMIN3
120                 KMAX4 = KMAX3
121              ENDIF
122           ENDIF
123     
124     ! Number of cells in I/J plane.
125           IJMAX2 = IMAX2*JMAX2
126     ! Totoal number of possible fluid cells.
127           IJKMAX2 = IMAX2*JMAX2*KMAX2
128     
129           IF (DO_K) THEN
130              IJKMIN1 = IJMAX2 + 1
131              IJKMAX1 = IJKMAX2 - IJMAX2
132           ELSE
133              IJKMIN1 = IMAX2 + 1
134              IJKMAX1 = IJKMAX2 - IMAX2
135           ENDIF
136     
137     ! Max cell count with one layer of ghost cells.
138           IJKMAX3 = (IMAX3-IMIN3+1)*(JMAX3-JMIN3+1)*(KMAX3-KMIN3+1)
139     ! Max cell count with two layers of ghost cells.
140           IJKMAX4 = (IMAX4-IMIN4+1)*(JMAX4-JMIN4+1)*(KMAX4-KMIN4+1)
141     
142           RETURN
143           END SUBROUTINE SET_MAX2
144