MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_time_steppers.fpp.f90
Go to the documentation of this file.
1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2!>
3!! @file
4!! @brief Contains module m_time_steppers
5
6# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
7# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
8# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
9# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
10# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
11# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
12# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
13# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
14
15# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
16# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
17# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
18
19# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
20# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
21! Default for Fypp runs outside the toolchain (e.g. documentation). Searched last, so the
22! build/include/<target>/thermochem.fpp the toolchain writes from m_thermochem takes precedence.
23# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
24# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
25# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
26
27# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
28# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29
30# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31
32# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33
34# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35
36# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37
38# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39
40# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41
42# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43
44# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
45! New line at end of file is required for FYPP
46# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
47# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
48# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
49# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54
55# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
57# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58
59# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
61! Default for Fypp runs outside the toolchain (e.g. documentation). Searched last, so the
62! build/include/<target>/thermochem.fpp the toolchain writes from m_thermochem takes precedence.
63# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
64# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
65# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
66
67# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
69
70# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
71
72# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
73
74# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
75
76# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
77
78# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
79
80# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
81
82# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
83
84# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
85! New line at end of file is required for FYPP
86# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
87
88# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
89# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
91# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
93
94# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
95
96# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
97
98# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
99
100# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
101
102# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
103
104# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
105
106# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
107
108# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
109
110# 95 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
111
112# 100 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
113
114# 105 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
115
116# 110 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117
118# 115 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119
120# 120 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121
122# 125 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123
124# 130 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125
126# 135 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127
128# 165 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129
130# 219 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131
132# 233 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133
134# 258 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135
136# 269 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137
138# 271 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 282 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
140
141# 332 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
142
143# 342 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
144
145# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
146
147# 361 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
148
149# 378 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
150
151# 388 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
152
153# 395 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
154
155# 401 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
156
157# 407 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
158
159# 413 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
160
161# 419 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
162
163# 425 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
164! New line at end of file is required for FYPP
165# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
166# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
167# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
168# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
169# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
171# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
173
174# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
175# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
176# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
177
178# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
179# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
180! Default for Fypp runs outside the toolchain (e.g. documentation). Searched last, so the
181! build/include/<target>/thermochem.fpp the toolchain writes from m_thermochem takes precedence.
182# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
183# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
184# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
185
186# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
187# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
188
189# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
190
191# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
192
193# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
194
195# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
196
197# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
198
199# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
200
201# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
202
203# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
204! New line at end of file is required for FYPP
205# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
206
207# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208
209# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210
211# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212
213# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214
215# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216
217# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218
219# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220
221# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222
223# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224
225# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226
227# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228
229# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230
231# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232
233# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
234
235# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
236
237# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
238
239# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
240
241# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
242
243# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
244
245# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
246
247# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
248
249# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
250
251# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
252
253# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
254
255# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
256
257# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
258
259# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
260
261# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
262! New line at end of file is required for FYPP
263# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
264
265! GPU parallel region (scalar reductions, maxval/minval)
266# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
267
268! GPU parallel loop over threads (most common GPU macro)
269# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
270
271! Required closing for GPU_PARALLEL_LOOP
272# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
273
274! Mark routine for device compilation
275# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
276
277! Declare device-resident data
278# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
279
280! Inner loop within a GPU parallel region
281# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
282
283! Scoped GPU data region
284# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
285
286! Host code with device pointers (for MPI with GPU buffers)
287# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
288
289! Allocate device memory (unscoped)
290# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
291
292! Free device memory
293# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
294
295! Atomic operation on device
296# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
297
298! End atomic capture block
299# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
300
301! Copy data between host and device
302# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
303
304! Synchronization barrier
305# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
306
307! Import GPU library module (openacc or omp_lib)
308# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
309
310! Emit code only for AMD compiler
311# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
312
313! Emit code for non-Cray compilers
314# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
315
316! Emit code only for Cray compiler
317# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
318
319! Emit code for non-NVIDIA compilers
320# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
321
322# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
323# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
324! New line at end of file is required for FYPP
325# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
326
327# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
328
329! Caution: This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI
330! rank. That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0. For an
331! example see misc/nvidia_uvm/bind.sh.
332# 52 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
333
334! Allocate and create GPU device memory
335# 72 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
336
337! Free GPU device memory and deallocate
338# 80 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
339
340! Cray-specific GPU pointer setup for vector fields
341# 104 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
342
343! Cray-specific GPU pointer setup for scalar fields
344# 120 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
345
346! Cray-specific GPU pointer setup for acoustic source spatials
347# 145 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
348
349# 151 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
350
351# 158 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
352! New line at end of file is required for FYPP
353# 6 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp" 2
354# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
355! This file exists so that Fypp can be run without generating case.fpp files for
356! each target. This is useful when generating documentation, for example. This
357! should also let MFC be built with CMake directly, without invoking mfc.sh.
358
359! For pre-process.
360# 8 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
361
362! For moving immersed boundaries in simulation
363# 12 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
364# 7 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp" 2
365
366!> @brief Total-variation-diminishing (TVD) Runge--Kutta time integrators (1st-, 2nd-, and 3rd-order SSP)
368
371 use m_rhs
372 use m_chemistry
376 use m_data_output
377 use m_bubbles_ee
378 use m_bubbles_el
379 use m_ibm
381 use m_mpi_proxy
384 use m_helper
385 use m_sim_helpers
386 use m_fftw
387 use m_nvtx
388 use m_thermochem, only: num_species
389 use m_body_forces
392
393 implicit none
394
395 type(vector_field), allocatable, dimension(:) :: q_cons_ts !< Cell-average conservative variables at each time-stage (TS)
396 type(scalar_field), allocatable, dimension(:) :: q_prim_vf !< Cell-average primitive variables at the current time-stage
397 type(scalar_field), allocatable, dimension(:) :: rhs_vf !< Cell-average RHS variables at the current time-stage
398 type(integer_field), allocatable, dimension(:,:) :: bc_type !< Boundary condition identifiers
399 !> Cell-average primitive variables at consecutive TIMESTEPS
400 type(vector_field), allocatable, dimension(:) :: q_prim_ts1, q_prim_ts2
401 real(wp), allocatable, dimension(:,:,:,:,:) :: rhs_pb
402 type(scalar_field) :: q_t_sf !< Cell-average temperature variables at the current time-stage
403 real(wp), allocatable, dimension(:,:,:,:,:) :: rhs_mv
404 integer, private :: num_ts !< Number of time stages in the time-stepping scheme
405 integer :: stor !< storage index
406 real(wp), allocatable, dimension(:,:) :: rk_coef
407 integer, private :: num_probe_ts
408
409
410# 51 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
411#if defined(MFC_OpenACC)
412# 51 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
413!$acc declare create(q_cons_ts, q_prim_vf, q_T_sf, rhs_vf, q_prim_ts1, q_prim_ts2, rhs_mv, rhs_pb, rk_coef, stor, bc_type)
414# 51 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
415#elif defined(MFC_OpenMP)
416# 51 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
417!$omp declare target (q_cons_ts, q_prim_vf, q_T_sf, rhs_vf, q_prim_ts1, q_prim_ts2, rhs_mv, rhs_pb, rk_coef, stor, bc_type)
418# 51 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
419#endif
420# 52 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
421
422 !> @cond
423#if defined(__NVCOMPILER_GPU_UNIFIED_MEM)
424 real(stp), allocatable, dimension(:,:,:,:), pinned, target :: q_cons_ts_pool_host
425#elif defined(FRONTIER_UNIFIED)
426 real(stp), pointer, contiguous, dimension(:,:,:,:) :: q_cons_ts_pool_host, q_cons_ts_pool_device
427 integer(kind=8) :: pool_dims(4), pool_starts(4)
428 integer(kind=8) :: pool_size
429 type(c_ptr) :: cptr_host, cptr_device
430#endif
431 !> @endcond
432
433contains
434
435 !> Initialize the time steppers module
437
438#ifdef FRONTIER_UNIFIED
439 use hipfort
440 use hipfort_hipmalloc
441 use hipfort_check
442#if defined(MFC_OpenACC)
443 use openacc
444#endif
445#endif
446 integer :: i, j !< Generic loop iterators
447
448 if (time_stepper == time_stepper_rk1) then
449 num_ts = 1
450 else if (any(time_stepper == (/time_stepper_rk2, time_stepper_rk3/))) then
451 num_ts = 2
452 end if
453
454 if (probe_wrt) then
455 num_probe_ts = 2
456 end if
457
458 ! Allocating the cell-average conservative variables
459#ifdef MFC_DEBUG
460# 90 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
461 block
462# 90 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
463 use iso_fortran_env, only: output_unit
464# 90 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
465
466# 90 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
467 print *, 'm_time_steppers.fpp:90: ', '@:ALLOCATE(q_cons_ts(1:num_ts))'
468# 90 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
469
470# 90 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
471 call flush (output_unit)
472# 90 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
473 end block
474# 90 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
475#endif
476# 90 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
477 allocate (q_cons_ts(1:num_ts))
478# 90 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
479
480# 90 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
481
482# 90 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
483#if defined(MFC_OpenACC)
484# 90 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
485!$acc enter data create(q_cons_ts)
486# 90 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
487#elif defined(MFC_OpenMP)
488# 90 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
489!$omp target enter data map(always,alloc:q_cons_ts)
490# 90 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
491#endif
492# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
493#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
494# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
495 block
496# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
497 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
498# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
499 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
500# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
501#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
502# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
503 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
504# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
505#else
506# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
507 use cuda_runtime_api
508# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
509#endif
510# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
511 integer :: istat
512# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
513
514# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
515 if (nv_uvm_pref_gpu) then
516# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
517 ! set preferred location GPU
518# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
519 istat = cudamemadvise(c_devloc(q_cons_ts), sizeof(q_cons_ts), cudamemadvisesetpreferredlocation, 0)
520# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
521 if (istat /= cudasuccess) then
522# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
523 write (*, "('Error code: ',I0, ': ')") istat
524# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
525 end if
526# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
527 ! set accessed by CPU
528# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
529 istat = cudamemadvise(c_devloc(q_cons_ts), sizeof(q_cons_ts), cudamemadvisesetaccessedby, cudacpudeviceid)
530# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
531 if (istat /= cudasuccess) then
532# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
533 write (*, "('Error code: ',I0, ': ')") istat
534# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
535 end if
536# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
537 ! prefetch to GPU - physically populate memory pages
538# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
539 istat = cudamemprefetchasync(c_devloc(q_cons_ts), sizeof(q_cons_ts), 0, 0)
540# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
541 if (istat /= cudasuccess) then
542# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
543 write (*, "('Error code: ',I0, ': ')") istat
544# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
545 end if
546# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
547 end if
548# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
549 end block
550# 91 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
551#endif
552# 92 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
553
554 do i = 1, num_ts
555#ifdef MFC_DEBUG
556# 94 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
557 block
558# 94 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
559 use iso_fortran_env, only: output_unit
560# 94 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
561
562# 94 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
563 print *, 'm_time_steppers.fpp:94: ', '@:ALLOCATE(q_cons_ts(i)%vf(1:sys_size))'
564# 94 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
565
566# 94 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
567 call flush (output_unit)
568# 94 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
569 end block
570# 94 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
571#endif
572# 94 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
573 allocate (q_cons_ts(i)%vf(1:sys_size))
574# 94 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
575
576# 94 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
577
578# 94 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
579#if defined(MFC_OpenACC)
580# 94 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
581!$acc enter data create(q_cons_ts(i)%vf)
582# 94 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
583#elif defined(MFC_OpenMP)
584# 94 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
585!$omp target enter data map(always,alloc:q_cons_ts(i)%vf)
586# 94 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
587#endif
588# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
589#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
590# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
591 block
592# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
593 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
594# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
595 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
596# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
597#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
598# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
599 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
600# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
601#else
602# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
603 use cuda_runtime_api
604# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
605#endif
606# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
607 integer :: istat
608# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
609
610# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
611 if (nv_uvm_pref_gpu) then
612# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
613 ! set preferred location GPU
614# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
615 istat = cudamemadvise(c_devloc(q_cons_ts(i)%vf), sizeof(q_cons_ts(i)%vf), cudamemadvisesetpreferredlocation, 0)
616# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
617 if (istat /= cudasuccess) then
618# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
619 write (*, "('Error code: ',I0, ': ')") istat
620# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
621 end if
622# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
623 ! set accessed by CPU
624# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
625 istat = cudamemadvise(c_devloc(q_cons_ts(i)%vf), sizeof(q_cons_ts(i)%vf), cudamemadvisesetaccessedby, cudacpudeviceid)
626# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
627 if (istat /= cudasuccess) then
628# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
629 write (*, "('Error code: ',I0, ': ')") istat
630# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
631 end if
632# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
633 ! prefetch to GPU - physically populate memory pages
634# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
635 istat = cudamemprefetchasync(c_devloc(q_cons_ts(i)%vf), sizeof(q_cons_ts(i)%vf), 0, 0)
636# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
637 if (istat /= cudasuccess) then
638# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
639 write (*, "('Error code: ',I0, ': ')") istat
640# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
641 end if
642# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
643 end if
644# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
645 end block
646# 95 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
647#endif
648# 96 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
649 end do
650
651 !> @cond
652#if defined(__NVCOMPILER_GPU_UNIFIED_MEM)
653 if (num_ts == 2 .and. nv_uvm_out_of_core) then
654 ! host allocation for q_cons_ts(2)%vf(j)%sf for all j
655 allocate (q_cons_ts_pool_host(idwbuff(1)%beg:idwbuff(1)%end,idwbuff(2)%beg:idwbuff(2)%end, &
656 & idwbuff(3)%beg:idwbuff(3)%end,1:sys_size))
657 end if
658
659 do j = 1, sys_size
660 ! q_cons_ts(1) lives on the device
661#ifdef MFC_DEBUG
662# 108 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
663 block
664# 108 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
665 use iso_fortran_env, only: output_unit
666# 108 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
667
668# 108 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
669 print *, 'm_time_steppers.fpp:108: ', '@:ALLOCATE(q_cons_ts(1)%vf(j)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
670# 108 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
671
672# 108 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
673 call flush (output_unit)
674# 108 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
675 end block
676# 108 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
677#endif
678# 108 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
679 allocate (q_cons_ts(1)%vf(j)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
680# 108 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
681
682# 108 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
683
684# 108 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
685#if defined(MFC_OpenACC)
686# 108 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
687!$acc enter data create(q_cons_ts(1)%vf(j)%sf)
688# 108 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
689#elif defined(MFC_OpenMP)
690# 108 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
691!$omp target enter data map(always,alloc:q_cons_ts(1)%vf(j)%sf)
692# 108 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
693#endif
694# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
695#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
696# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
697 block
698# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
699 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
700# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
701 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
702# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
703#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
704# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
705 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
706# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
707#else
708# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
709 use cuda_runtime_api
710# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
711#endif
712# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
713 integer :: istat
714# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
715
716# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
717 if (nv_uvm_pref_gpu) then
718# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
719 ! set preferred location GPU
720# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
721 istat = cudamemadvise(c_devloc(q_cons_ts(1)%vf(j)%sf), sizeof(q_cons_ts(1)%vf(j)%sf), cudamemadvisesetpreferredlocation, 0)
722# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
723 if (istat /= cudasuccess) then
724# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
725 write (*, "('Error code: ',I0, ': ')") istat
726# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
727 end if
728# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
729 ! set accessed by CPU
730# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
731 istat = cudamemadvise(c_devloc(q_cons_ts(1)%vf(j)%sf), sizeof(q_cons_ts(1)%vf(j)%sf), cudamemadvisesetaccessedby, cudacpudeviceid)
732# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
733 if (istat /= cudasuccess) then
734# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
735 write (*, "('Error code: ',I0, ': ')") istat
736# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
737 end if
738# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
739 ! prefetch to GPU - physically populate memory pages
740# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
741 istat = cudamemprefetchasync(c_devloc(q_cons_ts(1)%vf(j)%sf), sizeof(q_cons_ts(1)%vf(j)%sf), 0, 0)
742# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
743 if (istat /= cudasuccess) then
744# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
745 write (*, "('Error code: ',I0, ': ')") istat
746# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
747 end if
748# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
749 end if
750# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
751 end block
752# 110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
753#endif
754# 111 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
755 if (num_ts == 2) then
756 if (nv_uvm_out_of_core) then
757 ! q_cons_ts(2) lives on the host
758 q_cons_ts(2)%vf(j)%sf(idwbuff(1)%beg:idwbuff(1)%end,idwbuff(2)%beg:idwbuff(2)%end, &
759 & idwbuff(3)%beg:idwbuff(3)%end) => q_cons_ts_pool_host(:,:,:,j)
760 else
761#ifdef MFC_DEBUG
762# 117 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
763 block
764# 117 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
765 use iso_fortran_env, only: output_unit
766# 117 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
767
768# 117 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
769 print *, 'm_time_steppers.fpp:117: ', '@:ALLOCATE(q_cons_ts(2)%vf(j)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
770# 117 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
771
772# 117 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
773 call flush (output_unit)
774# 117 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
775 end block
776# 117 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
777#endif
778# 117 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
779 allocate (q_cons_ts(2)%vf(j)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
780# 117 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
781
782# 117 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
783
784# 117 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
785#if defined(MFC_OpenACC)
786# 117 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
787!$acc enter data create(q_cons_ts(2)%vf(j)%sf)
788# 117 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
789#elif defined(MFC_OpenMP)
790# 117 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
791!$omp target enter data map(always,alloc:q_cons_ts(2)%vf(j)%sf)
792# 117 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
793#endif
794# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
795#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
796# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
797 block
798# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
799 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
800# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
801 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
802# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
803#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
804# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
805 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
806# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
807#else
808# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
809 use cuda_runtime_api
810# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
811#endif
812# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
813 integer :: istat
814# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
815
816# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
817 if (nv_uvm_pref_gpu) then
818# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
819 ! set preferred location GPU
820# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
821 istat = cudamemadvise(c_devloc(q_cons_ts(2)%vf(j)%sf), sizeof(q_cons_ts(2)%vf(j)%sf), cudamemadvisesetpreferredlocation, 0)
822# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
823 if (istat /= cudasuccess) then
824# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
825 write (*, "('Error code: ',I0, ': ')") istat
826# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
827 end if
828# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
829 ! set accessed by CPU
830# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
831 istat = cudamemadvise(c_devloc(q_cons_ts(2)%vf(j)%sf), sizeof(q_cons_ts(2)%vf(j)%sf), cudamemadvisesetaccessedby, cudacpudeviceid)
832# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
833 if (istat /= cudasuccess) then
834# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
835 write (*, "('Error code: ',I0, ': ')") istat
836# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
837 end if
838# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
839 ! prefetch to GPU - physically populate memory pages
840# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
841 istat = cudamemprefetchasync(c_devloc(q_cons_ts(2)%vf(j)%sf), sizeof(q_cons_ts(2)%vf(j)%sf), 0, 0)
842# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
843 if (istat /= cudasuccess) then
844# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
845 write (*, "('Error code: ',I0, ': ')") istat
846# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
847 end if
848# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
849 end if
850# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
851 end block
852# 119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
853#endif
854# 120 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
855 end if
856 end if
857 end do
858
859 do i = 1, num_ts
860#ifdef _CRAYFTN
861# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
862 block
863# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
864 integer :: macros_setup_vfs_i
865# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
866
867# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
868#ifdef MFC_DEBUG
869# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
870 block
871# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
872 use iso_fortran_env, only: output_unit
873# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
874
875# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
876 print *, 'm_time_steppers.fpp:125: ', '@:ACC_SETUP_VFs(q_cons_ts(i))'
877# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
878
879# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
880 call flush (output_unit)
881# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
882 end block
883# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
884#endif
885# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
886
887# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
888
889# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
890#if defined(MFC_OpenACC)
891# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
892!$acc enter data copyin(q_cons_ts(i))
893# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
894#elif defined(MFC_OpenMP)
895# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
896!$omp target enter data map(to:q_cons_ts(i))
897# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
898#endif
899# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
900
901# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
902#if defined(MFC_OpenACC)
903# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
904!$acc enter data copyin(q_cons_ts(i)%vf)
905# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
906#elif defined(MFC_OpenMP)
907# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
908!$omp target enter data map(to:q_cons_ts(i)%vf)
909# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
910#endif
911# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
912 if (allocated(q_cons_ts(i)%vf)) then
913# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
914 do macros_setup_vfs_i = lbound(q_cons_ts(i)%vf, 1), ubound(q_cons_ts(i)%vf, 1)
915# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
916 if (associated(q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)) then
917# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
918
919# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
920#if defined(MFC_OpenACC)
921# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
922!$acc enter data copyin(q_cons_ts(i)%vf(macros_setup_vfs_i))
923# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
924#elif defined(MFC_OpenMP)
925# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
926!$omp target enter data map(to:q_cons_ts(i)%vf(macros_setup_vfs_i))
927# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
928#endif
929# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
930
931# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
932#if defined(MFC_OpenACC)
933# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
934!$acc enter data copyin(q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)
935# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
936#elif defined(MFC_OpenMP)
937# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
938!$omp target enter data map(to:q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)
939# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
940#endif
941# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
942 end if
943# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
944 end do
945# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
946 end if
947# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
948 end block
949# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
950#endif
951# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
952 end do
953#elif defined(FRONTIER_UNIFIED)
954 ! Allocate to memory regions using hip calls that we will attach pointers to
955 do i = 1, 3
956 pool_dims(i) = idwbuff(i)%end - idwbuff(i)%beg + 1
957 pool_starts(i) = idwbuff(i)%beg
958 end do
959 pool_dims(4) = sys_size
960 pool_starts(4) = 1
961#ifdef MFC_MIXED_PRECISION
962 pool_size = 1_8*(idwbuff(1)%end - idwbuff(1)%beg + 1)*(idwbuff(2)%end - idwbuff(2)%beg + 1)*(idwbuff(3)%end &
963 & - idwbuff(3)%beg + 1)*sys_size
964 call hipcheck(hipmalloc_(cptr_device, pool_size*2_8))
965 call c_f_pointer(cptr_device, q_cons_ts_pool_device, shape=pool_dims)
966 q_cons_ts_pool_device(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:) => q_cons_ts_pool_device
967
968 call hipcheck(hipmallocmanaged_(cptr_host, pool_size*2_8, hipmemattachglobal))
969 call c_f_pointer(cptr_host, q_cons_ts_pool_host, shape=pool_dims)
970 q_cons_ts_pool_host(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:) => q_cons_ts_pool_host
971#else
972 ! Doing hipMalloc then mapping should be most performant
973 call hipcheck(hipmalloc(q_cons_ts_pool_device, dims8=pool_dims, lbounds8=pool_starts))
974 ! Without this map CCE will still create a device copy, because it's silly like that
975#if defined(MFC_OpenACC)
976 call acc_map_data(q_cons_ts_pool_device, c_loc(q_cons_ts_pool_device), c_sizeof(q_cons_ts_pool_device))
977#endif
978 ! CCE see it can access this and will leave it on the host. It will stay on the host so long as HSA_XNACK=1 NOTE: WE CANNOT
979 ! DO ATOMICS INTO THIS MEMORY. We have to change a property to use atomics here Otherwise leaving this as fine-grained will
980 ! actually help performance since it can't be cached in GPU L2
981 if (num_ts == 2) then
982 call hipcheck(hipmallocmanaged(q_cons_ts_pool_host, dims8=pool_dims, lbounds8=pool_starts, flags=hipmemattachglobal))
983#if defined(MFC_OpenMP)
984 call hipcheck(hipmemadvise(c_loc(q_cons_ts_pool_host), c_sizeof(q_cons_ts_pool_host), &
985 & hipmemadvisesetpreferredlocation, -1))
986#endif
987 end if
988#endif
989
990 do j = 1, sys_size
991 ! q_cons_ts(1) lives on the device
992 q_cons_ts(1)%vf(j)%sf(idwbuff(1)%beg:idwbuff(1)%end,idwbuff(2)%beg:idwbuff(2)%end, &
993 & idwbuff(3)%beg:idwbuff(3)%end) => q_cons_ts_pool_device(:,:,:,j)
994 if (num_ts == 2) then
995 ! q_cons_ts(2) lives on the host
996 q_cons_ts(2)%vf(j)%sf(idwbuff(1)%beg:idwbuff(1)%end,idwbuff(2)%beg:idwbuff(2)%end, &
997 & idwbuff(3)%beg:idwbuff(3)%end) => q_cons_ts_pool_host(:,:,:,j)
998 end if
999 end do
1000
1001 do i = 1, num_ts
1002#ifdef _CRAYFTN
1003# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1004 block
1005# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1006 integer :: macros_setup_vfs_i
1007# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1008
1009# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1010#ifdef MFC_DEBUG
1011# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1012 block
1013# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1014 use iso_fortran_env, only: output_unit
1015# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1016
1017# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1018 print *, 'm_time_steppers.fpp:176: ', '@:ACC_SETUP_VFs(q_cons_ts(i))'
1019# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1020
1021# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1022 call flush (output_unit)
1023# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1024 end block
1025# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1026#endif
1027# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1028
1029# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1030
1031# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1032#if defined(MFC_OpenACC)
1033# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1034!$acc enter data copyin(q_cons_ts(i))
1035# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1036#elif defined(MFC_OpenMP)
1037# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1038!$omp target enter data map(to:q_cons_ts(i))
1039# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1040#endif
1041# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1042
1043# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1044#if defined(MFC_OpenACC)
1045# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1046!$acc enter data copyin(q_cons_ts(i)%vf)
1047# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1048#elif defined(MFC_OpenMP)
1049# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1050!$omp target enter data map(to:q_cons_ts(i)%vf)
1051# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1052#endif
1053# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1054 if (allocated(q_cons_ts(i)%vf)) then
1055# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1056 do macros_setup_vfs_i = lbound(q_cons_ts(i)%vf, 1), ubound(q_cons_ts(i)%vf, 1)
1057# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1058 if (associated(q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)) then
1059# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1060
1061# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1062#if defined(MFC_OpenACC)
1063# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1064!$acc enter data copyin(q_cons_ts(i)%vf(macros_setup_vfs_i))
1065# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1066#elif defined(MFC_OpenMP)
1067# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1068!$omp target enter data map(to:q_cons_ts(i)%vf(macros_setup_vfs_i))
1069# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1070#endif
1071# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1072
1073# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1074#if defined(MFC_OpenACC)
1075# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1076!$acc enter data copyin(q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)
1077# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1078#elif defined(MFC_OpenMP)
1079# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1080!$omp target enter data map(to:q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)
1081# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1082#endif
1083# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1084 end if
1085# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1086 end do
1087# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1088 end if
1089# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1090 end block
1091# 176 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1092#endif
1093# 177 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1094 do j = 1, sys_size
1095
1096# 178 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1097#if defined(MFC_OpenACC)
1098# 178 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1099!$acc update device(q_cons_ts(i)%vf(j))
1100# 178 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1101#elif defined(MFC_OpenMP)
1102# 178 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1103!$omp target update to(q_cons_ts(i)%vf(j))
1104# 178 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1105#endif
1106# 179 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1107 end do
1108 end do
1109#else
1110 !> @endcond
1111 do i = 1, num_ts
1112 do j = 1, sys_size
1113#ifdef MFC_DEBUG
1114# 185 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1115 block
1116# 185 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1117 use iso_fortran_env, only: output_unit
1118# 185 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1119
1120# 185 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1121 print *, 'm_time_steppers.fpp:185: ', '@:ALLOCATE(q_cons_ts(i)%vf(j)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
1122# 185 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1123
1124# 185 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1125 call flush (output_unit)
1126# 185 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1127 end block
1128# 185 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1129#endif
1130# 185 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1131 allocate (q_cons_ts(i)%vf(j)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
1132# 185 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1133
1134# 185 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1135
1136# 185 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1137#if defined(MFC_OpenACC)
1138# 185 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1139!$acc enter data create(q_cons_ts(i)%vf(j)%sf)
1140# 185 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1141#elif defined(MFC_OpenMP)
1142# 185 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1143!$omp target enter data map(always,alloc:q_cons_ts(i)%vf(j)%sf)
1144# 185 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1145#endif
1146# 187 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1147 end do
1148#ifdef _CRAYFTN
1149# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1150 block
1151# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1152 integer :: macros_setup_vfs_i
1153# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1154
1155# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1156#ifdef MFC_DEBUG
1157# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1158 block
1159# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1160 use iso_fortran_env, only: output_unit
1161# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1162
1163# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1164 print *, 'm_time_steppers.fpp:188: ', '@:ACC_SETUP_VFs(q_cons_ts(i))'
1165# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1166
1167# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1168 call flush (output_unit)
1169# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1170 end block
1171# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1172#endif
1173# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1174
1175# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1176
1177# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1178#if defined(MFC_OpenACC)
1179# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1180!$acc enter data copyin(q_cons_ts(i))
1181# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1182#elif defined(MFC_OpenMP)
1183# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1184!$omp target enter data map(to:q_cons_ts(i))
1185# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1186#endif
1187# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1188
1189# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1190#if defined(MFC_OpenACC)
1191# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1192!$acc enter data copyin(q_cons_ts(i)%vf)
1193# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1194#elif defined(MFC_OpenMP)
1195# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1196!$omp target enter data map(to:q_cons_ts(i)%vf)
1197# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1198#endif
1199# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1200 if (allocated(q_cons_ts(i)%vf)) then
1201# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1202 do macros_setup_vfs_i = lbound(q_cons_ts(i)%vf, 1), ubound(q_cons_ts(i)%vf, 1)
1203# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1204 if (associated(q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)) then
1205# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1206
1207# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1208#if defined(MFC_OpenACC)
1209# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1210!$acc enter data copyin(q_cons_ts(i)%vf(macros_setup_vfs_i))
1211# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1212#elif defined(MFC_OpenMP)
1213# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1214!$omp target enter data map(to:q_cons_ts(i)%vf(macros_setup_vfs_i))
1215# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1216#endif
1217# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1218
1219# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1220#if defined(MFC_OpenACC)
1221# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1222!$acc enter data copyin(q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)
1223# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1224#elif defined(MFC_OpenMP)
1225# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1226!$omp target enter data map(to:q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)
1227# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1228#endif
1229# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1230 end if
1231# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1232 end do
1233# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1234 end if
1235# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1236 end block
1237# 188 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1238#endif
1239# 189 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1240 end do
1241 !> @cond
1242#endif
1243 !> @endcond
1244
1245 ! Allocating the cell-average primitive ts variables
1246 if (probe_wrt) then
1247#ifdef MFC_DEBUG
1248# 196 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1249 block
1250# 196 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1251 use iso_fortran_env, only: output_unit
1252# 196 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1253
1254# 196 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1255 print *, 'm_time_steppers.fpp:196: ', '@:ALLOCATE(q_prim_ts1(1:num_probe_ts))'
1256# 196 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1257
1258# 196 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1259 call flush (output_unit)
1260# 196 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1261 end block
1262# 196 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1263#endif
1264# 196 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1265 allocate (q_prim_ts1(1:num_probe_ts))
1266# 196 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1267
1268# 196 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1269
1270# 196 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1271#if defined(MFC_OpenACC)
1272# 196 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1273!$acc enter data create(q_prim_ts1)
1274# 196 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1275#elif defined(MFC_OpenMP)
1276# 196 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1277!$omp target enter data map(always,alloc:q_prim_ts1)
1278# 196 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1279#endif
1280# 197 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1281
1282 do i = 1, num_probe_ts
1283#ifdef MFC_DEBUG
1284# 199 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1285 block
1286# 199 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1287 use iso_fortran_env, only: output_unit
1288# 199 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1289
1290# 199 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1291 print *, 'm_time_steppers.fpp:199: ', '@:ALLOCATE(q_prim_ts1(i)%vf(1:sys_size))'
1292# 199 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1293
1294# 199 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1295 call flush (output_unit)
1296# 199 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1297 end block
1298# 199 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1299#endif
1300# 199 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1301 allocate (q_prim_ts1(i)%vf(1:sys_size))
1302# 199 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1303
1304# 199 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1305
1306# 199 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1307#if defined(MFC_OpenACC)
1308# 199 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1309!$acc enter data create(q_prim_ts1(i)%vf)
1310# 199 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1311#elif defined(MFC_OpenMP)
1312# 199 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1313!$omp target enter data map(always,alloc:q_prim_ts1(i)%vf)
1314# 199 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1315#endif
1316# 200 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1317 end do
1318
1319 do i = 1, num_probe_ts
1320 do j = 1, sys_size
1321#ifdef MFC_DEBUG
1322# 204 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1323 block
1324# 204 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1325 use iso_fortran_env, only: output_unit
1326# 204 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1327
1328# 204 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1329 print *, 'm_time_steppers.fpp:204: ', '@:ALLOCATE(q_prim_ts1(i)%vf(j)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
1330# 204 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1331
1332# 204 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1333 call flush (output_unit)
1334# 204 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1335 end block
1336# 204 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1337#endif
1338# 204 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1339 allocate (q_prim_ts1(i)%vf(j)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
1340# 204 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1341
1342# 204 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1343
1344# 204 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1345#if defined(MFC_OpenACC)
1346# 204 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1347!$acc enter data create(q_prim_ts1(i)%vf(j)%sf)
1348# 204 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1349#elif defined(MFC_OpenMP)
1350# 204 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1351!$omp target enter data map(always,alloc:q_prim_ts1(i)%vf(j)%sf)
1352# 204 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1353#endif
1354# 206 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1355 end do
1356#ifdef _CRAYFTN
1357# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1358 block
1359# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1360 integer :: macros_setup_vfs_i
1361# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1362
1363# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1364#ifdef MFC_DEBUG
1365# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1366 block
1367# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1368 use iso_fortran_env, only: output_unit
1369# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1370
1371# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1372 print *, 'm_time_steppers.fpp:207: ', '@:ACC_SETUP_VFs(q_prim_ts1(i))'
1373# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1374
1375# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1376 call flush (output_unit)
1377# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1378 end block
1379# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1380#endif
1381# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1382
1383# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1384
1385# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1386#if defined(MFC_OpenACC)
1387# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1388!$acc enter data copyin(q_prim_ts1(i))
1389# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1390#elif defined(MFC_OpenMP)
1391# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1392!$omp target enter data map(to:q_prim_ts1(i))
1393# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1394#endif
1395# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1396
1397# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1398#if defined(MFC_OpenACC)
1399# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1400!$acc enter data copyin(q_prim_ts1(i)%vf)
1401# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1402#elif defined(MFC_OpenMP)
1403# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1404!$omp target enter data map(to:q_prim_ts1(i)%vf)
1405# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1406#endif
1407# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1408 if (allocated(q_prim_ts1(i)%vf)) then
1409# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1410 do macros_setup_vfs_i = lbound(q_prim_ts1(i)%vf, 1), ubound(q_prim_ts1(i)%vf, 1)
1411# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1412 if (associated(q_prim_ts1(i)%vf(macros_setup_vfs_i)%sf)) then
1413# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1414
1415# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1416#if defined(MFC_OpenACC)
1417# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1418!$acc enter data copyin(q_prim_ts1(i)%vf(macros_setup_vfs_i))
1419# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1420#elif defined(MFC_OpenMP)
1421# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1422!$omp target enter data map(to:q_prim_ts1(i)%vf(macros_setup_vfs_i))
1423# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1424#endif
1425# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1426
1427# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1428#if defined(MFC_OpenACC)
1429# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1430!$acc enter data copyin(q_prim_ts1(i)%vf(macros_setup_vfs_i)%sf)
1431# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1432#elif defined(MFC_OpenMP)
1433# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1434!$omp target enter data map(to:q_prim_ts1(i)%vf(macros_setup_vfs_i)%sf)
1435# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1436#endif
1437# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1438 end if
1439# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1440 end do
1441# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1442 end if
1443# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1444 end block
1445# 207 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1446#endif
1447# 208 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1448 end do
1449
1450#ifdef MFC_DEBUG
1451# 210 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1452 block
1453# 210 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1454 use iso_fortran_env, only: output_unit
1455# 210 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1456
1457# 210 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1458 print *, 'm_time_steppers.fpp:210: ', '@:ALLOCATE(q_prim_ts2(1:num_probe_ts))'
1459# 210 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1460
1461# 210 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1462 call flush (output_unit)
1463# 210 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1464 end block
1465# 210 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1466#endif
1467# 210 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1468 allocate (q_prim_ts2(1:num_probe_ts))
1469# 210 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1470
1471# 210 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1472
1473# 210 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1474#if defined(MFC_OpenACC)
1475# 210 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1476!$acc enter data create(q_prim_ts2)
1477# 210 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1478#elif defined(MFC_OpenMP)
1479# 210 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1480!$omp target enter data map(always,alloc:q_prim_ts2)
1481# 210 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1482#endif
1483# 211 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1484
1485 do i = 1, num_probe_ts
1486#ifdef MFC_DEBUG
1487# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1488 block
1489# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1490 use iso_fortran_env, only: output_unit
1491# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1492
1493# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1494 print *, 'm_time_steppers.fpp:213: ', '@:ALLOCATE(q_prim_ts2(i)%vf(1:sys_size))'
1495# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1496
1497# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1498 call flush (output_unit)
1499# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1500 end block
1501# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1502#endif
1503# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1504 allocate (q_prim_ts2(i)%vf(1:sys_size))
1505# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1506
1507# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1508
1509# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1510#if defined(MFC_OpenACC)
1511# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1512!$acc enter data create(q_prim_ts2(i)%vf)
1513# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1514#elif defined(MFC_OpenMP)
1515# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1516!$omp target enter data map(always,alloc:q_prim_ts2(i)%vf)
1517# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1518#endif
1519# 214 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1520 end do
1521
1522 do i = 1, num_probe_ts
1523 do j = 1, sys_size
1524#ifdef MFC_DEBUG
1525# 218 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1526 block
1527# 218 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1528 use iso_fortran_env, only: output_unit
1529# 218 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1530
1531# 218 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1532 print *, 'm_time_steppers.fpp:218: ', '@:ALLOCATE(q_prim_ts2(i)%vf(j)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
1533# 218 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1534
1535# 218 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1536 call flush (output_unit)
1537# 218 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1538 end block
1539# 218 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1540#endif
1541# 218 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1542 allocate (q_prim_ts2(i)%vf(j)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
1543# 218 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1544
1545# 218 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1546
1547# 218 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1548#if defined(MFC_OpenACC)
1549# 218 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1550!$acc enter data create(q_prim_ts2(i)%vf(j)%sf)
1551# 218 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1552#elif defined(MFC_OpenMP)
1553# 218 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1554!$omp target enter data map(always,alloc:q_prim_ts2(i)%vf(j)%sf)
1555# 218 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1556#endif
1557# 220 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1558 end do
1559#ifdef _CRAYFTN
1560# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1561 block
1562# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1563 integer :: macros_setup_vfs_i
1564# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1565
1566# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1567#ifdef MFC_DEBUG
1568# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1569 block
1570# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1571 use iso_fortran_env, only: output_unit
1572# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1573
1574# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1575 print *, 'm_time_steppers.fpp:221: ', '@:ACC_SETUP_VFs(q_prim_ts2(i))'
1576# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1577
1578# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1579 call flush (output_unit)
1580# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1581 end block
1582# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1583#endif
1584# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1585
1586# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1587
1588# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1589#if defined(MFC_OpenACC)
1590# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1591!$acc enter data copyin(q_prim_ts2(i))
1592# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1593#elif defined(MFC_OpenMP)
1594# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1595!$omp target enter data map(to:q_prim_ts2(i))
1596# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1597#endif
1598# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1599
1600# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1601#if defined(MFC_OpenACC)
1602# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1603!$acc enter data copyin(q_prim_ts2(i)%vf)
1604# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1605#elif defined(MFC_OpenMP)
1606# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1607!$omp target enter data map(to:q_prim_ts2(i)%vf)
1608# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1609#endif
1610# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1611 if (allocated(q_prim_ts2(i)%vf)) then
1612# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1613 do macros_setup_vfs_i = lbound(q_prim_ts2(i)%vf, 1), ubound(q_prim_ts2(i)%vf, 1)
1614# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1615 if (associated(q_prim_ts2(i)%vf(macros_setup_vfs_i)%sf)) then
1616# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1617
1618# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1619#if defined(MFC_OpenACC)
1620# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1621!$acc enter data copyin(q_prim_ts2(i)%vf(macros_setup_vfs_i))
1622# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1623#elif defined(MFC_OpenMP)
1624# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1625!$omp target enter data map(to:q_prim_ts2(i)%vf(macros_setup_vfs_i))
1626# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1627#endif
1628# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1629
1630# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1631#if defined(MFC_OpenACC)
1632# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1633!$acc enter data copyin(q_prim_ts2(i)%vf(macros_setup_vfs_i)%sf)
1634# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1635#elif defined(MFC_OpenMP)
1636# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1637!$omp target enter data map(to:q_prim_ts2(i)%vf(macros_setup_vfs_i)%sf)
1638# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1639#endif
1640# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1641 end if
1642# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1643 end do
1644# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1645 end if
1646# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1647 end block
1648# 221 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1649#endif
1650# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1651 end do
1652 end if
1653
1654 ! Allocating the cell-average primitive variables
1655#ifdef MFC_DEBUG
1656# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1657 block
1658# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1659 use iso_fortran_env, only: output_unit
1660# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1661
1662# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1663 print *, 'm_time_steppers.fpp:226: ', '@:ALLOCATE(q_prim_vf(1:sys_size))'
1664# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1665
1666# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1667 call flush (output_unit)
1668# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1669 end block
1670# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1671#endif
1672# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1673 allocate (q_prim_vf(1:sys_size))
1674# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1675
1676# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1677
1678# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1679#if defined(MFC_OpenACC)
1680# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1681!$acc enter data create(q_prim_vf)
1682# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1683#elif defined(MFC_OpenMP)
1684# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1685!$omp target enter data map(always,alloc:q_prim_vf)
1686# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1687#endif
1688# 227 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1689
1690 if (.not. igr) then
1691 do i = 1, eqn_idx%adv%end
1692#ifdef MFC_DEBUG
1693# 230 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1694 block
1695# 230 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1696 use iso_fortran_env, only: output_unit
1697# 230 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1698
1699# 230 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1700 print *, 'm_time_steppers.fpp:230: ', '@:ALLOCATE(q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
1701# 230 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1702
1703# 230 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1704 call flush (output_unit)
1705# 230 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1706 end block
1707# 230 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1708#endif
1709# 230 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1710 allocate (q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
1711# 230 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1712
1713# 230 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1714
1715# 230 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1716#if defined(MFC_OpenACC)
1717# 230 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1718!$acc enter data create(q_prim_vf(i)%sf)
1719# 230 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1720#elif defined(MFC_OpenMP)
1721# 230 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1722!$omp target enter data map(always,alloc:q_prim_vf(i)%sf)
1723# 230 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1724#endif
1725# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1726#ifdef _CRAYFTN
1727# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1728 block
1729# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1730#ifdef MFC_DEBUG
1731# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1732 block
1733# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1734 use iso_fortran_env, only: output_unit
1735# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1736
1737# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1738 print *, 'm_time_steppers.fpp:232: ', '@:ACC_SETUP_SFs(q_prim_vf(i))'
1739# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1740
1741# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1742 call flush (output_unit)
1743# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1744 end block
1745# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1746#endif
1747# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1748
1749# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1750
1751# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1752#if defined(MFC_OpenACC)
1753# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1754!$acc enter data copyin(q_prim_vf(i))
1755# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1756#elif defined(MFC_OpenMP)
1757# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1758!$omp target enter data map(to:q_prim_vf(i))
1759# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1760#endif
1761# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1762 if (associated(q_prim_vf(i)%sf)) then
1763# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1764
1765# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1766#if defined(MFC_OpenACC)
1767# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1768!$acc enter data copyin(q_prim_vf(i)%sf)
1769# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1770#elif defined(MFC_OpenMP)
1771# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1772!$omp target enter data map(to:q_prim_vf(i)%sf)
1773# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1774#endif
1775# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1776 end if
1777# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1778 end block
1779# 232 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1780#endif
1781# 233 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1782 end do
1783
1784 if (bubbles_euler) then
1785 do i = eqn_idx%bub%beg, eqn_idx%bub%end
1786#ifdef MFC_DEBUG
1787# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1788 block
1789# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1790 use iso_fortran_env, only: output_unit
1791# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1792
1793# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1794 print *, 'm_time_steppers.fpp:237: ', '@:ALLOCATE(q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
1795# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1796
1797# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1798 call flush (output_unit)
1799# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1800 end block
1801# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1802#endif
1803# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1804 allocate (q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
1805# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1806
1807# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1808
1809# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1810#if defined(MFC_OpenACC)
1811# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1812!$acc enter data create(q_prim_vf(i)%sf)
1813# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1814#elif defined(MFC_OpenMP)
1815# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1816!$omp target enter data map(always,alloc:q_prim_vf(i)%sf)
1817# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1818#endif
1819# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1820#ifdef _CRAYFTN
1821# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1822 block
1823# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1824#ifdef MFC_DEBUG
1825# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1826 block
1827# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1828 use iso_fortran_env, only: output_unit
1829# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1830
1831# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1832 print *, 'm_time_steppers.fpp:239: ', '@:ACC_SETUP_SFs(q_prim_vf(i))'
1833# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1834
1835# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1836 call flush (output_unit)
1837# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1838 end block
1839# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1840#endif
1841# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1842
1843# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1844
1845# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1846#if defined(MFC_OpenACC)
1847# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1848!$acc enter data copyin(q_prim_vf(i))
1849# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1850#elif defined(MFC_OpenMP)
1851# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1852!$omp target enter data map(to:q_prim_vf(i))
1853# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1854#endif
1855# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1856 if (associated(q_prim_vf(i)%sf)) then
1857# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1858
1859# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1860#if defined(MFC_OpenACC)
1861# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1862!$acc enter data copyin(q_prim_vf(i)%sf)
1863# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1864#elif defined(MFC_OpenMP)
1865# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1866!$omp target enter data map(to:q_prim_vf(i)%sf)
1867# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1868#endif
1869# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1870 end if
1871# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1872 end block
1873# 239 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1874#endif
1875# 240 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1876 end do
1877 if (adv_n) then
1878#ifdef MFC_DEBUG
1879# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1880 block
1881# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1882 use iso_fortran_env, only: output_unit
1883# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1884
1885# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1886 print *, 'm_time_steppers.fpp:242: ', '@:ALLOCATE(q_prim_vf(eqn_idx%n)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
1887# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1888
1889# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1890 call flush (output_unit)
1891# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1892 end block
1893# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1894#endif
1895# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1896 allocate (q_prim_vf(eqn_idx%n)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
1897# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1898
1899# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1900
1901# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1902#if defined(MFC_OpenACC)
1903# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1904!$acc enter data create(q_prim_vf(eqn_idx%n)%sf)
1905# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1906#elif defined(MFC_OpenMP)
1907# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1908!$omp target enter data map(always,alloc:q_prim_vf(eqn_idx%n)%sf)
1909# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1910#endif
1911# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1912#ifdef _CRAYFTN
1913# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1914 block
1915# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1916#ifdef MFC_DEBUG
1917# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1918 block
1919# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1920 use iso_fortran_env, only: output_unit
1921# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1922
1923# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1924 print *, 'm_time_steppers.fpp:244: ', '@:ACC_SETUP_SFs(q_prim_vf(eqn_idx%n))'
1925# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1926
1927# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1928 call flush (output_unit)
1929# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1930 end block
1931# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1932#endif
1933# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1934
1935# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1936
1937# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1938#if defined(MFC_OpenACC)
1939# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1940!$acc enter data copyin(q_prim_vf(eqn_idx%n))
1941# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1942#elif defined(MFC_OpenMP)
1943# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1944!$omp target enter data map(to:q_prim_vf(eqn_idx%n))
1945# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1946#endif
1947# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1948 if (associated(q_prim_vf(eqn_idx%n)%sf)) then
1949# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1950
1951# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1952#if defined(MFC_OpenACC)
1953# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1954!$acc enter data copyin(q_prim_vf(eqn_idx%n)%sf)
1955# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1956#elif defined(MFC_OpenMP)
1957# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1958!$omp target enter data map(to:q_prim_vf(eqn_idx%n)%sf)
1959# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1960#endif
1961# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1962 end if
1963# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1964 end block
1965# 244 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1966#endif
1967# 245 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1968 end if
1969 end if
1970
1971 if (mhd) then
1972 do i = eqn_idx%B%beg, eqn_idx%B%end
1973#ifdef MFC_DEBUG
1974# 250 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1975 block
1976# 250 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1977 use iso_fortran_env, only: output_unit
1978# 250 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1979
1980# 250 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1981 print *, 'm_time_steppers.fpp:250: ', '@:ALLOCATE(q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
1982# 250 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1983
1984# 250 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1985 call flush (output_unit)
1986# 250 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1987 end block
1988# 250 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1989#endif
1990# 250 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1991 allocate (q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
1992# 250 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1993
1994# 250 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1995
1996# 250 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1997#if defined(MFC_OpenACC)
1998# 250 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1999!$acc enter data create(q_prim_vf(i)%sf)
2000# 250 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2001#elif defined(MFC_OpenMP)
2002# 250 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2003!$omp target enter data map(always,alloc:q_prim_vf(i)%sf)
2004# 250 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2005#endif
2006# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2007#ifdef _CRAYFTN
2008# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2009 block
2010# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2011#ifdef MFC_DEBUG
2012# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2013 block
2014# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2015 use iso_fortran_env, only: output_unit
2016# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2017
2018# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2019 print *, 'm_time_steppers.fpp:252: ', '@:ACC_SETUP_SFs(q_prim_vf(i))'
2020# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2021
2022# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2023 call flush (output_unit)
2024# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2025 end block
2026# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2027#endif
2028# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2029
2030# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2031
2032# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2033#if defined(MFC_OpenACC)
2034# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2035!$acc enter data copyin(q_prim_vf(i))
2036# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2037#elif defined(MFC_OpenMP)
2038# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2039!$omp target enter data map(to:q_prim_vf(i))
2040# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2041#endif
2042# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2043 if (associated(q_prim_vf(i)%sf)) then
2044# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2045
2046# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2047#if defined(MFC_OpenACC)
2048# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2049!$acc enter data copyin(q_prim_vf(i)%sf)
2050# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2051#elif defined(MFC_OpenMP)
2052# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2053!$omp target enter data map(to:q_prim_vf(i)%sf)
2054# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2055#endif
2056# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2057 end if
2058# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2059 end block
2060# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2061#endif
2062# 253 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2063 end do
2064 end if
2065
2066 if (hypoelasticity) then
2067 do i = eqn_idx%stress%beg, eqn_idx%stress%end
2068#ifdef MFC_DEBUG
2069# 258 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2070 block
2071# 258 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2072 use iso_fortran_env, only: output_unit
2073# 258 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2074
2075# 258 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2076 print *, 'm_time_steppers.fpp:258: ', '@:ALLOCATE(q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2077# 258 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2078
2079# 258 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2080 call flush (output_unit)
2081# 258 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2082 end block
2083# 258 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2084#endif
2085# 258 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2086 allocate (q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2087# 258 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2088
2089# 258 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2090
2091# 258 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2092#if defined(MFC_OpenACC)
2093# 258 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2094!$acc enter data create(q_prim_vf(i)%sf)
2095# 258 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2096#elif defined(MFC_OpenMP)
2097# 258 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2098!$omp target enter data map(always,alloc:q_prim_vf(i)%sf)
2099# 258 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2100#endif
2101# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2102#ifdef _CRAYFTN
2103# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2104 block
2105# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2106#ifdef MFC_DEBUG
2107# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2108 block
2109# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2110 use iso_fortran_env, only: output_unit
2111# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2112
2113# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2114 print *, 'm_time_steppers.fpp:260: ', '@:ACC_SETUP_SFs(q_prim_vf(i))'
2115# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2116
2117# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2118 call flush (output_unit)
2119# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2120 end block
2121# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2122#endif
2123# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2124
2125# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2126
2127# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2128#if defined(MFC_OpenACC)
2129# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2130!$acc enter data copyin(q_prim_vf(i))
2131# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2132#elif defined(MFC_OpenMP)
2133# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2134!$omp target enter data map(to:q_prim_vf(i))
2135# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2136#endif
2137# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2138 if (associated(q_prim_vf(i)%sf)) then
2139# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2140
2141# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2142#if defined(MFC_OpenACC)
2143# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2144!$acc enter data copyin(q_prim_vf(i)%sf)
2145# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2146#elif defined(MFC_OpenMP)
2147# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2148!$omp target enter data map(to:q_prim_vf(i)%sf)
2149# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2150#endif
2151# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2152 end if
2153# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2154 end block
2155# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2156#endif
2157# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2158 end do
2159 end if
2160
2161 if (cont_damage) then
2162#ifdef MFC_DEBUG
2163# 265 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2164 block
2165# 265 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2166 use iso_fortran_env, only: output_unit
2167# 265 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2168
2169# 265 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2170 print *, 'm_time_steppers.fpp:265: ', '@:ALLOCATE(q_prim_vf(eqn_idx%damage)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2171# 265 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2172
2173# 265 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2174 call flush (output_unit)
2175# 265 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2176 end block
2177# 265 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2178#endif
2179# 265 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2180 allocate (q_prim_vf(eqn_idx%damage)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2181# 265 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2182
2183# 265 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2184
2185# 265 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2186#if defined(MFC_OpenACC)
2187# 265 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2188!$acc enter data create(q_prim_vf(eqn_idx%damage)%sf)
2189# 265 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2190#elif defined(MFC_OpenMP)
2191# 265 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2192!$omp target enter data map(always,alloc:q_prim_vf(eqn_idx%damage)%sf)
2193# 265 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2194#endif
2195# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2196#ifdef _CRAYFTN
2197# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2198 block
2199# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2200#ifdef MFC_DEBUG
2201# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2202 block
2203# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2204 use iso_fortran_env, only: output_unit
2205# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2206
2207# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2208 print *, 'm_time_steppers.fpp:267: ', '@:ACC_SETUP_SFs(q_prim_vf(eqn_idx%damage))'
2209# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2210
2211# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2212 call flush (output_unit)
2213# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2214 end block
2215# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2216#endif
2217# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2218
2219# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2220
2221# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2222#if defined(MFC_OpenACC)
2223# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2224!$acc enter data copyin(q_prim_vf(eqn_idx%damage))
2225# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2226#elif defined(MFC_OpenMP)
2227# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2228!$omp target enter data map(to:q_prim_vf(eqn_idx%damage))
2229# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2230#endif
2231# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2232 if (associated(q_prim_vf(eqn_idx%damage)%sf)) then
2233# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2234
2235# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2236#if defined(MFC_OpenACC)
2237# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2238!$acc enter data copyin(q_prim_vf(eqn_idx%damage)%sf)
2239# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2240#elif defined(MFC_OpenMP)
2241# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2242!$omp target enter data map(to:q_prim_vf(eqn_idx%damage)%sf)
2243# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2244#endif
2245# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2246 end if
2247# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2248 end block
2249# 267 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2250#endif
2251# 268 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2252 end if
2253
2254 if (hyper_cleaning) then
2255#ifdef MFC_DEBUG
2256# 271 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2257 block
2258# 271 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2259 use iso_fortran_env, only: output_unit
2260# 271 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2261
2262# 271 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2263 print *, 'm_time_steppers.fpp:271: ', '@:ALLOCATE(q_prim_vf(eqn_idx%psi)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2264# 271 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2265
2266# 271 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2267 call flush (output_unit)
2268# 271 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2269 end block
2270# 271 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2271#endif
2272# 271 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2273 allocate (q_prim_vf(eqn_idx%psi)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2274# 271 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2275
2276# 271 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2277
2278# 271 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2279#if defined(MFC_OpenACC)
2280# 271 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2281!$acc enter data create(q_prim_vf(eqn_idx%psi)%sf)
2282# 271 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2283#elif defined(MFC_OpenMP)
2284# 271 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2285!$omp target enter data map(always,alloc:q_prim_vf(eqn_idx%psi)%sf)
2286# 271 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2287#endif
2288# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2289#ifdef _CRAYFTN
2290# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2291 block
2292# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2293#ifdef MFC_DEBUG
2294# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2295 block
2296# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2297 use iso_fortran_env, only: output_unit
2298# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2299
2300# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2301 print *, 'm_time_steppers.fpp:273: ', '@:ACC_SETUP_SFs(q_prim_vf(eqn_idx%psi))'
2302# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2303
2304# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2305 call flush (output_unit)
2306# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2307 end block
2308# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2309#endif
2310# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2311
2312# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2313
2314# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2315#if defined(MFC_OpenACC)
2316# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2317!$acc enter data copyin(q_prim_vf(eqn_idx%psi))
2318# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2319#elif defined(MFC_OpenMP)
2320# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2321!$omp target enter data map(to:q_prim_vf(eqn_idx%psi))
2322# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2323#endif
2324# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2325 if (associated(q_prim_vf(eqn_idx%psi)%sf)) then
2326# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2327
2328# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2329#if defined(MFC_OpenACC)
2330# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2331!$acc enter data copyin(q_prim_vf(eqn_idx%psi)%sf)
2332# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2333#elif defined(MFC_OpenMP)
2334# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2335!$omp target enter data map(to:q_prim_vf(eqn_idx%psi)%sf)
2336# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2337#endif
2338# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2339 end if
2340# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2341 end block
2342# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2343#endif
2344# 274 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2345 end if
2346
2347 if (model_eqns == model_eqns_6eq) then
2348 do i = eqn_idx%int_en%beg, eqn_idx%int_en%end
2349#ifdef MFC_DEBUG
2350# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2351 block
2352# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2353 use iso_fortran_env, only: output_unit
2354# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2355
2356# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2357 print *, 'm_time_steppers.fpp:278: ', '@:ALLOCATE(q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2358# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2359
2360# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2361 call flush (output_unit)
2362# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2363 end block
2364# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2365#endif
2366# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2367 allocate (q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2368# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2369
2370# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2371
2372# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2373#if defined(MFC_OpenACC)
2374# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2375!$acc enter data create(q_prim_vf(i)%sf)
2376# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2377#elif defined(MFC_OpenMP)
2378# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2379!$omp target enter data map(always,alloc:q_prim_vf(i)%sf)
2380# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2381#endif
2382# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2383#ifdef _CRAYFTN
2384# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2385 block
2386# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2387#ifdef MFC_DEBUG
2388# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2389 block
2390# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2391 use iso_fortran_env, only: output_unit
2392# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2393
2394# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2395 print *, 'm_time_steppers.fpp:280: ', '@:ACC_SETUP_SFs(q_prim_vf(i))'
2396# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2397
2398# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2399 call flush (output_unit)
2400# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2401 end block
2402# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2403#endif
2404# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2405
2406# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2407
2408# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2409#if defined(MFC_OpenACC)
2410# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2411!$acc enter data copyin(q_prim_vf(i))
2412# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2413#elif defined(MFC_OpenMP)
2414# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2415!$omp target enter data map(to:q_prim_vf(i))
2416# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2417#endif
2418# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2419 if (associated(q_prim_vf(i)%sf)) then
2420# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2421
2422# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2423#if defined(MFC_OpenACC)
2424# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2425!$acc enter data copyin(q_prim_vf(i)%sf)
2426# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2427#elif defined(MFC_OpenMP)
2428# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2429!$omp target enter data map(to:q_prim_vf(i)%sf)
2430# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2431#endif
2432# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2433 end if
2434# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2435 end block
2436# 280 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2437#endif
2438# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2439 end do
2440 end if
2441
2442 if (surface_tension) then
2443#ifdef MFC_DEBUG
2444# 285 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2445 block
2446# 285 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2447 use iso_fortran_env, only: output_unit
2448# 285 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2449
2450# 285 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2451 print *, 'm_time_steppers.fpp:285: ', '@:ALLOCATE(q_prim_vf(eqn_idx%c)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2452# 285 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2453
2454# 285 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2455 call flush (output_unit)
2456# 285 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2457 end block
2458# 285 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2459#endif
2460# 285 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2461 allocate (q_prim_vf(eqn_idx%c)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2462# 285 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2463
2464# 285 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2465
2466# 285 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2467#if defined(MFC_OpenACC)
2468# 285 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2469!$acc enter data create(q_prim_vf(eqn_idx%c)%sf)
2470# 285 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2471#elif defined(MFC_OpenMP)
2472# 285 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2473!$omp target enter data map(always,alloc:q_prim_vf(eqn_idx%c)%sf)
2474# 285 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2475#endif
2476# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2477#ifdef _CRAYFTN
2478# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2479 block
2480# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2481#ifdef MFC_DEBUG
2482# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2483 block
2484# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2485 use iso_fortran_env, only: output_unit
2486# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2487
2488# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2489 print *, 'm_time_steppers.fpp:287: ', '@:ACC_SETUP_SFs(q_prim_vf(eqn_idx%c))'
2490# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2491
2492# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2493 call flush (output_unit)
2494# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2495 end block
2496# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2497#endif
2498# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2499
2500# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2501
2502# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2503#if defined(MFC_OpenACC)
2504# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2505!$acc enter data copyin(q_prim_vf(eqn_idx%c))
2506# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2507#elif defined(MFC_OpenMP)
2508# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2509!$omp target enter data map(to:q_prim_vf(eqn_idx%c))
2510# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2511#endif
2512# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2513 if (associated(q_prim_vf(eqn_idx%c)%sf)) then
2514# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2515
2516# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2517#if defined(MFC_OpenACC)
2518# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2519!$acc enter data copyin(q_prim_vf(eqn_idx%c)%sf)
2520# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2521#elif defined(MFC_OpenMP)
2522# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2523!$omp target enter data map(to:q_prim_vf(eqn_idx%c)%sf)
2524# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2525#endif
2526# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2527 end if
2528# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2529 end block
2530# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2531#endif
2532# 288 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2533 end if
2534
2535 if (chemistry) then
2536 do i = eqn_idx%species%beg, eqn_idx%species%end
2537#ifdef MFC_DEBUG
2538# 292 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2539 block
2540# 292 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2541 use iso_fortran_env, only: output_unit
2542# 292 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2543
2544# 292 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2545 print *, 'm_time_steppers.fpp:292: ', '@:ALLOCATE(q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2546# 292 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2547
2548# 292 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2549 call flush (output_unit)
2550# 292 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2551 end block
2552# 292 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2553#endif
2554# 292 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2555 allocate (q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2556# 292 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2557
2558# 292 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2559
2560# 292 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2561#if defined(MFC_OpenACC)
2562# 292 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2563!$acc enter data create(q_prim_vf(i)%sf)
2564# 292 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2565#elif defined(MFC_OpenMP)
2566# 292 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2567!$omp target enter data map(always,alloc:q_prim_vf(i)%sf)
2568# 292 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2569#endif
2570# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2571#ifdef _CRAYFTN
2572# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2573 block
2574# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2575#ifdef MFC_DEBUG
2576# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2577 block
2578# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2579 use iso_fortran_env, only: output_unit
2580# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2581
2582# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2583 print *, 'm_time_steppers.fpp:294: ', '@:ACC_SETUP_SFs(q_prim_vf(i))'
2584# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2585
2586# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2587 call flush (output_unit)
2588# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2589 end block
2590# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2591#endif
2592# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2593
2594# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2595
2596# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2597#if defined(MFC_OpenACC)
2598# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2599!$acc enter data copyin(q_prim_vf(i))
2600# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2601#elif defined(MFC_OpenMP)
2602# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2603!$omp target enter data map(to:q_prim_vf(i))
2604# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2605#endif
2606# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2607 if (associated(q_prim_vf(i)%sf)) then
2608# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2609
2610# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2611#if defined(MFC_OpenACC)
2612# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2613!$acc enter data copyin(q_prim_vf(i)%sf)
2614# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2615#elif defined(MFC_OpenMP)
2616# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2617!$omp target enter data map(to:q_prim_vf(i)%sf)
2618# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2619#endif
2620# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2621 end if
2622# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2623 end block
2624# 294 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2625#endif
2626# 295 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2627 end do
2628 end if
2629
2630 if (chemistry .or. heat_conduction) then
2631#ifdef MFC_DEBUG
2632# 299 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2633 block
2634# 299 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2635 use iso_fortran_env, only: output_unit
2636# 299 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2637
2638# 299 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2639 print *, 'm_time_steppers.fpp:299: ', '@:ALLOCATE(q_T_sf%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2640# 299 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2641
2642# 299 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2643 call flush (output_unit)
2644# 299 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2645 end block
2646# 299 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2647#endif
2648# 299 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2649 allocate (q_t_sf%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2650# 299 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2651
2652# 299 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2653
2654# 299 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2655#if defined(MFC_OpenACC)
2656# 299 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2657!$acc enter data create(q_T_sf%sf)
2658# 299 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2659#elif defined(MFC_OpenMP)
2660# 299 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2661!$omp target enter data map(always,alloc:q_T_sf%sf)
2662# 299 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2663#endif
2664# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2665#ifdef _CRAYFTN
2666# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2667 block
2668# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2669#ifdef MFC_DEBUG
2670# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2671 block
2672# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2673 use iso_fortran_env, only: output_unit
2674# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2675
2676# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2677 print *, 'm_time_steppers.fpp:300: ', '@:ACC_SETUP_SFs(q_T_sf)'
2678# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2679
2680# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2681 call flush (output_unit)
2682# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2683 end block
2684# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2685#endif
2686# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2687
2688# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2689
2690# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2691#if defined(MFC_OpenACC)
2692# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2693!$acc enter data copyin(q_T_sf)
2694# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2695#elif defined(MFC_OpenMP)
2696# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2697!$omp target enter data map(to:q_T_sf)
2698# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2699#endif
2700# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2701 if (associated(q_t_sf%sf)) then
2702# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2703
2704# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2705#if defined(MFC_OpenACC)
2706# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2707!$acc enter data copyin(q_T_sf%sf)
2708# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2709#elif defined(MFC_OpenMP)
2710# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2711!$omp target enter data map(to:q_T_sf%sf)
2712# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2713#endif
2714# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2715 end if
2716# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2717 end block
2718# 300 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2719#endif
2720# 301 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2721 end if
2722 end if
2723
2724#ifdef MFC_DEBUG
2725# 304 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2726 block
2727# 304 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2728 use iso_fortran_env, only: output_unit
2729# 304 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2730
2731# 304 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2732 print *, 'm_time_steppers.fpp:304: ', '@:ALLOCATE(pb_ts(1:2))'
2733# 304 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2734
2735# 304 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2736 call flush (output_unit)
2737# 304 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2738 end block
2739# 304 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2740#endif
2741# 304 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2742 allocate (pb_ts(1:2))
2743# 304 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2744
2745# 304 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2746
2747# 304 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2748#if defined(MFC_OpenACC)
2749# 304 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2750!$acc enter data create(pb_ts)
2751# 304 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2752#elif defined(MFC_OpenMP)
2753# 304 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2754!$omp target enter data map(always,alloc:pb_ts)
2755# 304 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2756#endif
2757# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2758 ! Initialize bubble variables pb and mv at all quadrature nodes for all R0 bins
2759 if (qbmm .and. (.not. polytropic)) then
2760#ifdef MFC_DEBUG
2761# 307 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2762 block
2763# 307 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2764 use iso_fortran_env, only: output_unit
2765# 307 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2766
2767# 307 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2768 print *, 'm_time_steppers.fpp:307: ', '@:ALLOCATE(pb_ts(1)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end, 1:nnode, 1:nb))'
2769# 307 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2770
2771# 307 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2772 call flush (output_unit)
2773# 307 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2774 end block
2775# 307 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2776#endif
2777# 307 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2778 allocate (pb_ts(1)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end, 1:nnode, 1:nb))
2779# 307 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2780
2781# 307 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2782
2783# 307 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2784#if defined(MFC_OpenACC)
2785# 307 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2786!$acc enter data create(pb_ts(1)%sf)
2787# 307 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2788#elif defined(MFC_OpenMP)
2789# 307 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2790!$omp target enter data map(always,alloc:pb_ts(1)%sf)
2791# 307 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2792#endif
2793# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2794#ifdef _CRAYFTN
2795# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2796 block
2797# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2798#ifdef MFC_DEBUG
2799# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2800 block
2801# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2802 use iso_fortran_env, only: output_unit
2803# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2804
2805# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2806 print *, 'm_time_steppers.fpp:309: ', '@:ACC_SETUP_SFs(pb_ts(1))'
2807# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2808
2809# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2810 call flush (output_unit)
2811# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2812 end block
2813# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2814#endif
2815# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2816
2817# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2818
2819# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2820#if defined(MFC_OpenACC)
2821# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2822!$acc enter data copyin(pb_ts(1))
2823# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2824#elif defined(MFC_OpenMP)
2825# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2826!$omp target enter data map(to:pb_ts(1))
2827# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2828#endif
2829# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2830 if (associated(pb_ts(1)%sf)) then
2831# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2832
2833# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2834#if defined(MFC_OpenACC)
2835# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2836!$acc enter data copyin(pb_ts(1)%sf)
2837# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2838#elif defined(MFC_OpenMP)
2839# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2840!$omp target enter data map(to:pb_ts(1)%sf)
2841# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2842#endif
2843# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2844 end if
2845# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2846 end block
2847# 309 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2848#endif
2849# 310 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2850
2851#ifdef MFC_DEBUG
2852# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2853 block
2854# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2855 use iso_fortran_env, only: output_unit
2856# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2857
2858# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2859 print *, 'm_time_steppers.fpp:311: ', '@:ALLOCATE(pb_ts(2)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end, 1:nnode, 1:nb))'
2860# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2861
2862# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2863 call flush (output_unit)
2864# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2865 end block
2866# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2867#endif
2868# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2869 allocate (pb_ts(2)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end, 1:nnode, 1:nb))
2870# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2871
2872# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2873
2874# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2875#if defined(MFC_OpenACC)
2876# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2877!$acc enter data create(pb_ts(2)%sf)
2878# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2879#elif defined(MFC_OpenMP)
2880# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2881!$omp target enter data map(always,alloc:pb_ts(2)%sf)
2882# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2883#endif
2884# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2885#ifdef _CRAYFTN
2886# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2887 block
2888# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2889#ifdef MFC_DEBUG
2890# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2891 block
2892# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2893 use iso_fortran_env, only: output_unit
2894# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2895
2896# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2897 print *, 'm_time_steppers.fpp:313: ', '@:ACC_SETUP_SFs(pb_ts(2))'
2898# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2899
2900# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2901 call flush (output_unit)
2902# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2903 end block
2904# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2905#endif
2906# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2907
2908# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2909
2910# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2911#if defined(MFC_OpenACC)
2912# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2913!$acc enter data copyin(pb_ts(2))
2914# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2915#elif defined(MFC_OpenMP)
2916# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2917!$omp target enter data map(to:pb_ts(2))
2918# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2919#endif
2920# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2921 if (associated(pb_ts(2)%sf)) then
2922# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2923
2924# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2925#if defined(MFC_OpenACC)
2926# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2927!$acc enter data copyin(pb_ts(2)%sf)
2928# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2929#elif defined(MFC_OpenMP)
2930# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2931!$omp target enter data map(to:pb_ts(2)%sf)
2932# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2933#endif
2934# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2935 end if
2936# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2937 end block
2938# 313 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2939#endif
2940# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2941
2942#ifdef MFC_DEBUG
2943# 315 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2944 block
2945# 315 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2946 use iso_fortran_env, only: output_unit
2947# 315 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2948
2949# 315 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2950 print *, 'm_time_steppers.fpp:315: ', '@:ALLOCATE(rhs_pb(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end, 1:nnode, 1:nb))'
2951# 315 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2952
2953# 315 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2954 call flush (output_unit)
2955# 315 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2956 end block
2957# 315 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2958#endif
2959# 315 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2960 allocate (rhs_pb(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end, 1:nnode, 1:nb))
2961# 315 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2962
2963# 315 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2964
2965# 315 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2966#if defined(MFC_OpenACC)
2967# 315 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2968!$acc enter data create(rhs_pb)
2969# 315 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2970#elif defined(MFC_OpenMP)
2971# 315 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2972!$omp target enter data map(always,alloc:rhs_pb)
2973# 315 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2974#endif
2975# 317 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2976 else if (qbmm .and. polytropic) then
2977#ifdef MFC_DEBUG
2978# 318 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2979 block
2980# 318 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2981 use iso_fortran_env, only: output_unit
2982# 318 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2983
2984# 318 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2985 print *, 'm_time_steppers.fpp:318: ', '@:ALLOCATE(pb_ts(1)%sf(idwbuff(1)%beg:idwbuff(1)%beg + 1, idwbuff(2)%beg:idwbuff(2)%beg + 1, idwbuff(3)%beg:idwbuff(3)%beg + 1, 1:nnode, 1:nb))'
2986# 318 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2987
2988# 318 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2989 call flush (output_unit)
2990# 318 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2991 end block
2992# 318 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2993#endif
2994# 318 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2995 allocate (pb_ts(1)%sf(idwbuff(1)%beg:idwbuff(1)%beg + 1, idwbuff(2)%beg:idwbuff(2)%beg + 1, idwbuff(3)%beg:idwbuff(3)%beg + 1, 1:nnode, 1:nb))
2996# 318 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2997
2998# 318 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2999
3000# 318 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3001#if defined(MFC_OpenACC)
3002# 318 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3003!$acc enter data create(pb_ts(1)%sf)
3004# 318 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3005#elif defined(MFC_OpenMP)
3006# 318 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3007!$omp target enter data map(always,alloc:pb_ts(1)%sf)
3008# 318 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3009#endif
3010# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3011#ifdef _CRAYFTN
3012# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3013 block
3014# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3015#ifdef MFC_DEBUG
3016# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3017 block
3018# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3019 use iso_fortran_env, only: output_unit
3020# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3021
3022# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3023 print *, 'm_time_steppers.fpp:320: ', '@:ACC_SETUP_SFs(pb_ts(1))'
3024# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3025
3026# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3027 call flush (output_unit)
3028# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3029 end block
3030# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3031#endif
3032# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3033
3034# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3035
3036# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3037#if defined(MFC_OpenACC)
3038# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3039!$acc enter data copyin(pb_ts(1))
3040# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3041#elif defined(MFC_OpenMP)
3042# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3043!$omp target enter data map(to:pb_ts(1))
3044# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3045#endif
3046# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3047 if (associated(pb_ts(1)%sf)) then
3048# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3049
3050# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3051#if defined(MFC_OpenACC)
3052# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3053!$acc enter data copyin(pb_ts(1)%sf)
3054# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3055#elif defined(MFC_OpenMP)
3056# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3057!$omp target enter data map(to:pb_ts(1)%sf)
3058# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3059#endif
3060# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3061 end if
3062# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3063 end block
3064# 320 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3065#endif
3066# 321 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3067
3068#ifdef MFC_DEBUG
3069# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3070 block
3071# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3072 use iso_fortran_env, only: output_unit
3073# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3074
3075# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3076 print *, 'm_time_steppers.fpp:322: ', '@:ALLOCATE(pb_ts(2)%sf(idwbuff(1)%beg:idwbuff(1)%beg + 1, idwbuff(2)%beg:idwbuff(2)%beg + 1, idwbuff(3)%beg:idwbuff(3)%beg + 1, 1:nnode, 1:nb))'
3077# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3078
3079# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3080 call flush (output_unit)
3081# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3082 end block
3083# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3084#endif
3085# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3086 allocate (pb_ts(2)%sf(idwbuff(1)%beg:idwbuff(1)%beg + 1, idwbuff(2)%beg:idwbuff(2)%beg + 1, idwbuff(3)%beg:idwbuff(3)%beg + 1, 1:nnode, 1:nb))
3087# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3088
3089# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3090
3091# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3092#if defined(MFC_OpenACC)
3093# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3094!$acc enter data create(pb_ts(2)%sf)
3095# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3096#elif defined(MFC_OpenMP)
3097# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3098!$omp target enter data map(always,alloc:pb_ts(2)%sf)
3099# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3100#endif
3101# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3102#ifdef _CRAYFTN
3103# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3104 block
3105# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3106#ifdef MFC_DEBUG
3107# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3108 block
3109# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3110 use iso_fortran_env, only: output_unit
3111# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3112
3113# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3114 print *, 'm_time_steppers.fpp:324: ', '@:ACC_SETUP_SFs(pb_ts(2))'
3115# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3116
3117# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3118 call flush (output_unit)
3119# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3120 end block
3121# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3122#endif
3123# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3124
3125# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3126
3127# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3128#if defined(MFC_OpenACC)
3129# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3130!$acc enter data copyin(pb_ts(2))
3131# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3132#elif defined(MFC_OpenMP)
3133# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3134!$omp target enter data map(to:pb_ts(2))
3135# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3136#endif
3137# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3138 if (associated(pb_ts(2)%sf)) then
3139# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3140
3141# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3142#if defined(MFC_OpenACC)
3143# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3144!$acc enter data copyin(pb_ts(2)%sf)
3145# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3146#elif defined(MFC_OpenMP)
3147# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3148!$omp target enter data map(to:pb_ts(2)%sf)
3149# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3150#endif
3151# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3152 end if
3153# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3154 end block
3155# 324 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3156#endif
3157# 325 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3158
3159#ifdef MFC_DEBUG
3160# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3161 block
3162# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3163 use iso_fortran_env, only: output_unit
3164# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3165
3166# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3167 print *, 'm_time_steppers.fpp:326: ', '@:ALLOCATE(rhs_pb(idwbuff(1)%beg:idwbuff(1)%beg + 1, idwbuff(2)%beg:idwbuff(2)%beg + 1, idwbuff(3)%beg:idwbuff(3)%beg + 1, 1:nnode, 1:nb))'
3168# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3169
3170# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3171 call flush (output_unit)
3172# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3173 end block
3174# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3175#endif
3176# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3177 allocate (rhs_pb(idwbuff(1)%beg:idwbuff(1)%beg + 1, idwbuff(2)%beg:idwbuff(2)%beg + 1, idwbuff(3)%beg:idwbuff(3)%beg + 1, 1:nnode, 1:nb))
3178# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3179
3180# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3181
3182# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3183#if defined(MFC_OpenACC)
3184# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3185!$acc enter data create(rhs_pb)
3186# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3187#elif defined(MFC_OpenMP)
3188# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3189!$omp target enter data map(always,alloc:rhs_pb)
3190# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3191#endif
3192# 328 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3193 else
3194#ifdef MFC_DEBUG
3195# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3196 block
3197# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3198 use iso_fortran_env, only: output_unit
3199# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3200
3201# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3202 print *, 'm_time_steppers.fpp:329: ', '@:ALLOCATE(pb_ts(1)%sf(0,0,0,0,0))'
3203# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3204
3205# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3206 call flush (output_unit)
3207# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3208 end block
3209# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3210#endif
3211# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3212 allocate (pb_ts(1)%sf(0,0,0,0,0))
3213# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3214
3215# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3216
3217# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3218#if defined(MFC_OpenACC)
3219# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3220!$acc enter data create(pb_ts(1)%sf)
3221# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3222#elif defined(MFC_OpenMP)
3223# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3224!$omp target enter data map(always,alloc:pb_ts(1)%sf)
3225# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3226#endif
3227# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3228#ifdef _CRAYFTN
3229# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3230 block
3231# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3232#ifdef MFC_DEBUG
3233# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3234 block
3235# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3236 use iso_fortran_env, only: output_unit
3237# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3238
3239# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3240 print *, 'm_time_steppers.fpp:330: ', '@:ACC_SETUP_SFs(pb_ts(1))'
3241# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3242
3243# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3244 call flush (output_unit)
3245# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3246 end block
3247# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3248#endif
3249# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3250
3251# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3252
3253# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3254#if defined(MFC_OpenACC)
3255# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3256!$acc enter data copyin(pb_ts(1))
3257# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3258#elif defined(MFC_OpenMP)
3259# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3260!$omp target enter data map(to:pb_ts(1))
3261# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3262#endif
3263# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3264 if (associated(pb_ts(1)%sf)) then
3265# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3266
3267# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3268#if defined(MFC_OpenACC)
3269# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3270!$acc enter data copyin(pb_ts(1)%sf)
3271# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3272#elif defined(MFC_OpenMP)
3273# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3274!$omp target enter data map(to:pb_ts(1)%sf)
3275# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3276#endif
3277# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3278 end if
3279# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3280 end block
3281# 330 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3282#endif
3283# 331 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3284
3285#ifdef MFC_DEBUG
3286# 332 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3287 block
3288# 332 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3289 use iso_fortran_env, only: output_unit
3290# 332 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3291
3292# 332 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3293 print *, 'm_time_steppers.fpp:332: ', '@:ALLOCATE(pb_ts(2)%sf(0,0,0,0,0))'
3294# 332 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3295
3296# 332 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3297 call flush (output_unit)
3298# 332 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3299 end block
3300# 332 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3301#endif
3302# 332 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3303 allocate (pb_ts(2)%sf(0,0,0,0,0))
3304# 332 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3305
3306# 332 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3307
3308# 332 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3309#if defined(MFC_OpenACC)
3310# 332 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3311!$acc enter data create(pb_ts(2)%sf)
3312# 332 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3313#elif defined(MFC_OpenMP)
3314# 332 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3315!$omp target enter data map(always,alloc:pb_ts(2)%sf)
3316# 332 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3317#endif
3318# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3319#ifdef _CRAYFTN
3320# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3321 block
3322# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3323#ifdef MFC_DEBUG
3324# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3325 block
3326# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3327 use iso_fortran_env, only: output_unit
3328# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3329
3330# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3331 print *, 'm_time_steppers.fpp:333: ', '@:ACC_SETUP_SFs(pb_ts(2))'
3332# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3333
3334# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3335 call flush (output_unit)
3336# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3337 end block
3338# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3339#endif
3340# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3341
3342# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3343
3344# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3345#if defined(MFC_OpenACC)
3346# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3347!$acc enter data copyin(pb_ts(2))
3348# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3349#elif defined(MFC_OpenMP)
3350# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3351!$omp target enter data map(to:pb_ts(2))
3352# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3353#endif
3354# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3355 if (associated(pb_ts(2)%sf)) then
3356# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3357
3358# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3359#if defined(MFC_OpenACC)
3360# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3361!$acc enter data copyin(pb_ts(2)%sf)
3362# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3363#elif defined(MFC_OpenMP)
3364# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3365!$omp target enter data map(to:pb_ts(2)%sf)
3366# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3367#endif
3368# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3369 end if
3370# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3371 end block
3372# 333 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3373#endif
3374# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3375
3376#ifdef MFC_DEBUG
3377# 335 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3378 block
3379# 335 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3380 use iso_fortran_env, only: output_unit
3381# 335 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3382
3383# 335 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3384 print *, 'm_time_steppers.fpp:335: ', '@:ALLOCATE(rhs_pb(0,0,0,0,0))'
3385# 335 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3386
3387# 335 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3388 call flush (output_unit)
3389# 335 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3390 end block
3391# 335 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3392#endif
3393# 335 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3394 allocate (rhs_pb(0,0,0,0,0))
3395# 335 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3396
3397# 335 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3398
3399# 335 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3400#if defined(MFC_OpenACC)
3401# 335 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3402!$acc enter data create(rhs_pb)
3403# 335 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3404#elif defined(MFC_OpenMP)
3405# 335 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3406!$omp target enter data map(always,alloc:rhs_pb)
3407# 335 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3408#endif
3409# 336 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3410 end if
3411
3412#ifdef MFC_DEBUG
3413# 338 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3414 block
3415# 338 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3416 use iso_fortran_env, only: output_unit
3417# 338 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3418
3419# 338 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3420 print *, 'm_time_steppers.fpp:338: ', '@:ALLOCATE(mv_ts(1:2))'
3421# 338 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3422
3423# 338 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3424 call flush (output_unit)
3425# 338 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3426 end block
3427# 338 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3428#endif
3429# 338 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3430 allocate (mv_ts(1:2))
3431# 338 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3432
3433# 338 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3434
3435# 338 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3436#if defined(MFC_OpenACC)
3437# 338 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3438!$acc enter data create(mv_ts)
3439# 338 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3440#elif defined(MFC_OpenMP)
3441# 338 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3442!$omp target enter data map(always,alloc:mv_ts)
3443# 338 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3444#endif
3445# 339 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3446
3447 if (qbmm .and. (.not. polytropic)) then
3448#ifdef MFC_DEBUG
3449# 341 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3450 block
3451# 341 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3452 use iso_fortran_env, only: output_unit
3453# 341 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3454
3455# 341 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3456 print *, 'm_time_steppers.fpp:341: ', '@:ALLOCATE(mv_ts(1)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end, 1:nnode, 1:nb))'
3457# 341 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3458
3459# 341 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3460 call flush (output_unit)
3461# 341 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3462 end block
3463# 341 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3464#endif
3465# 341 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3466 allocate (mv_ts(1)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end, 1:nnode, 1:nb))
3467# 341 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3468
3469# 341 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3470
3471# 341 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3472#if defined(MFC_OpenACC)
3473# 341 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3474!$acc enter data create(mv_ts(1)%sf)
3475# 341 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3476#elif defined(MFC_OpenMP)
3477# 341 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3478!$omp target enter data map(always,alloc:mv_ts(1)%sf)
3479# 341 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3480#endif
3481# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3482#ifdef _CRAYFTN
3483# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3484 block
3485# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3486#ifdef MFC_DEBUG
3487# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3488 block
3489# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3490 use iso_fortran_env, only: output_unit
3491# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3492
3493# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3494 print *, 'm_time_steppers.fpp:343: ', '@:ACC_SETUP_SFs(mv_ts(1))'
3495# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3496
3497# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3498 call flush (output_unit)
3499# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3500 end block
3501# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3502#endif
3503# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3504
3505# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3506
3507# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3508#if defined(MFC_OpenACC)
3509# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3510!$acc enter data copyin(mv_ts(1))
3511# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3512#elif defined(MFC_OpenMP)
3513# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3514!$omp target enter data map(to:mv_ts(1))
3515# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3516#endif
3517# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3518 if (associated(mv_ts(1)%sf)) then
3519# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3520
3521# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3522#if defined(MFC_OpenACC)
3523# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3524!$acc enter data copyin(mv_ts(1)%sf)
3525# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3526#elif defined(MFC_OpenMP)
3527# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3528!$omp target enter data map(to:mv_ts(1)%sf)
3529# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3530#endif
3531# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3532 end if
3533# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3534 end block
3535# 343 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3536#endif
3537# 344 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3538
3539#ifdef MFC_DEBUG
3540# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3541 block
3542# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3543 use iso_fortran_env, only: output_unit
3544# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3545
3546# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3547 print *, 'm_time_steppers.fpp:345: ', '@:ALLOCATE(mv_ts(2)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end, 1:nnode, 1:nb))'
3548# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3549
3550# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3551 call flush (output_unit)
3552# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3553 end block
3554# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3555#endif
3556# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3557 allocate (mv_ts(2)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end, 1:nnode, 1:nb))
3558# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3559
3560# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3561
3562# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3563#if defined(MFC_OpenACC)
3564# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3565!$acc enter data create(mv_ts(2)%sf)
3566# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3567#elif defined(MFC_OpenMP)
3568# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3569!$omp target enter data map(always,alloc:mv_ts(2)%sf)
3570# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3571#endif
3572# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3573#ifdef _CRAYFTN
3574# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3575 block
3576# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3577#ifdef MFC_DEBUG
3578# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3579 block
3580# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3581 use iso_fortran_env, only: output_unit
3582# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3583
3584# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3585 print *, 'm_time_steppers.fpp:347: ', '@:ACC_SETUP_SFs(mv_ts(2))'
3586# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3587
3588# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3589 call flush (output_unit)
3590# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3591 end block
3592# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3593#endif
3594# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3595
3596# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3597
3598# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3599#if defined(MFC_OpenACC)
3600# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3601!$acc enter data copyin(mv_ts(2))
3602# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3603#elif defined(MFC_OpenMP)
3604# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3605!$omp target enter data map(to:mv_ts(2))
3606# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3607#endif
3608# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3609 if (associated(mv_ts(2)%sf)) then
3610# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3611
3612# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3613#if defined(MFC_OpenACC)
3614# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3615!$acc enter data copyin(mv_ts(2)%sf)
3616# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3617#elif defined(MFC_OpenMP)
3618# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3619!$omp target enter data map(to:mv_ts(2)%sf)
3620# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3621#endif
3622# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3623 end if
3624# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3625 end block
3626# 347 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3627#endif
3628# 348 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3629
3630#ifdef MFC_DEBUG
3631# 349 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3632 block
3633# 349 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3634 use iso_fortran_env, only: output_unit
3635# 349 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3636
3637# 349 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3638 print *, 'm_time_steppers.fpp:349: ', '@:ALLOCATE(rhs_mv(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end, 1:nnode, 1:nb))'
3639# 349 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3640
3641# 349 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3642 call flush (output_unit)
3643# 349 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3644 end block
3645# 349 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3646#endif
3647# 349 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3648 allocate (rhs_mv(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end, 1:nnode, 1:nb))
3649# 349 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3650
3651# 349 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3652
3653# 349 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3654#if defined(MFC_OpenACC)
3655# 349 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3656!$acc enter data create(rhs_mv)
3657# 349 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3658#elif defined(MFC_OpenMP)
3659# 349 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3660!$omp target enter data map(always,alloc:rhs_mv)
3661# 349 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3662#endif
3663# 351 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3664 else if (qbmm .and. polytropic) then
3665#ifdef MFC_DEBUG
3666# 352 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3667 block
3668# 352 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3669 use iso_fortran_env, only: output_unit
3670# 352 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3671
3672# 352 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3673 print *, 'm_time_steppers.fpp:352: ', '@:ALLOCATE(mv_ts(1)%sf(idwbuff(1)%beg:idwbuff(1)%beg + 1, idwbuff(2)%beg:idwbuff(2)%beg + 1, idwbuff(3)%beg:idwbuff(3)%beg + 1, 1:nnode, 1:nb))'
3674# 352 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3675
3676# 352 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3677 call flush (output_unit)
3678# 352 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3679 end block
3680# 352 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3681#endif
3682# 352 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3683 allocate (mv_ts(1)%sf(idwbuff(1)%beg:idwbuff(1)%beg + 1, idwbuff(2)%beg:idwbuff(2)%beg + 1, idwbuff(3)%beg:idwbuff(3)%beg + 1, 1:nnode, 1:nb))
3684# 352 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3685
3686# 352 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3687
3688# 352 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3689#if defined(MFC_OpenACC)
3690# 352 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3691!$acc enter data create(mv_ts(1)%sf)
3692# 352 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3693#elif defined(MFC_OpenMP)
3694# 352 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3695!$omp target enter data map(always,alloc:mv_ts(1)%sf)
3696# 352 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3697#endif
3698# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3699#ifdef _CRAYFTN
3700# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3701 block
3702# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3703#ifdef MFC_DEBUG
3704# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3705 block
3706# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3707 use iso_fortran_env, only: output_unit
3708# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3709
3710# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3711 print *, 'm_time_steppers.fpp:354: ', '@:ACC_SETUP_SFs(mv_ts(1))'
3712# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3713
3714# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3715 call flush (output_unit)
3716# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3717 end block
3718# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3719#endif
3720# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3721
3722# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3723
3724# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3725#if defined(MFC_OpenACC)
3726# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3727!$acc enter data copyin(mv_ts(1))
3728# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3729#elif defined(MFC_OpenMP)
3730# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3731!$omp target enter data map(to:mv_ts(1))
3732# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3733#endif
3734# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3735 if (associated(mv_ts(1)%sf)) then
3736# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3737
3738# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3739#if defined(MFC_OpenACC)
3740# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3741!$acc enter data copyin(mv_ts(1)%sf)
3742# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3743#elif defined(MFC_OpenMP)
3744# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3745!$omp target enter data map(to:mv_ts(1)%sf)
3746# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3747#endif
3748# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3749 end if
3750# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3751 end block
3752# 354 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3753#endif
3754# 355 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3755
3756#ifdef MFC_DEBUG
3757# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3758 block
3759# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3760 use iso_fortran_env, only: output_unit
3761# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3762
3763# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3764 print *, 'm_time_steppers.fpp:356: ', '@:ALLOCATE(mv_ts(2)%sf(idwbuff(1)%beg:idwbuff(1)%beg + 1, idwbuff(2)%beg:idwbuff(2)%beg + 1, idwbuff(3)%beg:idwbuff(3)%beg + 1, 1:nnode, 1:nb))'
3765# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3766
3767# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3768 call flush (output_unit)
3769# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3770 end block
3771# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3772#endif
3773# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3774 allocate (mv_ts(2)%sf(idwbuff(1)%beg:idwbuff(1)%beg + 1, idwbuff(2)%beg:idwbuff(2)%beg + 1, idwbuff(3)%beg:idwbuff(3)%beg + 1, 1:nnode, 1:nb))
3775# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3776
3777# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3778
3779# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3780#if defined(MFC_OpenACC)
3781# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3782!$acc enter data create(mv_ts(2)%sf)
3783# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3784#elif defined(MFC_OpenMP)
3785# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3786!$omp target enter data map(always,alloc:mv_ts(2)%sf)
3787# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3788#endif
3789# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3790#ifdef _CRAYFTN
3791# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3792 block
3793# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3794#ifdef MFC_DEBUG
3795# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3796 block
3797# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3798 use iso_fortran_env, only: output_unit
3799# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3800
3801# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3802 print *, 'm_time_steppers.fpp:358: ', '@:ACC_SETUP_SFs(mv_ts(2))'
3803# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3804
3805# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3806 call flush (output_unit)
3807# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3808 end block
3809# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3810#endif
3811# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3812
3813# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3814
3815# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3816#if defined(MFC_OpenACC)
3817# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3818!$acc enter data copyin(mv_ts(2))
3819# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3820#elif defined(MFC_OpenMP)
3821# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3822!$omp target enter data map(to:mv_ts(2))
3823# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3824#endif
3825# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3826 if (associated(mv_ts(2)%sf)) then
3827# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3828
3829# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3830#if defined(MFC_OpenACC)
3831# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3832!$acc enter data copyin(mv_ts(2)%sf)
3833# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3834#elif defined(MFC_OpenMP)
3835# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3836!$omp target enter data map(to:mv_ts(2)%sf)
3837# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3838#endif
3839# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3840 end if
3841# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3842 end block
3843# 358 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3844#endif
3845# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3846
3847#ifdef MFC_DEBUG
3848# 360 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3849 block
3850# 360 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3851 use iso_fortran_env, only: output_unit
3852# 360 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3853
3854# 360 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3855 print *, 'm_time_steppers.fpp:360: ', '@:ALLOCATE(rhs_mv(idwbuff(1)%beg:idwbuff(1)%beg + 1, idwbuff(2)%beg:idwbuff(2)%beg + 1, idwbuff(3)%beg:idwbuff(3)%beg + 1, 1:nnode, 1:nb))'
3856# 360 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3857
3858# 360 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3859 call flush (output_unit)
3860# 360 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3861 end block
3862# 360 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3863#endif
3864# 360 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3865 allocate (rhs_mv(idwbuff(1)%beg:idwbuff(1)%beg + 1, idwbuff(2)%beg:idwbuff(2)%beg + 1, idwbuff(3)%beg:idwbuff(3)%beg + 1, 1:nnode, 1:nb))
3866# 360 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3867
3868# 360 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3869
3870# 360 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3871#if defined(MFC_OpenACC)
3872# 360 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3873!$acc enter data create(rhs_mv)
3874# 360 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3875#elif defined(MFC_OpenMP)
3876# 360 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3877!$omp target enter data map(always,alloc:rhs_mv)
3878# 360 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3879#endif
3880# 362 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3881 else
3882#ifdef MFC_DEBUG
3883# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3884 block
3885# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3886 use iso_fortran_env, only: output_unit
3887# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3888
3889# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3890 print *, 'm_time_steppers.fpp:363: ', '@:ALLOCATE(mv_ts(1)%sf(0,0,0,0,0))'
3891# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3892
3893# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3894 call flush (output_unit)
3895# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3896 end block
3897# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3898#endif
3899# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3900 allocate (mv_ts(1)%sf(0,0,0,0,0))
3901# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3902
3903# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3904
3905# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3906#if defined(MFC_OpenACC)
3907# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3908!$acc enter data create(mv_ts(1)%sf)
3909# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3910#elif defined(MFC_OpenMP)
3911# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3912!$omp target enter data map(always,alloc:mv_ts(1)%sf)
3913# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3914#endif
3915# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3916#ifdef _CRAYFTN
3917# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3918 block
3919# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3920#ifdef MFC_DEBUG
3921# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3922 block
3923# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3924 use iso_fortran_env, only: output_unit
3925# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3926
3927# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3928 print *, 'm_time_steppers.fpp:364: ', '@:ACC_SETUP_SFs(mv_ts(1))'
3929# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3930
3931# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3932 call flush (output_unit)
3933# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3934 end block
3935# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3936#endif
3937# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3938
3939# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3940
3941# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3942#if defined(MFC_OpenACC)
3943# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3944!$acc enter data copyin(mv_ts(1))
3945# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3946#elif defined(MFC_OpenMP)
3947# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3948!$omp target enter data map(to:mv_ts(1))
3949# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3950#endif
3951# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3952 if (associated(mv_ts(1)%sf)) then
3953# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3954
3955# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3956#if defined(MFC_OpenACC)
3957# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3958!$acc enter data copyin(mv_ts(1)%sf)
3959# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3960#elif defined(MFC_OpenMP)
3961# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3962!$omp target enter data map(to:mv_ts(1)%sf)
3963# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3964#endif
3965# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3966 end if
3967# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3968 end block
3969# 364 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3970#endif
3971# 365 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3972
3973#ifdef MFC_DEBUG
3974# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3975 block
3976# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3977 use iso_fortran_env, only: output_unit
3978# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3979
3980# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3981 print *, 'm_time_steppers.fpp:366: ', '@:ALLOCATE(mv_ts(2)%sf(0,0,0,0,0))'
3982# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3983
3984# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3985 call flush (output_unit)
3986# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3987 end block
3988# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3989#endif
3990# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3991 allocate (mv_ts(2)%sf(0,0,0,0,0))
3992# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3993
3994# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3995
3996# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3997#if defined(MFC_OpenACC)
3998# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3999!$acc enter data create(mv_ts(2)%sf)
4000# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4001#elif defined(MFC_OpenMP)
4002# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4003!$omp target enter data map(always,alloc:mv_ts(2)%sf)
4004# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4005#endif
4006# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4007#ifdef _CRAYFTN
4008# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4009 block
4010# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4011#ifdef MFC_DEBUG
4012# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4013 block
4014# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4015 use iso_fortran_env, only: output_unit
4016# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4017
4018# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4019 print *, 'm_time_steppers.fpp:367: ', '@:ACC_SETUP_SFs(mv_ts(2))'
4020# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4021
4022# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4023 call flush (output_unit)
4024# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4025 end block
4026# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4027#endif
4028# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4029
4030# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4031
4032# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4033#if defined(MFC_OpenACC)
4034# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4035!$acc enter data copyin(mv_ts(2))
4036# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4037#elif defined(MFC_OpenMP)
4038# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4039!$omp target enter data map(to:mv_ts(2))
4040# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4041#endif
4042# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4043 if (associated(mv_ts(2)%sf)) then
4044# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4045
4046# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4047#if defined(MFC_OpenACC)
4048# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4049!$acc enter data copyin(mv_ts(2)%sf)
4050# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4051#elif defined(MFC_OpenMP)
4052# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4053!$omp target enter data map(to:mv_ts(2)%sf)
4054# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4055#endif
4056# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4057 end if
4058# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4059 end block
4060# 367 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4061#endif
4062# 368 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4063
4064#ifdef MFC_DEBUG
4065# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4066 block
4067# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4068 use iso_fortran_env, only: output_unit
4069# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4070
4071# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4072 print *, 'm_time_steppers.fpp:369: ', '@:ALLOCATE(rhs_mv(0,0,0,0,0))'
4073# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4074
4075# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4076 call flush (output_unit)
4077# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4078 end block
4079# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4080#endif
4081# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4082 allocate (rhs_mv(0,0,0,0,0))
4083# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4084
4085# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4086
4087# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4088#if defined(MFC_OpenACC)
4089# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4090!$acc enter data create(rhs_mv)
4091# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4092#elif defined(MFC_OpenMP)
4093# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4094!$omp target enter data map(always,alloc:rhs_mv)
4095# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4096#endif
4097# 370 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4098 end if
4099
4100 ! Allocating the cell-average RHS variables
4101#ifdef MFC_DEBUG
4102# 373 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4103 block
4104# 373 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4105 use iso_fortran_env, only: output_unit
4106# 373 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4107
4108# 373 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4109 print *, 'm_time_steppers.fpp:373: ', '@:ALLOCATE(rhs_vf(1:sys_size))'
4110# 373 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4111
4112# 373 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4113 call flush (output_unit)
4114# 373 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4115 end block
4116# 373 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4117#endif
4118# 373 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4119 allocate (rhs_vf(1:sys_size))
4120# 373 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4121
4122# 373 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4123
4124# 373 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4125#if defined(MFC_OpenACC)
4126# 373 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4127!$acc enter data create(rhs_vf)
4128# 373 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4129#elif defined(MFC_OpenMP)
4130# 373 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4131!$omp target enter data map(always,alloc:rhs_vf)
4132# 373 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4133#endif
4134# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4135#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
4136# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4137 block
4138# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4139 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
4140# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4141 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
4142# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4143#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
4144# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4145 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
4146# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4147#else
4148# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4149 use cuda_runtime_api
4150# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4151#endif
4152# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4153 integer :: istat
4154# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4155
4156# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4157 if (nv_uvm_pref_gpu) then
4158# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4159 ! set preferred location GPU
4160# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4161 istat = cudamemadvise(c_devloc(rhs_vf), sizeof(rhs_vf), cudamemadvisesetpreferredlocation, 0)
4162# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4163 if (istat /= cudasuccess) then
4164# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4165 write (*, "('Error code: ',I0, ': ')") istat
4166# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4167 end if
4168# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4169 ! set accessed by CPU
4170# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4171 istat = cudamemadvise(c_devloc(rhs_vf), sizeof(rhs_vf), cudamemadvisesetaccessedby, cudacpudeviceid)
4172# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4173 if (istat /= cudasuccess) then
4174# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4175 write (*, "('Error code: ',I0, ': ')") istat
4176# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4177 end if
4178# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4179 ! prefetch to GPU - physically populate memory pages
4180# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4181 istat = cudamemprefetchasync(c_devloc(rhs_vf), sizeof(rhs_vf), 0, 0)
4182# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4183 if (istat /= cudasuccess) then
4184# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4185 write (*, "('Error code: ',I0, ': ')") istat
4186# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4187 end if
4188# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4189 end if
4190# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4191 end block
4192# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4193#endif
4194# 375 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4195
4196 if (igr) then
4197 do i = 1, sys_size
4198#ifdef MFC_DEBUG
4199# 378 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4200 block
4201# 378 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4202 use iso_fortran_env, only: output_unit
4203# 378 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4204
4205# 378 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4206 print *, 'm_time_steppers.fpp:378: ', '@:ALLOCATE(rhs_vf(i)%sf(-1:m+1,-1:n+1,-1:p+1))'
4207# 378 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4208
4209# 378 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4210 call flush (output_unit)
4211# 378 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4212 end block
4213# 378 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4214#endif
4215# 378 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4216 allocate (rhs_vf(i)%sf(-1:m+1,-1:n+1,-1:p+1))
4217# 378 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4218
4219# 378 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4220
4221# 378 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4222#if defined(MFC_OpenACC)
4223# 378 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4224!$acc enter data create(rhs_vf(i)%sf)
4225# 378 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4226#elif defined(MFC_OpenMP)
4227# 378 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4228!$omp target enter data map(always,alloc:rhs_vf(i)%sf)
4229# 378 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4230#endif
4231# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4232#ifdef _CRAYFTN
4233# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4234 block
4235# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4236#ifdef MFC_DEBUG
4237# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4238 block
4239# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4240 use iso_fortran_env, only: output_unit
4241# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4242
4243# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4244 print *, 'm_time_steppers.fpp:379: ', '@:ACC_SETUP_SFs(rhs_vf(i))'
4245# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4246
4247# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4248 call flush (output_unit)
4249# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4250 end block
4251# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4252#endif
4253# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4254
4255# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4256
4257# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4258#if defined(MFC_OpenACC)
4259# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4260!$acc enter data copyin(rhs_vf(i))
4261# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4262#elif defined(MFC_OpenMP)
4263# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4264!$omp target enter data map(to:rhs_vf(i))
4265# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4266#endif
4267# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4268 if (associated(rhs_vf(i)%sf)) then
4269# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4270
4271# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4272#if defined(MFC_OpenACC)
4273# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4274!$acc enter data copyin(rhs_vf(i)%sf)
4275# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4276#elif defined(MFC_OpenMP)
4277# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4278!$omp target enter data map(to:rhs_vf(i)%sf)
4279# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4280#endif
4281# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4282 end if
4283# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4284 end block
4285# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4286#endif
4287# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4288#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
4289# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4290 block
4291# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4292 ! NVIDIA CUDA Fortran 25.3+: uses submodules (cuda_runtime_api, gpu_reductions, sort) See
4293# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4294 ! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
4295# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4296#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
4297# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4298 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
4299# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4300#else
4301# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4302 use cuda_runtime_api
4303# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4304#endif
4305# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4306 integer :: istat
4307# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4308
4309# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4310 if (nv_uvm_pref_gpu) then
4311# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4312 ! set preferred location GPU
4313# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4314 istat = cudamemadvise(c_devloc(rhs_vf(i)%sf), sizeof(rhs_vf(i)%sf), cudamemadvisesetpreferredlocation, 0)
4315# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4316 if (istat /= cudasuccess) then
4317# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4318 write (*, "('Error code: ',I0, ': ')") istat
4319# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4320 end if
4321# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4322 ! set accessed by CPU
4323# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4324 istat = cudamemadvise(c_devloc(rhs_vf(i)%sf), sizeof(rhs_vf(i)%sf), cudamemadvisesetaccessedby, cudacpudeviceid)
4325# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4326 if (istat /= cudasuccess) then
4327# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4328 write (*, "('Error code: ',I0, ': ')") istat
4329# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4330 end if
4331# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4332 ! prefetch to GPU - physically populate memory pages
4333# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4334 istat = cudamemprefetchasync(c_devloc(rhs_vf(i)%sf), sizeof(rhs_vf(i)%sf), 0, 0)
4335# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4336 if (istat /= cudasuccess) then
4337# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4338 write (*, "('Error code: ',I0, ': ')") istat
4339# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4340 end if
4341# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4342 end if
4343# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4344 end block
4345# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4346#endif
4347# 381 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4348 end do
4349 else
4350 do i = 1, sys_size
4351#ifdef MFC_DEBUG
4352# 384 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4353 block
4354# 384 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4355 use iso_fortran_env, only: output_unit
4356# 384 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4357
4358# 384 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4359 print *, 'm_time_steppers.fpp:384: ', '@:ALLOCATE(rhs_vf(i)%sf(0:m, 0:n, 0:p))'
4360# 384 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4361
4362# 384 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4363 call flush (output_unit)
4364# 384 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4365 end block
4366# 384 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4367#endif
4368# 384 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4369 allocate (rhs_vf(i)%sf(0:m, 0:n, 0:p))
4370# 384 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4371
4372# 384 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4373
4374# 384 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4375#if defined(MFC_OpenACC)
4376# 384 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4377!$acc enter data create(rhs_vf(i)%sf)
4378# 384 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4379#elif defined(MFC_OpenMP)
4380# 384 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4381!$omp target enter data map(always,alloc:rhs_vf(i)%sf)
4382# 384 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4383#endif
4384# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4385#ifdef _CRAYFTN
4386# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4387 block
4388# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4389#ifdef MFC_DEBUG
4390# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4391 block
4392# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4393 use iso_fortran_env, only: output_unit
4394# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4395
4396# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4397 print *, 'm_time_steppers.fpp:385: ', '@:ACC_SETUP_SFs(rhs_vf(i))'
4398# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4399
4400# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4401 call flush (output_unit)
4402# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4403 end block
4404# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4405#endif
4406# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4407
4408# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4409
4410# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4411#if defined(MFC_OpenACC)
4412# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4413!$acc enter data copyin(rhs_vf(i))
4414# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4415#elif defined(MFC_OpenMP)
4416# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4417!$omp target enter data map(to:rhs_vf(i))
4418# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4419#endif
4420# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4421 if (associated(rhs_vf(i)%sf)) then
4422# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4423
4424# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4425#if defined(MFC_OpenACC)
4426# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4427!$acc enter data copyin(rhs_vf(i)%sf)
4428# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4429#elif defined(MFC_OpenMP)
4430# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4431!$omp target enter data map(to:rhs_vf(i)%sf)
4432# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4433#endif
4434# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4435 end if
4436# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4437 end block
4438# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4439#endif
4440# 386 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4441 end do
4442 end if
4443
4444 ! Opening and writing the header of the run-time information file
4445 if (proc_rank == 0 .and. run_time_info) then
4446 call s_open_run_time_information_file()
4447 end if
4448
4449 ! Allocating arrays to store the bc types
4450#ifdef MFC_DEBUG
4451# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4452 block
4453# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4454 use iso_fortran_env, only: output_unit
4455# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4456
4457# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4458 print *, 'm_time_steppers.fpp:395: ', '@:ALLOCATE(bc_type(1:num_dims,1:2))'
4459# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4460
4461# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4462 call flush (output_unit)
4463# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4464 end block
4465# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4466#endif
4467# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4468 allocate (bc_type(1:num_dims,1:2))
4469# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4470
4471# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4472
4473# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4474#if defined(MFC_OpenACC)
4475# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4476!$acc enter data create(bc_type)
4477# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4478#elif defined(MFC_OpenMP)
4479# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4480!$omp target enter data map(always,alloc:bc_type)
4481# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4482#endif
4483# 396 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4484
4485#ifdef MFC_DEBUG
4486# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4487 block
4488# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4489 use iso_fortran_env, only: output_unit
4490# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4491
4492# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4493 print *, 'm_time_steppers.fpp:397: ', '@:ALLOCATE(bc_type(1,1)%sf(0:0,0:n,0:p))'
4494# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4495
4496# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4497 call flush (output_unit)
4498# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4499 end block
4500# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4501#endif
4502# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4503 allocate (bc_type(1,1)%sf(0:0,0:n,0:p))
4504# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4505
4506# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4507
4508# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4509#if defined(MFC_OpenACC)
4510# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4511!$acc enter data create(bc_type(1,1)%sf)
4512# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4513#elif defined(MFC_OpenMP)
4514# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4515!$omp target enter data map(always,alloc:bc_type(1,1)%sf)
4516# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4517#endif
4518# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4519#ifdef MFC_DEBUG
4520# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4521 block
4522# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4523 use iso_fortran_env, only: output_unit
4524# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4525
4526# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4527 print *, 'm_time_steppers.fpp:398: ', '@:ALLOCATE(bc_type(1,2)%sf(0:0,0:n,0:p))'
4528# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4529
4530# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4531 call flush (output_unit)
4532# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4533 end block
4534# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4535#endif
4536# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4537 allocate (bc_type(1,2)%sf(0:0,0:n,0:p))
4538# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4539
4540# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4541
4542# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4543#if defined(MFC_OpenACC)
4544# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4545!$acc enter data create(bc_type(1,2)%sf)
4546# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4547#elif defined(MFC_OpenMP)
4548# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4549!$omp target enter data map(always,alloc:bc_type(1,2)%sf)
4550# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4551#endif
4552# 399 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4553# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4554 if (n > 0) then
4555#ifdef MFC_DEBUG
4556# 401 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4557 block
4558# 401 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4559 use iso_fortran_env, only: output_unit
4560# 401 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4561
4562# 401 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4563 print *, 'm_time_steppers.fpp:401: ', '@:ALLOCATE(bc_type(2,1)%sf(-buff_size:m+buff_size,0:0,0:p))'
4564# 401 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4565
4566# 401 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4567 call flush (output_unit)
4568# 401 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4569 end block
4570# 401 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4571#endif
4572# 401 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4573 allocate (bc_type(2,1)%sf(-buff_size:m+buff_size,0:0,0:p))
4574# 401 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4575
4576# 401 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4577
4578# 401 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4579#if defined(MFC_OpenACC)
4580# 401 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4581!$acc enter data create(bc_type(2,1)%sf)
4582# 401 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4583#elif defined(MFC_OpenMP)
4584# 401 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4585!$omp target enter data map(always,alloc:bc_type(2,1)%sf)
4586# 401 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4587#endif
4588# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4589#ifdef MFC_DEBUG
4590# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4591 block
4592# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4593 use iso_fortran_env, only: output_unit
4594# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4595
4596# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4597 print *, 'm_time_steppers.fpp:402: ', '@:ALLOCATE(bc_type(2,2)%sf(-buff_size:m+buff_size,0:0,0:p))'
4598# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4599
4600# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4601 call flush (output_unit)
4602# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4603 end block
4604# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4605#endif
4606# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4607 allocate (bc_type(2,2)%sf(-buff_size:m+buff_size,0:0,0:p))
4608# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4609
4610# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4611
4612# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4613#if defined(MFC_OpenACC)
4614# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4615!$acc enter data create(bc_type(2,2)%sf)
4616# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4617#elif defined(MFC_OpenMP)
4618# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4619!$omp target enter data map(always,alloc:bc_type(2,2)%sf)
4620# 402 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4621#endif
4622# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4623# 404 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4624 if (p > 0) then
4625#ifdef MFC_DEBUG
4626# 405 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4627 block
4628# 405 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4629 use iso_fortran_env, only: output_unit
4630# 405 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4631
4632# 405 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4633 print *, 'm_time_steppers.fpp:405: ', '@:ALLOCATE(bc_type(3,1)%sf(-buff_size:m+buff_size,-buff_size:n+buff_size,0:0))'
4634# 405 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4635
4636# 405 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4637 call flush (output_unit)
4638# 405 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4639 end block
4640# 405 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4641#endif
4642# 405 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4643 allocate (bc_type(3,1)%sf(-buff_size:m+buff_size,-buff_size:n+buff_size,0:0))
4644# 405 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4645
4646# 405 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4647
4648# 405 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4649#if defined(MFC_OpenACC)
4650# 405 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4651!$acc enter data create(bc_type(3,1)%sf)
4652# 405 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4653#elif defined(MFC_OpenMP)
4654# 405 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4655!$omp target enter data map(always,alloc:bc_type(3,1)%sf)
4656# 405 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4657#endif
4658# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4659#ifdef MFC_DEBUG
4660# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4661 block
4662# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4663 use iso_fortran_env, only: output_unit
4664# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4665
4666# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4667 print *, 'm_time_steppers.fpp:406: ', '@:ALLOCATE(bc_type(3,2)%sf(-buff_size:m+buff_size,-buff_size:n+buff_size,0:0))'
4668# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4669
4670# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4671 call flush (output_unit)
4672# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4673 end block
4674# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4675#endif
4676# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4677 allocate (bc_type(3,2)%sf(-buff_size:m+buff_size,-buff_size:n+buff_size,0:0))
4678# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4679
4680# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4681
4682# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4683#if defined(MFC_OpenACC)
4684# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4685!$acc enter data create(bc_type(3,2)%sf)
4686# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4687#elif defined(MFC_OpenMP)
4688# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4689!$omp target enter data map(always,alloc:bc_type(3,2)%sf)
4690# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4691#endif
4692# 407 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4693 end if
4694# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4695 end if
4696# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4697
4698 do i = 1, num_dims
4699 do j = 1, 2
4700#ifdef _CRAYFTN
4701# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4702 block
4703# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4704#ifdef MFC_DEBUG
4705# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4706 block
4707# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4708 use iso_fortran_env, only: output_unit
4709# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4710
4711# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4712 print *, 'm_time_steppers.fpp:414: ', '@:ACC_SETUP_SFs(bc_type(i,j))'
4713# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4714
4715# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4716 call flush (output_unit)
4717# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4718 end block
4719# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4720#endif
4721# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4722
4723# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4724
4725# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4726#if defined(MFC_OpenACC)
4727# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4728!$acc enter data copyin(bc_type(i,j))
4729# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4730#elif defined(MFC_OpenMP)
4731# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4732!$omp target enter data map(to:bc_type(i,j))
4733# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4734#endif
4735# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4736 if (associated(bc_type(i,j)%sf)) then
4737# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4738
4739# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4740#if defined(MFC_OpenACC)
4741# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4742!$acc enter data copyin(bc_type(i,j)%sf)
4743# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4744#elif defined(MFC_OpenMP)
4745# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4746!$omp target enter data map(to:bc_type(i,j)%sf)
4747# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4748#endif
4749# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4750 end if
4751# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4752 end block
4753# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4754#endif
4755# 415 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4756 end do
4757 end do
4758
4759 if (any(time_stepper == (/time_stepper_rk1, time_stepper_rk2, time_stepper_rk3/))) then
4760 ! temporary array index for TVD RK
4761 if (time_stepper == time_stepper_rk1) then
4762 stor = 1
4763 else
4764 stor = 2
4765 end if
4766
4767 ! TVD RK coefficients
4768#ifdef MFC_DEBUG
4769# 427 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4770 block
4771# 427 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4772 use iso_fortran_env, only: output_unit
4773# 427 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4774
4775# 427 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4776 print *, 'm_time_steppers.fpp:427: ', '@:ALLOCATE(rk_coef(time_stepper, 4))'
4777# 427 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4778
4779# 427 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4780 call flush (output_unit)
4781# 427 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4782 end block
4783# 427 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4784#endif
4785# 427 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4786 allocate (rk_coef(time_stepper, 4))
4787# 427 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4788
4789# 427 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4790
4791# 427 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4792#if defined(MFC_OpenACC)
4793# 427 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4794!$acc enter data create(rk_coef)
4795# 427 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4796#elif defined(MFC_OpenMP)
4797# 427 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4798!$omp target enter data map(always,alloc:rk_coef)
4799# 427 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4800#endif
4801# 428 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4802 if (time_stepper == time_stepper_rk1) then
4803 rk_coef(1,:) = (/1._wp, 0._wp, 1._wp, 1._wp/)
4804 else if (time_stepper == time_stepper_rk2) then
4805 rk_coef(1,:) = (/1._wp, 0._wp, 1._wp, 1._wp/)
4806 rk_coef(2,:) = (/1._wp, 1._wp, 1._wp, 2._wp/)
4807 else if (time_stepper == time_stepper_rk3) then
4808 rk_coef(1,:) = (/1._wp, 0._wp, 1._wp, 1._wp/)
4809 rk_coef(2,:) = (/1._wp, 3._wp, 1._wp, 4._wp/)
4810 rk_coef(3,:) = (/2._wp, 1._wp, 2._wp, 3._wp/)
4811 end if
4812
4813# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4814#if defined(MFC_OpenACC)
4815# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4816!$acc update device(rk_coef, stor)
4817# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4818#elif defined(MFC_OpenMP)
4819# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4820!$omp target update to(rk_coef, stor)
4821# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4822#endif
4823# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4824 end if
4825
4827
4828 !> Advance the solution one full step using a TVD Runge-Kutta time integrator
4829 impure subroutine s_tvd_rk(t_step, time_avg, nstage)
4830
4831#ifdef _CRAYFTN
4832 ! DIR$ OPTIMIZE (-haggress)
4833#endif
4834 integer, intent(in) :: t_step
4835 real(wp), intent(inout) :: time_avg
4836 integer, intent(in) :: nstage
4837 integer :: i, j, k, l, q, s !< Generic loop iterator
4838 real(wp) :: start, finish
4839 integer(kind=8) :: stage_t0, stage_t1, clock_rate, clock_max
4840 real(wp) :: stage_time
4841 integer, parameter :: n_warmup = 2 !< time steps excluded before the timing floor (warmup/JIT/first-touch)
4842
4843 call cpu_time(start)
4844 call nvtxstartrange("TIMESTEP")
4845
4846 ! Adaptive dt: initial stage
4847 if (adap_dt) call s_adaptive_dt_bubble(1)
4848
4849 do s = 1, nstage
4850 call system_clock(stage_t0)
4851 ! mytime is read on the device by the GRCBC inflow ramp, so it has to be current before the RHS that
4852 ! reads it, not after. Its GPU_DECLARE only creates device storage and never copies the host value, so
4853 ! without this the first RHS of a run reads uninitialised memory and later stages read a stale time.
4854
4855# 469 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4856#if defined(MFC_OpenACC)
4857# 469 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4858!$acc update device(mytime)
4859# 469 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4860#elif defined(MFC_OpenMP)
4861# 469 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4862!$omp target update to(mytime)
4863# 469 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4864#endif
4865# 470 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4866 ! Dirichlet inflows ramp too; their ghost fill lives in common code, which cannot read mytime
4867 if (any([bc_x%vel_in_ramp, bc_y%vel_in_ramp, bc_z%vel_in_ramp] > 0._wp)) then
4868 bc_vel_ramp = [f_vel_ramp(bc_x%vel_in_ramp, bc_x%vel_in_t0, bc_x%vel_in_frac0, mytime), &
4869 & f_vel_ramp(bc_y%vel_in_ramp, bc_y%vel_in_t0, bc_y%vel_in_frac0, mytime), &
4870 & f_vel_ramp(bc_z%vel_in_ramp, bc_z%vel_in_t0, bc_z%vel_in_frac0, mytime)]
4871
4872# 475 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4873#if defined(MFC_OpenACC)
4874# 475 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4875!$acc update device(bc_vel_ramp)
4876# 475 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4877#elif defined(MFC_OpenMP)
4878# 475 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4879!$omp target update to(bc_vel_ramp)
4880# 475 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4881#endif
4882# 476 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4883 end if
4884 call s_compute_rhs(q_cons_ts(1)%vf, q_t_sf, q_prim_vf, bc_type, rhs_vf, pb_ts(1)%sf, rhs_pb, mv_ts(1)%sf, rhs_mv, &
4885 & t_step, s)
4886
4887 if (s == 1) then
4888 if (run_time_info) then
4889 if (igr) then
4890 call s_write_run_time_information(q_cons_ts(1)%vf, t_step)
4891 end if
4892 if (.not. igr) then
4893 call s_write_run_time_information(q_prim_vf, t_step)
4894 end if
4895 end if
4896
4897 if (probe_wrt) then
4898 call s_time_step_cycling(t_step)
4899 call s_compute_derived_variables(t_step, q_cons_ts(1)%vf, q_prim_ts1, q_prim_ts2)
4900 end if
4901
4902 if (ib_state_wrt) call s_write_ib_force_history(t_step)
4903
4904 if (cfl_dt) then
4905 if (mytime >= t_stop) return
4906 else
4907 if (t_step == t_step_stop) return
4908 end if
4909 end if
4910
4911 if (bubbles_lagrange .and. .not. adap_dt) call s_update_lagrange_tdv_rk(q_prim_vf, bc_type, stage=s)
4912
4913# 505 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4914
4915# 505 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4916#if defined(MFC_OpenACC)
4917# 505 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4918!$acc parallel loop collapse(4) gang vector default(present)
4919# 505 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4920#elif defined(MFC_OpenMP)
4921# 505 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4922
4923# 505 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4924
4925# 505 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4926
4927# 505 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4928!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
4929# 505 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4930#endif
4931# 506 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4932 do i = 1, sys_size
4933 do l = 0, p
4934 do k = 0, n
4935 do j = 0, m
4936 if (s == 1 .and. nstage > 1) then
4937 q_cons_ts(stor)%vf(i)%sf(j, k, l) = q_cons_ts(1)%vf(i)%sf(j, k, l)
4938 end if
4939 if (igr) then
4940 q_cons_ts(1)%vf(i)%sf(j, k, l) = (rk_coef(s, 1)*q_cons_ts(1)%vf(i)%sf(j, k, l) + rk_coef(s, &
4941 & 2)*q_cons_ts(stor)%vf(i)%sf(j, k, l) + rk_coef(s, 3)*rhs_vf(i)%sf(j, k, &
4942 & l))/rk_coef(s, 4)
4943 else
4944 q_cons_ts(1)%vf(i)%sf(j, k, l) = (rk_coef(s, 1)*q_cons_ts(1)%vf(i)%sf(j, k, l) + rk_coef(s, &
4945 & 2)*q_cons_ts(stor)%vf(i)%sf(j, k, l) + rk_coef(s, 3)*dt*rhs_vf(i)%sf(j, k, &
4946 & l))/rk_coef(s, 4)
4947 end if
4948 end do
4949 end do
4950 end do
4951 end do
4952
4953# 526 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4954#if defined(MFC_OpenACC)
4955# 526 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4956!$acc end parallel loop
4957# 526 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4958#elif defined(MFC_OpenMP)
4959# 526 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4960
4961# 526 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4962!$omp end target teams loop
4963# 526 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4964#endif
4965# 527 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4966 ! Evolve pb and mv for non-polytropic qbmm
4967 if (qbmm .and. (.not. polytropic)) then
4968
4969# 529 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4970
4971# 529 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4972#if defined(MFC_OpenACC)
4973# 529 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4974!$acc parallel loop collapse(5) gang vector default(present)
4975# 529 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4976#elif defined(MFC_OpenMP)
4977# 529 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4978
4979# 529 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4980
4981# 529 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4982
4983# 529 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4984!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(5) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
4985# 529 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4986#endif
4987# 530 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4988 do i = 1, nb
4989 do l = 0, p
4990 do k = 0, n
4991 do j = 0, m
4992 do q = 1, nnode
4993 if (s == 1 .and. nstage > 1) then
4994 pb_ts(stor)%sf(j, k, l, q, i) = pb_ts(1)%sf(j, k, l, q, i)
4995 mv_ts(stor)%sf(j, k, l, q, i) = mv_ts(1)%sf(j, k, l, q, i)
4996 end if
4997 pb_ts(1)%sf(j, k, l, q, i) = (rk_coef(s, 1)*pb_ts(1)%sf(j, k, l, q, i) + rk_coef(s, &
4998 & 2)*pb_ts(stor)%sf(j, k, l, q, i) + rk_coef(s, 3)*dt*rhs_pb(j, k, l, q, i))/rk_coef(s, 4)
4999 mv_ts(1)%sf(j, k, l, q, i) = (rk_coef(s, 1)*mv_ts(1)%sf(j, k, l, q, i) + rk_coef(s, &
5000 & 2)*mv_ts(stor)%sf(j, k, l, q, i) + rk_coef(s, 3)*dt*rhs_mv(j, k, l, q, i))/rk_coef(s, 4)
5001 end do
5002 end do
5003 end do
5004 end do
5005 end do
5006
5007# 548 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5008#if defined(MFC_OpenACC)
5009# 548 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5010!$acc end parallel loop
5011# 548 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5012#elif defined(MFC_OpenMP)
5013# 548 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5014
5015# 548 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5016!$omp end target teams loop
5017# 548 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5018#endif
5019# 549 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5020 end if
5021
5022 if (bodyforces) call s_apply_bodyforces(q_cons_ts(1)%vf, q_prim_vf, rhs_vf, rk_coef(s, 3)*dt/rk_coef(s, 4))
5023
5024 if (synthetic_turbulence) call s_apply_synthetic_turbulence_force(q_cons_ts(1)%vf, q_prim_vf, rhs_vf, rk_coef(s, &
5025 & 3)*dt/rk_coef(s, 4))
5026
5027 if (grid_geometry == 3) call s_apply_fourier_filter(q_cons_ts(1)%vf)
5028
5029 if (model_eqns == model_eqns_6eq .and. (.not. relax)) then
5030 call s_pressure_relaxation_procedure(q_cons_ts(1)%vf)
5031 end if
5032
5033 if (adv_n) call s_comp_alpha_from_n(q_cons_ts(1)%vf)
5034
5035 if (ib) then
5036 ! check if any IBMS are moving, and if so, update the markers, ghost points, levelsets, and levelset norms
5037 if (moving_immersed_boundary_flag) then
5038 call s_propagate_immersed_boundaries(s, t_step)
5039 end if
5040
5041 ! update the ghost fluid properties point values based on IB state
5042 call s_ibm_correct_state(q_cons_ts(1)%vf, q_prim_vf, pb_ts(1)%sf, mv_ts(1)%sf)
5043 end if
5044
5045 if (cont_damage) call s_enforce_cont_damage_bounds(q_cons_ts(1)%vf)
5046
5047 ! Grind: minimum wall-clock time of a full RK stage (compute + halo H2D/D2H +
5048 ! update + IBM correction, aside from I/O) over steady-state stages. Wall clock
5049 ! (not cpu_time, which counts MPI spin-wait) and the minimum (jitter only adds
5050 ! time) make it reproducible; the min over stages drops the I/O-bearing s==1 stage.
5051 call system_clock(stage_t1, clock_rate, clock_max)
5052 ! Correct the delta for the rare case of the clock counter wrapping past clock_max.
5053 if (stage_t1 >= stage_t0) then
5054 stage_time = real(stage_t1 - stage_t0, wp)/real(clock_rate, wp)
5055 else
5056 stage_time = real(stage_t1 - stage_t0 + clock_max + 1_8, wp)/real(clock_rate, wp)
5057 end if
5058 if (t_step - t_step_start < n_warmup) then
5059 time_avg = 0._wp
5060 else if (time_avg <= 0._wp) then
5061 time_avg = stage_time
5062 else
5063 time_avg = min(time_avg, stage_time)
5064 end if
5065 end do
5066
5067 ! Operator-split reaction: integrate the stiff chemistry ODE per cell after the flow update,
5068 ! with sub-stepping, instead of adding the reaction source to the flow RHS (chem_params%reaction_substeps > 0).
5069 if (chemistry .and. chem_params%reactions .and. chem_params%reaction_substeps > 0) then
5070 call nvtxstartrange("CHEM-REACTION-SUBSTEP")
5071 call s_chemistry_reaction_substep(q_cons_ts(1)%vf, q_t_sf, dt, idwint)
5072 call nvtxendrange
5073 end if
5074
5075 ! Operator-split condensed-phase burn: integrate the progress variable per cell after the flow
5076 ! update, with sub-stepping, instead of adding the source to the flow RHS (rburn%substeps > 0).
5077 if (reactive_burn .and. rburn%substeps > 0) then
5078 call nvtxstartrange("BURN-SUBSTEP")
5079 call s_reactive_burn_substep(q_cons_ts(1)%vf, dt, idwint)
5080 call nvtxendrange
5081 end if
5082
5083 if (ib) then
5084 if (moving_immersed_boundary_flag) then
5085 call s_wrap_periodic_ibs() ! wraps the positions of IBs to the local proc
5086 call s_handoff_ib_ownership() ! recomputes which ranks own which IBs and communicate to neighbors
5087 else if (ib_state_wrt) then
5088 call s_compute_ib_forces(q_prim_vf, fluid_pp)
5089 end if
5090 end if
5091
5092 ! Adaptive dt: final stage
5093 if (adap_dt) call s_adaptive_dt_bubble(3)
5094
5095 call nvtxendrange
5096 call cpu_time(finish)
5097
5098 wall_time = abs(finish - start)
5099
5100 if (t_step - t_step_start >= 2) then
5101 wall_time_avg = (wall_time + (t_step - t_step_start - 2)*wall_time_avg)/(t_step - t_step_start - 1)
5102 else
5103 wall_time_avg = 0._wp
5104 end if
5105
5106 end subroutine s_tvd_rk
5107
5108 !> Bubble source part in Strang operator splitting scheme
5109 impure subroutine s_adaptive_dt_bubble(stage)
5110
5111 integer, intent(in) :: stage
5112
5113 call s_convert_conservative_to_primitive_variables(q_cons_ts(1)%vf, q_t_sf, q_prim_vf, idwbuff)
5114
5115 if (bubbles_euler) then
5116 call s_compute_bubble_ee_source(q_cons_ts(1)%vf, q_prim_vf, rhs_vf, divu)
5117 call s_comp_alpha_from_n(q_cons_ts(1)%vf)
5118 else if (bubbles_lagrange) then
5119 call s_populate_variables_buffers(bc_type, q_prim_vf, pb_ts(1)%sf, mv_ts(1)%sf, q_t_sf)
5120 call s_compute_bubble_el_dynamics(q_prim_vf, bc_type, stage)
5121 if (stage == 3) then
5122 if (lag_params%write_bubbles_stats) call s_calculate_lag_bubble_stats()
5123 if (lag_params%write_bubbles) then
5124
5125# 653 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5126#if defined(MFC_OpenACC)
5127# 653 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5128!$acc update host(gas_p, gas_mv, intfc_rad, intfc_vel)
5129# 653 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5130#elif defined(MFC_OpenMP)
5131# 653 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5132!$omp target update from(gas_p, gas_mv, intfc_rad, intfc_vel)
5133# 653 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5134#endif
5135# 654 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5136 call s_write_lag_bubble_evol(mytime)
5137 end if
5138 if (lag_params%write_void_evol) call s_write_void_evol(mytime)
5139 end if
5140 end if
5141
5142 end subroutine s_adaptive_dt_bubble
5143
5144 !> Compute the global time step size from CFL stability constraints across all cells
5145 impure subroutine s_compute_dt()
5146
5147 real(wp) :: rho !< Cell-avg. density
5148
5149# 671 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5150 real(wp), dimension(num_vels) :: vel !< Cell-avg. velocity
5151 real(wp), dimension(num_fluids) :: alpha, alpha_rho !< Cell-avg. volume fraction, partial density
5152# 674 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5153 real(wp) :: vel_sum !< Cell-avg. velocity sum
5154 real(wp) :: pres !< Cell-avg. pressure
5155 real(wp) :: gamma !< Cell-avg. sp. heat ratio
5156 real(wp) :: pi_inf !< Cell-avg. liquid stiffness function
5157 real(wp) :: qv !< Cell-avg. fluid reference energy
5158 real(wp) :: c !< Cell-avg. sound speed
5159 real(wp), dimension(2) :: re !< Cell-avg. Reynolds numbers
5160 real(wp), dimension(4) :: max_dt !< Cell dt candidates (inviscid, viscous, capillary, thermal)
5161 real(wp) :: icfl_dt_local, vcfl_dt_local, ccfl_dt_local, tcfl_dt_local, coll_dt_local
5162 real(wp), dimension(5) :: dt_candidates_loc !< Rank-local dt candidates (ICFL, VCFL, CCFL, TCFL, collision cap)
5163 real(wp), dimension(5) :: dt_candidates_glb !< Global dt candidates (ICFL, VCFL, CCFL, TCFL, collision cap)
5164 real(wp) :: dt_prev
5165 logical :: is_fluid_cell !< Cell lies outside every immersed boundary
5166 integer :: bad_cell !< 1 + linear index of a fluid cell with no valid dt, 0 if none
5167 integer :: j, k, l !< Generic loop iterators
5168 integer :: fl !< Fluid loop iterator
5169
5170 if (.not. igr) then
5171 call s_convert_conservative_to_primitive_variables(q_cons_ts(1)%vf, q_t_sf, q_prim_vf, idwint)
5172 end if
5173
5174 dt_prev = dt
5175 icfl_dt_local = huge(1.0_wp)
5176 vcfl_dt_local = huge(1.0_wp)
5177 ccfl_dt_local = huge(1.0_wp)
5178 tcfl_dt_local = huge(1.0_wp)
5179 coll_dt_local = huge(1.0_wp)
5180 bad_cell = 0
5181
5182# 702 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5183
5184# 702 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5185#if defined(MFC_OpenACC)
5186# 702 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5187!$acc parallel loop collapse(3) gang vector default(present) private(vel, alpha, alpha_rho, Re, rho, vel_sum, pres, gamma, pi_inf, c, qv, fl, max_dt, is_fluid_cell) &
5188# 702 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5189!$acc& reduction(min:icfl_dt_local, vcfl_dt_local, ccfl_dt_local, tcfl_dt_local) reduction(max:bad_cell)
5190# 702 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5191#elif defined(MFC_OpenMP)
5192# 702 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5193
5194# 702 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5195
5196# 702 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5197
5198# 702 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5199!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) &
5200# 702 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5201!$omp& private(vel, alpha, alpha_rho, Re, rho, vel_sum, pres, gamma, pi_inf, c, qv, fl, max_dt, is_fluid_cell) reduction(min:icfl_dt_local, vcfl_dt_local, ccfl_dt_local, tcfl_dt_local) &
5202# 702 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5203!$omp& reduction(max:bad_cell)
5204# 702 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5205#endif
5206# 705 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5207 do l = 0, p
5208 do k = 0, n
5209 do j = 0, m
5210 ! Cells inside an immersed boundary hold ghost-derived, non-physical state and must not set the global dt.
5211 is_fluid_cell = .true.
5212 if (ib) is_fluid_cell = (ib_markers%sf(j, k, l) == 0)
5213
5214 if (is_fluid_cell) then
5215 if (igr) then
5216 call s_compute_cell_state(q_cons_ts(1)%vf, pres, rho, gamma, pi_inf, re, alpha, alpha_rho, vel, &
5217 & vel_sum, qv, j, k, l)
5218 else
5219 call s_compute_cell_state(q_prim_vf, pres, rho, gamma, pi_inf, re, alpha, alpha_rho, vel, vel_sum, &
5220 & qv, j, k, l)
5221 end if
5222
5223 ! Compute mixture sound speed
5224 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, alpha, c, alpha_rho)
5225
5226 if (any_non_newtonian) then
5227 re(1) = 0._wp
5228 do fl = 1, num_fluids
5229 if (is_non_newtonian(fl)) then
5230 re(1) = re(1) + alpha(fl)*hb_mu_max(fl)
5231 else
5232 re(1) = re(1) + alpha(fl)*fluid_inv_re(fl)
5233 end if
5234 end do
5235 re(1) = 1._wp/max(re(1), sgm_eps)
5236 end if
5237
5238 call s_compute_dt_from_cfl(vel, c, max_dt, rho, re, alpha, alpha_rho, j, k, l)
5239
5240 ! min() drops a NaN candidate, so a cell with a NaN or non-positive dt would otherwise vanish from
5241 ! the reduction and dt would come from the cells still valid.
5242 if (.not. (max_dt(1) > 0._wp)) bad_cell = max(bad_cell, 1 + j + (m + 1)*(k + (n + 1)*l))
5243
5244 icfl_dt_local = min(icfl_dt_local, max_dt(1))
5245 vcfl_dt_local = min(vcfl_dt_local, max_dt(2))
5246 ccfl_dt_local = min(ccfl_dt_local, max_dt(3))
5247 tcfl_dt_local = min(tcfl_dt_local, max_dt(4))
5248 end if
5249 end do
5250 end do
5251 end do
5252
5253# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5254#if defined(MFC_OpenACC)
5255# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5256!$acc end parallel loop
5257# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5258#elif defined(MFC_OpenMP)
5259# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5260
5261# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5262!$omp end target teams loop
5263# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5264#endif
5265# 751 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5266
5267 if (bad_cell > 0) call s_abort_on_bad_dt_cell(bad_cell - 1)
5268
5269 ! restrict the time step so an ongoing collision spans at least collision_temporal_resolution time steps; the collision
5270 ! flag is rank-local, so the cap enters as a candidate before the global elementwise min propagates it to all ranks
5271 if (collision_model > 0 .and. collision_temporal_resolution > 0) then
5272 if (collisions_active) coll_dt_local = collision_time/real(collision_temporal_resolution, wp)
5273 collisions_active = .false.
5274 end if
5275
5276 dt_candidates_loc(1) = icfl_dt_local
5277 dt_candidates_loc(2) = vcfl_dt_local
5278 dt_candidates_loc(3) = ccfl_dt_local
5279 dt_candidates_loc(4) = tcfl_dt_local
5280 dt_candidates_loc(5) = coll_dt_local
5281
5282 if (num_procs == 1) then
5283 dt_candidates_glb = dt_candidates_loc
5284 else
5285 call s_mpi_allreduce_min_vec(dt_candidates_loc, dt_candidates_glb)
5286 end if
5287
5288 dt = minval(dt_candidates_glb)
5289 dt_limiter = dt_limiter_names(minloc(dt_candidates_glb, dim=1))
5290
5291 ! limit how much the time step can grow relative to the previous step
5292 if (ramp_ratio > 0._wp .and. dt_prev > 0._wp .and. ramp_ratio*dt_prev < dt) then
5293 dt = ramp_ratio*dt_prev
5294 dt_limiter = 'RAMP'
5295 end if
5296
5297
5298# 782 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5299#if defined(MFC_OpenACC)
5300# 782 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5301!$acc update device(dt)
5302# 782 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5303#elif defined(MFC_OpenMP)
5304# 782 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5305!$omp target update to(dt)
5306# 782 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5307#endif
5308# 783 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5309
5310 end subroutine s_compute_dt
5311
5312 !> Abort with the location of a fluid cell whose state admits no valid time step (NaN or non-positive inviscid dt).
5313 impure subroutine s_abort_on_bad_dt_cell(idx)
5314
5315 integer, intent(in) :: idx !< Rank-local linear index j + (m+1)*(k + (n+1)*l)
5316 integer :: j, k, l
5317 real(wp) :: loc(3)
5318 character(len=256) :: msg
5319
5320 j = mod(idx, m + 1)
5321 k = mod(idx/(m + 1), n + 1)
5322 l = idx/((m + 1)*(n + 1))
5323 loc = 0._wp
5324 loc(1) = x_cc(j)
5325 if (n > 0) loc(2) = y_cc(k)
5326 if (p > 0) loc(3) = z_cc(l)
5327 write (msg, '(A,I0,A,3(I0,1X),A,3(ES12.4,1X),A)') 'No valid time step: rank ', proc_rank, ', local cell (j,k,l) = ', j, &
5328 & k, l, ', x = ', loc, '. Its state is NaN or unphysical.'
5329 call s_mpi_abort(trim(msg))
5330
5331 end subroutine s_abort_on_bad_dt_cell
5332
5333 !> Apply the body forces source term at each Runge-Kutta stage
5334 subroutine s_apply_bodyforces(q_cons_vf, q_prim_vf_in, rhs_vf_in, ldt)
5335
5336 type(scalar_field), dimension(1:sys_size), intent(inout) :: q_cons_vf
5337 type(scalar_field), dimension(1:sys_size), intent(in) :: q_prim_vf_in
5338 type(scalar_field), dimension(1:sys_size), intent(inout) :: rhs_vf_in
5339 real(wp), intent(in) :: ldt !< local dt
5340 integer :: i, j, k, l
5341
5342 call nvtxstartrange("RHS-BODYFORCES")
5343 call s_compute_body_forces_rhs(q_prim_vf_in, q_cons_vf, rhs_vf_in, idwint)
5344
5345
5346# 819 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5347
5348# 819 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5349#if defined(MFC_OpenACC)
5350# 819 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5351!$acc parallel loop collapse(4) gang vector default(present)
5352# 819 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5353#elif defined(MFC_OpenMP)
5354# 819 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5355
5356# 819 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5357
5358# 819 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5359
5360# 819 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5361!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
5362# 819 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5363#endif
5364# 820 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5365 do i = eqn_idx%mom%beg, eqn_idx%E
5366 do l = 0, p
5367 do k = 0, n
5368 do j = 0, m
5369 q_cons_vf(i)%sf(j, k, l) = q_cons_vf(i)%sf(j, k, l) + ldt*rhs_vf_in(i)%sf(j, k, l)
5370 end do
5371 end do
5372 end do
5373 end do
5374
5375# 829 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5376#if defined(MFC_OpenACC)
5377# 829 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5378!$acc end parallel loop
5379# 829 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5380#elif defined(MFC_OpenMP)
5381# 829 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5382
5383# 829 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5384!$omp end target teams loop
5385# 829 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5386#endif
5387# 830 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5388
5389 call nvtxendrange
5390
5391 end subroutine s_apply_bodyforces
5392
5393 subroutine s_apply_synthetic_turbulence_force(q_cons_vf, q_prim_vf_in, rhs_vf_in, ldt)
5394
5395 type(scalar_field), dimension(1:sys_size), intent(inout) :: q_cons_vf
5396 type(scalar_field), dimension(1:sys_size), intent(in) :: q_prim_vf_in
5397 type(scalar_field), dimension(1:sys_size), intent(inout) :: rhs_vf_in
5398 real(wp), intent(in) :: ldt !< local dt
5399 integer :: i, j, k, l
5400
5401 call nvtxstartrange("RHS-SYNTHETICFORCE")
5402 call s_compute_synthetic_forces_rhs(q_prim_vf_in, q_cons_vf, rhs_vf_in)
5403
5404
5405# 846 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5406
5407# 846 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5408#if defined(MFC_OpenACC)
5409# 846 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5410!$acc parallel loop collapse(4) gang vector default(present)
5411# 846 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5412#elif defined(MFC_OpenMP)
5413# 846 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5414
5415# 846 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5416
5417# 846 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5418
5419# 846 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5420!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
5421# 846 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5422#endif
5423# 847 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5424 do i = eqn_idx%mom%beg, eqn_idx%E
5425 do l = 0, p
5426 do k = 0, n
5427 do j = 0, m
5428 q_cons_vf(i)%sf(j, k, l) = q_cons_vf(i)%sf(j, k, l) + ldt*rhs_vf_in(i)%sf(j, k, l)
5429 end do
5430 end do
5431 end do
5432 end do
5433
5434# 856 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5435#if defined(MFC_OpenACC)
5436# 856 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5437!$acc end parallel loop
5438# 856 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5439#elif defined(MFC_OpenMP)
5440# 856 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5441
5442# 856 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5443!$omp end target teams loop
5444# 856 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5445#endif
5446# 857 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5447
5448 call nvtxendrange
5449
5451
5452 !> Update immersed boundary positions and velocities at the current Runge-Kutta stage
5454
5455 integer, intent(in) :: s, t_step
5456 integer :: i
5457 integer :: gbl_id ! used for analytic ib patch motion
5458 real(wp) :: t_stage ! time of the state produced by RK stage s (used by prescribed kinematics)
5459
5460 call nvtxstartrange("PROPAGATE-IMMERSED-BOUNDARIES")
5461
5462 if (moving_immersed_boundary_flag) call s_compute_ib_forces(q_prim_vf, fluid_pp)
5463
5464 if (cfl_dt) then
5465 t_stage = mytime + dt
5466 if (time_stepper == time_stepper_rk3 .and. s == 2) t_stage = mytime + 0.5_wp*dt
5467 else
5468 ! The same t_step*dt form a restart evaluates the kinematics at, so a restart sees bitwise the same body
5469 t_stage = (t_step + 1)*dt
5470 if (time_stepper == time_stepper_rk3 .and. s == 2) t_stage = (t_step + 0.5_wp)*dt
5471 end if
5472
5473
5474# 883 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5475
5476# 883 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5477#if defined(MFC_OpenACC)
5478# 883 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5479!$acc parallel loop gang vector default(present) private(i, gbl_id) copyin(s, t_stage)
5480# 883 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5481#elif defined(MFC_OpenMP)
5482# 883 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5483
5484# 883 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5485
5486# 883 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5487
5488# 883 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5489!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, gbl_id) &
5490# 883 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5491!$omp& map(to:s, t_stage)
5492# 883 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5493#endif
5494# 884 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5495 do i = 1, num_ibs
5496 if (s == 1) then
5497 patch_ib(i)%step_vel = patch_ib(i)%vel
5498 patch_ib(i)%step_angular_vel = patch_ib(i)%angular_vel
5499 patch_ib(i)%step_angles = patch_ib(i)%angles
5500 patch_ib(i)%step_x_centroid = patch_ib(i)%x_centroid
5501 patch_ib(i)%step_y_centroid = patch_ib(i)%y_centroid
5502 patch_ib(i)%step_z_centroid = patch_ib(i)%z_centroid
5503 end if
5504
5505 ! Compute forces BEFORE the RK velocity blend so the device copy of patch_ib%vel matches the host (pre-blend) when
5506 ! velocity-dependent collision damping forces are evaluated on the GPU.
5507 if (patch_ib(i)%moving_ibm > 0 .and. patch_ib(i)%kin_model > 0) then
5508 call s_prescribed_kinematics(i, t_stage)
5509 else if (patch_ib(i)%moving_ibm > 0) then
5510 patch_ib(i)%vel = (rk_coef(s, 1)*patch_ib(i)%step_vel + rk_coef(s, 2)*patch_ib(i)%vel)/rk_coef(s, 4)
5511 patch_ib(i)%angular_vel = (rk_coef(s, 1)*patch_ib(i)%step_angular_vel + rk_coef(s, &
5512 & 2)*patch_ib(i)%angular_vel)/rk_coef(s, 4)
5513
5514 if (patch_ib(i)%moving_ibm == 1) then
5515 ! plug in analytic velocities for 1-way coupling, if it exists
5516
5517# 906 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5518 else if (patch_ib(i)%moving_ibm == 2) then ! if we are using two-way coupling, apply force and torque
5519 ! update the velocity from the force value
5520 patch_ib(i)%vel = patch_ib(i)%vel + rk_coef(s, 3)*dt*(patch_ib(i)%force/patch_ib(i)%mass)/rk_coef(s, 4)
5521
5522 ! update the angular velocity with the torque value
5523 patch_ib(i)%angular_vel = (patch_ib(i)%angular_vel*patch_ib(i)%moment) + (rk_coef(s, &
5524 & 3)*dt*patch_ib(i)%torque/rk_coef(s, 4)) ! add the torque to the angular momentum
5525 if (num_dims == 3) call s_compute_moment_of_inertia(patch_ib(i), patch_ib(i)%angular_vel, patch_ib(i)%moment)
5526 ! update the moment of inertia to be based on the direction of the angular momentum
5527 patch_ib(i)%angular_vel = patch_ib(i)%angular_vel/patch_ib(i)%moment
5528 end if
5529
5530 ! Update the angle of the IB
5531 patch_ib(i)%angles = (rk_coef(s, 1)*patch_ib(i)%step_angles + rk_coef(s, 2)*patch_ib(i)%angles + rk_coef(s, &
5532 & 3)*patch_ib(i)%angular_vel*dt)/rk_coef(s, 4)
5533
5534 ! Update the position of the IB
5535 patch_ib(i)%x_centroid = (rk_coef(s, 1)*patch_ib(i)%step_x_centroid + rk_coef(s, &
5536 & 2)*patch_ib(i)%x_centroid + rk_coef(s, 3)*patch_ib(i)%vel(1)*dt)/rk_coef(s, 4)
5537 patch_ib(i)%y_centroid = (rk_coef(s, 1)*patch_ib(i)%step_y_centroid + rk_coef(s, &
5538 & 2)*patch_ib(i)%y_centroid + rk_coef(s, 3)*patch_ib(i)%vel(2)*dt)/rk_coef(s, 4)
5539 patch_ib(i)%z_centroid = (rk_coef(s, 1)*patch_ib(i)%step_z_centroid + rk_coef(s, &
5540 & 2)*patch_ib(i)%z_centroid + rk_coef(s, 3)*patch_ib(i)%vel(3)*dt)/rk_coef(s, 4)
5541 end if
5542 end do
5543
5544# 931 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5545#if defined(MFC_OpenACC)
5546# 931 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5547!$acc end parallel loop
5548# 931 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5549#elif defined(MFC_OpenMP)
5550# 931 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5551
5552# 931 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5553!$omp end target teams loop
5554# 931 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5555#endif
5556# 932 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5557
5558 call s_update_mib(num_ibs)
5559
5560 call nvtxendrange
5561
5562 end subroutine s_propagate_immersed_boundaries
5563
5564 !> Save the temporary q_prim_vf vector into q_prim_ts for use in p_main
5565 subroutine s_time_step_cycling(t_step)
5566
5567 integer, intent(in) :: t_step
5568 integer :: i, j, k, l !< Generic loop iterator
5569
5570 if (t_step == t_step_start) then
5571
5572# 946 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5573
5574# 946 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5575#if defined(MFC_OpenACC)
5576# 946 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5577!$acc parallel loop collapse(4) gang vector default(present)
5578# 946 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5579#elif defined(MFC_OpenMP)
5580# 946 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5581
5582# 946 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5583
5584# 946 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5585
5586# 946 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5587!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
5588# 946 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5589#endif
5590# 947 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5591 do i = 1, sys_size
5592 do l = 0, p
5593 do k = 0, n
5594 do j = 0, m
5595 q_prim_ts2(2)%vf(i)%sf(j, k, l) = q_prim_vf(i)%sf(j, k, l)
5596 end do
5597 end do
5598 end do
5599 end do
5600
5601# 956 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5602#if defined(MFC_OpenACC)
5603# 956 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5604!$acc end parallel loop
5605# 956 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5606#elif defined(MFC_OpenMP)
5607# 956 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5608
5609# 956 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5610!$omp end target teams loop
5611# 956 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5612#endif
5613# 957 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5614 else if (t_step == t_step_start + 1) then
5615
5616# 958 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5617
5618# 958 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5619#if defined(MFC_OpenACC)
5620# 958 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5621!$acc parallel loop collapse(4) gang vector default(present)
5622# 958 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5623#elif defined(MFC_OpenMP)
5624# 958 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5625
5626# 958 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5627
5628# 958 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5629
5630# 958 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5631!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
5632# 958 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5633#endif
5634# 959 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5635 do i = 1, sys_size
5636 do l = 0, p
5637 do k = 0, n
5638 do j = 0, m
5639 q_prim_ts2(1)%vf(i)%sf(j, k, l) = q_prim_vf(i)%sf(j, k, l)
5640 end do
5641 end do
5642 end do
5643 end do
5644
5645# 968 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5646#if defined(MFC_OpenACC)
5647# 968 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5648!$acc end parallel loop
5649# 968 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5650#elif defined(MFC_OpenMP)
5651# 968 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5652
5653# 968 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5654!$omp end target teams loop
5655# 968 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5656#endif
5657# 969 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5658 else if (t_step == t_step_start + 2) then
5659
5660# 970 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5661
5662# 970 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5663#if defined(MFC_OpenACC)
5664# 970 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5665!$acc parallel loop collapse(4) gang vector default(present)
5666# 970 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5667#elif defined(MFC_OpenMP)
5668# 970 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5669
5670# 970 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5671
5672# 970 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5673
5674# 970 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5675!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
5676# 970 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5677#endif
5678# 971 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5679 do i = 1, sys_size
5680 do l = 0, p
5681 do k = 0, n
5682 do j = 0, m
5683 q_prim_ts1(2)%vf(i)%sf(j, k, l) = q_prim_vf(i)%sf(j, k, l)
5684 end do
5685 end do
5686 end do
5687 end do
5688
5689# 980 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5690#if defined(MFC_OpenACC)
5691# 980 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5692!$acc end parallel loop
5693# 980 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5694#elif defined(MFC_OpenMP)
5695# 980 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5696
5697# 980 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5698!$omp end target teams loop
5699# 980 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5700#endif
5701# 981 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5702 else if (t_step == t_step_start + 3) then
5703
5704# 982 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5705
5706# 982 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5707#if defined(MFC_OpenACC)
5708# 982 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5709!$acc parallel loop collapse(4) gang vector default(present)
5710# 982 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5711#elif defined(MFC_OpenMP)
5712# 982 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5713
5714# 982 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5715
5716# 982 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5717
5718# 982 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5719!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
5720# 982 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5721#endif
5722# 983 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5723 do i = 1, sys_size
5724 do l = 0, p
5725 do k = 0, n
5726 do j = 0, m
5727 q_prim_ts1(1)%vf(i)%sf(j, k, l) = q_prim_vf(i)%sf(j, k, l)
5728 end do
5729 end do
5730 end do
5731 end do
5732
5733# 992 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5734#if defined(MFC_OpenACC)
5735# 992 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5736!$acc end parallel loop
5737# 992 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5738#elif defined(MFC_OpenMP)
5739# 992 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5740
5741# 992 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5742!$omp end target teams loop
5743# 992 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5744#endif
5745# 993 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5746 else ! All other timesteps
5747
5748# 994 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5749
5750# 994 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5751#if defined(MFC_OpenACC)
5752# 994 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5753!$acc parallel loop collapse(4) gang vector default(present)
5754# 994 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5755#elif defined(MFC_OpenMP)
5756# 994 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5757
5758# 994 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5759
5760# 994 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5761
5762# 994 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5763!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
5764# 994 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5765#endif
5766# 995 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5767 do i = 1, sys_size
5768 do l = 0, p
5769 do k = 0, n
5770 do j = 0, m
5771 q_prim_ts2(2)%vf(i)%sf(j, k, l) = q_prim_ts2(1)%vf(i)%sf(j, k, l)
5772 q_prim_ts2(1)%vf(i)%sf(j, k, l) = q_prim_ts1(2)%vf(i)%sf(j, k, l)
5773 q_prim_ts1(2)%vf(i)%sf(j, k, l) = q_prim_ts1(1)%vf(i)%sf(j, k, l)
5774 q_prim_ts1(1)%vf(i)%sf(j, k, l) = q_prim_vf(i)%sf(j, k, l)
5775 end do
5776 end do
5777 end do
5778 end do
5779
5780# 1007 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5781#if defined(MFC_OpenACC)
5782# 1007 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5783!$acc end parallel loop
5784# 1007 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5785#elif defined(MFC_OpenMP)
5786# 1007 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5787
5788# 1007 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5789!$omp end target teams loop
5790# 1007 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5791#endif
5792# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5793 end if
5794
5795 end subroutine s_time_step_cycling
5796
5797 !> Module deallocation and/or disassociation procedures
5799
5800#ifdef FRONTIER_UNIFIED
5801 use hipfort
5802 use hipfort_hipmalloc
5803 use hipfort_check
5804#endif
5805 integer :: i, j !< Generic loop iterators
5806 ! Deallocating the cell-average conservative variables
5807#if defined(__NVCOMPILER_GPU_UNIFIED_MEM)
5808 do j = 1, sys_size
5809#ifdef MFC_DEBUG
5810# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5811 block
5812# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5813 use iso_fortran_env, only: output_unit
5814# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5815
5816# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5817 print *, 'm_time_steppers.fpp:1024: ', '@:DEALLOCATE(q_cons_ts(1)%vf(j)%sf)'
5818# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5819
5820# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5821 call flush (output_unit)
5822# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5823 end block
5824# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5825#endif
5826# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5827
5828# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5829#if defined(MFC_OpenACC)
5830# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5831!$acc exit data delete(q_cons_ts(1)%vf(j)%sf)
5832# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5833#elif defined(MFC_OpenMP)
5834# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5835!$omp target exit data map(release:q_cons_ts(1)%vf(j)%sf)
5836# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5837#endif
5838# 1024 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5839 deallocate (q_cons_ts(1)%vf(j)%sf)
5840# 1025 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5841 if (num_ts == 2) then
5842 if (nv_uvm_out_of_core) then
5843 nullify (q_cons_ts(2)%vf(j)%sf)
5844 else
5845#ifdef MFC_DEBUG
5846# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5847 block
5848# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5849 use iso_fortran_env, only: output_unit
5850# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5851
5852# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5853 print *, 'm_time_steppers.fpp:1029: ', '@:DEALLOCATE(q_cons_ts(2)%vf(j)%sf)'
5854# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5855
5856# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5857 call flush (output_unit)
5858# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5859 end block
5860# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5861#endif
5862# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5863
5864# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5865#if defined(MFC_OpenACC)
5866# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5867!$acc exit data delete(q_cons_ts(2)%vf(j)%sf)
5868# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5869#elif defined(MFC_OpenMP)
5870# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5871!$omp target exit data map(release:q_cons_ts(2)%vf(j)%sf)
5872# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5873#endif
5874# 1029 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5875 deallocate (q_cons_ts(2)%vf(j)%sf)
5876# 1030 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5877 end if
5878 end if
5879 end do
5880 if (num_ts == 2 .and. nv_uvm_out_of_core) then
5881 deallocate (q_cons_ts_pool_host)
5882 end if
5883#elif defined(FRONTIER_UNIFIED)
5884 do i = 1, num_ts
5885 do j = 1, sys_size
5886 nullify (q_cons_ts(i)%vf(j)%sf)
5887 end do
5888 end do
5889#ifdef MFC_MIXED_PRECISION
5890 call hipcheck(hiphostfree_(c_loc(q_cons_ts_pool_host)))
5891 nullify (q_cons_ts_pool_host)
5892 call hipcheck(hipfree_(c_loc(q_cons_ts_pool_device)))
5893 nullify (q_cons_ts_pool_device)
5894#else
5895 call hipcheck(hiphostfree(q_cons_ts_pool_host))
5896 call hipcheck(hipfree(q_cons_ts_pool_device))
5897#endif
5898#else
5899 do i = 1, num_ts
5900 do j = 1, sys_size
5901#ifdef MFC_DEBUG
5902# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5903 block
5904# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5905 use iso_fortran_env, only: output_unit
5906# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5907
5908# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5909 print *, 'm_time_steppers.fpp:1054: ', '@:DEALLOCATE(q_cons_ts(i)%vf(j)%sf)'
5910# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5911
5912# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5913 call flush (output_unit)
5914# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5915 end block
5916# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5917#endif
5918# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5919
5920# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5921#if defined(MFC_OpenACC)
5922# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5923!$acc exit data delete(q_cons_ts(i)%vf(j)%sf)
5924# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5925#elif defined(MFC_OpenMP)
5926# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5927!$omp target exit data map(release:q_cons_ts(i)%vf(j)%sf)
5928# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5929#endif
5930# 1054 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5931 deallocate (q_cons_ts(i)%vf(j)%sf)
5932# 1055 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5933 end do
5934 end do
5935#endif
5936 do i = 1, num_ts
5937#ifdef MFC_DEBUG
5938# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5939 block
5940# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5941 use iso_fortran_env, only: output_unit
5942# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5943
5944# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5945 print *, 'm_time_steppers.fpp:1059: ', '@:DEALLOCATE(q_cons_ts(i)%vf)'
5946# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5947
5948# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5949 call flush (output_unit)
5950# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5951 end block
5952# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5953#endif
5954# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5955
5956# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5957#if defined(MFC_OpenACC)
5958# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5959!$acc exit data delete(q_cons_ts(i)%vf)
5960# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5961#elif defined(MFC_OpenMP)
5962# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5963!$omp target exit data map(release:q_cons_ts(i)%vf)
5964# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5965#endif
5966# 1059 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5967 deallocate (q_cons_ts(i)%vf)
5968# 1060 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5969 end do
5970
5971#ifdef MFC_DEBUG
5972# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5973 block
5974# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5975 use iso_fortran_env, only: output_unit
5976# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5977
5978# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5979 print *, 'm_time_steppers.fpp:1062: ', '@:DEALLOCATE(q_cons_ts)'
5980# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5981
5982# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5983 call flush (output_unit)
5984# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5985 end block
5986# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5987#endif
5988# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5989
5990# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5991#if defined(MFC_OpenACC)
5992# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5993!$acc exit data delete(q_cons_ts)
5994# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5995#elif defined(MFC_OpenMP)
5996# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5997!$omp target exit data map(release:q_cons_ts)
5998# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5999#endif
6000# 1062 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6001 deallocate (q_cons_ts)
6002# 1063 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6003
6004 ! Deallocating the cell-average primitive ts variables
6005 if (probe_wrt) then
6006 do i = 1, num_probe_ts
6007 do j = 1, sys_size
6008#ifdef MFC_DEBUG
6009# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6010 block
6011# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6012 use iso_fortran_env, only: output_unit
6013# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6014
6015# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6016 print *, 'm_time_steppers.fpp:1068: ', '@:DEALLOCATE(q_prim_ts1(i)%vf(j)%sf, q_prim_ts2(i)%vf(j)%sf)'
6017# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6018
6019# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6020 call flush (output_unit)
6021# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6022 end block
6023# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6024#endif
6025# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6026
6027# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6028#if defined(MFC_OpenACC)
6029# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6030!$acc exit data delete(q_prim_ts1(i)%vf(j)%sf, q_prim_ts2(i)%vf(j)%sf)
6031# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6032#elif defined(MFC_OpenMP)
6033# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6034!$omp target exit data map(release:q_prim_ts1(i)%vf(j)%sf, q_prim_ts2(i)%vf(j)%sf)
6035# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6036#endif
6037# 1068 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6038 deallocate (q_prim_ts1(i)%vf(j)%sf, q_prim_ts2(i)%vf(j)%sf)
6039# 1069 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6040 end do
6041#ifdef MFC_DEBUG
6042# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6043 block
6044# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6045 use iso_fortran_env, only: output_unit
6046# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6047
6048# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6049 print *, 'm_time_steppers.fpp:1070: ', '@:DEALLOCATE(q_prim_ts1(i)%vf, q_prim_ts2(i)%vf)'
6050# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6051
6052# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6053 call flush (output_unit)
6054# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6055 end block
6056# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6057#endif
6058# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6059
6060# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6061#if defined(MFC_OpenACC)
6062# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6063!$acc exit data delete(q_prim_ts1(i)%vf, q_prim_ts2(i)%vf)
6064# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6065#elif defined(MFC_OpenMP)
6066# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6067!$omp target exit data map(release:q_prim_ts1(i)%vf, q_prim_ts2(i)%vf)
6068# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6069#endif
6070# 1070 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6071 deallocate (q_prim_ts1(i)%vf, q_prim_ts2(i)%vf)
6072# 1071 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6073 end do
6074#ifdef MFC_DEBUG
6075# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6076 block
6077# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6078 use iso_fortran_env, only: output_unit
6079# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6080
6081# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6082 print *, 'm_time_steppers.fpp:1072: ', '@:DEALLOCATE(q_prim_ts1, q_prim_ts2)'
6083# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6084
6085# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6086 call flush (output_unit)
6087# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6088 end block
6089# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6090#endif
6091# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6092
6093# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6094#if defined(MFC_OpenACC)
6095# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6096!$acc exit data delete(q_prim_ts1, q_prim_ts2)
6097# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6098#elif defined(MFC_OpenMP)
6099# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6100!$omp target exit data map(release:q_prim_ts1, q_prim_ts2)
6101# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6102#endif
6103# 1072 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6104 deallocate (q_prim_ts1, q_prim_ts2)
6105# 1073 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6106 end if
6107
6108 if (.not. igr) then
6109 ! Deallocating the cell-average primitive variables
6110 do i = 1, eqn_idx%adv%end
6111#ifdef MFC_DEBUG
6112# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6113 block
6114# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6115 use iso_fortran_env, only: output_unit
6116# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6117
6118# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6119 print *, 'm_time_steppers.fpp:1078: ', '@:DEALLOCATE(q_prim_vf(i)%sf)'
6120# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6121
6122# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6123 call flush (output_unit)
6124# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6125 end block
6126# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6127#endif
6128# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6129
6130# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6131#if defined(MFC_OpenACC)
6132# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6133!$acc exit data delete(q_prim_vf(i)%sf)
6134# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6135#elif defined(MFC_OpenMP)
6136# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6137!$omp target exit data map(release:q_prim_vf(i)%sf)
6138# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6139#endif
6140# 1078 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6141 deallocate (q_prim_vf(i)%sf)
6142# 1079 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6143 end do
6144
6145 if (mhd) then
6146 do i = eqn_idx%B%beg, eqn_idx%B%end
6147#ifdef MFC_DEBUG
6148# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6149 block
6150# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6151 use iso_fortran_env, only: output_unit
6152# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6153
6154# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6155 print *, 'm_time_steppers.fpp:1083: ', '@:DEALLOCATE(q_prim_vf(i)%sf)'
6156# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6157
6158# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6159 call flush (output_unit)
6160# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6161 end block
6162# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6163#endif
6164# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6165
6166# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6167#if defined(MFC_OpenACC)
6168# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6169!$acc exit data delete(q_prim_vf(i)%sf)
6170# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6171#elif defined(MFC_OpenMP)
6172# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6173!$omp target exit data map(release:q_prim_vf(i)%sf)
6174# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6175#endif
6176# 1083 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6177 deallocate (q_prim_vf(i)%sf)
6178# 1084 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6179 end do
6180 end if
6181
6182 if (hypoelasticity) then
6183 do i = eqn_idx%stress%beg, eqn_idx%stress%end
6184#ifdef MFC_DEBUG
6185# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6186 block
6187# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6188 use iso_fortran_env, only: output_unit
6189# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6190
6191# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6192 print *, 'm_time_steppers.fpp:1089: ', '@:DEALLOCATE(q_prim_vf(i)%sf)'
6193# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6194
6195# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6196 call flush (output_unit)
6197# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6198 end block
6199# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6200#endif
6201# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6202
6203# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6204#if defined(MFC_OpenACC)
6205# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6206!$acc exit data delete(q_prim_vf(i)%sf)
6207# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6208#elif defined(MFC_OpenMP)
6209# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6210!$omp target exit data map(release:q_prim_vf(i)%sf)
6211# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6212#endif
6213# 1089 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6214 deallocate (q_prim_vf(i)%sf)
6215# 1090 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6216 end do
6217 end if
6218
6219 if (cont_damage) then
6220#ifdef MFC_DEBUG
6221# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6222 block
6223# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6224 use iso_fortran_env, only: output_unit
6225# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6226
6227# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6228 print *, 'm_time_steppers.fpp:1094: ', '@:DEALLOCATE(q_prim_vf(eqn_idx%damage)%sf)'
6229# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6230
6231# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6232 call flush (output_unit)
6233# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6234 end block
6235# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6236#endif
6237# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6238
6239# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6240#if defined(MFC_OpenACC)
6241# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6242!$acc exit data delete(q_prim_vf(eqn_idx%damage)%sf)
6243# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6244#elif defined(MFC_OpenMP)
6245# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6246!$omp target exit data map(release:q_prim_vf(eqn_idx%damage)%sf)
6247# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6248#endif
6249# 1094 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6250 deallocate (q_prim_vf(eqn_idx%damage)%sf)
6251# 1095 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6252 end if
6253
6254 if (hyper_cleaning) then
6255#ifdef MFC_DEBUG
6256# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6257 block
6258# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6259 use iso_fortran_env, only: output_unit
6260# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6261
6262# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6263 print *, 'm_time_steppers.fpp:1098: ', '@:DEALLOCATE(q_prim_vf(eqn_idx%psi)%sf)'
6264# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6265
6266# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6267 call flush (output_unit)
6268# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6269 end block
6270# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6271#endif
6272# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6273
6274# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6275#if defined(MFC_OpenACC)
6276# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6277!$acc exit data delete(q_prim_vf(eqn_idx%psi)%sf)
6278# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6279#elif defined(MFC_OpenMP)
6280# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6281!$omp target exit data map(release:q_prim_vf(eqn_idx%psi)%sf)
6282# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6283#endif
6284# 1098 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6285 deallocate (q_prim_vf(eqn_idx%psi)%sf)
6286# 1099 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6287 end if
6288
6289 if (bubbles_euler) then
6290 do i = eqn_idx%bub%beg, eqn_idx%bub%end
6291#ifdef MFC_DEBUG
6292# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6293 block
6294# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6295 use iso_fortran_env, only: output_unit
6296# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6297
6298# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6299 print *, 'm_time_steppers.fpp:1103: ', '@:DEALLOCATE(q_prim_vf(i)%sf)'
6300# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6301
6302# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6303 call flush (output_unit)
6304# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6305 end block
6306# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6307#endif
6308# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6309
6310# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6311#if defined(MFC_OpenACC)
6312# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6313!$acc exit data delete(q_prim_vf(i)%sf)
6314# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6315#elif defined(MFC_OpenMP)
6316# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6317!$omp target exit data map(release:q_prim_vf(i)%sf)
6318# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6319#endif
6320# 1103 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6321 deallocate (q_prim_vf(i)%sf)
6322# 1104 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6323 end do
6324 end if
6325
6326 if (model_eqns == model_eqns_6eq) then
6327 do i = eqn_idx%int_en%beg, eqn_idx%int_en%end
6328#ifdef MFC_DEBUG
6329# 1109 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6330 block
6331# 1109 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6332 use iso_fortran_env, only: output_unit
6333# 1109 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6334
6335# 1109 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6336 print *, 'm_time_steppers.fpp:1109: ', '@:DEALLOCATE(q_prim_vf(i)%sf)'
6337# 1109 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6338
6339# 1109 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6340 call flush (output_unit)
6341# 1109 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6342 end block
6343# 1109 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6344#endif
6345# 1109 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6346
6347# 1109 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6348#if defined(MFC_OpenACC)
6349# 1109 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6350!$acc exit data delete(q_prim_vf(i)%sf)
6351# 1109 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6352#elif defined(MFC_OpenMP)
6353# 1109 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6354!$omp target exit data map(release:q_prim_vf(i)%sf)
6355# 1109 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6356#endif
6357# 1109 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6358 deallocate (q_prim_vf(i)%sf)
6359# 1110 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6360 end do
6361 end if
6362 end if
6363
6364#ifdef MFC_DEBUG
6365# 1114 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6366 block
6367# 1114 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6368 use iso_fortran_env, only: output_unit
6369# 1114 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6370
6371# 1114 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6372 print *, 'm_time_steppers.fpp:1114: ', '@:DEALLOCATE(q_prim_vf)'
6373# 1114 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6374
6375# 1114 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6376 call flush (output_unit)
6377# 1114 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6378 end block
6379# 1114 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6380#endif
6381# 1114 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6382
6383# 1114 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6384#if defined(MFC_OpenACC)
6385# 1114 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6386!$acc exit data delete(q_prim_vf)
6387# 1114 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6388#elif defined(MFC_OpenMP)
6389# 1114 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6390!$omp target exit data map(release:q_prim_vf)
6391# 1114 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6392#endif
6393# 1114 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6394 deallocate (q_prim_vf)
6395# 1115 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6396
6397 ! Deallocating the cell-average RHS variables
6398 do i = 1, sys_size
6399#ifdef MFC_DEBUG
6400# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6401 block
6402# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6403 use iso_fortran_env, only: output_unit
6404# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6405
6406# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6407 print *, 'm_time_steppers.fpp:1118: ', '@:DEALLOCATE(rhs_vf(i)%sf)'
6408# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6409
6410# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6411 call flush (output_unit)
6412# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6413 end block
6414# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6415#endif
6416# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6417
6418# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6419#if defined(MFC_OpenACC)
6420# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6421!$acc exit data delete(rhs_vf(i)%sf)
6422# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6423#elif defined(MFC_OpenMP)
6424# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6425!$omp target exit data map(release:rhs_vf(i)%sf)
6426# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6427#endif
6428# 1118 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6429 deallocate (rhs_vf(i)%sf)
6430# 1119 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6431 end do
6432
6433#ifdef MFC_DEBUG
6434# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6435 block
6436# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6437 use iso_fortran_env, only: output_unit
6438# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6439
6440# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6441 print *, 'm_time_steppers.fpp:1121: ', '@:DEALLOCATE(rhs_vf)'
6442# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6443
6444# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6445 call flush (output_unit)
6446# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6447 end block
6448# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6449#endif
6450# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6451
6452# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6453#if defined(MFC_OpenACC)
6454# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6455!$acc exit data delete(rhs_vf)
6456# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6457#elif defined(MFC_OpenMP)
6458# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6459!$omp target exit data map(release:rhs_vf)
6460# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6461#endif
6462# 1121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6463 deallocate (rhs_vf)
6464# 1122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6465
6466 ! Writing the footer of and closing the run-time information file
6467 if (proc_rank == 0 .and. run_time_info) then
6468 call s_close_run_time_information_file()
6469 end if
6470
6471 if (chemistry .or. heat_conduction) then
6472#ifdef MFC_DEBUG
6473# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6474 block
6475# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6476 use iso_fortran_env, only: output_unit
6477# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6478
6479# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6480 print *, 'm_time_steppers.fpp:1129: ', '@:DEALLOCATE(q_T_sf%sf)'
6481# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6482
6483# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6484 call flush (output_unit)
6485# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6486 end block
6487# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6488#endif
6489# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6490
6491# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6492#if defined(MFC_OpenACC)
6493# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6494!$acc exit data delete(q_T_sf%sf)
6495# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6496#elif defined(MFC_OpenMP)
6497# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6498!$omp target exit data map(release:q_T_sf%sf)
6499# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6500#endif
6501# 1129 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6502 deallocate (q_t_sf%sf)
6503# 1130 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6504 end if
6505#ifdef MFC_DEBUG
6506# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6507 block
6508# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6509 use iso_fortran_env, only: output_unit
6510# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6511
6512# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6513 print *, 'm_time_steppers.fpp:1131: ', '@:DEALLOCATE(pb_ts(1)%sf)'
6514# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6515
6516# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6517 call flush (output_unit)
6518# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6519 end block
6520# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6521#endif
6522# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6523
6524# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6525#if defined(MFC_OpenACC)
6526# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6527!$acc exit data delete(pb_ts(1)%sf)
6528# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6529#elif defined(MFC_OpenMP)
6530# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6531!$omp target exit data map(release:pb_ts(1)%sf)
6532# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6533#endif
6534# 1131 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6535 deallocate (pb_ts(1)%sf)
6536# 1132 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6537#ifdef MFC_DEBUG
6538# 1132 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6539 block
6540# 1132 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6541 use iso_fortran_env, only: output_unit
6542# 1132 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6543
6544# 1132 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6545 print *, 'm_time_steppers.fpp:1132: ', '@:DEALLOCATE(pb_ts(2)%sf)'
6546# 1132 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6547
6548# 1132 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6549 call flush (output_unit)
6550# 1132 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6551 end block
6552# 1132 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6553#endif
6554# 1132 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6555
6556# 1132 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6557#if defined(MFC_OpenACC)
6558# 1132 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6559!$acc exit data delete(pb_ts(2)%sf)
6560# 1132 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6561#elif defined(MFC_OpenMP)
6562# 1132 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6563!$omp target exit data map(release:pb_ts(2)%sf)
6564# 1132 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6565#endif
6566# 1132 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6567 deallocate (pb_ts(2)%sf)
6568# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6569#ifdef MFC_DEBUG
6570# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6571 block
6572# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6573 use iso_fortran_env, only: output_unit
6574# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6575
6576# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6577 print *, 'm_time_steppers.fpp:1133: ', '@:DEALLOCATE(rhs_pb)'
6578# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6579
6580# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6581 call flush (output_unit)
6582# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6583 end block
6584# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6585#endif
6586# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6587
6588# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6589#if defined(MFC_OpenACC)
6590# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6591!$acc exit data delete(rhs_pb)
6592# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6593#elif defined(MFC_OpenMP)
6594# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6595!$omp target exit data map(release:rhs_pb)
6596# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6597#endif
6598# 1133 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6599 deallocate (rhs_pb)
6600# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6601#ifdef MFC_DEBUG
6602# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6603 block
6604# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6605 use iso_fortran_env, only: output_unit
6606# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6607
6608# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6609 print *, 'm_time_steppers.fpp:1134: ', '@:DEALLOCATE(pb_ts)'
6610# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6611
6612# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6613 call flush (output_unit)
6614# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6615 end block
6616# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6617#endif
6618# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6619
6620# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6621#if defined(MFC_OpenACC)
6622# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6623!$acc exit data delete(pb_ts)
6624# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6625#elif defined(MFC_OpenMP)
6626# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6627!$omp target exit data map(release:pb_ts)
6628# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6629#endif
6630# 1134 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6631 deallocate (pb_ts)
6632# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6633#ifdef MFC_DEBUG
6634# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6635 block
6636# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6637 use iso_fortran_env, only: output_unit
6638# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6639
6640# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6641 print *, 'm_time_steppers.fpp:1135: ', '@:DEALLOCATE(mv_ts(1)%sf)'
6642# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6643
6644# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6645 call flush (output_unit)
6646# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6647 end block
6648# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6649#endif
6650# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6651
6652# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6653#if defined(MFC_OpenACC)
6654# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6655!$acc exit data delete(mv_ts(1)%sf)
6656# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6657#elif defined(MFC_OpenMP)
6658# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6659!$omp target exit data map(release:mv_ts(1)%sf)
6660# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6661#endif
6662# 1135 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6663 deallocate (mv_ts(1)%sf)
6664# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6665#ifdef MFC_DEBUG
6666# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6667 block
6668# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6669 use iso_fortran_env, only: output_unit
6670# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6671
6672# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6673 print *, 'm_time_steppers.fpp:1136: ', '@:DEALLOCATE(mv_ts(2)%sf)'
6674# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6675
6676# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6677 call flush (output_unit)
6678# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6679 end block
6680# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6681#endif
6682# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6683
6684# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6685#if defined(MFC_OpenACC)
6686# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6687!$acc exit data delete(mv_ts(2)%sf)
6688# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6689#elif defined(MFC_OpenMP)
6690# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6691!$omp target exit data map(release:mv_ts(2)%sf)
6692# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6693#endif
6694# 1136 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6695 deallocate (mv_ts(2)%sf)
6696# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6697#ifdef MFC_DEBUG
6698# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6699 block
6700# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6701 use iso_fortran_env, only: output_unit
6702# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6703
6704# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6705 print *, 'm_time_steppers.fpp:1137: ', '@:DEALLOCATE(rhs_mv)'
6706# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6707
6708# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6709 call flush (output_unit)
6710# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6711 end block
6712# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6713#endif
6714# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6715
6716# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6717#if defined(MFC_OpenACC)
6718# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6719!$acc exit data delete(rhs_mv)
6720# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6721#elif defined(MFC_OpenMP)
6722# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6723!$omp target exit data map(release:rhs_mv)
6724# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6725#endif
6726# 1137 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6727 deallocate (rhs_mv)
6728# 1138 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6729#ifdef MFC_DEBUG
6730# 1138 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6731 block
6732# 1138 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6733 use iso_fortran_env, only: output_unit
6734# 1138 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6735
6736# 1138 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6737 print *, 'm_time_steppers.fpp:1138: ', '@:DEALLOCATE(mv_ts)'
6738# 1138 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6739
6740# 1138 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6741 call flush (output_unit)
6742# 1138 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6743 end block
6744# 1138 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6745#endif
6746# 1138 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6747
6748# 1138 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6749#if defined(MFC_OpenACC)
6750# 1138 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6751!$acc exit data delete(mv_ts)
6752# 1138 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6753#elif defined(MFC_OpenMP)
6754# 1138 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6755!$omp target exit data map(release:mv_ts)
6756# 1138 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6757#endif
6758# 1138 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6759 deallocate (mv_ts)
6760# 1139 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6761 do i = 1, num_dims
6762#ifdef MFC_DEBUG
6763# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6764 block
6765# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6766 use iso_fortran_env, only: output_unit
6767# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6768
6769# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6770 print *, 'm_time_steppers.fpp:1140: ', '@:DEALLOCATE(bc_type(i,1)%sf)'
6771# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6772
6773# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6774 call flush (output_unit)
6775# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6776 end block
6777# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6778#endif
6779# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6780
6781# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6782#if defined(MFC_OpenACC)
6783# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6784!$acc exit data delete(bc_type(i,1)%sf)
6785# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6786#elif defined(MFC_OpenMP)
6787# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6788!$omp target exit data map(release:bc_type(i,1)%sf)
6789# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6790#endif
6791# 1140 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6792 deallocate (bc_type(i,1)%sf)
6793# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6794#ifdef MFC_DEBUG
6795# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6796 block
6797# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6798 use iso_fortran_env, only: output_unit
6799# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6800
6801# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6802 print *, 'm_time_steppers.fpp:1141: ', '@:DEALLOCATE(bc_type(i,2)%sf)'
6803# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6804
6805# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6806 call flush (output_unit)
6807# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6808 end block
6809# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6810#endif
6811# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6812
6813# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6814#if defined(MFC_OpenACC)
6815# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6816!$acc exit data delete(bc_type(i,2)%sf)
6817# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6818#elif defined(MFC_OpenMP)
6819# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6820!$omp target exit data map(release:bc_type(i,2)%sf)
6821# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6822#endif
6823# 1141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6824 deallocate (bc_type(i,2)%sf)
6825# 1142 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6826 end do
6827#ifdef MFC_DEBUG
6828# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6829 block
6830# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6831 use iso_fortran_env, only: output_unit
6832# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6833
6834# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6835 print *, 'm_time_steppers.fpp:1143: ', '@:DEALLOCATE(bc_type)'
6836# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6837
6838# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6839 call flush (output_unit)
6840# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6841 end block
6842# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6843#endif
6844# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6845
6846# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6847#if defined(MFC_OpenACC)
6848# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6849!$acc exit data delete(bc_type)
6850# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6851#elif defined(MFC_OpenMP)
6852# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6853!$omp target exit data map(release:bc_type)
6854# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6855#endif
6856# 1143 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6857 deallocate (bc_type)
6858# 1144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6859 if (any(time_stepper == (/1, 2, 3/))) then
6860#ifdef MFC_DEBUG
6861# 1145 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6862 block
6863# 1145 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6864 use iso_fortran_env, only: output_unit
6865# 1145 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6866
6867# 1145 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6868 print *, 'm_time_steppers.fpp:1145: ', '@:DEALLOCATE(rk_coef)'
6869# 1145 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6870
6871# 1145 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6872 call flush (output_unit)
6873# 1145 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6874 end block
6875# 1145 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6876#endif
6877# 1145 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6878
6879# 1145 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6880#if defined(MFC_OpenACC)
6881# 1145 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6882!$acc exit data delete(rk_coef)
6883# 1145 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6884#elif defined(MFC_OpenMP)
6885# 1145 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6886!$omp target exit data map(release:rk_coef)
6887# 1145 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6888#endif
6889# 1145 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6890 deallocate (rk_coef)
6891# 1146 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6892 end if
6893
6894 end subroutine s_finalize_time_steppers_module
6895
6896end module m_time_steppers
integer, intent(in) k
integer, intent(in) j
integer, intent(in) l
Computes gravitational and body force source terms for the momentum equations.
Noncharacteristic and processor boundary condition application for ghost cells and buffer regions.
Per-cell noncharacteristic boundary condition primitives applied in the ghost cells.
real(wp), dimension(3), public bc_vel_ramp
f_vel_ramp per direction, applied to Dirichlet ghost velocities; set by the time stepper when a ramp ...
pure real(wp) function, public f_vel_ramp(tau, t0, frac0, t)
Velocity scaling for a GRCBC inflow that is ramping up: unity unless bc_[x,y,z]vel_in_ramp is set,...
Computes ensemble-averaged (Euler–Euler) bubble source terms for radius, velocity,...
Tracks Lagrangian bubbles and couples their dynamics to the Eulerian flow via volume averaging.
Multi-species chemistry interface for thermodynamic properties, reaction rates, and transport coeffic...
Ghost-node immersed boundary method: locates ghost/image points, computes interpolation coefficients,...
logical, public collisions_active
true when any IB-IB or IB-wall contact was detected on this rank since the last adaptive-dt computati...
Compile-time constant parameters: default values, tolerances, and physical constants.
integer, parameter time_stepper_rk2
integer, parameter time_stepper_rk1
integer, parameter time_stepper_rk3
integer, parameter model_eqns_6eq
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,...
Forward and inverse FFT wrappers (FFTW/cuFFT/hipFFT) for azimuthal Fourier filtering in cylindrical g...
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions...
Computes hypoelastic stress-rate source terms and damage-state evolution.
subroutine, public s_enforce_cont_damage_bounds(q_cons_vf)
Project the conservative continuum-damage carrier onto 0 <= U_D <= m_s.
Ghost-node immersed boundary method: locates ghost/image points, computes interpolation coefficients,...
MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver.
NVIDIA NVTX profiling API bindings for GPU performance instrumentation.
Definition m_nvtx.f90:6
Pressure relaxation for the six-equation multi-component model via Newton–Raphson equilibration and v...
Condensed-phase reactive burn: a pressure-driven programmed-burn source that converts a "reactant" fl...
subroutine, public s_reactive_burn_substep(q_cons_vf, dtime, bounds)
Operator-split alternative to s_compute_reactive_burn, used when rburnsubsteps > 0....
Assemble the right-hand side of the governing equations using finite-volume flux differencing,...
Simulation helper routines for cell state, CFL calculation, and stability checks.
Total-variation-diminishing (TVD) Runge–Kutta time integrators (1st-, 2nd-, and 3rd-order SSP).
type(scalar_field) q_t_sf
Cell-average temperature variables at the current time-stage.
type(integer_field), dimension(:,:), allocatable bc_type
Boundary condition identifiers.
impure subroutine s_initialize_time_steppers_module
Initialize the time steppers module.
subroutine s_apply_synthetic_turbulence_force(q_cons_vf, q_prim_vf_in, rhs_vf_in, ldt)
subroutine s_propagate_immersed_boundaries(s, t_step)
Update immersed boundary positions and velocities at the current Runge-Kutta stage.
integer, private num_probe_ts
subroutine s_apply_bodyforces(q_cons_vf, q_prim_vf_in, rhs_vf_in, ldt)
Apply the body forces source term at each Runge-Kutta stage.
type(scalar_field), dimension(:), allocatable rhs_vf
Cell-average RHS variables at the current time-stage.
impure subroutine s_adaptive_dt_bubble(stage)
Bubble source part in Strang operator splitting scheme.
type(vector_field), dimension(:), allocatable q_cons_ts
Cell-average conservative variables at each time-stage (TS).
real(wp), dimension(:,:,:,:,:), allocatable rhs_pb
type(vector_field), dimension(:), allocatable q_prim_ts2
subroutine s_time_step_cycling(t_step)
Save the temporary q_prim_vf vector into q_prim_ts for use in p_main.
type(vector_field), dimension(:), allocatable q_prim_ts1
Cell-average primitive variables at consecutive TIMESTEPS.
impure subroutine s_abort_on_bad_dt_cell(idx)
Abort with the location of a fluid cell whose state admits no valid time step (NaN or non-positive in...
type(scalar_field), dimension(:), allocatable q_prim_vf
Cell-average primitive variables at the current time-stage.
real(wp), dimension(:,:,:,:,:), allocatable rhs_mv
impure subroutine s_finalize_time_steppers_module
Module deallocation and/or disassociation procedures.
impure subroutine s_compute_dt()
Compute the global time step size from CFL stability constraints across all cells.
impure subroutine s_tvd_rk(t_step, time_avg, nstage)
Advance the solution one full step using a TVD Runge-Kutta time integrator.
integer, private num_ts
Number of time stages in the time-stepping scheme.
real(wp), dimension(:,:), allocatable rk_coef
integer stor
storage index
Derived type annexing an integer scalar field (SF).
Derived type annexing a scalar field (SF).
Derived type annexing a vector field (VF).