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

1       MODULE ghdtheory
2     
3     
4           Use param
5           Use param1
6     
7     !
8     !     Zeroth order dissipation term
9           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: Zeta0
10     !
11     !     cooling rate transport coefficient (1st order)
12           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: ZetaU
13     !
14     !     Thermal diffusivity DiT
15           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: DiT
16     !
17     !     Mass mobility coefficient
18           DOUBLE PRECISION, DIMENSION(:, :, :), ALLOCATABLE :: DijF
19     !
20     !     Thermal mobility
21           DOUBLE PRECISION, DIMENSION(:, :, :), ALLOCATABLE :: Lij
22     !
23     !     Ordinary diffusion
24           DOUBLE PRECISION, DIMENSION(:, :, :), ALLOCATABLE :: Dij
25     !
26     !     Dufour coefficient
27           DOUBLE PRECISION, DIMENSION(:, :, :), ALLOCATABLE :: DijQ
28     !
29     !     Species mass flux in X-direction
30           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: JoiX
31     !
32     !     Species mass flux in Y-direction
33           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: JoiY
34     !
35     !     Species mass flux in Z-direction
36           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: JoiZ
37     !
38     !     external force in X-direction
39           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: FiX
40     !
41     !     external force in Y-direction
42           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: FiY
43     !
44     !     external force in Z-direction
45           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: FiZ
46     
47     !     external force in X-direction--flux
48           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: FiXvel
49     !
50     !     external force in Y-direction--flux
51           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: FiYvel
52     !
53     !     external force in Z-direction--flux
54           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: FiZvel
55     !
56     !     external force Minus Drag term in Y-direction
57           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: FiMinusDragX
58     !
59     !     Species mass flux Without Drag term in Y-direction
60           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: JoiMinusDragX
61     !
62     !     external force Minus Drag term in Y-direction
63           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: FiMinusDragY
64     !
65     !     Species mass flux Without Drag term in Y-direction
66           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: JoiMinusDragY
67     !
68     !     external force Minus Drag term in Z-direction
69           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: FiMinusDragZ
70     !
71     !     Species mass flux Without Drag term in Z-direction
72           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: JoiMinusDragZ
73     
74     
75     !     Everything that does not depend on the velocity of ith particle
76           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: DELTAU
77     !
78     !     Everything that does not depend on the velocity of the ith particle
79           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: DELTAV
80     !
81     !     Everything that does not depned on the velocity of the ith paritcle
82           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: DELTAW
83     
84     !     Everything that does not depend on the velocity of ith particle
85           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: DEL_DOT_J
86     
87     !     drag force in X-direction
88           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: dragFx
89     !
90     !     drag force in Y-direction
91           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: dragFy
92     !
93     !     drag force in Z-direction
94           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: dragFz
95     !     drag force in X-direction
96           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: dragFxflux
97     !
98     !     drag force in Y-direction
99           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: dragFyflux
100     !
101     !     drag force in Z-direction
102           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: dragFzflux
103     !     drag force in X-direction
104           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: beta_cell_X
105     !
106     !     drag force in Y-direction
107           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: beta_cell_Y
108     !
109     !     drag force in Z-direction
110           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: beta_cell_Z
111     !     drag force in X-direction
112           DOUBLE PRECISION, DIMENSION(:, :, :), ALLOCATABLE :: beta_ij_cell_X
113     !
114     !     drag force in Y-direction
115           DOUBLE PRECISION, DIMENSION(:, :, :), ALLOCATABLE :: beta_ij_cell_Y
116     !
117     !     drag force in Z-direction
118           DOUBLE PRECISION, DIMENSION(:, :, :), ALLOCATABLE :: beta_ij_cell_Z
119     
120     !       decide whether to do harmonic or arithmetic thermal diffusivity east
121            LOGICAL, DIMENSION(:), ALLOCATABLE :: DiT_HarmE
122     !       decide whether to do harmonic or arithmetic thermal diffusivity north
123            LOGICAL, DIMENSION(:), ALLOCATABLE :: DiT_HarmN
124     !       decide whether to do harmonic or arithmetic thermal diffusivity top
125            LOGICAL, DIMENSION(:), ALLOCATABLE :: DiT_HarmT
126     
127     !       decide whether to do harmonic or arithmetic mass mobility east
128            LOGICAL, DIMENSION(:,:), ALLOCATABLE :: DijF_HarmE
129     !       decide whether to do harmonic or arithmetic mass mobility north
130            LOGICAL, DIMENSION(:,:), ALLOCATABLE :: DijF_HarmN
131     !       decide whether to do harmonic or arithmetic mass mobility top
132            LOGICAL, DIMENSION(:,:), ALLOCATABLE :: DijF_HarmT
133     
134     !       decide whether to do harmonic or arithmetic ordinary diffusivity east
135            LOGICAL, DIMENSION(:,:), ALLOCATABLE :: Dij_HarmE
136     !       decide whether to do harmonic or arithmetic ordinary diffusivity north
137            LOGICAL, DIMENSION(:,:), ALLOCATABLE :: Dij_HarmN
138     !       decide whether to do harmonic or arithmetic ordinary diffusivity top
139            LOGICAL, DIMENSION(:,:), ALLOCATABLE :: Dij_HarmT
140     
141           END MODULE ghdtheory
142