FLASH-X
Doxygen Generated Documentation From Interface Source Code
Stencils_interface.F90
Go to the documentation of this file.
1!! NOTICE
2!! Copyright 2022 UChicago Argonne, LLC and contributors
3!!
4!! Licensed under the Apache License, Version 2.0 (the "License");
5!! you may not use this file except in compliance with the License.
6!!
7!! Unless required by applicable law or agreed to in writing, software
8!! distributed under the License is distributed on an "AS IS" BASIS,
9!! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10!! See the License for the specific language governing permissions and
11!! limitations under the License.
12!!
18
20
21 interface
22 subroutine Stencils_finalize()
23 end subroutine Stencils_finalize
24 end interface
25
26 interface
27 subroutine Stencils_init()
28 end subroutine Stencils_init
29 end interface
30
31 !----------------------------------------------------------------------------------------------------------
32 !----------------------------------------------------------------------------------------------------------
33
35 subroutine Stencils_integrateEulerScalar(phi,rhs,dt,ix1,ix2,jy1,jy2,kz1,kz2,iSource)
36 implicit none
37 real, dimension(:,:,:), intent(inout):: phi
38 real, dimension(:,:,:), intent(in) :: rhs
39 real, intent(in) :: dt
40 integer, intent(in) :: ix1,ix2,jy1,jy2,kz1,kz2
41 real, intent(in) :: iSource
43
44 subroutine Stencils_integrateEulerArray(phi,rhs,dt,ix1,ix2,jy1,jy2,kz1,kz2,iSource)
45 implicit none
46 real, dimension(:,:,:), intent(inout):: phi
47 real, dimension(:,:,:), intent(in) :: rhs
48 real, intent(in) :: dt
49 integer, intent(in) :: ix1,ix2,jy1,jy2,kz1,kz2
50 real, dimension(:,:,:), intent(in) :: iSource
51 end subroutine Stencils_integrateEulerArray
52 end interface
53
55 subroutine Stencils_integrateAB2Scalar(phi,rhsNew,rhsOld,gama,rhoa,dt,ix1,ix2,jy1,jy2,kz1,kz2,iSource)
56 implicit none
57 real, dimension(:,:,:), intent(inout):: phi
58 real, dimension(:,:,:), intent(in) :: rhsNew, rhsOld
59 real, intent(in) :: dt, rhoa, gama
60 integer, intent(in) :: ix1,ix2,jy1,jy2,kz1,kz2
61 real, intent(in) :: iSource
62 end subroutine Stencils_integrateAB2Scalar
63
64 subroutine Stencils_integrateAB2Array(phi,rhsNew,rhsOld,gama,rhoa,dt,ix1,ix2,jy1,jy2,kz1,kz2,iSource)
65 implicit none
66 real, dimension(:,:,:), intent(inout):: phi
67 real, dimension(:,:,:), intent(in) :: rhsNew, rhsOld
68 real, intent(in) :: dt, rhoa, gama
69 integer, intent(in) :: ix1,ix2,jy1,jy2,kz1,kz2
70 real, dimension(:,:,:), intent(in) :: iSource
71 end subroutine Stencils_integrateAB2Array
72 end interface
73
74 !----------------------------------------------------------------------------------------------------------
75 !----------------------------------------------------------------------------------------------------------
76
77 interface
78 subroutine Stencils_cnt_advectUpwind2d(rhs,phi,u,v,dx,dy,ix1,ix2,jy1,jy2)
79 implicit none
80 real, dimension(:,:,:), intent(inout):: rhs
81 real, dimension(:,:,:), intent(in) :: phi,u,v
82 real, intent(in) :: dx,dy
83 integer, intent(in) :: ix1,ix2,jy1,jy2
84 end subroutine Stencils_cnt_advectUpwind2d
85 end interface
86
87 interface
88 subroutine Stencils_cnt_advectUpwind3d(rhs,phi,u,v,w,dx,dy,dz,ix1,ix2,jy1,jy2,kz1,kz2)
89 implicit none
90 real, dimension(:,:,:), intent(inout):: rhs
91 real, dimension(:,:,:), intent(in) :: phi,u,v,w
92 real, intent(in) :: dx,dy,dz
93 integer, intent(in) :: ix1,ix2,jy1,jy2,kz1,kz2
94 end subroutine Stencils_cnt_advectUpwind3d
95 end interface
96
97 interface
98 subroutine Stencils_advectWeno2d(rhs,phi,u,v,dx,dy,ix1,ix2,jy1,jy2,center,facex,facey)
99 implicit none
100 real, dimension(:,:,:), intent(inout):: rhs
101 real, dimension(:,:,:), intent(in) :: phi,u,v
102 real, intent(in) :: dx,dy
103 integer, intent(in) :: ix1,ix2,jy1,jy2
104 logical, intent(in) :: center,facex,facey
105 end subroutine Stencils_advectWeno2d
106 end interface
107
108 interface
109 subroutine Stencils_advectWeno3d(rhs,phi,u,v,w,dx,dy,dz,ix1,ix2,jy1,jy2,kz1,kz2,&
110 center,facex,facey,facez)
111 implicit none
112 real, dimension(:,:,:), intent(inout):: rhs
113 real, dimension(:,:,:), intent(in) :: phi,u,v,w
114 real, intent(in) :: dx,dy,dz
115 integer, intent(in) :: ix1,ix2,jy1,jy2,kz1,kz2
116 logical, intent(in) :: center,facex,facey,facez
117 end subroutine Stencils_advectWeno3d
118 end interface
119
120 interface
121 subroutine Stencils_advectCentral2d(rhs,phi,u,v,dx,dy,ix1,ix2,jy1,jy2,center,facex,facey)
122 implicit none
123 real, dimension(:,:,:), intent(inout):: rhs
124 real, dimension(:,:,:), intent(in) :: phi,u,v
125 real, intent(in) :: dx,dy
126 integer, intent(in) :: ix1,ix2,jy1,jy2
127 logical, intent(in) :: center,facex,facey
128 end subroutine Stencils_advectCentral2d
129 end interface
130
131 interface
132 subroutine Stencils_advectCentral3d(rhs,phi,u,v,w,dx,dy,dz,ix1,ix2,jy1,jy2,kz1,kz2,&
133 center,facex,facey,facez)
134 implicit none
135 real, dimension(:,:,:), intent(inout):: rhs
136 real, dimension(:,:,:), intent(in) :: phi,u,v,w
137 real, intent(in) :: dx,dy,dz
138 integer, intent(in) :: ix1,ix2,jy1,jy2,kz1,kz2
139 logical, intent(in) :: center,facex,facey,facez
140 end subroutine Stencils_advectCentral3d
141 end interface
142
143 !----------------------------------------------------------------------------------------------------------
144 !----------------------------------------------------------------------------------------------------------
145
147 subroutine Stencils_diffusion2dConst(rhs, phi, dx, dy, Coeff, ix1, ix2, jy1, jy2)
148 implicit none
149 real, dimension(:,:,:), intent(inout) :: rhs
150 real, dimension(:,:,:), intent(in) :: phi
151 real, intent(in) :: Coeff
152 real, intent(in) :: dx, dy
153 integer, intent(in) :: ix1, ix2, jy1, jy2
154 end subroutine Stencils_diffusion2dConst
155
156 subroutine Stencils_diffusion2dVar(rhs, phi, dx, dy, Coeff, ix1, ix2, jy1, jy2)
157 implicit none
158 real, dimension(:,:,:), intent(inout) :: rhs
159 real, dimension(:,:,:), intent(in) :: phi
160 real, dimension(:,:,:), intent(in) :: Coeff
161 real, intent(in) :: dx, dy
162 integer, intent(in) :: ix1, ix2, jy1, jy2
163 end subroutine Stencils_diffusion2dVar
164 end interface
165
167 subroutine Stencils_diffusion3dConst(rhs, phi, dx, dy, dz, Coeff, ix1, ix2, jy1, jy2, kz1, kz2)
168 implicit none
169 real, dimension(:,:,:), intent(inout) :: rhs
170 real, dimension(:,:,:), intent(in) :: phi
171 real, intent(in) :: dx, dy, dz
172 real, intent(in) :: Coeff
173 integer, intent(in) :: ix1, ix2, jy1, jy2, kz1, kz2
174 end subroutine Stencils_diffusion3dConst
175
176 subroutine Stencils_diffusion3dVar(rhs, phi, dx, dy, dz, Coeff, ix1, ix2, jy1, jy2, kz1, kz2)
177 implicit none
178 real, dimension(:,:,:), intent(inout) :: rhs
179 real, dimension(:,:,:), intent(in) :: phi
180 real, intent(in) :: dx, dy, dz
181 real, dimension(:,:,:), intent(in) :: Coeff
182 integer, intent(in) :: ix1, ix2, jy1, jy2, kz1, kz2
183 end subroutine Stencils_diffusion3dVar
184 end interface
185
186 !----------------------------------------------------------------------------------------------------------
187 !----------------------------------------------------------------------------------------------------------
188
189 interface
190 subroutine Stencils_lsRedistance2d(phi,phi_orig,dt,dx,dy,ix1,ix2,jy1,jy2)
191 implicit none
192 integer, intent(in) :: ix1,ix2,jy1,jy2
193 real, dimension(:,:,:), intent(inout):: phi
194 real, intent(in) :: dx,dy,dt
195 real, dimension(:,:,:), intent(in):: phi_orig
196 end subroutine Stencils_lsRedistance2d
197 end interface
198
199 interface
200 subroutine Stencils_lsRedistance3d(phi,phi_orig,dt,dx,dy,dz,ix1,ix2,jy1,jy2,kz1,kz2)
201 implicit none
202 integer, intent(in) :: ix1,ix2,jy1,jy2,kz1,kz2
203 real, dimension(:,:,:), intent(inout):: phi
204 real, intent(in) :: dx,dy,dz,dt
205 real, dimension(:,:,:), intent(in):: phi_orig
206 end subroutine Stencils_lsRedistance3d
207 end interface
208
210 subroutine Stencils_lsFaceProps2dFixedSmear(phi,iPropX,iPropY,lsScalarProp,ix1,ix2,jy1,jy2)
211 implicit none
212 integer, intent(in) :: ix1,ix2,jy1,jy2
213 real, intent(in) :: lsScalarProp
214 real, dimension(:,:,:), intent(in) :: phi
215 real, dimension(:,:,:), intent(inout) :: iPropX,iPropY
217
218 subroutine Stencils_lsFaceProps2dUserSmear(phi,iPropX,iPropY,lsScalarProp,ix1,ix2,jy1,jy2,iSmear)
219 implicit none
220 integer, intent(in) :: ix1,ix2,jy1,jy2
221 real, intent(in) :: lsScalarProp
222 real, dimension(:,:,:), intent(in) :: phi
223 real, dimension(:,:,:), intent(inout) :: iPropX,iPropY
224 real, intent(in) :: iSmear
226 end interface
227
229 subroutine Stencils_lsFaceProps3dFixedSmear(phi,iPropX,iPropY,iPropZ,lsScalarProp,ix1,ix2,jy1,jy2,kz1,kz2)
230 implicit none
231 integer, intent(in) :: ix1,ix2,jy1,jy2,kz1,kz2
232 real, intent(in) :: lsScalarProp
233 real, dimension(:,:,:), intent(in) :: phi
234 real, dimension(:,:,:), intent(inout) :: iPropX,iPropY,iPropZ
236
237 subroutine Stencils_lsFaceProps3dUserSmear(phi,iPropX,iPropY,iPropZ,lsScalarProp,ix1,ix2,jy1,jy2,kz1,kz2,iSmear)
238 implicit none
239 integer, intent(in) :: ix1,ix2,jy1,jy2,kz1,kz2
240 real, intent(in) :: lsScalarProp
241 real, dimension(:,:,:), intent(in) :: phi
242 real, dimension(:,:,:), intent(inout) :: iPropX,iPropY,iPropZ
243 real, intent(in) :: iSmear
245 end interface
246
248 subroutine Stencils_lsCenterPropsSharp(phi,iPropC,lsScalarProp,ix1,ix2,jy1,jy2,kz1,kz2)
249 implicit none
250 integer, intent(in) :: ix1,ix2,jy1,jy2,kz1,kz2
251 real, intent(in) :: lsScalarProp
252 real, dimension(:,:,:), intent(in) :: phi
253 real, dimension(:,:,:), intent(inout) :: iPropC
254 end subroutine Stencils_lsCenterPropsSharp
255
256 subroutine Stencils_lsCenterPropsSmeared(phi,iPropC,lsScalarProp,ix1,ix2,jy1,jy2,kz1,kz2,iSmear)
257 implicit none
258 integer, intent(in) :: ix1,ix2,jy1,jy2,kz1,kz2
259 real, intent(in) :: lsScalarProp
260 real, dimension(:,:,:), intent(in) :: phi
261 real, dimension(:,:,:), intent(inout) :: iPropC
262 real, intent(in) :: iSmear
263 end subroutine Stencils_lsCenterPropsSmeared
264 end interface
265
266 interface
267 subroutine Stencils_lsNormals2d(phi,iNrmx,iNrmy,dx,dy,ix1,ix2,jy1,jy2)
268 implicit none
269 integer, intent(in) :: ix1,ix2,jy1,jy2
270 real, dimension(:,:,:), intent(in) :: phi
271 real, dimension(:,:,:), intent(inout) :: iNrmx, iNrmy
272 real, intent(in) :: dx,dy
273 end subroutine Stencils_lsNormals2d
274 end interface
275
276 interface
277 subroutine Stencils_lsNormals3d(phi,iNrmx,iNrmy,iNrmz,dx,dy,dz,ix1,ix2,jy1,jy2,kz1,kz2)
278 implicit none
279 integer, intent(in) :: ix1,ix2,jy1,jy2,kz1,kz2
280 real, dimension(:,:,:), intent(in) :: phi
281 real, dimension(:,:,:), intent(inout) :: iNrmx, iNrmy, iNrmz
282 real, intent(in) :: dx,dy,dz
283 end subroutine Stencils_lsNormals3d
284 end interface
285
286end Module Stencils_interface
subroutine Stencils_diffusion2dConst(rhs, phi, dx, dy, Coeff, ix1, ix2, jy1, jy2)
subroutine Stencils_diffusion2dVar(rhs, phi, dx, dy, Coeff, ix1, ix2, jy1, jy2)
subroutine Stencils_diffusion3dConst(rhs, phi, dx, dy, dz, Coeff, ix1, ix2, jy1, jy2, kz1, kz2)
subroutine Stencils_diffusion3dVar(rhs, phi, dx, dy, dz, Coeff, ix1, ix2, jy1, jy2, kz1, kz2)
subroutine Stencils_integrateAB2Array(phi, rhsNew, rhsOld, gama, rhoa, dt, ix1, ix2, jy1, jy2, kz1, kz2, iSource)
subroutine Stencils_integrateAB2Scalar(phi, rhsNew, rhsOld, gama, rhoa, dt, ix1, ix2, jy1, jy2, kz1, kz2, iSource)
subroutine Stencils_integrateEulerScalar(phi, rhs, dt, ix1, ix2, jy1, jy2, kz1, kz2, iSource)
subroutine Stencils_integrateEulerArray(phi, rhs, dt, ix1, ix2, jy1, jy2, kz1, kz2, iSource)
subroutine Stencils_lsCenterPropsSharp(phi, iPropC, lsScalarProp, ix1, ix2, jy1, jy2, kz1, kz2)
subroutine Stencils_lsCenterPropsSmeared(phi, iPropC, lsScalarProp, ix1, ix2, jy1, jy2, kz1, kz2, iSmear)
subroutine Stencils_lsFaceProps2dUserSmear(phi, iPropX, iPropY, lsScalarProp, ix1, ix2, jy1, jy2, iSmear)
subroutine Stencils_lsFaceProps2dFixedSmear(phi, iPropX, iPropY, lsScalarProp, ix1, ix2, jy1, jy2)
subroutine Stencils_lsFaceProps3dUserSmear(phi, iPropX, iPropY, iPropZ, lsScalarProp, ix1, ix2, jy1, jy2, kz1, kz2, iSmear)
subroutine Stencils_lsFaceProps3dFixedSmear(phi, iPropX, iPropY, iPropZ, lsScalarProp, ix1, ix2, jy1, jy2, kz1, kz2)