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

1     MODULE functions
2     
3     ! Functions for generating IJK indices for indicated basis:
4     !---------------------------------------------------------------------//
5     ! INTEGER :: FUNIJK, FUNIJK_0
6     ! INTEGER :: FUNIJK_PROC
7     ! INTEGER :: FUNIJK_GL
8     ! INTEGER :: FUNIJK_IO
9     
10     
11     ! Logical functions to determine whether index is on my PE's domain or
12     ! indicated subset:
13     !---------------------------------------------------------------------//
14     ! LOGICAL :: IS_ON_myPE_owns
15     ! LOGICAL :: IS_ON_myPE_plus1layer
16     ! LOGICAL :: IS_ON_myPE_plus2layers
17     ! LOGICAL :: IS_ON_myPE_wobnd
18     
19     
20     ! Functions for calculating indicated directional shift in given IJK
21     ! index. This will return the ijk index of the computational cell
22     ! corresponding to the indicated shift when that computational cell
23     ! is NOT a wall cell. If the computational cell is a wall cell then
24     ! this will return its own ijk index. For example, east_of will return
25     ! IPJK when IPJK is a fluid or flow at cell. However, if IPJK is a
26     ! wall cell east_of will return IJK.
27     !---------------------------------------------------------------------//
28     ! INTEGER :: EAST_OF, EAST_OF_0
29     ! INTEGER :: WEST_OF, WEST_OF_0
30     ! INTEGER :: SOUTH_OF, SOUTH_OF_0
31     ! INTEGER :: NORTH_OF, NORTH_OF_0
32     ! INTEGER :: BOTTOM_OF, BOTTOM_OF_0
33     ! INTEGER :: TOP_OF, TOP_OF_0
34     
35     
36     ! Functions for calculating indicated directional shift in given IJK
37     ! index. This will generally return the ijk index of the computational
38     ! cell corresponding to the indicated shift regardless of the wall
39     ! status of that computational cell. It may not return corner cells
40     ! unless the ijk cell itself is a corner cell.
41     !---------------------------------------------------------------------//
42     ! INTEGER :: IP_OF, IP_OF_0
43     ! INTEGER :: IM_OF, IM_OF_0
44     ! INTEGER :: JP_OF, JP_OF_0
45     ! INTEGER :: JM_OF, JM_OF_0
46     ! INTEGER :: KP_OF, KP_OF_0
47     ! INTEGER :: KM_OF, KM_OF_0
48     
49     
50     ! Logical functions to identify indicated condition:
51     !---------------------------------------------------------------------//
52     ! logical function to identify various fluid/flow cells
53     ! LOGICAL :: FLUID_AT
54     ! LOGICAL :: P_FLOW_AT
55     ! LOGICAL :: P_OUTFLOW_AT
56     ! LOGICAL :: MASS_OUTFLOW_AT
57     ! LOGICAL :: OUTFLOW_AT
58     ! LOGICAL :: FLOW_AT
59     ! LOGICAL :: FLUIDorP_FLOW_AT
60     
61     ! logical function to identify various wall cells
62     ! LOGICAL :: WALL_AT
63     ! LOGICAL :: NS_WALL_AT, FS_WALL_AT, PS_WALL_AT
64     ! LOGICAL :: DEFAULT_WALL_AT
65     ! LOGICAL :: WALL_ICBC_FLAG
66     
67     ! Logical function to identify a cyclic cell and different
68     ! cyclic flow boundaries
69     ! LOGICAL :: CYCLIC_AT
70     ! LOGICAL :: CYCLIC_AT_E, CYCLIC_AT_N, CYCLIC_AT_T
71     
72     ! logical function to identify different flow at boundaries
73     ! LOGICAL :: FLOW_AT_E, FLOW_AT_N, FLOW_AT_T
74     ! LOGICAL :: PFLOW_AT_E, PFLOW_AT_N, PFLOW_AT_T
75     ! LOGICAL :: MFLOW_AT_E, MFLOW_AT_N, MFLOW_AT_T
76     
77     ! Logical functions to identify different impermeable/semipermeable
78     ! surface boundaries (specific type of internal surface)
79     ! LOGICAL :: IP_AT_E, IP_AT_N, IP_AT_T
80     ! LOGICAL :: SIP_AT_E, SIP_AT_N, SIP_AT_T
81     ! LOGICAL :: SP_AT_E, SP_AT_N, SP_AT_T
82     
83     ! Logical functions concerning general internal surfaces
84     ! LOGICAL :: IS_AT_E, IS_AT_N, IS_AT_T
85     ! LOGICAL :: NO_IS_AT_E, NO_IS_AT_N, NO_IS_AT_T
86     ! Integer function to return internal surface ID
87     ! INTEGER :: IS_ID_AT_E, IS_ID_AT_N, IS_ID_AT_T
88     
89     
90     ! Additional functions
91     !---------------------------------------------------------------------//
92     ! DOUBLE PRECISION :: ZMAX
93     ! INTEGER FUNCTION :: FUNLM
94     
95     
96     CONTAINS
97     
98       INCLUDE 'functions.inc'
99     
100     END MODULE functions
101