MFIX  2016-1
functions_mod.f
Go to the documentation of this file.
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