MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_derived_variables.fpp.f90
Go to the documentation of this file.
1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
2!>
3!! @file
4!! @brief Contains module m_derived_variables
5
6!> @brief Derives diagnostic flow quantities (vorticity, speed of sound, numerical Schlieren, etc.) from conservative and primitive
7!! variables
8# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
9# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
10# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
11# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
12# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
13# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
14# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
15# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
16
17# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
18# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
19# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
20
21# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
22# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
23! Default for Fypp runs outside the toolchain (e.g. documentation). Searched last, so the
24! build/include/<target>/thermochem.fpp the toolchain writes from m_thermochem takes precedence.
25# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
26# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
27# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
28
29# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
30# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31
32# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33
34# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35
36# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37
38# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39
40# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41
42# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43
44# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
45
46# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
47! New line at end of file is required for FYPP
48# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
49# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
50# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
51# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56
57# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
59# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60
61# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
63! Default for Fypp runs outside the toolchain (e.g. documentation). Searched last, so the
64! build/include/<target>/thermochem.fpp the toolchain writes from m_thermochem takes precedence.
65# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
66# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
67# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
68
69# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
71
72# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
73
74# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
75
76# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
77
78# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
79
80# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
81
82# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
83
84# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
85
86# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
87! New line at end of file is required for FYPP
88# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
89
90# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
91# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
93# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
95
96# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
97
98# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
99
100# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
101
102# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
103
104# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
105
106# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
107
108# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
109
110# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
111
112# 95 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
113
114# 100 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
115
116# 105 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117
118# 110 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119
120# 115 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121
122# 120 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123
124# 125 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125
126# 130 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127
128# 135 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129
130# 165 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131
132# 219 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133
134# 233 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135
136# 258 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137
138# 269 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139
140# 271 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141# 282 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
142
143# 332 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
144
145# 342 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
146
147# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
148
149# 361 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
150
151# 378 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
152
153# 388 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
154
155# 395 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
156
157# 401 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
158
159# 407 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
160
161# 413 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
162
163# 419 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
164
165# 425 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
166! New line at end of file is required for FYPP
167# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
168# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
169# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
170# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
171# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
173# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
174# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
175
176# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
177# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
178# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
179
180# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
181# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
182! Default for Fypp runs outside the toolchain (e.g. documentation). Searched last, so the
183! build/include/<target>/thermochem.fpp the toolchain writes from m_thermochem takes precedence.
184# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
185# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
186# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
187
188# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
189# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
190
191# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
192
193# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
194
195# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
196
197# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
198
199# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
200
201# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
202
203# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
204
205# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
206! New line at end of file is required for FYPP
207# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
208
209# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210
211# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212
213# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214
215# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216
217# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218
219# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220
221# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222
223# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224
225# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226
227# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228
229# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230
231# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232
233# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
234
235# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
236
237# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
238
239# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
240
241# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
242
243# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
244
245# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
246
247# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
248
249# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
250
251# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
252
253# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
254
255# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
256
257# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
258
259# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
260
261# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
262
263# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
264! New line at end of file is required for FYPP
265# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
266
267! GPU parallel region (scalar reductions, maxval/minval)
268# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269
270! GPU parallel loop over threads (most common GPU macro)
271# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272
273! Required closing for GPU_PARALLEL_LOOP
274# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275
276! Mark routine for device compilation
277# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278
279! Declare device-resident data
280# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281
282! Inner loop within a GPU parallel region
283# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284
285! Scoped GPU data region
286# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
287
288! Host code with device pointers (for MPI with GPU buffers)
289# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
290
291! Allocate device memory (unscoped)
292# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
293
294! Free device memory
295# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
296
297! Atomic operation on device
298# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
299
300! End atomic capture block
301# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
302
303! Copy data between host and device
304# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
305
306! Synchronization barrier
307# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
308
309! Import GPU library module (openacc or omp_lib)
310# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
311
312! Emit code only for AMD compiler
313# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
314
315! Emit code for non-Cray compilers
316# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
317
318! Emit code only for Cray compiler
319# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
320
321! Emit code for non-NVIDIA compilers
322# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
323
324# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
325# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
326! New line at end of file is required for FYPP
327# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
328
329# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
330
331! Caution: This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI
332! rank. That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0. For an
333! example see misc/nvidia_uvm/bind.sh.
334# 52 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
335
336! Allocate and create GPU device memory
337# 72 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
338
339! Free GPU device memory and deallocate
340# 80 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
341
342! Cray-specific GPU pointer setup for vector fields
343# 104 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
344
345! Cray-specific GPU pointer setup for scalar fields
346# 120 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
347
348! Cray-specific GPU pointer setup for acoustic source spatials
349# 145 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
350
351# 151 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
352
353# 158 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
354! New line at end of file is required for FYPP
355# 8 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp" 2
356
358
361 use m_data_output
363 use m_helper
365
366 implicit none
367
370
371 ! @name Variables for computing acceleration
372 !> @{
373 real(wp), public, allocatable, dimension(:,:,:) :: accel_mag
374 real(wp), public, allocatable, dimension(:,:,:) :: x_accel, y_accel, z_accel
375 !> @}
376
377# 28 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
378#if defined(MFC_OpenACC)
379# 28 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
380!$acc declare create(accel_mag, x_accel, y_accel, z_accel)
381# 28 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
382#elif defined(MFC_OpenMP)
383# 28 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
384!$omp declare target (accel_mag, x_accel, y_accel, z_accel)
385# 28 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
386#endif
387# 29 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
388
389contains
390
391 !> Computation of parameters, allocation procedures, and/or any other tasks needed to properly setup the module
393
394 ! Allocating the variables which will store the coefficients of the centered family of finite-difference schemes. Note that
395 ! sufficient space is allocated so that the coefficients up to any chosen order of accuracy may be bookkept. However, if
396 ! higher than fourth-order accuracy coefficients are wanted, the formulae required to compute these coefficients will have
397 ! to be implemented in the subroutine s_compute_finite_difference_coefficients.
398
399 ! Allocating centered finite-difference coefficients. The coefficient (second) index is extended by fd_number beyond
400 ! the interior on each side: s_compute_ib_forces evaluates the viscous-stress stencil centered on ghost-adjacent
401 ! cells (i+l for l in -fd_number:fd_number) when an IB sits near a domain boundary, so the coefficient array must
402 ! cover those centers too, not just the interior 0:m.
403 if (probe_wrt .or. ib) then
404#ifdef MFC_DEBUG
405# 45 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
406 block
407# 45 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
408 use iso_fortran_env, only: output_unit
409# 45 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
410
411# 45 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
412 print *, 'm_derived_variables.fpp:45: ', '@:ALLOCATE(fd_coeff_x(-fd_number:fd_number,-fd_number:m + fd_number))'
413# 45 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
414
415# 45 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
416 call flush (output_unit)
417# 45 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
418 end block
419# 45 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
420#endif
421# 45 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
423# 45 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
424
425# 45 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
426
427# 45 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
428#if defined(MFC_OpenACC)
429# 45 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
430!$acc enter data create(fd_coeff_x)
431# 45 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
432#elif defined(MFC_OpenMP)
433# 45 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
434!$omp target enter data map(always,alloc:fd_coeff_x)
435# 45 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
436#endif
437# 46 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
438 if (n > 0) then
439#ifdef MFC_DEBUG
440# 47 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
441 block
442# 47 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
443 use iso_fortran_env, only: output_unit
444# 47 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
445
446# 47 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
447 print *, 'm_derived_variables.fpp:47: ', '@:ALLOCATE(fd_coeff_y(-fd_number:fd_number,-fd_number:n + fd_number))'
448# 47 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
449
450# 47 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
451 call flush (output_unit)
452# 47 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
453 end block
454# 47 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
455#endif
456# 47 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
457 allocate (fd_coeff_y(-fd_number:fd_number,-fd_number:n + fd_number))
458# 47 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
459
460# 47 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
461
462# 47 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
463#if defined(MFC_OpenACC)
464# 47 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
465!$acc enter data create(fd_coeff_y)
466# 47 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
467#elif defined(MFC_OpenMP)
468# 47 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
469!$omp target enter data map(always,alloc:fd_coeff_y)
470# 47 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
471#endif
472# 48 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
473 end if
474 if (p > 0) then
475#ifdef MFC_DEBUG
476# 50 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
477 block
478# 50 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
479 use iso_fortran_env, only: output_unit
480# 50 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
481
482# 50 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
483 print *, 'm_derived_variables.fpp:50: ', '@:ALLOCATE(fd_coeff_z(-fd_number:fd_number,-fd_number:p + fd_number))'
484# 50 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
485
486# 50 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
487 call flush (output_unit)
488# 50 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
489 end block
490# 50 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
491#endif
492# 50 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
493 allocate (fd_coeff_z(-fd_number:fd_number,-fd_number:p + fd_number))
494# 50 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
495
496# 50 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
497
498# 50 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
499#if defined(MFC_OpenACC)
500# 50 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
501!$acc enter data create(fd_coeff_z)
502# 50 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
503#elif defined(MFC_OpenMP)
504# 50 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
505!$omp target enter data map(always,alloc:fd_coeff_z)
506# 50 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
507#endif
508# 51 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
509 end if
510
511#ifdef MFC_DEBUG
512# 53 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
513 block
514# 53 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
515 use iso_fortran_env, only: output_unit
516# 53 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
517
518# 53 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
519 print *, 'm_derived_variables.fpp:53: ', '@:ALLOCATE(accel_mag(0:m, 0:n, 0:p))'
520# 53 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
521
522# 53 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
523 call flush (output_unit)
524# 53 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
525 end block
526# 53 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
527#endif
528# 53 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
529 allocate (accel_mag(0:m, 0:n, 0:p))
530# 53 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
531
532# 53 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
533
534# 53 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
535#if defined(MFC_OpenACC)
536# 53 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
537!$acc enter data create(accel_mag)
538# 53 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
539#elif defined(MFC_OpenMP)
540# 53 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
541!$omp target enter data map(always,alloc:accel_mag)
542# 53 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
543#endif
544# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
545#ifdef MFC_DEBUG
546# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
547 block
548# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
549 use iso_fortran_env, only: output_unit
550# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
551
552# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
553 print *, 'm_derived_variables.fpp:54: ', '@:ALLOCATE(x_accel(0:m, 0:n, 0:p))'
554# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
555
556# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
557 call flush (output_unit)
558# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
559 end block
560# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
561#endif
562# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
563 allocate (x_accel(0:m, 0:n, 0:p))
564# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
565
566# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
567
568# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
569#if defined(MFC_OpenACC)
570# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
571!$acc enter data create(x_accel)
572# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
573#elif defined(MFC_OpenMP)
574# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
575!$omp target enter data map(always,alloc:x_accel)
576# 54 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
577#endif
578# 55 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
579 if (n > 0) then
580#ifdef MFC_DEBUG
581# 56 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
582 block
583# 56 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
584 use iso_fortran_env, only: output_unit
585# 56 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
586
587# 56 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
588 print *, 'm_derived_variables.fpp:56: ', '@:ALLOCATE(y_accel(0:m, 0:n, 0:p))'
589# 56 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
590
591# 56 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
592 call flush (output_unit)
593# 56 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
594 end block
595# 56 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
596#endif
597# 56 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
598 allocate (y_accel(0:m, 0:n, 0:p))
599# 56 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
600
601# 56 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
602
603# 56 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
604#if defined(MFC_OpenACC)
605# 56 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
606!$acc enter data create(y_accel)
607# 56 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
608#elif defined(MFC_OpenMP)
609# 56 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
610!$omp target enter data map(always,alloc:y_accel)
611# 56 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
612#endif
613# 57 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
614 if (p > 0) then
615#ifdef MFC_DEBUG
616# 58 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
617 block
618# 58 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
619 use iso_fortran_env, only: output_unit
620# 58 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
621
622# 58 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
623 print *, 'm_derived_variables.fpp:58: ', '@:ALLOCATE(z_accel(0:m, 0:n, 0:p))'
624# 58 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
625
626# 58 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
627 call flush (output_unit)
628# 58 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
629 end block
630# 58 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
631#endif
632# 58 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
633 allocate (z_accel(0:m, 0:n, 0:p))
634# 58 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
635
636# 58 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
637
638# 58 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
639#if defined(MFC_OpenACC)
640# 58 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
641!$acc enter data create(z_accel)
642# 58 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
643#elif defined(MFC_OpenMP)
644# 58 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
645!$omp target enter data map(always,alloc:z_accel)
646# 58 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
647#endif
648# 59 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
649 end if
650 end if
651 end if
652
654
655 !> Allocate and open derived variables. Computing FD coefficients.
657
658 if (probe_wrt .or. ib) then
659 ! Opening and writing header of flow probe files
660 if (proc_rank == 0 .and. probe_wrt) then
661 call s_open_probe_files()
662 end if
663 ! Computing centered finite difference coefficients (s_compute_finite_difference_coefficients always extends
664 ! fd_number beyond the interior on each side; the allocation above matches)
665 call s_compute_finite_difference_coefficients(m, x_cc, fd_coeff_x, buff_size, fd_number, fd_order)
666
667# 76 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
668#if defined(MFC_OpenACC)
669# 76 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
670!$acc update device(fd_coeff_x)
671# 76 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
672#elif defined(MFC_OpenMP)
673# 76 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
674!$omp target update to(fd_coeff_x)
675# 76 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
676#endif
677# 77 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
678
679 if (n > 0) then
680 call s_compute_finite_difference_coefficients(n, y_cc, fd_coeff_y, buff_size, fd_number, fd_order)
681
682# 80 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
683#if defined(MFC_OpenACC)
684# 80 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
685!$acc update device(fd_coeff_y)
686# 80 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
687#elif defined(MFC_OpenMP)
688# 80 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
689!$omp target update to(fd_coeff_y)
690# 80 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
691#endif
692# 81 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
693 end if
694 if (p > 0) then
695 call s_compute_finite_difference_coefficients(p, z_cc, fd_coeff_z, buff_size, fd_number, fd_order)
696
697# 84 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
698#if defined(MFC_OpenACC)
699# 84 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
700!$acc update device(fd_coeff_z)
701# 84 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
702#elif defined(MFC_OpenMP)
703# 84 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
704!$omp target update to(fd_coeff_z)
705# 84 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
706#endif
707# 85 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
708 end if
709 end if
710
711 end subroutine s_initialize_derived_variables
712
713 !> Writes coherent body information, communication files, and probes.
714 subroutine s_compute_derived_variables(t_step, q_cons_vf, q_prim_ts1, q_prim_ts2)
715
716 integer, intent(in) :: t_step
717 type(scalar_field), dimension(:), intent(inout) :: q_cons_vf
718 type(vector_field), dimension(:), intent(inout) :: q_prim_ts1, q_prim_ts2
719 integer :: i, j, k !< Generic loop iterators
720
721 if (probe_wrt) then
722 call s_derive_acceleration_component(1, q_prim_ts1(1)%vf, q_prim_ts1(2)%vf, q_prim_ts2(1)%vf, q_prim_ts2(2)%vf, x_accel)
723 if (n > 0) then
724 call s_derive_acceleration_component(2, q_prim_ts1(1)%vf, q_prim_ts1(2)%vf, q_prim_ts2(1)%vf, q_prim_ts2(2)%vf, &
725 & y_accel)
726 end if
727 if (p > 0) then
728 call s_derive_acceleration_component(3, q_prim_ts1(1)%vf, q_prim_ts1(2)%vf, q_prim_ts2(1)%vf, q_prim_ts2(2)%vf, &
729 & z_accel)
730 end if
731
732
733# 109 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
734
735# 109 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
736#if defined(MFC_OpenACC)
737# 109 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
738!$acc parallel loop collapse(3) gang vector default(present) private(i, j, k)
739# 109 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
740#elif defined(MFC_OpenMP)
741# 109 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
742
743# 109 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
744
745# 109 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
746
747# 109 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
748!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k)
749# 109 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
750#endif
751# 110 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
752 do k = 0, p
753 do j = 0, n
754 do i = 0, m
755 if (p > 0) then
756 accel_mag(i, j, k) = sqrt(x_accel(i, j, k)**2._wp + y_accel(i, j, k)**2._wp + z_accel(i, j, k)**2._wp)
757 else if (n > 0) then
758 accel_mag(i, j, k) = sqrt(x_accel(i, j, k)**2._wp + y_accel(i, j, k)**2._wp)
759 else
760 accel_mag(i, j, k) = x_accel(i, j, k)
761 end if
762 end do
763 end do
764 end do
765
766# 123 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
767#if defined(MFC_OpenACC)
768# 123 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
769!$acc end parallel loop
770# 123 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
771#elif defined(MFC_OpenMP)
772# 123 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
773
774# 123 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
775!$omp end target teams loop
776# 123 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
777#endif
778# 124 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
779
780
781# 125 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
782#if defined(MFC_OpenACC)
783# 125 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
784!$acc update host(accel_mag)
785# 125 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
786#elif defined(MFC_OpenMP)
787# 125 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
788!$omp target update from(accel_mag)
789# 125 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
790#endif
791# 126 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
792
793 call s_write_probe_files(t_step, q_cons_vf, accel_mag)
794 end if
795
796 end subroutine s_compute_derived_variables
797
798 !> Compute a component of the acceleration field from the primitive variables
799 subroutine s_derive_acceleration_component(i, q_prim_vf0, q_prim_vf1, q_prim_vf2, q_prim_vf3, q_sf)
800
801 integer, intent(in) :: i
802 type(scalar_field), dimension(sys_size), intent(in) :: q_prim_vf0
803 type(scalar_field), dimension(sys_size), intent(in) :: q_prim_vf1
804 type(scalar_field), dimension(sys_size), intent(in) :: q_prim_vf2
805 type(scalar_field), dimension(sys_size), intent(in) :: q_prim_vf3
806 real(wp), dimension(0:m,0:n,0:p), intent(out) :: q_sf
807 integer :: j, k, l, r !< Generic loop iterators
808 ! Computing the acceleration component in the x-coordinate direction
809
810 if (i == 1) then
811
812# 145 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
813
814# 145 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
815#if defined(MFC_OpenACC)
816# 145 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
817!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l)
818# 145 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
819#elif defined(MFC_OpenMP)
820# 145 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
821
822# 145 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
823
824# 145 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
825
826# 145 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
827!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l)
828# 145 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
829#endif
830# 146 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
831 do l = 0, p
832 do k = 0, n
833 do j = 0, m
834 q_sf(j, k, l) = (11._wp*q_prim_vf0(eqn_idx%mom%beg)%sf(j, k, &
835 & l) - 18._wp*q_prim_vf1(eqn_idx%mom%beg)%sf(j, k, l) + 9._wp*q_prim_vf2(eqn_idx%mom%beg)%sf(j, k, &
836 & l) - 2._wp*q_prim_vf3(eqn_idx%mom%beg)%sf(j, k, l))/(6._wp*dt)
837 end do
838 end do
839 end do
840
841# 155 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
842#if defined(MFC_OpenACC)
843# 155 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
844!$acc end parallel loop
845# 155 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
846#elif defined(MFC_OpenMP)
847# 155 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
848
849# 155 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
850!$omp end target teams loop
851# 155 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
852#endif
853# 156 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
854
855 if (n == 0) then
856
857# 158 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
858
859# 158 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
860#if defined(MFC_OpenACC)
861# 158 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
862!$acc parallel loop collapse(4) gang vector default(present) private(j, k, l, r)
863# 158 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
864#elif defined(MFC_OpenMP)
865# 158 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
866
867# 158 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
868
869# 158 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
870
871# 158 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
872!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, r)
873# 158 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
874#endif
875# 159 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
876 do l = 0, p
877 do k = 0, n
878 do j = 0, m
879 do r = -fd_number, fd_number
880 q_sf(j, k, l) = q_sf(j, k, l) + q_prim_vf0(eqn_idx%mom%beg)%sf(j, k, l)*fd_coeff_x(r, &
881 & j)*q_prim_vf0(eqn_idx%mom%beg)%sf(r + j, k, l)
882 end do
883 end do
884 end do
885 end do
886
887# 169 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
888#if defined(MFC_OpenACC)
889# 169 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
890!$acc end parallel loop
891# 169 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
892#elif defined(MFC_OpenMP)
893# 169 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
894
895# 169 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
896!$omp end target teams loop
897# 169 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
898#endif
899# 170 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
900 else if (p == 0) then
901
902# 171 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
903
904# 171 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
905#if defined(MFC_OpenACC)
906# 171 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
907!$acc parallel loop collapse(4) gang vector default(present) private(j, k, l, r)
908# 171 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
909#elif defined(MFC_OpenMP)
910# 171 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
911
912# 171 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
913
914# 171 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
915
916# 171 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
917!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, r)
918# 171 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
919#endif
920# 172 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
921 do l = 0, p
922 do k = 0, n
923 do j = 0, m
924 do r = -fd_number, fd_number
925 q_sf(j, k, l) = q_sf(j, k, l) + q_prim_vf0(eqn_idx%mom%beg)%sf(j, k, l)*fd_coeff_x(r, &
926 & j)*q_prim_vf0(eqn_idx%mom%beg)%sf(r + j, k, l) + q_prim_vf0(eqn_idx%mom%beg + 1)%sf(j, k, &
927 & l)*fd_coeff_y(r, k)*q_prim_vf0(eqn_idx%mom%beg)%sf(j, r + k, l)
928 end do
929 end do
930 end do
931 end do
932
933# 183 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
934#if defined(MFC_OpenACC)
935# 183 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
936!$acc end parallel loop
937# 183 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
938#elif defined(MFC_OpenMP)
939# 183 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
940
941# 183 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
942!$omp end target teams loop
943# 183 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
944#endif
945# 184 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
946 else
947 if (grid_geometry == 3) then
948
949# 186 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
950
951# 186 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
952#if defined(MFC_OpenACC)
953# 186 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
954!$acc parallel loop collapse(4) gang vector default(present) private(j, k, l, r)
955# 186 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
956#elif defined(MFC_OpenMP)
957# 186 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
958
959# 186 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
960
961# 186 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
962
963# 186 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
964!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, r)
965# 186 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
966#endif
967# 187 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
968 do l = 0, p
969 do k = 0, n
970 do j = 0, m
971 do r = -fd_number, fd_number
972 q_sf(j, k, l) = q_sf(j, k, l) + q_prim_vf0(eqn_idx%mom%beg)%sf(j, k, l)*fd_coeff_x(r, &
973 & j)*q_prim_vf0(eqn_idx%mom%beg)%sf(r + j, k, l) + q_prim_vf0(eqn_idx%mom%beg + 1)%sf(j, &
974 & k, l)*fd_coeff_y(r, k)*q_prim_vf0(eqn_idx%mom%beg)%sf(j, r + k, &
975 & l) + q_prim_vf0(eqn_idx%mom%end)%sf(j, k, l)*fd_coeff_z(r, &
976 & l)*q_prim_vf0(eqn_idx%mom%beg)%sf(j, k, r + l)/y_cc(k)
977 end do
978 end do
979 end do
980 end do
981
982# 200 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
983#if defined(MFC_OpenACC)
984# 200 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
985!$acc end parallel loop
986# 200 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
987#elif defined(MFC_OpenMP)
988# 200 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
989
990# 200 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
991!$omp end target teams loop
992# 200 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
993#endif
994# 201 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
995 else
996
997# 202 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
998
999# 202 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1000#if defined(MFC_OpenACC)
1001# 202 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1002!$acc parallel loop collapse(4) gang vector default(present) private(j, k, l, r)
1003# 202 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1004#elif defined(MFC_OpenMP)
1005# 202 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1006
1007# 202 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1008
1009# 202 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1010
1011# 202 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1012!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, r)
1013# 202 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1014#endif
1015# 203 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1016 do l = 0, p
1017 do k = 0, n
1018 do j = 0, m
1019 do r = -fd_number, fd_number
1020 q_sf(j, k, l) = q_sf(j, k, l) + q_prim_vf0(eqn_idx%mom%beg)%sf(j, k, l)*fd_coeff_x(r, &
1021 & j)*q_prim_vf0(eqn_idx%mom%beg)%sf(r + j, k, l) + q_prim_vf0(eqn_idx%mom%beg + 1)%sf(j, &
1022 & k, l)*fd_coeff_y(r, k)*q_prim_vf0(eqn_idx%mom%beg)%sf(j, r + k, &
1023 & l) + q_prim_vf0(eqn_idx%mom%end)%sf(j, k, l)*fd_coeff_z(r, &
1024 & l)*q_prim_vf0(eqn_idx%mom%beg)%sf(j, k, r + l)
1025 end do
1026 end do
1027 end do
1028 end do
1029
1030# 216 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1031#if defined(MFC_OpenACC)
1032# 216 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1033!$acc end parallel loop
1034# 216 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1035#elif defined(MFC_OpenMP)
1036# 216 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1037
1038# 216 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1039!$omp end target teams loop
1040# 216 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1041#endif
1042# 217 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1043 end if
1044 end if
1045 ! Computing the acceleration component in the y-coordinate direction
1046 else if (i == 2) then
1047
1048# 221 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1049
1050# 221 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1051#if defined(MFC_OpenACC)
1052# 221 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1053!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l)
1054# 221 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1055#elif defined(MFC_OpenMP)
1056# 221 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1057
1058# 221 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1059
1060# 221 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1061
1062# 221 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1063!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l)
1064# 221 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1065#endif
1066# 222 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1067 do l = 0, p
1068 do k = 0, n
1069 do j = 0, m
1070 q_sf(j, k, l) = (11._wp*q_prim_vf0(eqn_idx%mom%beg + 1)%sf(j, k, &
1071 & l) - 18._wp*q_prim_vf1(eqn_idx%mom%beg + 1)%sf(j, k, &
1072 & l) + 9._wp*q_prim_vf2(eqn_idx%mom%beg + 1)%sf(j, k, &
1073 & l) - 2._wp*q_prim_vf3(eqn_idx%mom%beg + 1)%sf(j, k, l))/(6._wp*dt)
1074 end do
1075 end do
1076 end do
1077
1078# 232 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1079#if defined(MFC_OpenACC)
1080# 232 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1081!$acc end parallel loop
1082# 232 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1083#elif defined(MFC_OpenMP)
1084# 232 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1085
1086# 232 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1087!$omp end target teams loop
1088# 232 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1089#endif
1090# 233 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1091
1092 if (p == 0) then
1093
1094# 235 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1095
1096# 235 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1097#if defined(MFC_OpenACC)
1098# 235 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1099!$acc parallel loop collapse(4) gang vector default(present) private(j, k, l, r)
1100# 235 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1101#elif defined(MFC_OpenMP)
1102# 235 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1103
1104# 235 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1105
1106# 235 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1107
1108# 235 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1109!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, r)
1110# 235 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1111#endif
1112# 236 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1113 do l = 0, p
1114 do k = 0, n
1115 do j = 0, m
1116 do r = -fd_number, fd_number
1117 q_sf(j, k, l) = q_sf(j, k, l) + q_prim_vf0(eqn_idx%mom%beg)%sf(j, k, l)*fd_coeff_x(r, &
1118 & j)*q_prim_vf0(eqn_idx%mom%beg + 1)%sf(r + j, k, l) + q_prim_vf0(eqn_idx%mom%beg + 1)%sf(j, &
1119 & k, l)*fd_coeff_y(r, k)*q_prim_vf0(eqn_idx%mom%beg + 1)%sf(j, r + k, l)
1120 end do
1121 end do
1122 end do
1123 end do
1124
1125# 247 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1126#if defined(MFC_OpenACC)
1127# 247 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1128!$acc end parallel loop
1129# 247 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1130#elif defined(MFC_OpenMP)
1131# 247 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1132
1133# 247 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1134!$omp end target teams loop
1135# 247 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1136#endif
1137# 248 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1138 else
1139 if (grid_geometry == 3) then
1140
1141# 250 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1142
1143# 250 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1144#if defined(MFC_OpenACC)
1145# 250 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1146!$acc parallel loop collapse(4) gang vector default(present) private(j, k, l, r)
1147# 250 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1148#elif defined(MFC_OpenMP)
1149# 250 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1150
1151# 250 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1152
1153# 250 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1154
1155# 250 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1156!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, r)
1157# 250 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1158#endif
1159# 251 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1160 do l = 0, p
1161 do k = 0, n
1162 do j = 0, m
1163 do r = -fd_number, fd_number
1164 q_sf(j, k, l) = q_sf(j, k, l) + q_prim_vf0(eqn_idx%mom%beg)%sf(j, k, l)*fd_coeff_x(r, &
1165 & j)*q_prim_vf0(eqn_idx%mom%beg + 1)%sf(r + j, k, &
1166 & l) + q_prim_vf0(eqn_idx%mom%beg + 1)%sf(j, k, l)*fd_coeff_y(r, &
1167 & k)*q_prim_vf0(eqn_idx%mom%beg + 1)%sf(j, r + k, l) + q_prim_vf0(eqn_idx%mom%end)%sf(j, &
1168 & k, l)*fd_coeff_z(r, l)*q_prim_vf0(eqn_idx%mom%beg + 1)%sf(j, k, &
1169 & r + l)/y_cc(k) - (q_prim_vf0(eqn_idx%mom%end)%sf(j, k, l)**2._wp)/y_cc(k)
1170 end do
1171 end do
1172 end do
1173 end do
1174
1175# 265 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1176#if defined(MFC_OpenACC)
1177# 265 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1178!$acc end parallel loop
1179# 265 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1180#elif defined(MFC_OpenMP)
1181# 265 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1182
1183# 265 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1184!$omp end target teams loop
1185# 265 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1186#endif
1187# 266 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1188 else
1189
1190# 267 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1191
1192# 267 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1193#if defined(MFC_OpenACC)
1194# 267 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1195!$acc parallel loop collapse(4) gang vector default(present) private(j, k, l, r)
1196# 267 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1197#elif defined(MFC_OpenMP)
1198# 267 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1199
1200# 267 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1201
1202# 267 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1203
1204# 267 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1205!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, r)
1206# 267 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1207#endif
1208# 268 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1209 do l = 0, p
1210 do k = 0, n
1211 do j = 0, m
1212 do r = -fd_number, fd_number
1213 q_sf(j, k, l) = q_sf(j, k, l) + q_prim_vf0(eqn_idx%mom%beg)%sf(j, k, l)*fd_coeff_x(r, &
1214 & j)*q_prim_vf0(eqn_idx%mom%beg + 1)%sf(r + j, k, &
1215 & l) + q_prim_vf0(eqn_idx%mom%beg + 1)%sf(j, k, l)*fd_coeff_y(r, &
1216 & k)*q_prim_vf0(eqn_idx%mom%beg + 1)%sf(j, r + k, l) + q_prim_vf0(eqn_idx%mom%end)%sf(j, &
1217 & k, l)*fd_coeff_z(r, l)*q_prim_vf0(eqn_idx%mom%beg + 1)%sf(j, k, r + l)
1218 end do
1219 end do
1220 end do
1221 end do
1222
1223# 281 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1224#if defined(MFC_OpenACC)
1225# 281 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1226!$acc end parallel loop
1227# 281 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1228#elif defined(MFC_OpenMP)
1229# 281 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1230
1231# 281 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1232!$omp end target teams loop
1233# 281 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1234#endif
1235# 282 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1236 end if
1237 end if
1238 ! Computing the acceleration component in the z-coordinate direction
1239 else
1240
1241# 286 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1242
1243# 286 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1244#if defined(MFC_OpenACC)
1245# 286 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1246!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l)
1247# 286 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1248#elif defined(MFC_OpenMP)
1249# 286 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1250
1251# 286 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1252
1253# 286 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1254
1255# 286 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1256!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l)
1257# 286 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1258#endif
1259# 287 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1260 do l = 0, p
1261 do k = 0, n
1262 do j = 0, m
1263 q_sf(j, k, l) = (11._wp*q_prim_vf0(eqn_idx%mom%end)%sf(j, k, &
1264 & l) - 18._wp*q_prim_vf1(eqn_idx%mom%end)%sf(j, k, l) + 9._wp*q_prim_vf2(eqn_idx%mom%end)%sf(j, k, &
1265 & l) - 2._wp*q_prim_vf3(eqn_idx%mom%end)%sf(j, k, l))/(6._wp*dt)
1266 end do
1267 end do
1268 end do
1269
1270# 296 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1271#if defined(MFC_OpenACC)
1272# 296 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1273!$acc end parallel loop
1274# 296 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1275#elif defined(MFC_OpenMP)
1276# 296 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1277
1278# 296 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1279!$omp end target teams loop
1280# 296 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1281#endif
1282# 297 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1283
1284 if (grid_geometry == 3) then
1285
1286# 299 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1287
1288# 299 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1289#if defined(MFC_OpenACC)
1290# 299 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1291!$acc parallel loop collapse(4) gang vector default(present) private(j, k, l, r)
1292# 299 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1293#elif defined(MFC_OpenMP)
1294# 299 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1295
1296# 299 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1297
1298# 299 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1299
1300# 299 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1301!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, r)
1302# 299 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1303#endif
1304# 300 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1305 do l = 0, p
1306 do k = 0, n
1307 do j = 0, m
1308 do r = -fd_number, fd_number
1309 q_sf(j, k, l) = q_sf(j, k, l) + q_prim_vf0(eqn_idx%mom%beg)%sf(j, k, l)*fd_coeff_x(r, &
1310 & j)*q_prim_vf0(eqn_idx%mom%end)%sf(r + j, k, l) + q_prim_vf0(eqn_idx%mom%beg + 1)%sf(j, k, &
1311 & l)*fd_coeff_y(r, k)*q_prim_vf0(eqn_idx%mom%end)%sf(j, r + k, &
1312 & l) + q_prim_vf0(eqn_idx%mom%end)%sf(j, k, l)*fd_coeff_z(r, &
1313 & l)*q_prim_vf0(eqn_idx%mom%end)%sf(j, k, &
1314 & r + l)/y_cc(k) + (q_prim_vf0(eqn_idx%mom%end)%sf(j, k, &
1315 & l)*q_prim_vf0(eqn_idx%mom%beg + 1)%sf(j, k, l))/y_cc(k)
1316 end do
1317 end do
1318 end do
1319 end do
1320
1321# 315 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1322#if defined(MFC_OpenACC)
1323# 315 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1324!$acc end parallel loop
1325# 315 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1326#elif defined(MFC_OpenMP)
1327# 315 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1328
1329# 315 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1330!$omp end target teams loop
1331# 315 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1332#endif
1333# 316 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1334 else
1335
1336# 317 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1337
1338# 317 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1339#if defined(MFC_OpenACC)
1340# 317 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1341!$acc parallel loop collapse(4) gang vector default(present) private(j, k, l, r)
1342# 317 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1343#elif defined(MFC_OpenMP)
1344# 317 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1345
1346# 317 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1347
1348# 317 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1349
1350# 317 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1351!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, r)
1352# 317 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1353#endif
1354# 318 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1355 do l = 0, p
1356 do k = 0, n
1357 do j = 0, m
1358 do r = -fd_number, fd_number
1359 q_sf(j, k, l) = q_sf(j, k, l) + q_prim_vf0(eqn_idx%mom%beg)%sf(j, k, l)*fd_coeff_x(r, &
1360 & j)*q_prim_vf0(eqn_idx%mom%end)%sf(r + j, k, l) + q_prim_vf0(eqn_idx%mom%beg + 1)%sf(j, k, &
1361 & l)*fd_coeff_y(r, k)*q_prim_vf0(eqn_idx%mom%end)%sf(j, r + k, &
1362 & l) + q_prim_vf0(eqn_idx%mom%end)%sf(j, k, l)*fd_coeff_z(r, &
1363 & l)*q_prim_vf0(eqn_idx%mom%end)%sf(j, k, r + l)
1364 end do
1365 end do
1366 end do
1367 end do
1368
1369# 331 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1370#if defined(MFC_OpenACC)
1371# 331 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1372!$acc end parallel loop
1373# 331 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1374#elif defined(MFC_OpenMP)
1375# 331 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1376
1377# 331 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1378!$omp end target teams loop
1379# 331 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1380#endif
1381# 332 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1382 end if
1383 end if
1384
1385 end subroutine s_derive_acceleration_component
1386
1387 !> Deallocation procedures for the module
1389
1390 ! Closing flow probe files
1391 if (proc_rank == 0 .and. probe_wrt) then
1392 call s_close_probe_files()
1393 end if
1394
1395 if (probe_wrt .or. ib) then
1396#ifdef MFC_DEBUG
1397# 346 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1398 block
1399# 346 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1400 use iso_fortran_env, only: output_unit
1401# 346 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1402
1403# 346 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1404 print *, 'm_derived_variables.fpp:346: ', '@:DEALLOCATE(accel_mag)'
1405# 346 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1406
1407# 346 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1408 call flush (output_unit)
1409# 346 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1410 end block
1411# 346 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1412#endif
1413# 346 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1414
1415# 346 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1416#if defined(MFC_OpenACC)
1417# 346 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1418!$acc exit data delete(accel_mag)
1419# 346 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1420#elif defined(MFC_OpenMP)
1421# 346 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1422!$omp target exit data map(release:accel_mag)
1423# 346 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1424#endif
1425# 346 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1426 deallocate (accel_mag)
1427# 347 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1428#ifdef MFC_DEBUG
1429# 347 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1430 block
1431# 347 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1432 use iso_fortran_env, only: output_unit
1433# 347 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1434
1435# 347 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1436 print *, 'm_derived_variables.fpp:347: ', '@:DEALLOCATE(x_accel)'
1437# 347 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1438
1439# 347 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1440 call flush (output_unit)
1441# 347 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1442 end block
1443# 347 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1444#endif
1445# 347 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1446
1447# 347 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1448#if defined(MFC_OpenACC)
1449# 347 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1450!$acc exit data delete(x_accel)
1451# 347 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1452#elif defined(MFC_OpenMP)
1453# 347 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1454!$omp target exit data map(release:x_accel)
1455# 347 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1456#endif
1457# 347 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1458 deallocate (x_accel)
1459# 348 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1460 if (n > 0) then
1461#ifdef MFC_DEBUG
1462# 349 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1463 block
1464# 349 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1465 use iso_fortran_env, only: output_unit
1466# 349 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1467
1468# 349 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1469 print *, 'm_derived_variables.fpp:349: ', '@:DEALLOCATE(y_accel)'
1470# 349 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1471
1472# 349 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1473 call flush (output_unit)
1474# 349 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1475 end block
1476# 349 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1477#endif
1478# 349 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1479
1480# 349 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1481#if defined(MFC_OpenACC)
1482# 349 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1483!$acc exit data delete(y_accel)
1484# 349 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1485#elif defined(MFC_OpenMP)
1486# 349 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1487!$omp target exit data map(release:y_accel)
1488# 349 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1489#endif
1490# 349 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1491 deallocate (y_accel)
1492# 350 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1493 if (p > 0) then
1494#ifdef MFC_DEBUG
1495# 351 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1496 block
1497# 351 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1498 use iso_fortran_env, only: output_unit
1499# 351 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1500
1501# 351 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1502 print *, 'm_derived_variables.fpp:351: ', '@:DEALLOCATE(z_accel)'
1503# 351 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1504
1505# 351 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1506 call flush (output_unit)
1507# 351 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1508 end block
1509# 351 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1510#endif
1511# 351 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1512
1513# 351 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1514#if defined(MFC_OpenACC)
1515# 351 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1516!$acc exit data delete(z_accel)
1517# 351 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1518#elif defined(MFC_OpenMP)
1519# 351 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1520!$omp target exit data map(release:z_accel)
1521# 351 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1522#endif
1523# 351 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1524 deallocate (z_accel)
1525# 352 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1526 end if
1527 end if
1528#ifdef MFC_DEBUG
1529# 354 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1530 block
1531# 354 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1532 use iso_fortran_env, only: output_unit
1533# 354 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1534
1535# 354 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1536 print *, 'm_derived_variables.fpp:354: ', '@:DEALLOCATE(fd_coeff_x)'
1537# 354 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1538
1539# 354 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1540 call flush (output_unit)
1541# 354 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1542 end block
1543# 354 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1544#endif
1545# 354 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1546
1547# 354 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1548#if defined(MFC_OpenACC)
1549# 354 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1550!$acc exit data delete(fd_coeff_x)
1551# 354 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1552#elif defined(MFC_OpenMP)
1553# 354 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1554!$omp target exit data map(release:fd_coeff_x)
1555# 354 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1556#endif
1557# 354 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1558 deallocate (fd_coeff_x)
1559# 355 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1560 if (n > 0) then
1561#ifdef MFC_DEBUG
1562# 356 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1563 block
1564# 356 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1565 use iso_fortran_env, only: output_unit
1566# 356 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1567
1568# 356 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1569 print *, 'm_derived_variables.fpp:356: ', '@:DEALLOCATE(fd_coeff_y)'
1570# 356 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1571
1572# 356 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1573 call flush (output_unit)
1574# 356 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1575 end block
1576# 356 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1577#endif
1578# 356 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1579
1580# 356 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1581#if defined(MFC_OpenACC)
1582# 356 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1583!$acc exit data delete(fd_coeff_y)
1584# 356 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1585#elif defined(MFC_OpenMP)
1586# 356 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1587!$omp target exit data map(release:fd_coeff_y)
1588# 356 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1589#endif
1590# 356 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1591 deallocate (fd_coeff_y)
1592# 357 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1593 end if
1594 if (p > 0) then
1595#ifdef MFC_DEBUG
1596# 359 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1597 block
1598# 359 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1599 use iso_fortran_env, only: output_unit
1600# 359 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1601
1602# 359 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1603 print *, 'm_derived_variables.fpp:359: ', '@:DEALLOCATE(fd_coeff_z)'
1604# 359 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1605
1606# 359 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1607 call flush (output_unit)
1608# 359 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1609 end block
1610# 359 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1611#endif
1612# 359 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1613
1614# 359 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1615#if defined(MFC_OpenACC)
1616# 359 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1617!$acc exit data delete(fd_coeff_z)
1618# 359 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1619#elif defined(MFC_OpenMP)
1620# 359 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1621!$omp target exit data map(release:fd_coeff_z)
1622# 359 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1623#endif
1624# 359 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1625 deallocate (fd_coeff_z)
1626# 360 "/home/runner/work/MFC/MFC/src/simulation/m_derived_variables.fpp"
1627 end if
1628 end if
1629
1631
1632end module m_derived_variables
type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf
integer, intent(in) k
integer, intent(in) j
Platform-specific file and directory operations: create, delete, inquire, getcwd, and basename.
Writes solution data, run-time stability diagnostics (ICFL, VCFL, CCFL, Rc), and probe/center-of-mass...
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Derives diagnostic flow quantities (vorticity, speed of sound, numerical Schlieren,...
impure subroutine, public s_initialize_derived_variables
Allocate and open derived variables. Computing FD coefficients.
real(wp), dimension(:,:,:), allocatable, public accel_mag
subroutine, public s_compute_derived_variables(t_step, q_cons_vf, q_prim_ts1, q_prim_ts2)
Writes coherent body information, communication files, and probes.
real(wp), dimension(:,:,:), allocatable, public z_accel
impure subroutine, public s_initialize_derived_variables_module
Computation of parameters, allocation procedures, and/or any other tasks needed to properly setup the...
impure subroutine, public s_finalize_derived_variables_module
Deallocation procedures for the module.
real(wp), dimension(:,:,:), allocatable, public x_accel
real(wp), dimension(:,:,:), allocatable, public y_accel
subroutine s_derive_acceleration_component(i, q_prim_vf0, q_prim_vf1, q_prim_vf2, q_prim_vf3, q_sf)
Compute a component of the acceleration field from the primitive variables.
Finite difference operators for computing divergence of velocity fields.
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
integer fd_number
Finite-difference half-stencil size: MAX(1, fd_order/2).
real(wp), dimension(:,:), allocatable fd_coeff_x
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions...