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# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
20
21# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
22
23# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
24
25# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
26
27# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
28
29# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
30
31# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
32! New line at end of file is required for FYPP
33# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
34# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
35# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
36# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
38# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41
42# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
45
46# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
47
48# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
49
50# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51
52# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53
54# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55
56# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
57
58# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
59! New line at end of file is required for FYPP
60# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
61
62# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
63# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
64# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
65# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
66# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
67
68# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
69
70# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
71
72# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
73
74# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
75
76# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
77
78# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
79
80# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
81
82# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
83
84# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
85
86# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
87
88# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
89
90# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
91
92# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
93
94# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
95
96# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
97
98# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
99
100# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
101
102# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
103
104# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
105
106# 207 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
107
108# 232 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
109
110# 243 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
111
112# 245 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
113# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114
115# 283 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116
117# 293 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118
119# 303 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120
121# 312 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122
123# 329 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124
125# 339 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
126
127# 346 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128
129# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
130
131# 358 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
132
133# 364 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
134
135# 370 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
136
137# 376 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
138! New line at end of file is required for FYPP
139# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
140# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
141# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
142# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
143# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
144# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
145# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
146# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
147
148# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
149# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
150# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
151
152# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
153
154# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
155
156# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
157
158# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
159
160# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
161
162# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
163
164# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
165! New line at end of file is required for FYPP
166# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
167
168# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
169
170# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
171
172# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
173
174# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
175
176# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
177
178# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
179
180# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
181
182# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
183
184# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
185
186# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
187
188# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
189
190# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
191
192# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
193
194# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
195
196# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
197
198# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
199
200# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
201
202# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
203
204# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
205
206# 192 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
207
208# 213 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
209
210# 241 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
211
212# 256 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
213
214# 266 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
215
216# 275 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
217
218# 291 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
219
220# 301 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
221
222# 308 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
223! New line at end of file is required for FYPP
224# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
225
226# 21 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
227
228# 37 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
229
230# 50 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
231
232# 76 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
233
234# 91 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
235
236# 102 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
237
238# 115 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
239
240# 143 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
241
242# 154 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
243
244# 165 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
245
246# 176 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
247
248# 187 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
249
250# 198 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251
252# 208 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
253
254# 214 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
255
256# 220 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257
258# 226 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
259
260# 232 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
261
262# 234 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 235 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
264! New line at end of file is required for FYPP
265# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
266
267# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
268
269! Caution:
270! This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI rank.
271! That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0.
272! For an example see misc/nvidia_uvm/bind.sh.
273# 63 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
274
275# 81 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
276
277# 88 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
278
279# 111 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
280
281# 127 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
282
283# 153 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
284
285# 159 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
286
287# 167 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
288! New line at end of file is required for FYPP
289# 6 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp" 2
290# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
291! This file exists so that Fypp can be run without generating case.fpp files for
292! each target. This is useful when generating documentation, for example. This
293! should also let MFC be built with CMake directly, without invoking mfc.sh.
294
295! For pre-process.
296# 9 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
297
298! For moving immersed boundaries in simulation
299# 14 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
300# 7 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp" 2
301
302!> @brief Total-variation-diminishing (TVD) Runge--Kutta time integrators (1st-, 2nd-, and 3rd-order SSP)
304
305 use m_derived_types !< definitions of the derived types
306
307 use m_global_parameters !< definitions of the global parameters
308
309 use m_rhs !< right-hane-side (rhs) evaluation procedures
310
311 use m_pressure_relaxation !< pressure relaxation procedures
312
313 use m_data_output !< run-time info & solution data output procedures
314
315 use m_bubbles_ee !< ensemble-averaged bubble dynamics routines
316
317 use m_bubbles_el !< lagrange bubble dynamics routines
318
319 use m_ibm
320
322
323 use m_mpi_proxy !< message passing interface (mpi) module proxy
324
326
327 use m_helper
328
329 use m_sim_helpers
330
331 use m_fftw
332
333 use m_nvtx
334
335 use m_thermochem, only: num_species
336
337 use m_body_forces
338
340
341 implicit none
342
343 type(vector_field), allocatable, dimension(:) :: q_cons_ts !<
344 !! Cell-average conservative variables at each time-stage (TS)
345
346 type(scalar_field), allocatable, dimension(:) :: q_prim_vf !<
347 !! Cell-average primitive variables at the current time-stage
348
349 type(scalar_field), allocatable, dimension(:) :: rhs_vf !<
350 !! Cell-average RHS variables at the current time-stage
351
352 type(integer_field), allocatable, dimension(:, :) :: bc_type !<
353 !! Boundary condition identifiers
354
355 type(vector_field), allocatable, dimension(:) :: q_prim_ts1, q_prim_ts2 !<
356 !! Cell-average primitive variables at consecutive TIMESTEPS
357
358 real(wp), allocatable, dimension(:, :, :, :, :) :: rhs_pb
359
361 !! Cell-average temperature variables at the current time-stage
362
363 real(wp), allocatable, dimension(:, :, :, :, :) :: rhs_mv
364
365 real(wp), allocatable, dimension(:, :, :) :: max_dt
366
367 integer, private :: num_ts !<
368 !! Number of time stages in the time-stepping scheme
369
370 integer :: stor !< storage index
371 real(wp), allocatable, dimension(:, :) :: rk_coef
372 integer, private :: num_probe_ts
373
374
375# 80 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
376#if defined(MFC_OpenACC)
377# 80 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
378!$acc declare create(q_cons_ts, q_prim_vf, q_T_sf, rhs_vf, q_prim_ts1, q_prim_ts2, rhs_mv, rhs_pb, max_dt, rk_coef, stor, bc_type)
379# 80 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
380#elif defined(MFC_OpenMP)
381# 80 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
382!$omp declare target (q_cons_ts, q_prim_vf, q_T_sf, rhs_vf, q_prim_ts1, q_prim_ts2, rhs_mv, rhs_pb, max_dt, rk_coef, stor, bc_type)
383# 80 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
384#endif
385
386!> @cond
387#if defined(__NVCOMPILER_GPU_UNIFIED_MEM)
388 real(stp), allocatable, dimension(:, :, :, :), pinned, target :: q_cons_ts_pool_host
389#elif defined(FRONTIER_UNIFIED)
390 real(stp), pointer, contiguous, dimension(:, :, :, :) :: q_cons_ts_pool_host, q_cons_ts_pool_device
391 integer(kind=8) :: pool_dims(4), pool_starts(4)
392 integer(kind=8) :: pool_size
393 type(c_ptr) :: cptr_host, cptr_device
394#endif
395!> @endcond
396
397contains
398
399 !> The computation of parameters, the allocation of memory,
400 !! the association of pointers and/or the execution of any
401 !! other procedures that are necessary to setup the module.
403#ifdef FRONTIER_UNIFIED
404 use hipfort
405 use hipfort_hipmalloc
406 use hipfort_check
407#if defined(MFC_OpenACC)
408 use openacc
409#endif
410#endif
411 integer :: i, j !< Generic loop iterators
412
413 ! Setting number of time-stages for selected time-stepping scheme
414 if (time_stepper == 1) then
415 num_ts = 1
416 elseif (any(time_stepper == (/2, 3/))) then
417 num_ts = 2
418 end if
419
420 if (probe_wrt) then
421 num_probe_ts = 2
422 end if
423
424 ! Allocating the cell-average conservative variables
425#ifdef MFC_DEBUG
426# 121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
427 block
428# 121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
429 use iso_fortran_env, only: output_unit
430# 121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
431
432# 121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
433 print *, 'm_time_steppers.fpp:121: ', '@:ALLOCATE(q_cons_ts(1:num_ts))'
434# 121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
435
436# 121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
437 call flush (output_unit)
438# 121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
439 end block
440# 121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
441#endif
442# 121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
443 allocate (q_cons_ts(1:num_ts))
444# 121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
445
446# 121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
447
448# 121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
449#if defined(MFC_OpenACC)
450# 121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
451!$acc enter data create(q_cons_ts)
452# 121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
453#elif defined(MFC_OpenMP)
454# 121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
455!$omp target enter data map(always,alloc:q_cons_ts)
456# 121 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
457#endif
458#ifdef MFC_SIMULATION
459# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
460#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
461# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
462 block
463# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
464! Beginning in the 25.3 release, the structure of the cudafor module has been changed slightly.
465# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
466! The module now includes, or “uses” 3 submodules: cuda_runtime_api, gpu_reductions, and sort.
467# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
468! The cudafor functionality has not changed. But for new users, or users who have needed to
469# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
470! work-around name conflicts in the module, it may be better to use cuda_runtime_api to expose
471# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
472! interfaces to the CUDA runtime calls described in Chapter 4 of this guide.
473# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
474! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
475# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
476#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
477# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
478 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
479# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
480#else
481# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
482 use cuda_runtime_api
483# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
484#endif
485# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
486 integer :: istat
487# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
488
489# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
490 if (nv_uvm_pref_gpu) then
491# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
492 !print*, "Moving q_cons_ts to GPU => ", SHAPE(q_cons_ts)
493# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
494 ! set preferred location GPU
495# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
496 istat = cudamemadvise(c_devloc(q_cons_ts), sizeof(q_cons_ts), cudamemadvisesetpreferredlocation, 0)
497# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
498 if (istat /= cudasuccess) then
499# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
500 write (*, "('Error code: ',I0, ': ')") istat
501# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
502 !write(*,*) cudaGetErrorString(istat)
503# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
504 end if
505# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
506 ! set accessed by CPU
507# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
508 istat = cudamemadvise(c_devloc(q_cons_ts), sizeof(q_cons_ts), cudamemadvisesetaccessedby, cudacpudeviceid)
509# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
510 if (istat /= cudasuccess) then
511# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
512 write (*, "('Error code: ',I0, ': ')") istat
513# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
514 !write(*,*) cudaGetErrorString(istat)
515# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
516 end if
517# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
518 ! prefetch to GPU - physically populate memory pages
519# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
520 istat = cudamemprefetchasync(c_devloc(q_cons_ts), sizeof(q_cons_ts), 0, 0)
521# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
522 if (istat /= cudasuccess) then
523# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
524 write (*, "('Error code: ',I0, ': ')") istat
525# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
526 !write(*,*) cudaGetErrorString(istat)
527# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
528 end if
529# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
530 end if
531# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
532 end block
533# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
534#endif
535# 122 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
536#endif
537
538 do i = 1, num_ts
539#ifdef MFC_DEBUG
540# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
541 block
542# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
543 use iso_fortran_env, only: output_unit
544# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
545
546# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
547 print *, 'm_time_steppers.fpp:125: ', '@:ALLOCATE(q_cons_ts(i)%vf(1:sys_size))'
548# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
549
550# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
551 call flush (output_unit)
552# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
553 end block
554# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
555#endif
556# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
557 allocate (q_cons_ts(i)%vf(1:sys_size))
558# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
559
560# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
561
562# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
563#if defined(MFC_OpenACC)
564# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
565!$acc enter data create(q_cons_ts(i)%vf)
566# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
567#elif defined(MFC_OpenMP)
568# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
569!$omp target enter data map(always,alloc:q_cons_ts(i)%vf)
570# 125 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
571#endif
572#ifdef MFC_SIMULATION
573# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
574#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
575# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
576 block
577# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
578! Beginning in the 25.3 release, the structure of the cudafor module has been changed slightly.
579# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
580! The module now includes, or “uses” 3 submodules: cuda_runtime_api, gpu_reductions, and sort.
581# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
582! The cudafor functionality has not changed. But for new users, or users who have needed to
583# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
584! work-around name conflicts in the module, it may be better to use cuda_runtime_api to expose
585# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
586! interfaces to the CUDA runtime calls described in Chapter 4 of this guide.
587# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
588! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
589# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
590#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
591# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
592 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
593# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
594#else
595# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
596 use cuda_runtime_api
597# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
598#endif
599# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
600 integer :: istat
601# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
602
603# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
604 if (nv_uvm_pref_gpu) then
605# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
606 !print*, "Moving q_cons_ts(i)%vf to GPU => ", SHAPE(q_cons_ts(i)%vf)
607# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
608 ! set preferred location GPU
609# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
610 istat = cudamemadvise(c_devloc(q_cons_ts(i)%vf), sizeof(q_cons_ts(i)%vf), cudamemadvisesetpreferredlocation, 0)
611# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
612 if (istat /= cudasuccess) then
613# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
614 write (*, "('Error code: ',I0, ': ')") istat
615# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
616 !write(*,*) cudaGetErrorString(istat)
617# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
618 end if
619# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
620 ! set accessed by CPU
621# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
622 istat = cudamemadvise(c_devloc(q_cons_ts(i)%vf), sizeof(q_cons_ts(i)%vf), cudamemadvisesetaccessedby, cudacpudeviceid)
623# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
624 if (istat /= cudasuccess) then
625# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
626 write (*, "('Error code: ',I0, ': ')") istat
627# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
628 !write(*,*) cudaGetErrorString(istat)
629# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
630 end if
631# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
632 ! prefetch to GPU - physically populate memory pages
633# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
634 istat = cudamemprefetchasync(c_devloc(q_cons_ts(i)%vf), sizeof(q_cons_ts(i)%vf), 0, 0)
635# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
636 if (istat /= cudasuccess) then
637# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
638 write (*, "('Error code: ',I0, ': ')") istat
639# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
640 !write(*,*) cudaGetErrorString(istat)
641# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
642 end if
643# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
644 end if
645# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
646 end block
647# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
648#endif
649# 126 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
650#endif
651 end do
652
653!> @cond
654#if defined(__NVCOMPILER_GPU_UNIFIED_MEM)
655 if (num_ts == 2 .and. nv_uvm_out_of_core) then
656 ! host allocation for q_cons_ts(2)%vf(j)%sf for all j
657 allocate (q_cons_ts_pool_host(idwbuff(1)%beg:idwbuff(1)%end, &
658 idwbuff(2)%beg:idwbuff(2)%end, &
659 idwbuff(3)%beg:idwbuff(3)%end, &
660 1:sys_size))
661 end if
662
663 do j = 1, sys_size
664 ! q_cons_ts(1) lives on the device
665#ifdef MFC_DEBUG
666# 141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
667 block
668# 141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
669 use iso_fortran_env, only: output_unit
670# 141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
671
672# 141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
673 print *, 'm_time_steppers.fpp:141: ', '@: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))'
674# 141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
675
676# 141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
677 call flush (output_unit)
678# 141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
679 end block
680# 141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
681#endif
682# 141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
683 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))
684# 141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
685
686# 141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
687
688# 141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
689#if defined(MFC_OpenACC)
690# 141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
691!$acc enter data create(q_cons_ts(1)%vf(j)%sf)
692# 141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
693#elif defined(MFC_OpenMP)
694# 141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
695!$omp target enter data map(always,alloc:q_cons_ts(1)%vf(j)%sf)
696# 141 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
697#endif
698# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
699#ifdef MFC_SIMULATION
700# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
701#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
702# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
703 block
704# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
705! Beginning in the 25.3 release, the structure of the cudafor module has been changed slightly.
706# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
707! The module now includes, or “uses” 3 submodules: cuda_runtime_api, gpu_reductions, and sort.
708# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
709! The cudafor functionality has not changed. But for new users, or users who have needed to
710# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
711! work-around name conflicts in the module, it may be better to use cuda_runtime_api to expose
712# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
713! interfaces to the CUDA runtime calls described in Chapter 4 of this guide.
714# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
715! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
716# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
717#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
718# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
719 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
720# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
721#else
722# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
723 use cuda_runtime_api
724# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
725#endif
726# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
727 integer :: istat
728# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
729
730# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
731 if (nv_uvm_pref_gpu) then
732# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
733 !print*, "Moving q_cons_ts(1)%vf(j)%sf to GPU => ", SHAPE(q_cons_ts(1)%vf(j)%sf)
734# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
735 ! set preferred location GPU
736# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
737 istat = cudamemadvise(c_devloc(q_cons_ts(1)%vf(j)%sf), sizeof(q_cons_ts(1)%vf(j)%sf), cudamemadvisesetpreferredlocation, 0)
738# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
739 if (istat /= cudasuccess) then
740# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
741 write (*, "('Error code: ',I0, ': ')") istat
742# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
743 !write(*,*) cudaGetErrorString(istat)
744# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
745 end if
746# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
747 ! set accessed by CPU
748# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
749 istat = cudamemadvise(c_devloc(q_cons_ts(1)%vf(j)%sf), sizeof(q_cons_ts(1)%vf(j)%sf), cudamemadvisesetaccessedby, cudacpudeviceid)
750# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
751 if (istat /= cudasuccess) then
752# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
753 write (*, "('Error code: ',I0, ': ')") istat
754# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
755 !write(*,*) cudaGetErrorString(istat)
756# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
757 end if
758# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
759 ! prefetch to GPU - physically populate memory pages
760# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
761 istat = cudamemprefetchasync(c_devloc(q_cons_ts(1)%vf(j)%sf), sizeof(q_cons_ts(1)%vf(j)%sf), 0, 0)
762# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
763 if (istat /= cudasuccess) then
764# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
765 write (*, "('Error code: ',I0, ': ')") istat
766# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
767 !write(*,*) cudaGetErrorString(istat)
768# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
769 end if
770# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
771 end if
772# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
773 end block
774# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
775#endif
776# 144 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
777#endif
778 if (num_ts == 2) then
779 if (nv_uvm_out_of_core) then
780 ! q_cons_ts(2) lives on the host
781 q_cons_ts(2)%vf(j)%sf(idwbuff(1)%beg:idwbuff(1)%end, &
782 idwbuff(2)%beg:idwbuff(2)%end, &
783 idwbuff(3)%beg:idwbuff(3)%end) => q_cons_ts_pool_host(:, :, :, j)
784 else
785#ifdef MFC_DEBUG
786# 152 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
787 block
788# 152 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
789 use iso_fortran_env, only: output_unit
790# 152 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
791
792# 152 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
793 print *, 'm_time_steppers.fpp:152: ', '@: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))'
794# 152 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
795
796# 152 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
797 call flush (output_unit)
798# 152 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
799 end block
800# 152 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
801#endif
802# 152 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
803 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))
804# 152 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
805
806# 152 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
807
808# 152 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
809#if defined(MFC_OpenACC)
810# 152 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
811!$acc enter data create(q_cons_ts(2)%vf(j)%sf)
812# 152 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
813#elif defined(MFC_OpenMP)
814# 152 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
815!$omp target enter data map(always,alloc:q_cons_ts(2)%vf(j)%sf)
816# 152 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
817#endif
818# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
819#ifdef MFC_SIMULATION
820# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
821#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
822# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
823 block
824# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
825! Beginning in the 25.3 release, the structure of the cudafor module has been changed slightly.
826# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
827! The module now includes, or “uses” 3 submodules: cuda_runtime_api, gpu_reductions, and sort.
828# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
829! The cudafor functionality has not changed. But for new users, or users who have needed to
830# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
831! work-around name conflicts in the module, it may be better to use cuda_runtime_api to expose
832# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
833! interfaces to the CUDA runtime calls described in Chapter 4 of this guide.
834# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
835! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
836# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
837#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
838# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
839 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
840# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
841#else
842# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
843 use cuda_runtime_api
844# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
845#endif
846# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
847 integer :: istat
848# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
849
850# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
851 if (nv_uvm_pref_gpu) then
852# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
853 !print*, "Moving q_cons_ts(2)%vf(j)%sf to GPU => ", SHAPE(q_cons_ts(2)%vf(j)%sf)
854# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
855 ! set preferred location GPU
856# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
857 istat = cudamemadvise(c_devloc(q_cons_ts(2)%vf(j)%sf), sizeof(q_cons_ts(2)%vf(j)%sf), cudamemadvisesetpreferredlocation, 0)
858# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
859 if (istat /= cudasuccess) then
860# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
861 write (*, "('Error code: ',I0, ': ')") istat
862# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
863 !write(*,*) cudaGetErrorString(istat)
864# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
865 end if
866# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
867 ! set accessed by CPU
868# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
869 istat = cudamemadvise(c_devloc(q_cons_ts(2)%vf(j)%sf), sizeof(q_cons_ts(2)%vf(j)%sf), cudamemadvisesetaccessedby, cudacpudeviceid)
870# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
871 if (istat /= cudasuccess) then
872# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
873 write (*, "('Error code: ',I0, ': ')") istat
874# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
875 !write(*,*) cudaGetErrorString(istat)
876# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
877 end if
878# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
879 ! prefetch to GPU - physically populate memory pages
880# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
881 istat = cudamemprefetchasync(c_devloc(q_cons_ts(2)%vf(j)%sf), sizeof(q_cons_ts(2)%vf(j)%sf), 0, 0)
882# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
883 if (istat /= cudasuccess) then
884# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
885 write (*, "('Error code: ',I0, ': ')") istat
886# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
887 !write(*,*) cudaGetErrorString(istat)
888# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
889 end if
890# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
891 end if
892# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
893 end block
894# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
895#endif
896# 155 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
897#endif
898 end if
899 end if
900 end do
901
902 do i = 1, num_ts
903#ifdef _CRAYFTN
904# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
905 block
906# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
907 integer :: macros_setup_vfs_i
908# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
909
910# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
911#ifdef MFC_DEBUG
912# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
913 block
914# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
915 use iso_fortran_env, only: output_unit
916# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
917
918# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
919 print *, 'm_time_steppers.fpp:161: ', '@:ACC_SETUP_VFs(q_cons_ts(i))'
920# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
921
922# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
923 call flush (output_unit)
924# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
925 end block
926# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
927#endif
928# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
929
930# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
931
932# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
933#if defined(MFC_OpenACC)
934# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
935!$acc enter data copyin(q_cons_ts(i))
936# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
937#elif defined(MFC_OpenMP)
938# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
939!$omp target enter data map(to:q_cons_ts(i))
940# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
941#endif
942# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
943
944# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
945#if defined(MFC_OpenACC)
946# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
947!$acc enter data copyin(q_cons_ts(i)%vf)
948# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
949#elif defined(MFC_OpenMP)
950# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
951!$omp target enter data map(to:q_cons_ts(i)%vf)
952# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
953#endif
954# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
955 if (allocated(q_cons_ts(i)%vf)) then
956# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
957 do macros_setup_vfs_i = lbound(q_cons_ts(i)%vf, 1), ubound(q_cons_ts(i)%vf, 1)
958# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
959 if (associated(q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)) then
960# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
961
962# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
963#if defined(MFC_OpenACC)
964# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
965!$acc enter data copyin(q_cons_ts(i)%vf(macros_setup_vfs_i))
966# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
967#elif defined(MFC_OpenMP)
968# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
969!$omp target enter data map(to:q_cons_ts(i)%vf(macros_setup_vfs_i))
970# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
971#endif
972# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
973
974# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
975#if defined(MFC_OpenACC)
976# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
977!$acc enter data copyin(q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)
978# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
979#elif defined(MFC_OpenMP)
980# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
981!$omp target enter data map(to:q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)
982# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
983#endif
984# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
985 end if
986# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
987 end do
988# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
989 end if
990# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
991 end block
992# 161 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
993#endif
994 end do
995#elif defined(FRONTIER_UNIFIED)
996 ! Allocate to memory regions using hip calls
997 ! that we will attach pointers to
998 do i = 1, 3
999 pool_dims(i) = idwbuff(i)%end - idwbuff(i)%beg + 1
1000 pool_starts(i) = idwbuff(i)%beg
1001 end do
1002 pool_dims(4) = sys_size
1003 pool_starts(4) = 1
1004#ifdef MFC_MIXED_PRECISION
1005 pool_size = 1_8*(idwbuff(1)%end - idwbuff(1)%beg + 1)*(idwbuff(2)%end - idwbuff(2)%beg + 1)*(idwbuff(3)%end - idwbuff(3)%beg + 1)*sys_size
1006 call hipcheck(hipmalloc_(cptr_device, pool_size*2_8))
1007 call c_f_pointer(cptr_device, q_cons_ts_pool_device, shape=pool_dims)
1008 q_cons_ts_pool_device(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:) => q_cons_ts_pool_device
1009
1010 call hipcheck(hipmallocmanaged_(cptr_host, pool_size*2_8, hipmemattachglobal))
1011 call c_f_pointer(cptr_host, q_cons_ts_pool_host, shape=pool_dims)
1012 q_cons_ts_pool_host(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:) => q_cons_ts_pool_host
1013#else
1014 ! Doing hipMalloc then mapping should be most performant
1015 call hipcheck(hipmalloc(q_cons_ts_pool_device, dims8=pool_dims, lbounds8=pool_starts))
1016 ! Without this map CCE will still create a device copy, because it's silly like that
1017#if defined(MFC_OpenACC)
1018 call acc_map_data(q_cons_ts_pool_device, c_loc(q_cons_ts_pool_device), c_sizeof(q_cons_ts_pool_device))
1019#endif
1020 ! 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
1021 ! NOTE: WE CANNOT DO ATOMICS INTO THIS MEMORY. We have to change a property to use atomics here
1022 ! Otherwise leaving this as fine-grained will actually help performance since it can't be cached in GPU L2
1023 if (num_ts == 2) then
1024 call hipcheck(hipmallocmanaged(q_cons_ts_pool_host, dims8=pool_dims, lbounds8=pool_starts, flags=hipmemattachglobal))
1025#if defined(MFC_OpenMP)
1026 call hipcheck(hipmemadvise(c_loc(q_cons_ts_pool_host), c_sizeof(q_cons_ts_pool_host), hipmemadvisesetpreferredlocation, -1))
1027#endif
1028 end if
1029#endif
1030
1031 do j = 1, sys_size
1032 ! q_cons_ts(1) lives on the device
1033 q_cons_ts(1)%vf(j)%sf(idwbuff(1)%beg:idwbuff(1)%end, &
1034 idwbuff(2)%beg:idwbuff(2)%end, &
1035 idwbuff(3)%beg:idwbuff(3)%end) => q_cons_ts_pool_device(:, :, :, j)
1036 if (num_ts == 2) then
1037 ! q_cons_ts(2) lives on the host
1038 q_cons_ts(2)%vf(j)%sf(idwbuff(1)%beg:idwbuff(1)%end, &
1039 idwbuff(2)%beg:idwbuff(2)%end, &
1040 idwbuff(3)%beg:idwbuff(3)%end) => q_cons_ts_pool_host(:, :, :, j)
1041 end if
1042 end do
1043
1044 do i = 1, num_ts
1045#ifdef _CRAYFTN
1046# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1047 block
1048# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1049 integer :: macros_setup_vfs_i
1050# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1051
1052# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1053#ifdef MFC_DEBUG
1054# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1055 block
1056# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1057 use iso_fortran_env, only: output_unit
1058# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1059
1060# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1061 print *, 'm_time_steppers.fpp:213: ', '@:ACC_SETUP_VFs(q_cons_ts(i))'
1062# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1063
1064# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1065 call flush (output_unit)
1066# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1067 end block
1068# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1069#endif
1070# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1071
1072# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1073
1074# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1075#if defined(MFC_OpenACC)
1076# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1077!$acc enter data copyin(q_cons_ts(i))
1078# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1079#elif defined(MFC_OpenMP)
1080# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1081!$omp target enter data map(to:q_cons_ts(i))
1082# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1083#endif
1084# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1085
1086# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1087#if defined(MFC_OpenACC)
1088# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1089!$acc enter data copyin(q_cons_ts(i)%vf)
1090# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1091#elif defined(MFC_OpenMP)
1092# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1093!$omp target enter data map(to:q_cons_ts(i)%vf)
1094# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1095#endif
1096# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1097 if (allocated(q_cons_ts(i)%vf)) then
1098# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1099 do macros_setup_vfs_i = lbound(q_cons_ts(i)%vf, 1), ubound(q_cons_ts(i)%vf, 1)
1100# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1101 if (associated(q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)) then
1102# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1103
1104# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1105#if defined(MFC_OpenACC)
1106# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1107!$acc enter data copyin(q_cons_ts(i)%vf(macros_setup_vfs_i))
1108# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1109#elif defined(MFC_OpenMP)
1110# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1111!$omp target enter data map(to:q_cons_ts(i)%vf(macros_setup_vfs_i))
1112# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1113#endif
1114# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1115
1116# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1117#if defined(MFC_OpenACC)
1118# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1119!$acc enter data copyin(q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)
1120# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1121#elif defined(MFC_OpenMP)
1122# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1123!$omp target enter data map(to:q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)
1124# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1125#endif
1126# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1127 end if
1128# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1129 end do
1130# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1131 end if
1132# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1133 end block
1134# 213 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1135#endif
1136 do j = 1, sys_size
1137
1138# 215 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1139#if defined(MFC_OpenACC)
1140# 215 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1141!$acc update device(q_cons_ts(i)%vf(j))
1142# 215 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1143#elif defined(MFC_OpenMP)
1144# 215 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1145!$omp target update to(q_cons_ts(i)%vf(j))
1146# 215 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1147#endif
1148 end do
1149 end do
1150#else
1151!> @endcond
1152 do i = 1, num_ts
1153 do j = 1, sys_size
1154#ifdef MFC_DEBUG
1155# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1156 block
1157# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1158 use iso_fortran_env, only: output_unit
1159# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1160
1161# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1162 print *, 'm_time_steppers.fpp:222: ', '@: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))'
1163# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1164
1165# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1166 call flush (output_unit)
1167# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1168 end block
1169# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1170#endif
1171# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1172 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))
1173# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1174
1175# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1176
1177# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1178#if defined(MFC_OpenACC)
1179# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1180!$acc enter data create(q_cons_ts(i)%vf(j)%sf)
1181# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1182#elif defined(MFC_OpenMP)
1183# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1184!$omp target enter data map(always,alloc:q_cons_ts(i)%vf(j)%sf)
1185# 222 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1186#endif
1187# 225 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1188 end do
1189#ifdef _CRAYFTN
1190# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1191 block
1192# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1193 integer :: macros_setup_vfs_i
1194# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1195
1196# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1197#ifdef MFC_DEBUG
1198# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1199 block
1200# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1201 use iso_fortran_env, only: output_unit
1202# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1203
1204# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1205 print *, 'm_time_steppers.fpp:226: ', '@:ACC_SETUP_VFs(q_cons_ts(i))'
1206# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1207
1208# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1209 call flush (output_unit)
1210# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1211 end block
1212# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1213#endif
1214# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1215
1216# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1217
1218# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1219#if defined(MFC_OpenACC)
1220# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1221!$acc enter data copyin(q_cons_ts(i))
1222# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1223#elif defined(MFC_OpenMP)
1224# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1225!$omp target enter data map(to:q_cons_ts(i))
1226# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1227#endif
1228# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1229
1230# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1231#if defined(MFC_OpenACC)
1232# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1233!$acc enter data copyin(q_cons_ts(i)%vf)
1234# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1235#elif defined(MFC_OpenMP)
1236# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1237!$omp target enter data map(to:q_cons_ts(i)%vf)
1238# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1239#endif
1240# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1241 if (allocated(q_cons_ts(i)%vf)) then
1242# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1243 do macros_setup_vfs_i = lbound(q_cons_ts(i)%vf, 1), ubound(q_cons_ts(i)%vf, 1)
1244# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1245 if (associated(q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)) then
1246# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1247
1248# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1249#if defined(MFC_OpenACC)
1250# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1251!$acc enter data copyin(q_cons_ts(i)%vf(macros_setup_vfs_i))
1252# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1253#elif defined(MFC_OpenMP)
1254# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1255!$omp target enter data map(to:q_cons_ts(i)%vf(macros_setup_vfs_i))
1256# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1257#endif
1258# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1259
1260# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1261#if defined(MFC_OpenACC)
1262# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1263!$acc enter data copyin(q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)
1264# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1265#elif defined(MFC_OpenMP)
1266# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1267!$omp target enter data map(to:q_cons_ts(i)%vf(macros_setup_vfs_i)%sf)
1268# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1269#endif
1270# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1271 end if
1272# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1273 end do
1274# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1275 end if
1276# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1277 end block
1278# 226 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1279#endif
1280 end do
1281!> @cond
1282#endif
1283!> @endcond
1284
1285 ! Allocating the cell-average primitive ts variables
1286 if (probe_wrt) then
1287#ifdef MFC_DEBUG
1288# 234 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1289 block
1290# 234 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1291 use iso_fortran_env, only: output_unit
1292# 234 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1293
1294# 234 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1295 print *, 'm_time_steppers.fpp:234: ', '@:ALLOCATE(q_prim_ts1(1:num_probe_ts))'
1296# 234 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1297
1298# 234 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1299 call flush (output_unit)
1300# 234 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1301 end block
1302# 234 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1303#endif
1304# 234 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1305 allocate (q_prim_ts1(1:num_probe_ts))
1306# 234 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1307
1308# 234 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1309
1310# 234 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1311#if defined(MFC_OpenACC)
1312# 234 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1313!$acc enter data create(q_prim_ts1)
1314# 234 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1315#elif defined(MFC_OpenMP)
1316# 234 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1317!$omp target enter data map(always,alloc:q_prim_ts1)
1318# 234 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1319#endif
1320
1321 do i = 1, num_probe_ts
1322#ifdef MFC_DEBUG
1323# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1324 block
1325# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1326 use iso_fortran_env, only: output_unit
1327# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1328
1329# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1330 print *, 'm_time_steppers.fpp:237: ', '@:ALLOCATE(q_prim_ts1(i)%vf(1:sys_size))'
1331# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1332
1333# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1334 call flush (output_unit)
1335# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1336 end block
1337# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1338#endif
1339# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1340 allocate (q_prim_ts1(i)%vf(1:sys_size))
1341# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1342
1343# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1344
1345# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1346#if defined(MFC_OpenACC)
1347# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1348!$acc enter data create(q_prim_ts1(i)%vf)
1349# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1350#elif defined(MFC_OpenMP)
1351# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1352!$omp target enter data map(always,alloc:q_prim_ts1(i)%vf)
1353# 237 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1354#endif
1355 end do
1356
1357 do i = 1, num_probe_ts
1358 do j = 1, sys_size
1359#ifdef MFC_DEBUG
1360# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1361 block
1362# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1363 use iso_fortran_env, only: output_unit
1364# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1365
1366# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1367 print *, 'm_time_steppers.fpp:242: ', '@: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))'
1368# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1369
1370# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1371 call flush (output_unit)
1372# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1373 end block
1374# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1375#endif
1376# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1377 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))
1378# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1379
1380# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1381
1382# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1383#if defined(MFC_OpenACC)
1384# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1385!$acc enter data create(q_prim_ts1(i)%vf(j)%sf)
1386# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1387#elif defined(MFC_OpenMP)
1388# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1389!$omp target enter data map(always,alloc:q_prim_ts1(i)%vf(j)%sf)
1390# 242 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1391#endif
1392# 245 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1393 end do
1394#ifdef _CRAYFTN
1395# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1396 block
1397# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1398 integer :: macros_setup_vfs_i
1399# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1400
1401# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1402#ifdef MFC_DEBUG
1403# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1404 block
1405# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1406 use iso_fortran_env, only: output_unit
1407# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1408
1409# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1410 print *, 'm_time_steppers.fpp:246: ', '@:ACC_SETUP_VFs(q_prim_ts1(i))'
1411# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1412
1413# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1414 call flush (output_unit)
1415# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1416 end block
1417# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1418#endif
1419# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1420
1421# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1422
1423# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1424#if defined(MFC_OpenACC)
1425# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1426!$acc enter data copyin(q_prim_ts1(i))
1427# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1428#elif defined(MFC_OpenMP)
1429# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1430!$omp target enter data map(to:q_prim_ts1(i))
1431# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1432#endif
1433# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1434
1435# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1436#if defined(MFC_OpenACC)
1437# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1438!$acc enter data copyin(q_prim_ts1(i)%vf)
1439# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1440#elif defined(MFC_OpenMP)
1441# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1442!$omp target enter data map(to:q_prim_ts1(i)%vf)
1443# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1444#endif
1445# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1446 if (allocated(q_prim_ts1(i)%vf)) then
1447# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1448 do macros_setup_vfs_i = lbound(q_prim_ts1(i)%vf, 1), ubound(q_prim_ts1(i)%vf, 1)
1449# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1450 if (associated(q_prim_ts1(i)%vf(macros_setup_vfs_i)%sf)) then
1451# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1452
1453# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1454#if defined(MFC_OpenACC)
1455# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1456!$acc enter data copyin(q_prim_ts1(i)%vf(macros_setup_vfs_i))
1457# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1458#elif defined(MFC_OpenMP)
1459# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1460!$omp target enter data map(to:q_prim_ts1(i)%vf(macros_setup_vfs_i))
1461# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1462#endif
1463# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1464
1465# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1466#if defined(MFC_OpenACC)
1467# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1468!$acc enter data copyin(q_prim_ts1(i)%vf(macros_setup_vfs_i)%sf)
1469# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1470#elif defined(MFC_OpenMP)
1471# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1472!$omp target enter data map(to:q_prim_ts1(i)%vf(macros_setup_vfs_i)%sf)
1473# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1474#endif
1475# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1476 end if
1477# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1478 end do
1479# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1480 end if
1481# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1482 end block
1483# 246 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1484#endif
1485 end do
1486
1487#ifdef MFC_DEBUG
1488# 249 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1489 block
1490# 249 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1491 use iso_fortran_env, only: output_unit
1492# 249 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1493
1494# 249 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1495 print *, 'm_time_steppers.fpp:249: ', '@:ALLOCATE(q_prim_ts2(1:num_probe_ts))'
1496# 249 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1497
1498# 249 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1499 call flush (output_unit)
1500# 249 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1501 end block
1502# 249 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1503#endif
1504# 249 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1505 allocate (q_prim_ts2(1:num_probe_ts))
1506# 249 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1507
1508# 249 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1509
1510# 249 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1511#if defined(MFC_OpenACC)
1512# 249 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1513!$acc enter data create(q_prim_ts2)
1514# 249 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1515#elif defined(MFC_OpenMP)
1516# 249 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1517!$omp target enter data map(always,alloc:q_prim_ts2)
1518# 249 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1519#endif
1520
1521 do i = 1, num_probe_ts
1522#ifdef MFC_DEBUG
1523# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1524 block
1525# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1526 use iso_fortran_env, only: output_unit
1527# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1528
1529# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1530 print *, 'm_time_steppers.fpp:252: ', '@:ALLOCATE(q_prim_ts2(i)%vf(1:sys_size))'
1531# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1532
1533# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1534 call flush (output_unit)
1535# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1536 end block
1537# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1538#endif
1539# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1540 allocate (q_prim_ts2(i)%vf(1:sys_size))
1541# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1542
1543# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1544
1545# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1546#if defined(MFC_OpenACC)
1547# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1548!$acc enter data create(q_prim_ts2(i)%vf)
1549# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1550#elif defined(MFC_OpenMP)
1551# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1552!$omp target enter data map(always,alloc:q_prim_ts2(i)%vf)
1553# 252 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1554#endif
1555 end do
1556
1557 do i = 1, num_probe_ts
1558 do j = 1, sys_size
1559#ifdef MFC_DEBUG
1560# 257 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1561 block
1562# 257 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1563 use iso_fortran_env, only: output_unit
1564# 257 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1565
1566# 257 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1567 print *, 'm_time_steppers.fpp:257: ', '@: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))'
1568# 257 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1569
1570# 257 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1571 call flush (output_unit)
1572# 257 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1573 end block
1574# 257 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1575#endif
1576# 257 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1577 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))
1578# 257 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1579
1580# 257 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1581
1582# 257 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1583#if defined(MFC_OpenACC)
1584# 257 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1585!$acc enter data create(q_prim_ts2(i)%vf(j)%sf)
1586# 257 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1587#elif defined(MFC_OpenMP)
1588# 257 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1589!$omp target enter data map(always,alloc:q_prim_ts2(i)%vf(j)%sf)
1590# 257 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1591#endif
1592# 260 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1593 end do
1594#ifdef _CRAYFTN
1595# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1596 block
1597# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1598 integer :: macros_setup_vfs_i
1599# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1600
1601# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1602#ifdef MFC_DEBUG
1603# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1604 block
1605# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1606 use iso_fortran_env, only: output_unit
1607# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1608
1609# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1610 print *, 'm_time_steppers.fpp:261: ', '@:ACC_SETUP_VFs(q_prim_ts2(i))'
1611# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1612
1613# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1614 call flush (output_unit)
1615# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1616 end block
1617# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1618#endif
1619# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1620
1621# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1622
1623# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1624#if defined(MFC_OpenACC)
1625# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1626!$acc enter data copyin(q_prim_ts2(i))
1627# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1628#elif defined(MFC_OpenMP)
1629# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1630!$omp target enter data map(to:q_prim_ts2(i))
1631# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1632#endif
1633# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1634
1635# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1636#if defined(MFC_OpenACC)
1637# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1638!$acc enter data copyin(q_prim_ts2(i)%vf)
1639# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1640#elif defined(MFC_OpenMP)
1641# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1642!$omp target enter data map(to:q_prim_ts2(i)%vf)
1643# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1644#endif
1645# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1646 if (allocated(q_prim_ts2(i)%vf)) then
1647# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1648 do macros_setup_vfs_i = lbound(q_prim_ts2(i)%vf, 1), ubound(q_prim_ts2(i)%vf, 1)
1649# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1650 if (associated(q_prim_ts2(i)%vf(macros_setup_vfs_i)%sf)) then
1651# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1652
1653# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1654#if defined(MFC_OpenACC)
1655# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1656!$acc enter data copyin(q_prim_ts2(i)%vf(macros_setup_vfs_i))
1657# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1658#elif defined(MFC_OpenMP)
1659# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1660!$omp target enter data map(to:q_prim_ts2(i)%vf(macros_setup_vfs_i))
1661# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1662#endif
1663# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1664
1665# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1666#if defined(MFC_OpenACC)
1667# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1668!$acc enter data copyin(q_prim_ts2(i)%vf(macros_setup_vfs_i)%sf)
1669# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1670#elif defined(MFC_OpenMP)
1671# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1672!$omp target enter data map(to:q_prim_ts2(i)%vf(macros_setup_vfs_i)%sf)
1673# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1674#endif
1675# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1676 end if
1677# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1678 end do
1679# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1680 end if
1681# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1682 end block
1683# 261 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1684#endif
1685 end do
1686 end if
1687
1688 ! Allocating the cell-average primitive variables
1689#ifdef MFC_DEBUG
1690# 266 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1691 block
1692# 266 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1693 use iso_fortran_env, only: output_unit
1694# 266 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1695
1696# 266 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1697 print *, 'm_time_steppers.fpp:266: ', '@:ALLOCATE(q_prim_vf(1:sys_size))'
1698# 266 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1699
1700# 266 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1701 call flush (output_unit)
1702# 266 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1703 end block
1704# 266 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1705#endif
1706# 266 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1707 allocate (q_prim_vf(1:sys_size))
1708# 266 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1709
1710# 266 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1711
1712# 266 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1713#if defined(MFC_OpenACC)
1714# 266 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1715!$acc enter data create(q_prim_vf)
1716# 266 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1717#elif defined(MFC_OpenMP)
1718# 266 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1719!$omp target enter data map(always,alloc:q_prim_vf)
1720# 266 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1721#endif
1722
1723 if (.not. igr) then
1724 do i = 1, adv_idx%end
1725#ifdef MFC_DEBUG
1726# 270 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1727 block
1728# 270 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1729 use iso_fortran_env, only: output_unit
1730# 270 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1731
1732# 270 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1733 print *, 'm_time_steppers.fpp:270: ', '@:ALLOCATE(q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
1734# 270 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1735
1736# 270 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1737 call flush (output_unit)
1738# 270 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1739 end block
1740# 270 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1741#endif
1742# 270 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1743 allocate (q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
1744# 270 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1745
1746# 270 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1747
1748# 270 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1749#if defined(MFC_OpenACC)
1750# 270 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1751!$acc enter data create(q_prim_vf(i)%sf)
1752# 270 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1753#elif defined(MFC_OpenMP)
1754# 270 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1755!$omp target enter data map(always,alloc:q_prim_vf(i)%sf)
1756# 270 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1757#endif
1758# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1759#ifdef _CRAYFTN
1760# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1761 block
1762# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1763
1764# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1765#ifdef MFC_DEBUG
1766# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1767 block
1768# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1769 use iso_fortran_env, only: output_unit
1770# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1771
1772# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1773 print *, 'm_time_steppers.fpp:273: ', '@:ACC_SETUP_SFs(q_prim_vf(i))'
1774# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1775
1776# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1777 call flush (output_unit)
1778# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1779 end block
1780# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1781#endif
1782# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1783
1784# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1785
1786# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1787#if defined(MFC_OpenACC)
1788# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1789!$acc enter data copyin(q_prim_vf(i))
1790# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1791#elif defined(MFC_OpenMP)
1792# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1793!$omp target enter data map(to:q_prim_vf(i))
1794# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1795#endif
1796# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1797 if (associated(q_prim_vf(i)%sf)) then
1798# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1799
1800# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1801#if defined(MFC_OpenACC)
1802# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1803!$acc enter data copyin(q_prim_vf(i)%sf)
1804# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1805#elif defined(MFC_OpenMP)
1806# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1807!$omp target enter data map(to:q_prim_vf(i)%sf)
1808# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1809#endif
1810# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1811 end if
1812# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1813 end block
1814# 273 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1815#endif
1816 end do
1817
1818 if (bubbles_euler) then
1819 do i = bub_idx%beg, bub_idx%end
1820#ifdef MFC_DEBUG
1821# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1822 block
1823# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1824 use iso_fortran_env, only: output_unit
1825# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1826
1827# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1828 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))'
1829# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1830
1831# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1832 call flush (output_unit)
1833# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1834 end block
1835# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1836#endif
1837# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1838 allocate (q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
1839# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1840
1841# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1842
1843# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1844#if defined(MFC_OpenACC)
1845# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1846!$acc enter data create(q_prim_vf(i)%sf)
1847# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1848#elif defined(MFC_OpenMP)
1849# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1850!$omp target enter data map(always,alloc:q_prim_vf(i)%sf)
1851# 278 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1852#endif
1853# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1854#ifdef _CRAYFTN
1855# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1856 block
1857# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1858
1859# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1860#ifdef MFC_DEBUG
1861# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1862 block
1863# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1864 use iso_fortran_env, only: output_unit
1865# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1866
1867# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1868 print *, 'm_time_steppers.fpp:281: ', '@:ACC_SETUP_SFs(q_prim_vf(i))'
1869# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1870
1871# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1872 call flush (output_unit)
1873# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1874 end block
1875# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1876#endif
1877# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1878
1879# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1880
1881# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1882#if defined(MFC_OpenACC)
1883# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1884!$acc enter data copyin(q_prim_vf(i))
1885# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1886#elif defined(MFC_OpenMP)
1887# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1888!$omp target enter data map(to:q_prim_vf(i))
1889# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1890#endif
1891# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1892 if (associated(q_prim_vf(i)%sf)) then
1893# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1894
1895# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1896#if defined(MFC_OpenACC)
1897# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1898!$acc enter data copyin(q_prim_vf(i)%sf)
1899# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1900#elif defined(MFC_OpenMP)
1901# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1902!$omp target enter data map(to:q_prim_vf(i)%sf)
1903# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1904#endif
1905# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1906 end if
1907# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1908 end block
1909# 281 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1910#endif
1911 end do
1912 if (adv_n) then
1913#ifdef MFC_DEBUG
1914# 284 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1915 block
1916# 284 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1917 use iso_fortran_env, only: output_unit
1918# 284 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1919
1920# 284 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1921 print *, 'm_time_steppers.fpp:284: ', '@:ALLOCATE(q_prim_vf(n_idx)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
1922# 284 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1923
1924# 284 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1925 call flush (output_unit)
1926# 284 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1927 end block
1928# 284 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1929#endif
1930# 284 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1931 allocate (q_prim_vf(n_idx)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
1932# 284 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1933
1934# 284 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1935
1936# 284 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1937#if defined(MFC_OpenACC)
1938# 284 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1939!$acc enter data create(q_prim_vf(n_idx)%sf)
1940# 284 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1941#elif defined(MFC_OpenMP)
1942# 284 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1943!$omp target enter data map(always,alloc:q_prim_vf(n_idx)%sf)
1944# 284 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1945#endif
1946# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1947#ifdef _CRAYFTN
1948# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1949 block
1950# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1951
1952# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1953#ifdef MFC_DEBUG
1954# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1955 block
1956# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1957 use iso_fortran_env, only: output_unit
1958# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1959
1960# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1961 print *, 'm_time_steppers.fpp:287: ', '@:ACC_SETUP_SFs(q_prim_vf(n_idx))'
1962# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1963
1964# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1965 call flush (output_unit)
1966# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1967 end block
1968# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1969#endif
1970# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1971
1972# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1973
1974# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1975#if defined(MFC_OpenACC)
1976# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1977!$acc enter data copyin(q_prim_vf(n_idx))
1978# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1979#elif defined(MFC_OpenMP)
1980# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1981!$omp target enter data map(to:q_prim_vf(n_idx))
1982# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1983#endif
1984# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1985 if (associated(q_prim_vf(n_idx)%sf)) then
1986# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1987
1988# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1989#if defined(MFC_OpenACC)
1990# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1991!$acc enter data copyin(q_prim_vf(n_idx)%sf)
1992# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1993#elif defined(MFC_OpenMP)
1994# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1995!$omp target enter data map(to:q_prim_vf(n_idx)%sf)
1996# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1997#endif
1998# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
1999 end if
2000# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2001 end block
2002# 287 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2003#endif
2004 end if
2005 end if
2006
2007 if (mhd) then
2008 do i = b_idx%beg, b_idx%end
2009#ifdef MFC_DEBUG
2010# 293 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2011 block
2012# 293 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2013 use iso_fortran_env, only: output_unit
2014# 293 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2015
2016# 293 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2017 print *, 'm_time_steppers.fpp:293: ', '@:ALLOCATE(q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2018# 293 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2019
2020# 293 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2021 call flush (output_unit)
2022# 293 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2023 end block
2024# 293 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2025#endif
2026# 293 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2027 allocate (q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2028# 293 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2029
2030# 293 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2031
2032# 293 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2033#if defined(MFC_OpenACC)
2034# 293 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2035!$acc enter data create(q_prim_vf(i)%sf)
2036# 293 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2037#elif defined(MFC_OpenMP)
2038# 293 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2039!$omp target enter data map(always,alloc:q_prim_vf(i)%sf)
2040# 293 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2041#endif
2042# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2043#ifdef _CRAYFTN
2044# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2045 block
2046# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2047
2048# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2049#ifdef MFC_DEBUG
2050# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2051 block
2052# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2053 use iso_fortran_env, only: output_unit
2054# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2055
2056# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2057 print *, 'm_time_steppers.fpp:296: ', '@:ACC_SETUP_SFs(q_prim_vf(i))'
2058# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2059
2060# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2061 call flush (output_unit)
2062# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2063 end block
2064# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2065#endif
2066# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2067
2068# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2069
2070# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2071#if defined(MFC_OpenACC)
2072# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2073!$acc enter data copyin(q_prim_vf(i))
2074# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2075#elif defined(MFC_OpenMP)
2076# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2077!$omp target enter data map(to:q_prim_vf(i))
2078# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2079#endif
2080# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2081 if (associated(q_prim_vf(i)%sf)) then
2082# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2083
2084# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2085#if defined(MFC_OpenACC)
2086# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2087!$acc enter data copyin(q_prim_vf(i)%sf)
2088# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2089#elif defined(MFC_OpenMP)
2090# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2091!$omp target enter data map(to:q_prim_vf(i)%sf)
2092# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2093#endif
2094# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2095 end if
2096# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2097 end block
2098# 296 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2099#endif
2100 end do
2101 end if
2102
2103 if (elasticity) then
2104 do i = stress_idx%beg, stress_idx%end
2105#ifdef MFC_DEBUG
2106# 302 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2107 block
2108# 302 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2109 use iso_fortran_env, only: output_unit
2110# 302 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2111
2112# 302 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2113 print *, 'm_time_steppers.fpp:302: ', '@:ALLOCATE(q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2114# 302 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2115
2116# 302 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2117 call flush (output_unit)
2118# 302 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2119 end block
2120# 302 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2121#endif
2122# 302 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2123 allocate (q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2124# 302 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2125
2126# 302 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2127
2128# 302 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2129#if defined(MFC_OpenACC)
2130# 302 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2131!$acc enter data create(q_prim_vf(i)%sf)
2132# 302 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2133#elif defined(MFC_OpenMP)
2134# 302 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2135!$omp target enter data map(always,alloc:q_prim_vf(i)%sf)
2136# 302 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2137#endif
2138# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2139#ifdef _CRAYFTN
2140# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2141 block
2142# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2143
2144# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2145#ifdef MFC_DEBUG
2146# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2147 block
2148# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2149 use iso_fortran_env, only: output_unit
2150# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2151
2152# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2153 print *, 'm_time_steppers.fpp:305: ', '@:ACC_SETUP_SFs(q_prim_vf(i))'
2154# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2155
2156# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2157 call flush (output_unit)
2158# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2159 end block
2160# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2161#endif
2162# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2163
2164# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2165
2166# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2167#if defined(MFC_OpenACC)
2168# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2169!$acc enter data copyin(q_prim_vf(i))
2170# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2171#elif defined(MFC_OpenMP)
2172# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2173!$omp target enter data map(to:q_prim_vf(i))
2174# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2175#endif
2176# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2177 if (associated(q_prim_vf(i)%sf)) then
2178# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2179
2180# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2181#if defined(MFC_OpenACC)
2182# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2183!$acc enter data copyin(q_prim_vf(i)%sf)
2184# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2185#elif defined(MFC_OpenMP)
2186# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2187!$omp target enter data map(to:q_prim_vf(i)%sf)
2188# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2189#endif
2190# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2191 end if
2192# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2193 end block
2194# 305 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2195#endif
2196 end do
2197 end if
2198
2199 if (hyperelasticity) then
2200 do i = xibeg, xiend + 1
2201#ifdef MFC_DEBUG
2202# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2203 block
2204# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2205 use iso_fortran_env, only: output_unit
2206# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2207
2208# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2209 print *, 'm_time_steppers.fpp:311: ', '@:ALLOCATE(q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2210# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2211
2212# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2213 call flush (output_unit)
2214# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2215 end block
2216# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2217#endif
2218# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2219 allocate (q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2220# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2221
2222# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2223
2224# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2225#if defined(MFC_OpenACC)
2226# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2227!$acc enter data create(q_prim_vf(i)%sf)
2228# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2229#elif defined(MFC_OpenMP)
2230# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2231!$omp target enter data map(always,alloc:q_prim_vf(i)%sf)
2232# 311 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2233#endif
2234# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2235#ifdef _CRAYFTN
2236# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2237 block
2238# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2239
2240# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2241#ifdef MFC_DEBUG
2242# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2243 block
2244# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2245 use iso_fortran_env, only: output_unit
2246# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2247
2248# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2249 print *, 'm_time_steppers.fpp:314: ', '@:ACC_SETUP_SFs(q_prim_vf(i))'
2250# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2251
2252# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2253 call flush (output_unit)
2254# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2255 end block
2256# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2257#endif
2258# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2259
2260# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2261
2262# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2263#if defined(MFC_OpenACC)
2264# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2265!$acc enter data copyin(q_prim_vf(i))
2266# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2267#elif defined(MFC_OpenMP)
2268# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2269!$omp target enter data map(to:q_prim_vf(i))
2270# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2271#endif
2272# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2273 if (associated(q_prim_vf(i)%sf)) then
2274# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2275
2276# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2277#if defined(MFC_OpenACC)
2278# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2279!$acc enter data copyin(q_prim_vf(i)%sf)
2280# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2281#elif defined(MFC_OpenMP)
2282# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2283!$omp target enter data map(to:q_prim_vf(i)%sf)
2284# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2285#endif
2286# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2287 end if
2288# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2289 end block
2290# 314 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2291#endif
2292 end do
2293 end if
2294
2295 if (cont_damage) then
2296#ifdef MFC_DEBUG
2297# 319 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2298 block
2299# 319 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2300 use iso_fortran_env, only: output_unit
2301# 319 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2302
2303# 319 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2304 print *, 'm_time_steppers.fpp:319: ', '@:ALLOCATE(q_prim_vf(damage_idx)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2305# 319 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2306
2307# 319 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2308 call flush (output_unit)
2309# 319 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2310 end block
2311# 319 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2312#endif
2313# 319 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2314 allocate (q_prim_vf(damage_idx)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2315# 319 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2316
2317# 319 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2318
2319# 319 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2320#if defined(MFC_OpenACC)
2321# 319 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2322!$acc enter data create(q_prim_vf(damage_idx)%sf)
2323# 319 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2324#elif defined(MFC_OpenMP)
2325# 319 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2326!$omp target enter data map(always,alloc:q_prim_vf(damage_idx)%sf)
2327# 319 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2328#endif
2329# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2330#ifdef _CRAYFTN
2331# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2332 block
2333# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2334
2335# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2336#ifdef MFC_DEBUG
2337# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2338 block
2339# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2340 use iso_fortran_env, only: output_unit
2341# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2342
2343# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2344 print *, 'm_time_steppers.fpp:322: ', '@:ACC_SETUP_SFs(q_prim_vf(damage_idx))'
2345# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2346
2347# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2348 call flush (output_unit)
2349# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2350 end block
2351# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2352#endif
2353# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2354
2355# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2356
2357# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2358#if defined(MFC_OpenACC)
2359# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2360!$acc enter data copyin(q_prim_vf(damage_idx))
2361# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2362#elif defined(MFC_OpenMP)
2363# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2364!$omp target enter data map(to:q_prim_vf(damage_idx))
2365# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2366#endif
2367# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2368 if (associated(q_prim_vf(damage_idx)%sf)) then
2369# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2370
2371# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2372#if defined(MFC_OpenACC)
2373# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2374!$acc enter data copyin(q_prim_vf(damage_idx)%sf)
2375# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2376#elif defined(MFC_OpenMP)
2377# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2378!$omp target enter data map(to:q_prim_vf(damage_idx)%sf)
2379# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2380#endif
2381# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2382 end if
2383# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2384 end block
2385# 322 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2386#endif
2387 end if
2388
2389 if (hyper_cleaning) then
2390#ifdef MFC_DEBUG
2391# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2392 block
2393# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2394 use iso_fortran_env, only: output_unit
2395# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2396
2397# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2398 print *, 'm_time_steppers.fpp:326: ', '@:ALLOCATE(q_prim_vf(psi_idx)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2399# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2400
2401# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2402 call flush (output_unit)
2403# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2404 end block
2405# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2406#endif
2407# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2408 allocate (q_prim_vf(psi_idx)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2409# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2410
2411# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2412
2413# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2414#if defined(MFC_OpenACC)
2415# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2416!$acc enter data create(q_prim_vf(psi_idx)%sf)
2417# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2418#elif defined(MFC_OpenMP)
2419# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2420!$omp target enter data map(always,alloc:q_prim_vf(psi_idx)%sf)
2421# 326 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2422#endif
2423# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2424#ifdef _CRAYFTN
2425# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2426 block
2427# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2428
2429# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2430#ifdef MFC_DEBUG
2431# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2432 block
2433# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2434 use iso_fortran_env, only: output_unit
2435# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2436
2437# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2438 print *, 'm_time_steppers.fpp:329: ', '@:ACC_SETUP_SFs(q_prim_vf(psi_idx))'
2439# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2440
2441# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2442 call flush (output_unit)
2443# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2444 end block
2445# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2446#endif
2447# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2448
2449# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2450
2451# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2452#if defined(MFC_OpenACC)
2453# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2454!$acc enter data copyin(q_prim_vf(psi_idx))
2455# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2456#elif defined(MFC_OpenMP)
2457# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2458!$omp target enter data map(to:q_prim_vf(psi_idx))
2459# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2460#endif
2461# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2462 if (associated(q_prim_vf(psi_idx)%sf)) then
2463# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2464
2465# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2466#if defined(MFC_OpenACC)
2467# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2468!$acc enter data copyin(q_prim_vf(psi_idx)%sf)
2469# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2470#elif defined(MFC_OpenMP)
2471# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2472!$omp target enter data map(to:q_prim_vf(psi_idx)%sf)
2473# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2474#endif
2475# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2476 end if
2477# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2478 end block
2479# 329 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2480#endif
2481 end if
2482
2483 if (model_eqns == 3) then
2484 do i = internalenergies_idx%beg, internalenergies_idx%end
2485#ifdef MFC_DEBUG
2486# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2487 block
2488# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2489 use iso_fortran_env, only: output_unit
2490# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2491
2492# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2493 print *, 'm_time_steppers.fpp:334: ', '@:ALLOCATE(q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2494# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2495
2496# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2497 call flush (output_unit)
2498# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2499 end block
2500# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2501#endif
2502# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2503 allocate (q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2504# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2505
2506# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2507
2508# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2509#if defined(MFC_OpenACC)
2510# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2511!$acc enter data create(q_prim_vf(i)%sf)
2512# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2513#elif defined(MFC_OpenMP)
2514# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2515!$omp target enter data map(always,alloc:q_prim_vf(i)%sf)
2516# 334 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2517#endif
2518# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2519#ifdef _CRAYFTN
2520# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2521 block
2522# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2523
2524# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2525#ifdef MFC_DEBUG
2526# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2527 block
2528# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2529 use iso_fortran_env, only: output_unit
2530# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2531
2532# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2533 print *, 'm_time_steppers.fpp:337: ', '@:ACC_SETUP_SFs(q_prim_vf(i))'
2534# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2535
2536# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2537 call flush (output_unit)
2538# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2539 end block
2540# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2541#endif
2542# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2543
2544# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2545
2546# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2547#if defined(MFC_OpenACC)
2548# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2549!$acc enter data copyin(q_prim_vf(i))
2550# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2551#elif defined(MFC_OpenMP)
2552# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2553!$omp target enter data map(to:q_prim_vf(i))
2554# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2555#endif
2556# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2557 if (associated(q_prim_vf(i)%sf)) then
2558# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2559
2560# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2561#if defined(MFC_OpenACC)
2562# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2563!$acc enter data copyin(q_prim_vf(i)%sf)
2564# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2565#elif defined(MFC_OpenMP)
2566# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2567!$omp target enter data map(to:q_prim_vf(i)%sf)
2568# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2569#endif
2570# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2571 end if
2572# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2573 end block
2574# 337 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2575#endif
2576 end do
2577 end if
2578
2579 if (surface_tension) then
2580#ifdef MFC_DEBUG
2581# 342 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2582 block
2583# 342 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2584 use iso_fortran_env, only: output_unit
2585# 342 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2586
2587# 342 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2588 print *, 'm_time_steppers.fpp:342: ', '@:ALLOCATE(q_prim_vf(c_idx)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2589# 342 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2590
2591# 342 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2592 call flush (output_unit)
2593# 342 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2594 end block
2595# 342 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2596#endif
2597# 342 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2598 allocate (q_prim_vf(c_idx)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2599# 342 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2600
2601# 342 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2602
2603# 342 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2604#if defined(MFC_OpenACC)
2605# 342 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2606!$acc enter data create(q_prim_vf(c_idx)%sf)
2607# 342 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2608#elif defined(MFC_OpenMP)
2609# 342 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2610!$omp target enter data map(always,alloc:q_prim_vf(c_idx)%sf)
2611# 342 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2612#endif
2613# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2614#ifdef _CRAYFTN
2615# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2616 block
2617# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2618
2619# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2620#ifdef MFC_DEBUG
2621# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2622 block
2623# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2624 use iso_fortran_env, only: output_unit
2625# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2626
2627# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2628 print *, 'm_time_steppers.fpp:345: ', '@:ACC_SETUP_SFs(q_prim_vf(c_idx))'
2629# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2630
2631# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2632 call flush (output_unit)
2633# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2634 end block
2635# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2636#endif
2637# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2638
2639# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2640
2641# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2642#if defined(MFC_OpenACC)
2643# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2644!$acc enter data copyin(q_prim_vf(c_idx))
2645# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2646#elif defined(MFC_OpenMP)
2647# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2648!$omp target enter data map(to:q_prim_vf(c_idx))
2649# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2650#endif
2651# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2652 if (associated(q_prim_vf(c_idx)%sf)) then
2653# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2654
2655# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2656#if defined(MFC_OpenACC)
2657# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2658!$acc enter data copyin(q_prim_vf(c_idx)%sf)
2659# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2660#elif defined(MFC_OpenMP)
2661# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2662!$omp target enter data map(to:q_prim_vf(c_idx)%sf)
2663# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2664#endif
2665# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2666 end if
2667# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2668 end block
2669# 345 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2670#endif
2671 end if
2672
2673 if (chemistry) then
2674 do i = chemxb, chemxe
2675#ifdef MFC_DEBUG
2676# 350 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2677 block
2678# 350 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2679 use iso_fortran_env, only: output_unit
2680# 350 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2681
2682# 350 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2683 print *, 'm_time_steppers.fpp:350: ', '@:ALLOCATE(q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2684# 350 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2685
2686# 350 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2687 call flush (output_unit)
2688# 350 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2689 end block
2690# 350 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2691#endif
2692# 350 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2693 allocate (q_prim_vf(i)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2694# 350 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2695
2696# 350 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2697
2698# 350 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2699#if defined(MFC_OpenACC)
2700# 350 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2701!$acc enter data create(q_prim_vf(i)%sf)
2702# 350 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2703#elif defined(MFC_OpenMP)
2704# 350 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2705!$omp target enter data map(always,alloc:q_prim_vf(i)%sf)
2706# 350 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2707#endif
2708# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2709#ifdef _CRAYFTN
2710# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2711 block
2712# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2713
2714# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2715#ifdef MFC_DEBUG
2716# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2717 block
2718# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2719 use iso_fortran_env, only: output_unit
2720# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2721
2722# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2723 print *, 'm_time_steppers.fpp:353: ', '@:ACC_SETUP_SFs(q_prim_vf(i))'
2724# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2725
2726# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2727 call flush (output_unit)
2728# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2729 end block
2730# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2731#endif
2732# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2733
2734# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2735
2736# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2737#if defined(MFC_OpenACC)
2738# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2739!$acc enter data copyin(q_prim_vf(i))
2740# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2741#elif defined(MFC_OpenMP)
2742# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2743!$omp target enter data map(to:q_prim_vf(i))
2744# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2745#endif
2746# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2747 if (associated(q_prim_vf(i)%sf)) then
2748# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2749
2750# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2751#if defined(MFC_OpenACC)
2752# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2753!$acc enter data copyin(q_prim_vf(i)%sf)
2754# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2755#elif defined(MFC_OpenMP)
2756# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2757!$omp target enter data map(to:q_prim_vf(i)%sf)
2758# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2759#endif
2760# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2761 end if
2762# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2763 end block
2764# 353 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2765#endif
2766 end do
2767
2768#ifdef MFC_DEBUG
2769# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2770 block
2771# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2772 use iso_fortran_env, only: output_unit
2773# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2774
2775# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2776 print *, 'm_time_steppers.fpp:356: ', '@:ALLOCATE(q_T_sf%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
2777# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2778
2779# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2780 call flush (output_unit)
2781# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2782 end block
2783# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2784#endif
2785# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2786 allocate (q_t_sf%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
2787# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2788
2789# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2790
2791# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2792#if defined(MFC_OpenACC)
2793# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2794!$acc enter data create(q_T_sf%sf)
2795# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2796#elif defined(MFC_OpenMP)
2797# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2798!$omp target enter data map(always,alloc:q_T_sf%sf)
2799# 356 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2800#endif
2801# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2802#ifdef _CRAYFTN
2803# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2804 block
2805# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2806
2807# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2808#ifdef MFC_DEBUG
2809# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2810 block
2811# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2812 use iso_fortran_env, only: output_unit
2813# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2814
2815# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2816 print *, 'm_time_steppers.fpp:359: ', '@:ACC_SETUP_SFs(q_T_sf)'
2817# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2818
2819# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2820 call flush (output_unit)
2821# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2822 end block
2823# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2824#endif
2825# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2826
2827# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2828
2829# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2830#if defined(MFC_OpenACC)
2831# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2832!$acc enter data copyin(q_T_sf)
2833# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2834#elif defined(MFC_OpenMP)
2835# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2836!$omp target enter data map(to:q_T_sf)
2837# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2838#endif
2839# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2840 if (associated(q_t_sf%sf)) then
2841# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2842
2843# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2844#if defined(MFC_OpenACC)
2845# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2846!$acc enter data copyin(q_T_sf%sf)
2847# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2848#elif defined(MFC_OpenMP)
2849# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2850!$omp target enter data map(to:q_T_sf%sf)
2851# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2852#endif
2853# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2854 end if
2855# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2856 end block
2857# 359 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2858#endif
2859 end if
2860 end if
2861
2862#ifdef MFC_DEBUG
2863# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2864 block
2865# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2866 use iso_fortran_env, only: output_unit
2867# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2868
2869# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2870 print *, 'm_time_steppers.fpp:363: ', '@:ALLOCATE(pb_ts(1:2))'
2871# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2872
2873# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2874 call flush (output_unit)
2875# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2876 end block
2877# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2878#endif
2879# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2880 allocate (pb_ts(1:2))
2881# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2882
2883# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2884
2885# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2886#if defined(MFC_OpenACC)
2887# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2888!$acc enter data create(pb_ts)
2889# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2890#elif defined(MFC_OpenMP)
2891# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2892!$omp target enter data map(always,alloc:pb_ts)
2893# 363 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2894#endif
2895 !Initialize bubble variables pb and mv at all quadrature nodes for all R0 bins
2896 if (qbmm .and. (.not. polytropic)) then
2897#ifdef MFC_DEBUG
2898# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2899 block
2900# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2901 use iso_fortran_env, only: output_unit
2902# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2903
2904# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2905 print *, 'm_time_steppers.fpp:366: ', '@: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))'
2906# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2907
2908# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2909 call flush (output_unit)
2910# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2911 end block
2912# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2913#endif
2914# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2915 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))
2916# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2917
2918# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2919
2920# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2921#if defined(MFC_OpenACC)
2922# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2923!$acc enter data create(pb_ts(1)%sf)
2924# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2925#elif defined(MFC_OpenMP)
2926# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2927!$omp target enter data map(always,alloc:pb_ts(1)%sf)
2928# 366 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2929#endif
2930# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2931#ifdef _CRAYFTN
2932# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2933 block
2934# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2935
2936# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2937#ifdef MFC_DEBUG
2938# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2939 block
2940# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2941 use iso_fortran_env, only: output_unit
2942# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2943
2944# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2945 print *, 'm_time_steppers.fpp:369: ', '@:ACC_SETUP_SFs(pb_ts(1))'
2946# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2947
2948# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2949 call flush (output_unit)
2950# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2951 end block
2952# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2953#endif
2954# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2955
2956# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2957
2958# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2959#if defined(MFC_OpenACC)
2960# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2961!$acc enter data copyin(pb_ts(1))
2962# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2963#elif defined(MFC_OpenMP)
2964# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2965!$omp target enter data map(to:pb_ts(1))
2966# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2967#endif
2968# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2969 if (associated(pb_ts(1)%sf)) then
2970# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2971
2972# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2973#if defined(MFC_OpenACC)
2974# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2975!$acc enter data copyin(pb_ts(1)%sf)
2976# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2977#elif defined(MFC_OpenMP)
2978# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2979!$omp target enter data map(to:pb_ts(1)%sf)
2980# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2981#endif
2982# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2983 end if
2984# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2985 end block
2986# 369 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2987#endif
2988
2989#ifdef MFC_DEBUG
2990# 371 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2991 block
2992# 371 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2993 use iso_fortran_env, only: output_unit
2994# 371 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2995
2996# 371 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2997 print *, 'm_time_steppers.fpp:371: ', '@: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))'
2998# 371 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
2999
3000# 371 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3001 call flush (output_unit)
3002# 371 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3003 end block
3004# 371 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3005#endif
3006# 371 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3007 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))
3008# 371 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3009
3010# 371 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3011
3012# 371 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3013#if defined(MFC_OpenACC)
3014# 371 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3015!$acc enter data create(pb_ts(2)%sf)
3016# 371 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3017#elif defined(MFC_OpenMP)
3018# 371 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3019!$omp target enter data map(always,alloc:pb_ts(2)%sf)
3020# 371 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3021#endif
3022# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3023#ifdef _CRAYFTN
3024# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3025 block
3026# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3027
3028# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3029#ifdef MFC_DEBUG
3030# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3031 block
3032# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3033 use iso_fortran_env, only: output_unit
3034# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3035
3036# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3037 print *, 'm_time_steppers.fpp:374: ', '@:ACC_SETUP_SFs(pb_ts(2))'
3038# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3039
3040# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3041 call flush (output_unit)
3042# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3043 end block
3044# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3045#endif
3046# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3047
3048# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3049
3050# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3051#if defined(MFC_OpenACC)
3052# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3053!$acc enter data copyin(pb_ts(2))
3054# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3055#elif defined(MFC_OpenMP)
3056# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3057!$omp target enter data map(to:pb_ts(2))
3058# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3059#endif
3060# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3061 if (associated(pb_ts(2)%sf)) then
3062# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3063
3064# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3065#if defined(MFC_OpenACC)
3066# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3067!$acc enter data copyin(pb_ts(2)%sf)
3068# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3069#elif defined(MFC_OpenMP)
3070# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3071!$omp target enter data map(to:pb_ts(2)%sf)
3072# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3073#endif
3074# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3075 end if
3076# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3077 end block
3078# 374 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3079#endif
3080
3081#ifdef MFC_DEBUG
3082# 376 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3083 block
3084# 376 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3085 use iso_fortran_env, only: output_unit
3086# 376 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3087
3088# 376 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3089 print *, 'm_time_steppers.fpp:376: ', '@: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))'
3090# 376 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3091
3092# 376 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3093 call flush (output_unit)
3094# 376 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3095 end block
3096# 376 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3097#endif
3098# 376 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3099 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))
3100# 376 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3101
3102# 376 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3103
3104# 376 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3105#if defined(MFC_OpenACC)
3106# 376 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3107!$acc enter data create(rhs_pb)
3108# 376 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3109#elif defined(MFC_OpenMP)
3110# 376 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3111!$omp target enter data map(always,alloc:rhs_pb)
3112# 376 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3113#endif
3114# 379 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3115 else if (qbmm .and. polytropic) then
3116#ifdef MFC_DEBUG
3117# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3118 block
3119# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3120 use iso_fortran_env, only: output_unit
3121# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3122
3123# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3124 print *, 'm_time_steppers.fpp:380: ', '@: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))'
3125# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3126
3127# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3128 call flush (output_unit)
3129# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3130 end block
3131# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3132#endif
3133# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3134 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))
3135# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3136
3137# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3138
3139# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3140#if defined(MFC_OpenACC)
3141# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3142!$acc enter data create(pb_ts(1)%sf)
3143# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3144#elif defined(MFC_OpenMP)
3145# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3146!$omp target enter data map(always,alloc:pb_ts(1)%sf)
3147# 380 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3148#endif
3149# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3150#ifdef _CRAYFTN
3151# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3152 block
3153# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3154
3155# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3156#ifdef MFC_DEBUG
3157# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3158 block
3159# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3160 use iso_fortran_env, only: output_unit
3161# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3162
3163# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3164 print *, 'm_time_steppers.fpp:383: ', '@:ACC_SETUP_SFs(pb_ts(1))'
3165# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3166
3167# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3168 call flush (output_unit)
3169# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3170 end block
3171# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3172#endif
3173# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3174
3175# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3176
3177# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3178#if defined(MFC_OpenACC)
3179# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3180!$acc enter data copyin(pb_ts(1))
3181# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3182#elif defined(MFC_OpenMP)
3183# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3184!$omp target enter data map(to:pb_ts(1))
3185# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3186#endif
3187# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3188 if (associated(pb_ts(1)%sf)) then
3189# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3190
3191# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3192#if defined(MFC_OpenACC)
3193# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3194!$acc enter data copyin(pb_ts(1)%sf)
3195# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3196#elif defined(MFC_OpenMP)
3197# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3198!$omp target enter data map(to:pb_ts(1)%sf)
3199# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3200#endif
3201# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3202 end if
3203# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3204 end block
3205# 383 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3206#endif
3207
3208#ifdef MFC_DEBUG
3209# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3210 block
3211# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3212 use iso_fortran_env, only: output_unit
3213# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3214
3215# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3216 print *, 'm_time_steppers.fpp:385: ', '@: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))'
3217# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3218
3219# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3220 call flush (output_unit)
3221# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3222 end block
3223# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3224#endif
3225# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3226 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))
3227# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3228
3229# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3230
3231# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3232#if defined(MFC_OpenACC)
3233# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3234!$acc enter data create(pb_ts(2)%sf)
3235# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3236#elif defined(MFC_OpenMP)
3237# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3238!$omp target enter data map(always,alloc:pb_ts(2)%sf)
3239# 385 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3240#endif
3241# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3242#ifdef _CRAYFTN
3243# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3244 block
3245# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3246
3247# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3248#ifdef MFC_DEBUG
3249# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3250 block
3251# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3252 use iso_fortran_env, only: output_unit
3253# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3254
3255# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3256 print *, 'm_time_steppers.fpp:388: ', '@:ACC_SETUP_SFs(pb_ts(2))'
3257# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3258
3259# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3260 call flush (output_unit)
3261# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3262 end block
3263# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3264#endif
3265# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3266
3267# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3268
3269# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3270#if defined(MFC_OpenACC)
3271# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3272!$acc enter data copyin(pb_ts(2))
3273# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3274#elif defined(MFC_OpenMP)
3275# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3276!$omp target enter data map(to:pb_ts(2))
3277# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3278#endif
3279# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3280 if (associated(pb_ts(2)%sf)) then
3281# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3282
3283# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3284#if defined(MFC_OpenACC)
3285# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3286!$acc enter data copyin(pb_ts(2)%sf)
3287# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3288#elif defined(MFC_OpenMP)
3289# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3290!$omp target enter data map(to:pb_ts(2)%sf)
3291# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3292#endif
3293# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3294 end if
3295# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3296 end block
3297# 388 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3298#endif
3299
3300#ifdef MFC_DEBUG
3301# 390 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3302 block
3303# 390 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3304 use iso_fortran_env, only: output_unit
3305# 390 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3306
3307# 390 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3308 print *, 'm_time_steppers.fpp:390: ', '@: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))'
3309# 390 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3310
3311# 390 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3312 call flush (output_unit)
3313# 390 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3314 end block
3315# 390 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3316#endif
3317# 390 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3318 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))
3319# 390 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3320
3321# 390 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3322
3323# 390 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3324#if defined(MFC_OpenACC)
3325# 390 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3326!$acc enter data create(rhs_pb)
3327# 390 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3328#elif defined(MFC_OpenMP)
3329# 390 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3330!$omp target enter data map(always,alloc:rhs_pb)
3331# 390 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3332#endif
3333# 393 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3334 else
3335#ifdef MFC_DEBUG
3336# 394 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3337 block
3338# 394 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3339 use iso_fortran_env, only: output_unit
3340# 394 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3341
3342# 394 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3343 print *, 'm_time_steppers.fpp:394: ', '@:ALLOCATE(pb_ts(1)%sf(0,0,0,0,0))'
3344# 394 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3345
3346# 394 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3347 call flush (output_unit)
3348# 394 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3349 end block
3350# 394 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3351#endif
3352# 394 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3353 allocate (pb_ts(1)%sf(0,0,0,0,0))
3354# 394 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3355
3356# 394 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3357
3358# 394 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3359#if defined(MFC_OpenACC)
3360# 394 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3361!$acc enter data create(pb_ts(1)%sf)
3362# 394 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3363#elif defined(MFC_OpenMP)
3364# 394 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3365!$omp target enter data map(always,alloc:pb_ts(1)%sf)
3366# 394 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3367#endif
3368#ifdef _CRAYFTN
3369# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3370 block
3371# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3372
3373# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3374#ifdef MFC_DEBUG
3375# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3376 block
3377# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3378 use iso_fortran_env, only: output_unit
3379# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3380
3381# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3382 print *, 'm_time_steppers.fpp:395: ', '@:ACC_SETUP_SFs(pb_ts(1))'
3383# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3384
3385# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3386 call flush (output_unit)
3387# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3388 end block
3389# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3390#endif
3391# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3392
3393# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3394
3395# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3396#if defined(MFC_OpenACC)
3397# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3398!$acc enter data copyin(pb_ts(1))
3399# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3400#elif defined(MFC_OpenMP)
3401# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3402!$omp target enter data map(to:pb_ts(1))
3403# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3404#endif
3405# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3406 if (associated(pb_ts(1)%sf)) then
3407# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3408
3409# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3410#if defined(MFC_OpenACC)
3411# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3412!$acc enter data copyin(pb_ts(1)%sf)
3413# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3414#elif defined(MFC_OpenMP)
3415# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3416!$omp target enter data map(to:pb_ts(1)%sf)
3417# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3418#endif
3419# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3420 end if
3421# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3422 end block
3423# 395 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3424#endif
3425
3426#ifdef MFC_DEBUG
3427# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3428 block
3429# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3430 use iso_fortran_env, only: output_unit
3431# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3432
3433# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3434 print *, 'm_time_steppers.fpp:397: ', '@:ALLOCATE(pb_ts(2)%sf(0,0,0,0,0))'
3435# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3436
3437# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3438 call flush (output_unit)
3439# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3440 end block
3441# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3442#endif
3443# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3444 allocate (pb_ts(2)%sf(0,0,0,0,0))
3445# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3446
3447# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3448
3449# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3450#if defined(MFC_OpenACC)
3451# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3452!$acc enter data create(pb_ts(2)%sf)
3453# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3454#elif defined(MFC_OpenMP)
3455# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3456!$omp target enter data map(always,alloc:pb_ts(2)%sf)
3457# 397 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3458#endif
3459#ifdef _CRAYFTN
3460# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3461 block
3462# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3463
3464# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3465#ifdef MFC_DEBUG
3466# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3467 block
3468# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3469 use iso_fortran_env, only: output_unit
3470# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3471
3472# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3473 print *, 'm_time_steppers.fpp:398: ', '@:ACC_SETUP_SFs(pb_ts(2))'
3474# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3475
3476# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3477 call flush (output_unit)
3478# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3479 end block
3480# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3481#endif
3482# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3483
3484# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3485
3486# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3487#if defined(MFC_OpenACC)
3488# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3489!$acc enter data copyin(pb_ts(2))
3490# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3491#elif defined(MFC_OpenMP)
3492# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3493!$omp target enter data map(to:pb_ts(2))
3494# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3495#endif
3496# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3497 if (associated(pb_ts(2)%sf)) then
3498# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3499
3500# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3501#if defined(MFC_OpenACC)
3502# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3503!$acc enter data copyin(pb_ts(2)%sf)
3504# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3505#elif defined(MFC_OpenMP)
3506# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3507!$omp target enter data map(to:pb_ts(2)%sf)
3508# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3509#endif
3510# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3511 end if
3512# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3513 end block
3514# 398 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3515#endif
3516
3517#ifdef MFC_DEBUG
3518# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3519 block
3520# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3521 use iso_fortran_env, only: output_unit
3522# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3523
3524# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3525 print *, 'm_time_steppers.fpp:400: ', '@:ALLOCATE(rhs_pb(0,0,0,0,0))'
3526# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3527
3528# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3529 call flush (output_unit)
3530# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3531 end block
3532# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3533#endif
3534# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3535 allocate (rhs_pb(0,0,0,0,0))
3536# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3537
3538# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3539
3540# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3541#if defined(MFC_OpenACC)
3542# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3543!$acc enter data create(rhs_pb)
3544# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3545#elif defined(MFC_OpenMP)
3546# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3547!$omp target enter data map(always,alloc:rhs_pb)
3548# 400 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3549#endif
3550 end if
3551
3552#ifdef MFC_DEBUG
3553# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3554 block
3555# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3556 use iso_fortran_env, only: output_unit
3557# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3558
3559# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3560 print *, 'm_time_steppers.fpp:403: ', '@:ALLOCATE(mv_ts(1:2))'
3561# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3562
3563# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3564 call flush (output_unit)
3565# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3566 end block
3567# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3568#endif
3569# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3570 allocate (mv_ts(1:2))
3571# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3572
3573# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3574
3575# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3576#if defined(MFC_OpenACC)
3577# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3578!$acc enter data create(mv_ts)
3579# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3580#elif defined(MFC_OpenMP)
3581# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3582!$omp target enter data map(always,alloc:mv_ts)
3583# 403 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3584#endif
3585
3586 if (qbmm .and. (.not. polytropic)) then
3587#ifdef MFC_DEBUG
3588# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3589 block
3590# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3591 use iso_fortran_env, only: output_unit
3592# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3593
3594# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3595 print *, 'm_time_steppers.fpp:406: ', '@: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))'
3596# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3597
3598# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3599 call flush (output_unit)
3600# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3601 end block
3602# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3603#endif
3604# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3605 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))
3606# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3607
3608# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3609
3610# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3611#if defined(MFC_OpenACC)
3612# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3613!$acc enter data create(mv_ts(1)%sf)
3614# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3615#elif defined(MFC_OpenMP)
3616# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3617!$omp target enter data map(always,alloc:mv_ts(1)%sf)
3618# 406 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3619#endif
3620# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3621#ifdef _CRAYFTN
3622# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3623 block
3624# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3625
3626# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3627#ifdef MFC_DEBUG
3628# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3629 block
3630# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3631 use iso_fortran_env, only: output_unit
3632# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3633
3634# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3635 print *, 'm_time_steppers.fpp:409: ', '@:ACC_SETUP_SFs(mv_ts(1))'
3636# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3637
3638# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3639 call flush (output_unit)
3640# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3641 end block
3642# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3643#endif
3644# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3645
3646# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3647
3648# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3649#if defined(MFC_OpenACC)
3650# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3651!$acc enter data copyin(mv_ts(1))
3652# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3653#elif defined(MFC_OpenMP)
3654# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3655!$omp target enter data map(to:mv_ts(1))
3656# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3657#endif
3658# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3659 if (associated(mv_ts(1)%sf)) then
3660# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3661
3662# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3663#if defined(MFC_OpenACC)
3664# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3665!$acc enter data copyin(mv_ts(1)%sf)
3666# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3667#elif defined(MFC_OpenMP)
3668# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3669!$omp target enter data map(to:mv_ts(1)%sf)
3670# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3671#endif
3672# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3673 end if
3674# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3675 end block
3676# 409 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3677#endif
3678
3679#ifdef MFC_DEBUG
3680# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3681 block
3682# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3683 use iso_fortran_env, only: output_unit
3684# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3685
3686# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3687 print *, 'm_time_steppers.fpp:411: ', '@: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))'
3688# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3689
3690# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3691 call flush (output_unit)
3692# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3693 end block
3694# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3695#endif
3696# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3697 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))
3698# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3699
3700# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3701
3702# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3703#if defined(MFC_OpenACC)
3704# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3705!$acc enter data create(mv_ts(2)%sf)
3706# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3707#elif defined(MFC_OpenMP)
3708# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3709!$omp target enter data map(always,alloc:mv_ts(2)%sf)
3710# 411 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3711#endif
3712# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3713#ifdef _CRAYFTN
3714# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3715 block
3716# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3717
3718# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3719#ifdef MFC_DEBUG
3720# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3721 block
3722# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3723 use iso_fortran_env, only: output_unit
3724# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3725
3726# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3727 print *, 'm_time_steppers.fpp:414: ', '@:ACC_SETUP_SFs(mv_ts(2))'
3728# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3729
3730# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3731 call flush (output_unit)
3732# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3733 end block
3734# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3735#endif
3736# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3737
3738# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3739
3740# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3741#if defined(MFC_OpenACC)
3742# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3743!$acc enter data copyin(mv_ts(2))
3744# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3745#elif defined(MFC_OpenMP)
3746# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3747!$omp target enter data map(to:mv_ts(2))
3748# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3749#endif
3750# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3751 if (associated(mv_ts(2)%sf)) then
3752# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3753
3754# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3755#if defined(MFC_OpenACC)
3756# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3757!$acc enter data copyin(mv_ts(2)%sf)
3758# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3759#elif defined(MFC_OpenMP)
3760# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3761!$omp target enter data map(to:mv_ts(2)%sf)
3762# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3763#endif
3764# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3765 end if
3766# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3767 end block
3768# 414 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3769#endif
3770
3771#ifdef MFC_DEBUG
3772# 416 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3773 block
3774# 416 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3775 use iso_fortran_env, only: output_unit
3776# 416 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3777
3778# 416 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3779 print *, 'm_time_steppers.fpp:416: ', '@: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))'
3780# 416 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3781
3782# 416 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3783 call flush (output_unit)
3784# 416 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3785 end block
3786# 416 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3787#endif
3788# 416 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3789 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))
3790# 416 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3791
3792# 416 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3793
3794# 416 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3795#if defined(MFC_OpenACC)
3796# 416 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3797!$acc enter data create(rhs_mv)
3798# 416 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3799#elif defined(MFC_OpenMP)
3800# 416 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3801!$omp target enter data map(always,alloc:rhs_mv)
3802# 416 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3803#endif
3804# 419 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3805
3806 else if (qbmm .and. polytropic) then
3807#ifdef MFC_DEBUG
3808# 421 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3809 block
3810# 421 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3811 use iso_fortran_env, only: output_unit
3812# 421 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3813
3814# 421 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3815 print *, 'm_time_steppers.fpp:421: ', '@: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))'
3816# 421 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3817
3818# 421 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3819 call flush (output_unit)
3820# 421 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3821 end block
3822# 421 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3823#endif
3824# 421 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3825 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))
3826# 421 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3827
3828# 421 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3829
3830# 421 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3831#if defined(MFC_OpenACC)
3832# 421 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3833!$acc enter data create(mv_ts(1)%sf)
3834# 421 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3835#elif defined(MFC_OpenMP)
3836# 421 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3837!$omp target enter data map(always,alloc:mv_ts(1)%sf)
3838# 421 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3839#endif
3840# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3841#ifdef _CRAYFTN
3842# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3843 block
3844# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3845
3846# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3847#ifdef MFC_DEBUG
3848# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3849 block
3850# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3851 use iso_fortran_env, only: output_unit
3852# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3853
3854# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3855 print *, 'm_time_steppers.fpp:424: ', '@:ACC_SETUP_SFs(mv_ts(1))'
3856# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3857
3858# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3859 call flush (output_unit)
3860# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3861 end block
3862# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3863#endif
3864# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3865
3866# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3867
3868# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3869#if defined(MFC_OpenACC)
3870# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3871!$acc enter data copyin(mv_ts(1))
3872# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3873#elif defined(MFC_OpenMP)
3874# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3875!$omp target enter data map(to:mv_ts(1))
3876# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3877#endif
3878# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3879 if (associated(mv_ts(1)%sf)) then
3880# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3881
3882# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3883#if defined(MFC_OpenACC)
3884# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3885!$acc enter data copyin(mv_ts(1)%sf)
3886# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3887#elif defined(MFC_OpenMP)
3888# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3889!$omp target enter data map(to:mv_ts(1)%sf)
3890# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3891#endif
3892# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3893 end if
3894# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3895 end block
3896# 424 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3897#endif
3898
3899#ifdef MFC_DEBUG
3900# 426 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3901 block
3902# 426 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3903 use iso_fortran_env, only: output_unit
3904# 426 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3905
3906# 426 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3907 print *, 'm_time_steppers.fpp:426: ', '@: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))'
3908# 426 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3909
3910# 426 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3911 call flush (output_unit)
3912# 426 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3913 end block
3914# 426 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3915#endif
3916# 426 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3917 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))
3918# 426 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3919
3920# 426 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3921
3922# 426 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3923#if defined(MFC_OpenACC)
3924# 426 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3925!$acc enter data create(mv_ts(2)%sf)
3926# 426 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3927#elif defined(MFC_OpenMP)
3928# 426 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3929!$omp target enter data map(always,alloc:mv_ts(2)%sf)
3930# 426 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3931#endif
3932# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3933#ifdef _CRAYFTN
3934# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3935 block
3936# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3937
3938# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3939#ifdef MFC_DEBUG
3940# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3941 block
3942# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3943 use iso_fortran_env, only: output_unit
3944# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3945
3946# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3947 print *, 'm_time_steppers.fpp:429: ', '@:ACC_SETUP_SFs(mv_ts(2))'
3948# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3949
3950# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3951 call flush (output_unit)
3952# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3953 end block
3954# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3955#endif
3956# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3957
3958# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3959
3960# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3961#if defined(MFC_OpenACC)
3962# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3963!$acc enter data copyin(mv_ts(2))
3964# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3965#elif defined(MFC_OpenMP)
3966# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3967!$omp target enter data map(to:mv_ts(2))
3968# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3969#endif
3970# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3971 if (associated(mv_ts(2)%sf)) then
3972# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3973
3974# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3975#if defined(MFC_OpenACC)
3976# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3977!$acc enter data copyin(mv_ts(2)%sf)
3978# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3979#elif defined(MFC_OpenMP)
3980# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3981!$omp target enter data map(to:mv_ts(2)%sf)
3982# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3983#endif
3984# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3985 end if
3986# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3987 end block
3988# 429 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3989#endif
3990
3991#ifdef MFC_DEBUG
3992# 431 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3993 block
3994# 431 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3995 use iso_fortran_env, only: output_unit
3996# 431 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3997
3998# 431 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
3999 print *, 'm_time_steppers.fpp:431: ', '@: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))'
4000# 431 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4001
4002# 431 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4003 call flush (output_unit)
4004# 431 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4005 end block
4006# 431 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4007#endif
4008# 431 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4009 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))
4010# 431 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4011
4012# 431 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4013
4014# 431 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4015#if defined(MFC_OpenACC)
4016# 431 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4017!$acc enter data create(rhs_mv)
4018# 431 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4019#elif defined(MFC_OpenMP)
4020# 431 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4021!$omp target enter data map(always,alloc:rhs_mv)
4022# 431 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4023#endif
4024# 434 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4025 else
4026#ifdef MFC_DEBUG
4027# 435 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4028 block
4029# 435 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4030 use iso_fortran_env, only: output_unit
4031# 435 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4032
4033# 435 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4034 print *, 'm_time_steppers.fpp:435: ', '@:ALLOCATE(mv_ts(1)%sf(0,0,0,0,0))'
4035# 435 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4036
4037# 435 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4038 call flush (output_unit)
4039# 435 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4040 end block
4041# 435 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4042#endif
4043# 435 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4044 allocate (mv_ts(1)%sf(0,0,0,0,0))
4045# 435 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4046
4047# 435 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4048
4049# 435 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4050#if defined(MFC_OpenACC)
4051# 435 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4052!$acc enter data create(mv_ts(1)%sf)
4053# 435 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4054#elif defined(MFC_OpenMP)
4055# 435 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4056!$omp target enter data map(always,alloc:mv_ts(1)%sf)
4057# 435 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4058#endif
4059#ifdef _CRAYFTN
4060# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4061 block
4062# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4063
4064# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4065#ifdef MFC_DEBUG
4066# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4067 block
4068# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4069 use iso_fortran_env, only: output_unit
4070# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4071
4072# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4073 print *, 'm_time_steppers.fpp:436: ', '@:ACC_SETUP_SFs(mv_ts(1))'
4074# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4075
4076# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4077 call flush (output_unit)
4078# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4079 end block
4080# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4081#endif
4082# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4083
4084# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4085
4086# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4087#if defined(MFC_OpenACC)
4088# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4089!$acc enter data copyin(mv_ts(1))
4090# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4091#elif defined(MFC_OpenMP)
4092# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4093!$omp target enter data map(to:mv_ts(1))
4094# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4095#endif
4096# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4097 if (associated(mv_ts(1)%sf)) then
4098# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4099
4100# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4101#if defined(MFC_OpenACC)
4102# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4103!$acc enter data copyin(mv_ts(1)%sf)
4104# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4105#elif defined(MFC_OpenMP)
4106# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4107!$omp target enter data map(to:mv_ts(1)%sf)
4108# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4109#endif
4110# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4111 end if
4112# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4113 end block
4114# 436 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4115#endif
4116
4117#ifdef MFC_DEBUG
4118# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4119 block
4120# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4121 use iso_fortran_env, only: output_unit
4122# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4123
4124# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4125 print *, 'm_time_steppers.fpp:438: ', '@:ALLOCATE(mv_ts(2)%sf(0,0,0,0,0))'
4126# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4127
4128# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4129 call flush (output_unit)
4130# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4131 end block
4132# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4133#endif
4134# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4135 allocate (mv_ts(2)%sf(0,0,0,0,0))
4136# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4137
4138# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4139
4140# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4141#if defined(MFC_OpenACC)
4142# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4143!$acc enter data create(mv_ts(2)%sf)
4144# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4145#elif defined(MFC_OpenMP)
4146# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4147!$omp target enter data map(always,alloc:mv_ts(2)%sf)
4148# 438 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4149#endif
4150#ifdef _CRAYFTN
4151# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4152 block
4153# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4154
4155# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4156#ifdef MFC_DEBUG
4157# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4158 block
4159# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4160 use iso_fortran_env, only: output_unit
4161# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4162
4163# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4164 print *, 'm_time_steppers.fpp:439: ', '@:ACC_SETUP_SFs(mv_ts(2))'
4165# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4166
4167# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4168 call flush (output_unit)
4169# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4170 end block
4171# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4172#endif
4173# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4174
4175# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4176
4177# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4178#if defined(MFC_OpenACC)
4179# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4180!$acc enter data copyin(mv_ts(2))
4181# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4182#elif defined(MFC_OpenMP)
4183# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4184!$omp target enter data map(to:mv_ts(2))
4185# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4186#endif
4187# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4188 if (associated(mv_ts(2)%sf)) then
4189# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4190
4191# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4192#if defined(MFC_OpenACC)
4193# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4194!$acc enter data copyin(mv_ts(2)%sf)
4195# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4196#elif defined(MFC_OpenMP)
4197# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4198!$omp target enter data map(to:mv_ts(2)%sf)
4199# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4200#endif
4201# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4202 end if
4203# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4204 end block
4205# 439 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4206#endif
4207
4208#ifdef MFC_DEBUG
4209# 441 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4210 block
4211# 441 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4212 use iso_fortran_env, only: output_unit
4213# 441 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4214
4215# 441 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4216 print *, 'm_time_steppers.fpp:441: ', '@:ALLOCATE(rhs_mv(0,0,0,0,0))'
4217# 441 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4218
4219# 441 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4220 call flush (output_unit)
4221# 441 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4222 end block
4223# 441 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4224#endif
4225# 441 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4226 allocate (rhs_mv(0,0,0,0,0))
4227# 441 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4228
4229# 441 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4230
4231# 441 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4232#if defined(MFC_OpenACC)
4233# 441 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4234!$acc enter data create(rhs_mv)
4235# 441 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4236#elif defined(MFC_OpenMP)
4237# 441 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4238!$omp target enter data map(always,alloc:rhs_mv)
4239# 441 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4240#endif
4241 end if
4242
4243 ! Allocating the cell-average RHS variables
4244#ifdef MFC_DEBUG
4245# 445 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4246 block
4247# 445 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4248 use iso_fortran_env, only: output_unit
4249# 445 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4250
4251# 445 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4252 print *, 'm_time_steppers.fpp:445: ', '@:ALLOCATE(rhs_vf(1:sys_size))'
4253# 445 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4254
4255# 445 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4256 call flush (output_unit)
4257# 445 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4258 end block
4259# 445 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4260#endif
4261# 445 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4262 allocate (rhs_vf(1:sys_size))
4263# 445 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4264
4265# 445 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4266
4267# 445 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4268#if defined(MFC_OpenACC)
4269# 445 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4270!$acc enter data create(rhs_vf)
4271# 445 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4272#elif defined(MFC_OpenMP)
4273# 445 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4274!$omp target enter data map(always,alloc:rhs_vf)
4275# 445 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4276#endif
4277#ifdef MFC_SIMULATION
4278# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4279#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
4280# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4281 block
4282# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4283! Beginning in the 25.3 release, the structure of the cudafor module has been changed slightly.
4284# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4285! The module now includes, or “uses” 3 submodules: cuda_runtime_api, gpu_reductions, and sort.
4286# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4287! The cudafor functionality has not changed. But for new users, or users who have needed to
4288# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4289! work-around name conflicts in the module, it may be better to use cuda_runtime_api to expose
4290# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4291! interfaces to the CUDA runtime calls described in Chapter 4 of this guide.
4292# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4293! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
4294# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4295#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
4296# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4297 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
4298# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4299#else
4300# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4301 use cuda_runtime_api
4302# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4303#endif
4304# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4305 integer :: istat
4306# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4307
4308# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4309 if (nv_uvm_pref_gpu) then
4310# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4311 !print*, "Moving rhs_vf to GPU => ", SHAPE(rhs_vf)
4312# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4313 ! set preferred location GPU
4314# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4315 istat = cudamemadvise(c_devloc(rhs_vf), sizeof(rhs_vf), cudamemadvisesetpreferredlocation, 0)
4316# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4317 if (istat /= cudasuccess) then
4318# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4319 write (*, "('Error code: ',I0, ': ')") istat
4320# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4321 !write(*,*) cudaGetErrorString(istat)
4322# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4323 end if
4324# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4325 ! set accessed by CPU
4326# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4327 istat = cudamemadvise(c_devloc(rhs_vf), sizeof(rhs_vf), cudamemadvisesetaccessedby, cudacpudeviceid)
4328# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4329 if (istat /= cudasuccess) then
4330# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4331 write (*, "('Error code: ',I0, ': ')") istat
4332# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4333 !write(*,*) cudaGetErrorString(istat)
4334# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4335 end if
4336# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4337 ! prefetch to GPU - physically populate memory pages
4338# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4339 istat = cudamemprefetchasync(c_devloc(rhs_vf), sizeof(rhs_vf), 0, 0)
4340# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4341 if (istat /= cudasuccess) then
4342# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4343 write (*, "('Error code: ',I0, ': ')") istat
4344# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4345 !write(*,*) cudaGetErrorString(istat)
4346# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4347 end if
4348# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4349 end if
4350# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4351 end block
4352# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4353#endif
4354# 446 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4355#endif
4356
4357 if (igr) then
4358 do i = 1, sys_size
4359#ifdef MFC_DEBUG
4360# 450 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4361 block
4362# 450 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4363 use iso_fortran_env, only: output_unit
4364# 450 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4365
4366# 450 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4367 print *, 'm_time_steppers.fpp:450: ', '@:ALLOCATE(rhs_vf(i)%sf(-1:m+1,-1:n+1,-1:p+1))'
4368# 450 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4369
4370# 450 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4371 call flush (output_unit)
4372# 450 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4373 end block
4374# 450 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4375#endif
4376# 450 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4377 allocate (rhs_vf(i)%sf(-1:m+1,-1:n+1,-1:p+1))
4378# 450 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4379
4380# 450 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4381
4382# 450 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4383#if defined(MFC_OpenACC)
4384# 450 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4385!$acc enter data create(rhs_vf(i)%sf)
4386# 450 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4387#elif defined(MFC_OpenMP)
4388# 450 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4389!$omp target enter data map(always,alloc:rhs_vf(i)%sf)
4390# 450 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4391#endif
4392#ifdef _CRAYFTN
4393# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4394 block
4395# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4396
4397# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4398#ifdef MFC_DEBUG
4399# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4400 block
4401# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4402 use iso_fortran_env, only: output_unit
4403# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4404
4405# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4406 print *, 'm_time_steppers.fpp:451: ', '@:ACC_SETUP_SFs(rhs_vf(i))'
4407# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4408
4409# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4410 call flush (output_unit)
4411# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4412 end block
4413# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4414#endif
4415# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4416
4417# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4418
4419# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4420#if defined(MFC_OpenACC)
4421# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4422!$acc enter data copyin(rhs_vf(i))
4423# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4424#elif defined(MFC_OpenMP)
4425# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4426!$omp target enter data map(to:rhs_vf(i))
4427# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4428#endif
4429# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4430 if (associated(rhs_vf(i)%sf)) then
4431# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4432
4433# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4434#if defined(MFC_OpenACC)
4435# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4436!$acc enter data copyin(rhs_vf(i)%sf)
4437# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4438#elif defined(MFC_OpenMP)
4439# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4440!$omp target enter data map(to:rhs_vf(i)%sf)
4441# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4442#endif
4443# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4444 end if
4445# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4446 end block
4447# 451 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4448#endif
4449#ifdef MFC_SIMULATION
4450# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4451#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
4452# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4453 block
4454# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4455! Beginning in the 25.3 release, the structure of the cudafor module has been changed slightly.
4456# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4457! The module now includes, or “uses” 3 submodules: cuda_runtime_api, gpu_reductions, and sort.
4458# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4459! The cudafor functionality has not changed. But for new users, or users who have needed to
4460# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4461! work-around name conflicts in the module, it may be better to use cuda_runtime_api to expose
4462# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4463! interfaces to the CUDA runtime calls described in Chapter 4 of this guide.
4464# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4465! https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/index.html#fortran-host-modules
4466# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4467#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
4468# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4469 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
4470# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4471#else
4472# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4473 use cuda_runtime_api
4474# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4475#endif
4476# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4477 integer :: istat
4478# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4479
4480# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4481 if (nv_uvm_pref_gpu) then
4482# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4483 !print*, "Moving rhs_vf(i)%sf to GPU => ", SHAPE(rhs_vf(i)%sf)
4484# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4485 ! set preferred location GPU
4486# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4487 istat = cudamemadvise(c_devloc(rhs_vf(i)%sf), sizeof(rhs_vf(i)%sf), cudamemadvisesetpreferredlocation, 0)
4488# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4489 if (istat /= cudasuccess) then
4490# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4491 write (*, "('Error code: ',I0, ': ')") istat
4492# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4493 !write(*,*) cudaGetErrorString(istat)
4494# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4495 end if
4496# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4497 ! set accessed by CPU
4498# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4499 istat = cudamemadvise(c_devloc(rhs_vf(i)%sf), sizeof(rhs_vf(i)%sf), cudamemadvisesetaccessedby, cudacpudeviceid)
4500# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4501 if (istat /= cudasuccess) then
4502# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4503 write (*, "('Error code: ',I0, ': ')") istat
4504# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4505 !write(*,*) cudaGetErrorString(istat)
4506# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4507 end if
4508# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4509 ! prefetch to GPU - physically populate memory pages
4510# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4511 istat = cudamemprefetchasync(c_devloc(rhs_vf(i)%sf), sizeof(rhs_vf(i)%sf), 0, 0)
4512# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4513 if (istat /= cudasuccess) then
4514# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4515 write (*, "('Error code: ',I0, ': ')") istat
4516# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4517 !write(*,*) cudaGetErrorString(istat)
4518# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4519 end if
4520# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4521 end if
4522# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4523 end block
4524# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4525#endif
4526# 452 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4527#endif
4528 end do
4529 else
4530 do i = 1, sys_size
4531#ifdef MFC_DEBUG
4532# 456 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4533 block
4534# 456 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4535 use iso_fortran_env, only: output_unit
4536# 456 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4537
4538# 456 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4539 print *, 'm_time_steppers.fpp:456: ', '@:ALLOCATE(rhs_vf(i)%sf(0:m, 0:n, 0:p))'
4540# 456 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4541
4542# 456 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4543 call flush (output_unit)
4544# 456 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4545 end block
4546# 456 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4547#endif
4548# 456 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4549 allocate (rhs_vf(i)%sf(0:m, 0:n, 0:p))
4550# 456 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4551
4552# 456 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4553
4554# 456 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4555#if defined(MFC_OpenACC)
4556# 456 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4557!$acc enter data create(rhs_vf(i)%sf)
4558# 456 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4559#elif defined(MFC_OpenMP)
4560# 456 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4561!$omp target enter data map(always,alloc:rhs_vf(i)%sf)
4562# 456 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4563#endif
4564#ifdef _CRAYFTN
4565# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4566 block
4567# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4568
4569# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4570#ifdef MFC_DEBUG
4571# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4572 block
4573# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4574 use iso_fortran_env, only: output_unit
4575# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4576
4577# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4578 print *, 'm_time_steppers.fpp:457: ', '@:ACC_SETUP_SFs(rhs_vf(i))'
4579# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4580
4581# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4582 call flush (output_unit)
4583# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4584 end block
4585# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4586#endif
4587# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4588
4589# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4590
4591# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4592#if defined(MFC_OpenACC)
4593# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4594!$acc enter data copyin(rhs_vf(i))
4595# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4596#elif defined(MFC_OpenMP)
4597# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4598!$omp target enter data map(to:rhs_vf(i))
4599# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4600#endif
4601# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4602 if (associated(rhs_vf(i)%sf)) then
4603# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4604
4605# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4606#if defined(MFC_OpenACC)
4607# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4608!$acc enter data copyin(rhs_vf(i)%sf)
4609# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4610#elif defined(MFC_OpenMP)
4611# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4612!$omp target enter data map(to:rhs_vf(i)%sf)
4613# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4614#endif
4615# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4616 end if
4617# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4618 end block
4619# 457 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4620#endif
4621 end do
4622 end if
4623
4624 ! Opening and writing the header of the run-time information file
4625 if (proc_rank == 0 .and. run_time_info) then
4626 call s_open_run_time_information_file()
4627 end if
4628
4629 if (cfl_dt) then
4630#ifdef MFC_DEBUG
4631# 467 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4632 block
4633# 467 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4634 use iso_fortran_env, only: output_unit
4635# 467 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4636
4637# 467 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4638 print *, 'm_time_steppers.fpp:467: ', '@:ALLOCATE(max_dt(0:m, 0:n, 0:p))'
4639# 467 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4640
4641# 467 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4642 call flush (output_unit)
4643# 467 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4644 end block
4645# 467 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4646#endif
4647# 467 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4648 allocate (max_dt(0:m, 0:n, 0:p))
4649# 467 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4650
4651# 467 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4652
4653# 467 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4654#if defined(MFC_OpenACC)
4655# 467 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4656!$acc enter data create(max_dt)
4657# 467 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4658#elif defined(MFC_OpenMP)
4659# 467 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4660!$omp target enter data map(always,alloc:max_dt)
4661# 467 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4662#endif
4663 end if
4664
4665 ! Allocating arrays to store the bc types
4666#ifdef MFC_DEBUG
4667# 471 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4668 block
4669# 471 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4670 use iso_fortran_env, only: output_unit
4671# 471 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4672
4673# 471 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4674 print *, 'm_time_steppers.fpp:471: ', '@:ALLOCATE(bc_type(1:num_dims,1:2))'
4675# 471 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4676
4677# 471 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4678 call flush (output_unit)
4679# 471 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4680 end block
4681# 471 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4682#endif
4683# 471 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4684 allocate (bc_type(1:num_dims,1:2))
4685# 471 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4686
4687# 471 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4688
4689# 471 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4690#if defined(MFC_OpenACC)
4691# 471 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4692!$acc enter data create(bc_type)
4693# 471 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4694#elif defined(MFC_OpenMP)
4695# 471 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4696!$omp target enter data map(always,alloc:bc_type)
4697# 471 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4698#endif
4699
4700#ifdef MFC_DEBUG
4701# 473 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4702 block
4703# 473 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4704 use iso_fortran_env, only: output_unit
4705# 473 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4706
4707# 473 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4708 print *, 'm_time_steppers.fpp:473: ', '@:ALLOCATE(bc_type(1,1)%sf(0:0,0:n,0:p))'
4709# 473 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4710
4711# 473 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4712 call flush (output_unit)
4713# 473 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4714 end block
4715# 473 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4716#endif
4717# 473 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4718 allocate (bc_type(1,1)%sf(0:0,0:n,0:p))
4719# 473 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4720
4721# 473 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4722
4723# 473 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4724#if defined(MFC_OpenACC)
4725# 473 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4726!$acc enter data create(bc_type(1,1)%sf)
4727# 473 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4728#elif defined(MFC_OpenMP)
4729# 473 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4730!$omp target enter data map(always,alloc:bc_type(1,1)%sf)
4731# 473 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4732#endif
4733#ifdef MFC_DEBUG
4734# 474 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4735 block
4736# 474 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4737 use iso_fortran_env, only: output_unit
4738# 474 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4739
4740# 474 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4741 print *, 'm_time_steppers.fpp:474: ', '@:ALLOCATE(bc_type(1,2)%sf(0:0,0:n,0:p))'
4742# 474 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4743
4744# 474 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4745 call flush (output_unit)
4746# 474 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4747 end block
4748# 474 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4749#endif
4750# 474 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4751 allocate (bc_type(1,2)%sf(0:0,0:n,0:p))
4752# 474 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4753
4754# 474 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4755
4756# 474 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4757#if defined(MFC_OpenACC)
4758# 474 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4759!$acc enter data create(bc_type(1,2)%sf)
4760# 474 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4761#elif defined(MFC_OpenMP)
4762# 474 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4763!$omp target enter data map(always,alloc:bc_type(1,2)%sf)
4764# 474 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4765#endif
4766# 476 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4767 if (n > 0) then
4768#ifdef MFC_DEBUG
4769# 477 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4770 block
4771# 477 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4772 use iso_fortran_env, only: output_unit
4773# 477 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4774
4775# 477 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4776 print *, 'm_time_steppers.fpp:477: ', '@:ALLOCATE(bc_type(2,1)%sf(-buff_size:m+buff_size,0:0,0:p))'
4777# 477 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4778
4779# 477 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4780 call flush (output_unit)
4781# 477 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4782 end block
4783# 477 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4784#endif
4785# 477 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4786 allocate (bc_type(2,1)%sf(-buff_size:m+buff_size,0:0,0:p))
4787# 477 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4788
4789# 477 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4790
4791# 477 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4792#if defined(MFC_OpenACC)
4793# 477 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4794!$acc enter data create(bc_type(2,1)%sf)
4795# 477 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4796#elif defined(MFC_OpenMP)
4797# 477 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4798!$omp target enter data map(always,alloc:bc_type(2,1)%sf)
4799# 477 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4800#endif
4801#ifdef MFC_DEBUG
4802# 478 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4803 block
4804# 478 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4805 use iso_fortran_env, only: output_unit
4806# 478 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4807
4808# 478 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4809 print *, 'm_time_steppers.fpp:478: ', '@:ALLOCATE(bc_type(2,2)%sf(-buff_size:m+buff_size,0:0,0:p))'
4810# 478 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4811
4812# 478 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4813 call flush (output_unit)
4814# 478 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4815 end block
4816# 478 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4817#endif
4818# 478 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4819 allocate (bc_type(2,2)%sf(-buff_size:m+buff_size,0:0,0:p))
4820# 478 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4821
4822# 478 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4823
4824# 478 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4825#if defined(MFC_OpenACC)
4826# 478 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4827!$acc enter data create(bc_type(2,2)%sf)
4828# 478 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4829#elif defined(MFC_OpenMP)
4830# 478 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4831!$omp target enter data map(always,alloc:bc_type(2,2)%sf)
4832# 478 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4833#endif
4834# 480 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4835 if (p > 0) then
4836#ifdef MFC_DEBUG
4837# 481 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4838 block
4839# 481 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4840 use iso_fortran_env, only: output_unit
4841# 481 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4842
4843# 481 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4844 print *, 'm_time_steppers.fpp:481: ', '@:ALLOCATE(bc_type(3,1)%sf(-buff_size:m+buff_size,-buff_size:n+buff_size,0:0))'
4845# 481 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4846
4847# 481 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4848 call flush (output_unit)
4849# 481 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4850 end block
4851# 481 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4852#endif
4853# 481 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4854 allocate (bc_type(3,1)%sf(-buff_size:m+buff_size,-buff_size:n+buff_size,0:0))
4855# 481 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4856
4857# 481 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4858
4859# 481 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4860#if defined(MFC_OpenACC)
4861# 481 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4862!$acc enter data create(bc_type(3,1)%sf)
4863# 481 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4864#elif defined(MFC_OpenMP)
4865# 481 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4866!$omp target enter data map(always,alloc:bc_type(3,1)%sf)
4867# 481 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4868#endif
4869#ifdef MFC_DEBUG
4870# 482 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4871 block
4872# 482 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4873 use iso_fortran_env, only: output_unit
4874# 482 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4875
4876# 482 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4877 print *, 'm_time_steppers.fpp:482: ', '@:ALLOCATE(bc_type(3,2)%sf(-buff_size:m+buff_size,-buff_size:n+buff_size,0:0))'
4878# 482 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4879
4880# 482 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4881 call flush (output_unit)
4882# 482 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4883 end block
4884# 482 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4885#endif
4886# 482 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4887 allocate (bc_type(3,2)%sf(-buff_size:m+buff_size,-buff_size:n+buff_size,0:0))
4888# 482 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4889
4890# 482 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4891
4892# 482 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4893#if defined(MFC_OpenACC)
4894# 482 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4895!$acc enter data create(bc_type(3,2)%sf)
4896# 482 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4897#elif defined(MFC_OpenMP)
4898# 482 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4899!$omp target enter data map(always,alloc:bc_type(3,2)%sf)
4900# 482 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4901#endif
4902 end if
4903# 485 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4904 end if
4905# 487 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4906
4907 do i = 1, num_dims
4908 do j = 1, 2
4909#ifdef _CRAYFTN
4910# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4911 block
4912# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4913
4914# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4915#ifdef MFC_DEBUG
4916# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4917 block
4918# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4919 use iso_fortran_env, only: output_unit
4920# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4921
4922# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4923 print *, 'm_time_steppers.fpp:490: ', '@:ACC_SETUP_SFs(bc_type(i,j))'
4924# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4925
4926# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4927 call flush (output_unit)
4928# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4929 end block
4930# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4931#endif
4932# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4933
4934# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4935
4936# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4937#if defined(MFC_OpenACC)
4938# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4939!$acc enter data copyin(bc_type(i,j))
4940# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4941#elif defined(MFC_OpenMP)
4942# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4943!$omp target enter data map(to:bc_type(i,j))
4944# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4945#endif
4946# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4947 if (associated(bc_type(i,j)%sf)) then
4948# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4949
4950# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4951#if defined(MFC_OpenACC)
4952# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4953!$acc enter data copyin(bc_type(i,j)%sf)
4954# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4955#elif defined(MFC_OpenMP)
4956# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4957!$omp target enter data map(to:bc_type(i,j)%sf)
4958# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4959#endif
4960# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4961 end if
4962# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4963 end block
4964# 490 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4965#endif
4966 end do
4967 end do
4968
4969 if (any(time_stepper == (/1, 2, 3/))) then
4970 ! temporary array index for TVD RK
4971 if (time_stepper == 1) then
4972 stor = 1
4973 else
4974 stor = 2
4975 end if
4976
4977 ! TVD RK coefficients
4978#ifdef MFC_DEBUG
4979# 503 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4980 block
4981# 503 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4982 use iso_fortran_env, only: output_unit
4983# 503 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4984
4985# 503 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4986 print *, 'm_time_steppers.fpp:503: ', '@:ALLOCATE(rk_coef(time_stepper, 4))'
4987# 503 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4988
4989# 503 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4990 call flush (output_unit)
4991# 503 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4992 end block
4993# 503 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4994#endif
4995# 503 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4996 allocate (rk_coef(time_stepper, 4))
4997# 503 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
4998
4999# 503 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5000
5001# 503 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5002#if defined(MFC_OpenACC)
5003# 503 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5004!$acc enter data create(rk_coef)
5005# 503 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5006#elif defined(MFC_OpenMP)
5007# 503 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5008!$omp target enter data map(always,alloc:rk_coef)
5009# 503 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5010#endif
5011 if (time_stepper == 1) then
5012 rk_coef(1, :) = (/1._wp, 0._wp, 1._wp, 1._wp/)
5013 else if (time_stepper == 2) then
5014 rk_coef(1, :) = (/1._wp, 0._wp, 1._wp, 1._wp/)
5015 rk_coef(2, :) = (/1._wp, 1._wp, 1._wp, 2._wp/)
5016 else if (time_stepper == 3) then
5017 rk_coef(1, :) = (/1._wp, 0._wp, 1._wp, 1._wp/)
5018 rk_coef(2, :) = (/1._wp, 3._wp, 1._wp, 4._wp/)
5019 rk_coef(3, :) = (/2._wp, 1._wp, 2._wp, 3._wp/)
5020 end if
5021
5022# 514 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5023#if defined(MFC_OpenACC)
5024# 514 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5025!$acc update device(rk_coef, stor)
5026# 514 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5027#elif defined(MFC_OpenMP)
5028# 514 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5029!$omp target update to(rk_coef, stor)
5030# 514 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5031#endif
5032 end if
5033
5035
5036 !> @brief Advances the solution one full step using a TVD Runge-Kutta time integrator.
5037 impure subroutine s_tvd_rk(t_step, time_avg, nstage)
5038#ifdef _CRAYFTN
5039 !DIR$ OPTIMIZE (-haggress)
5040#endif
5041 integer, intent(in) :: t_step
5042 real(wp), intent(inout) :: time_avg
5043 integer, intent(in) :: nstage
5044
5045 integer :: i, j, k, l, q, s !< Generic loop iterator
5046 real(wp) :: start, finish
5047 integer :: dest
5048
5049 call cpu_time(start)
5050 call nvtxstartrange("TIMESTEP")
5051
5052 ! Adaptive dt: initial stage
5053 if (adap_dt) call s_adaptive_dt_bubble(1)
5054
5055 do s = 1, nstage
5056 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, t_step, time_avg, s)
5057
5058 if (s == 1) then
5059 if (run_time_info) then
5060 if (igr .or. dummy) then
5061 call s_write_run_time_information(q_cons_ts(1)%vf, t_step)
5062 end if
5063 if (.not. igr .or. dummy) then
5064 call s_write_run_time_information(q_prim_vf, t_step)
5065 end if
5066 end if
5067
5068 if (probe_wrt) then
5069 call s_time_step_cycling(t_step)
5070 call s_compute_derived_variables(t_step, q_cons_ts(1)%vf, q_prim_ts1, q_prim_ts2)
5071 end if
5072
5073 if (cfl_dt) then
5074 if (mytime >= t_stop) return
5075 else
5076 if (t_step == t_step_stop) return
5077 end if
5078 end if
5079
5080 if (bubbles_lagrange .and. .not. adap_dt) call s_update_lagrange_tdv_rk(stage=s)
5081
5082# 564 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5083
5084# 564 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5085#if defined(MFC_OpenACC)
5086# 564 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5087!$acc parallel loop collapse(4) gang vector default(present)
5088# 564 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5089#elif defined(MFC_OpenMP)
5090# 564 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5091
5092# 564 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5093
5094# 564 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5095
5096# 564 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5097!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
5098# 564 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5099#endif
5100# 564 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5101
5102 do i = 1, sys_size
5103 do l = 0, p
5104 do k = 0, n
5105 do j = 0, m
5106 if (s == 1 .and. nstage > 1) then
5107 q_cons_ts(stor)%vf(i)%sf(j, k, l) = &
5108 q_cons_ts(1)%vf(i)%sf(j, k, l)
5109 end if
5110 if (igr) then
5111 q_cons_ts(1)%vf(i)%sf(j, k, l) = &
5112 (rk_coef(s, 1)*q_cons_ts(1)%vf(i)%sf(j, k, l) &
5113 + rk_coef(s, 2)*q_cons_ts(stor)%vf(i)%sf(j, k, l) &
5114 + rk_coef(s, 3)*rhs_vf(i)%sf(j, k, l))/rk_coef(s, 4)
5115 else
5116 q_cons_ts(1)%vf(i)%sf(j, k, l) = &
5117 (rk_coef(s, 1)*q_cons_ts(1)%vf(i)%sf(j, k, l) &
5118 + rk_coef(s, 2)*q_cons_ts(stor)%vf(i)%sf(j, k, l) &
5119 + rk_coef(s, 3)*dt*rhs_vf(i)%sf(j, k, l))/rk_coef(s, 4)
5120 end if
5121 end do
5122 end do
5123 end do
5124 end do
5125
5126# 588 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5127
5128# 588 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5129#if defined(MFC_OpenACC)
5130# 588 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5131!$acc end parallel loop
5132# 588 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5133#elif defined(MFC_OpenMP)
5134# 588 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5135
5136# 588 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5137
5138# 588 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5139!$omp end target teams loop
5140# 588 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5141#endif
5142# 588 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5143
5144 !Evolve pb and mv for non-polytropic qbmm
5145 if (qbmm .and. (.not. polytropic)) then
5146
5147# 591 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5148
5149# 591 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5150#if defined(MFC_OpenACC)
5151# 591 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5152!$acc parallel loop collapse(5) gang vector default(present)
5153# 591 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5154#elif defined(MFC_OpenMP)
5155# 591 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5156
5157# 591 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5158
5159# 591 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5160
5161# 591 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5162!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(5) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
5163# 591 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5164#endif
5165# 591 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5166
5167 do i = 1, nb
5168 do l = 0, p
5169 do k = 0, n
5170 do j = 0, m
5171 do q = 1, nnode
5172 if (s == 1 .and. nstage > 1) then
5173 pb_ts(stor)%sf(j, k, l, q, i) = &
5174 pb_ts(1)%sf(j, k, l, q, i)
5175 mv_ts(stor)%sf(j, k, l, q, i) = &
5176 mv_ts(1)%sf(j, k, l, q, i)
5177 end if
5178 pb_ts(1)%sf(j, k, l, q, i) = &
5179 (rk_coef(s, 1)*pb_ts(1)%sf(j, k, l, q, i) &
5180 + rk_coef(s, 2)*pb_ts(stor)%sf(j, k, l, q, i) &
5181 + rk_coef(s, 3)*dt*rhs_pb(j, k, l, q, i))/rk_coef(s, 4)
5182 mv_ts(1)%sf(j, k, l, q, i) = &
5183 (rk_coef(s, 1)*mv_ts(1)%sf(j, k, l, q, i) &
5184 + rk_coef(s, 2)*mv_ts(stor)%sf(j, k, l, q, i) &
5185 + rk_coef(s, 3)*dt*rhs_mv(j, k, l, q, i))/rk_coef(s, 4)
5186 end do
5187 end do
5188 end do
5189 end do
5190 end do
5191
5192# 616 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5193
5194# 616 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5195#if defined(MFC_OpenACC)
5196# 616 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5197!$acc end parallel loop
5198# 616 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5199#elif defined(MFC_OpenMP)
5200# 616 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5201
5202# 616 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5203
5204# 616 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5205!$omp end target teams loop
5206# 616 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5207#endif
5208# 616 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5209
5210 end if
5211
5212 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))
5213
5214 if (grid_geometry == 3) call s_apply_fourier_filter(q_cons_ts(1)%vf)
5215
5216 if (model_eqns == 3 .and. (.not. relax)) then
5217 call s_pressure_relaxation_procedure(q_cons_ts(1)%vf)
5218 end if
5219
5220 if (adv_n) call s_comp_alpha_from_n(q_cons_ts(1)%vf)
5221
5222 if (ib) then
5223 ! check if any IBMS are moving, and if so, update the markers, ghost points, levelsets, and levelset norms
5224 if (moving_immersed_boundary_flag) then
5226 end if
5227
5228 ! update the ghost fluid properties point values based on IB state
5229 if (qbmm .and. .not. polytropic) then
5230 call s_ibm_correct_state(q_cons_ts(1)%vf, q_prim_vf, pb_ts(1)%sf, mv_ts(1)%sf)
5231 else
5232 call s_ibm_correct_state(q_cons_ts(1)%vf, q_prim_vf)
5233 end if
5234 end if
5235
5236 end do
5237
5238 ! Adaptive dt: final stage
5239 if (adap_dt) call s_adaptive_dt_bubble(3)
5240
5241 call nvtxendrange
5242 call cpu_time(finish)
5243
5244 wall_time = abs(finish - start)
5245
5246 if (t_step >= 2) then
5247 wall_time_avg = (wall_time + (t_step - 2)*wall_time_avg)/(t_step - 1)
5248 else
5249 wall_time_avg = 0._wp
5250 end if
5251
5252 end subroutine s_tvd_rk
5253
5254 !> Bubble source part in Strang operator splitting scheme
5255 !! @param stage Current time-stage
5256 impure subroutine s_adaptive_dt_bubble(stage)
5257
5258 integer, intent(in) :: stage
5259
5260 type(vector_field) :: gm_alpha_qp
5261
5262 call s_convert_conservative_to_primitive_variables( &
5263 q_cons_ts(1)%vf, &
5264 q_t_sf, &
5265 q_prim_vf, &
5266 idwint)
5267
5268 if (bubbles_euler) then
5269
5270 call s_compute_bubble_ee_source(q_cons_ts(1)%vf, q_prim_vf, rhs_vf, divu)
5271 call s_comp_alpha_from_n(q_cons_ts(1)%vf)
5272
5273 elseif (bubbles_lagrange) then
5274
5275 call s_populate_variables_buffers(bc_type, q_prim_vf, pb_ts(1)%sf, mv_ts(1)%sf)
5276 call s_compute_bubble_el_dynamics(q_prim_vf, stage)
5277 call s_transfer_data_to_tmp()
5278 call s_smear_voidfraction()
5279 if (stage == 3) then
5280 if (lag_params%write_bubbles_stats) call s_calculate_lag_bubble_stats()
5281 if (lag_params%write_bubbles) then
5282
5283# 689 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5284#if defined(MFC_OpenACC)
5285# 689 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5286!$acc update host(gas_p, gas_mv, intfc_rad, intfc_vel)
5287# 689 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5288#elif defined(MFC_OpenMP)
5289# 689 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5290!$omp target update from(gas_p, gas_mv, intfc_rad, intfc_vel)
5291# 689 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5292#endif
5293 call s_write_lag_particles(mytime)
5294 end if
5295 call s_write_void_evol(mytime)
5296 end if
5297
5298 end if
5299
5300 end subroutine s_adaptive_dt_bubble
5301
5302 !> @brief Computes the global time step size from CFL stability constraints across all cells.
5303 impure subroutine s_compute_dt()
5304
5305 real(wp) :: rho !< Cell-avg. density
5306# 707 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5307 real(wp), dimension(num_vels) :: vel !< Cell-avg. velocity
5308 real(wp), dimension(num_fluids) :: alpha !< Cell-avg. volume fraction
5309# 710 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5310 real(wp) :: vel_sum !< Cell-avg. velocity sum
5311 real(wp) :: pres !< Cell-avg. pressure
5312 real(wp) :: gamma !< Cell-avg. sp. heat ratio
5313 real(wp) :: pi_inf !< Cell-avg. liquid stiffness function
5314 real(wp) :: qv !< Cell-avg. fluid reference energy
5315 real(wp) :: c !< Cell-avg. sound speed
5316 real(wp) :: h !< Cell-avg. enthalpy
5317 real(wp), dimension(2) :: re !< Cell-avg. Reynolds numbers
5318 type(vector_field) :: gm_alpha_qp
5319
5320 real(wp) :: dt_local
5321 integer :: j, k, l !< Generic loop iterators
5322
5323 if (.not. igr .or. dummy) then
5324 call s_convert_conservative_to_primitive_variables( &
5325 q_cons_ts(1)%vf, &
5326 q_t_sf, &
5327 q_prim_vf, &
5328 idwint)
5329 end if
5330
5331
5332# 731 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5333
5334# 731 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5335#if defined(MFC_OpenACC)
5336# 731 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5337!$acc parallel loop collapse(3) gang vector default(present) private(vel, alpha, Re, rho, vel_sum, pres, gamma, pi_inf, c, H, qv)
5338# 731 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5339#elif defined(MFC_OpenMP)
5340# 731 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5341
5342# 731 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5343
5344# 731 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5345
5346# 731 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5347!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(vel, alpha, Re, rho, vel_sum, pres, gamma, pi_inf, c, H, qv)
5348# 731 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5349#endif
5350# 731 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5351
5352 do l = 0, p
5353 do k = 0, n
5354 do j = 0, m
5355 if (igr) then
5356 call s_compute_enthalpy(q_cons_ts(1)%vf, pres, rho, gamma, pi_inf, re, h, alpha, vel, vel_sum, qv, j, k, l)
5357 else
5358 call s_compute_enthalpy(q_prim_vf, pres, rho, gamma, pi_inf, re, h, alpha, vel, vel_sum, qv, j, k, l)
5359 end if
5360
5361 ! Compute mixture sound speed
5362 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, h, alpha, vel_sum, 0._wp, c, qv)
5363
5364 call s_compute_dt_from_cfl(vel, c, max_dt, rho, re, j, k, l)
5365 end do
5366 end do
5367 end do
5368
5369# 748 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5370
5371# 748 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5372#if defined(MFC_OpenACC)
5373# 748 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5374!$acc end parallel loop
5375# 748 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5376#elif defined(MFC_OpenMP)
5377# 748 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5378
5379# 748 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5380
5381# 748 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5382!$omp end target teams loop
5383# 748 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5384#endif
5385# 748 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5386
5387
5388
5389# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5390
5391# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5392#if defined(MFC_OpenACC)
5393# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5394!$acc parallel default(present) copyin(max_dt) copyout(dt_local)
5395# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5396 dt_local = minval(max_dt)
5397# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5398!$acc end parallel
5399# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5400#elif defined(MFC_OpenMP)
5401# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5402
5403# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5404
5405# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5406!$omp target teams defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) map(to:max_dt) map(from:dt_local)
5407# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5408 dt_local = minval(max_dt)
5409# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5410!$omp end target teams
5411# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5412#else
5413# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5414 dt_local = minval(max_dt)
5415# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5416#endif
5417# 750 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5418
5419# 753 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5420
5421 if (num_procs == 1) then
5422 dt = dt_local
5423 else
5424 call s_mpi_allreduce_min(dt_local, dt)
5425 end if
5426
5427
5428# 760 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5429#if defined(MFC_OpenACC)
5430# 760 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5431!$acc update device(dt)
5432# 760 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5433#elif defined(MFC_OpenMP)
5434# 760 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5435!$omp target update to(dt)
5436# 760 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5437#endif
5438
5439 end subroutine s_compute_dt
5440
5441 !> This subroutine applies the body forces source term at each
5442 !! Runge-Kutta stage
5443 !! @param q_cons_vf Conservative variables
5444 !! @param q_prim_vf_in Primitive variables
5445 !! @param rhs_vf_in Right-hand side variables
5446 subroutine s_apply_bodyforces(q_cons_vf, q_prim_vf_in, rhs_vf_in, ldt)
5447
5448 type(scalar_field), dimension(1:sys_size), intent(inout) :: q_cons_vf
5449 type(scalar_field), dimension(1:sys_size), intent(in) :: q_prim_vf_in
5450 type(scalar_field), dimension(1:sys_size), intent(inout) :: rhs_vf_in
5451
5452 real(wp), intent(in) :: ldt !< local dt
5453
5454 integer :: i, j, k, l
5455
5456 call nvtxstartrange("RHS-BODYFORCES")
5457 call s_compute_body_forces_rhs(q_prim_vf_in, q_cons_vf, rhs_vf_in)
5458
5459
5460# 782 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5461
5462# 782 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5463#if defined(MFC_OpenACC)
5464# 782 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5465!$acc parallel loop collapse(4) gang vector default(present)
5466# 782 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5467#elif defined(MFC_OpenMP)
5468# 782 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5469
5470# 782 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5471
5472# 782 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5473
5474# 782 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5475!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
5476# 782 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5477#endif
5478# 782 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5479
5480 do i = momxb, e_idx
5481 do l = 0, p
5482 do k = 0, n
5483 do j = 0, m
5484 q_cons_vf(i)%sf(j, k, l) = q_cons_vf(i)%sf(j, k, l) + &
5485 ldt*rhs_vf_in(i)%sf(j, k, l)
5486 end do
5487 end do
5488 end do
5489 end do
5490
5491# 793 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5492
5493# 793 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5494#if defined(MFC_OpenACC)
5495# 793 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5496!$acc end parallel loop
5497# 793 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5498#elif defined(MFC_OpenMP)
5499# 793 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5500
5501# 793 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5502
5503# 793 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5504!$omp end target teams loop
5505# 793 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5506#endif
5507# 793 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5508
5509
5510 call nvtxendrange
5511
5512 end subroutine s_apply_bodyforces
5513
5514 !> @brief Updates immersed boundary positions and velocities at the current Runge-Kutta stage.
5516
5517 integer, intent(in) :: s
5518 integer :: i
5519 logical :: forces_computed
5520
5521 forces_computed = .false.
5522
5523 do i = 1, num_ibs
5524 if (s == 1) then
5525 patch_ib(i)%step_vel = patch_ib(i)%vel
5526 patch_ib(i)%step_angular_vel = patch_ib(i)%angular_vel
5527 patch_ib(i)%step_angles = patch_ib(i)%angles
5528 patch_ib(i)%step_x_centroid = patch_ib(i)%x_centroid
5529 patch_ib(i)%step_y_centroid = patch_ib(i)%y_centroid
5530 patch_ib(i)%step_z_centroid = patch_ib(i)%z_centroid
5531 end if
5532
5533 if (patch_ib(i)%moving_ibm > 0) then
5534 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)
5535 patch_ib(i)%angular_vel = (rk_coef(s, 1)*patch_ib(i)%step_angular_vel + rk_coef(s, 2)*patch_ib(i)%angular_vel)/rk_coef(s, 4)
5536
5537 if (patch_ib(i)%moving_ibm == 1) then
5538 ! plug in analytic velocities for 1-way coupling, if it exists
5539
5540 else if (patch_ib(i)%moving_ibm == 2) then ! if we are using two-way coupling, apply force and torque
5541 ! compute the force and torque on the IB from the fluid
5542 if (.not. forces_computed) then
5543 call s_compute_ib_forces(q_prim_vf, fluid_pp)
5544 forces_computed = .true.
5545 end if
5546
5547 ! update the velocity from the force value
5548 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)
5549
5550 ! update the angular velocity with the torque value
5551 patch_ib(i)%angular_vel = (patch_ib(i)%angular_vel*patch_ib(i)%moment) + (rk_coef(s, 3)*dt*patch_ib(i)%torque/rk_coef(s, 4)) ! add the torque to the angular momentum
5552 call s_compute_moment_of_inertia(i, patch_ib(i)%angular_vel) ! update the moment of inertia to be based on the direction of the angular momentum
5553 patch_ib(i)%angular_vel = patch_ib(i)%angular_vel/patch_ib(i)%moment ! convert back to angular velocity with the new moment of inertia
5554 end if
5555
5556 ! Update the angle of the IB
5557 patch_ib(i)%angles = (rk_coef(s, 1)*patch_ib(i)%step_angles + rk_coef(s, 2)*patch_ib(i)%angles + rk_coef(s, 3)*patch_ib(i)%angular_vel*dt)/rk_coef(s, 4)
5558
5559 ! Update the position of the IB
5560 patch_ib(i)%x_centroid = (rk_coef(s, 1)*patch_ib(i)%step_x_centroid + rk_coef(s, 2)*patch_ib(i)%x_centroid + rk_coef(s, 3)*patch_ib(i)%vel(1)*dt)/rk_coef(s, 4)
5561 patch_ib(i)%y_centroid = (rk_coef(s, 1)*patch_ib(i)%step_y_centroid + rk_coef(s, 2)*patch_ib(i)%y_centroid + rk_coef(s, 3)*patch_ib(i)%vel(2)*dt)/rk_coef(s, 4)
5562 patch_ib(i)%z_centroid = (rk_coef(s, 1)*patch_ib(i)%step_z_centroid + rk_coef(s, 2)*patch_ib(i)%z_centroid + rk_coef(s, 3)*patch_ib(i)%vel(3)*dt)/rk_coef(s, 4)
5563 end if
5564 end do
5565
5566 call s_update_mib(num_ibs)
5567
5568 end subroutine s_propagate_immersed_boundaries
5569
5570 !> This subroutine saves the temporary q_prim_vf vector
5571 !! into the q_prim_ts vector that is then used in p_main
5572 !! @param t_step current time-step
5573 subroutine s_time_step_cycling(t_step)
5574
5575 integer, intent(in) :: t_step
5576
5577 integer :: i, j, k, l !< Generic loop iterator
5578
5579 if (t_step == t_step_start) then
5580
5581# 865 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5582
5583# 865 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5584#if defined(MFC_OpenACC)
5585# 865 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5586!$acc parallel loop collapse(4) gang vector default(present)
5587# 865 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5588#elif defined(MFC_OpenMP)
5589# 865 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5590
5591# 865 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5592
5593# 865 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5594
5595# 865 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5596!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
5597# 865 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5598#endif
5599# 865 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5600
5601 do i = 1, sys_size
5602 do l = 0, p
5603 do k = 0, n
5604 do j = 0, m
5605 q_prim_ts2(2)%vf(i)%sf(j, k, l) = q_prim_vf(i)%sf(j, k, l)
5606 end do
5607 end do
5608 end do
5609 end do
5610
5611# 875 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5612
5613# 875 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5614#if defined(MFC_OpenACC)
5615# 875 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5616!$acc end parallel loop
5617# 875 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5618#elif defined(MFC_OpenMP)
5619# 875 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5620
5621# 875 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5622
5623# 875 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5624!$omp end target teams loop
5625# 875 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5626#endif
5627# 875 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5628
5629 elseif (t_step == t_step_start + 1) then
5630
5631# 877 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5632
5633# 877 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5634#if defined(MFC_OpenACC)
5635# 877 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5636!$acc parallel loop collapse(4) gang vector default(present)
5637# 877 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5638#elif defined(MFC_OpenMP)
5639# 877 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5640
5641# 877 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5642
5643# 877 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5644
5645# 877 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5646!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
5647# 877 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5648#endif
5649# 877 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5650
5651 do i = 1, sys_size
5652 do l = 0, p
5653 do k = 0, n
5654 do j = 0, m
5655 q_prim_ts2(1)%vf(i)%sf(j, k, l) = q_prim_vf(i)%sf(j, k, l)
5656 end do
5657 end do
5658 end do
5659 end do
5660
5661# 887 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5662
5663# 887 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5664#if defined(MFC_OpenACC)
5665# 887 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5666!$acc end parallel loop
5667# 887 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5668#elif defined(MFC_OpenMP)
5669# 887 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5670
5671# 887 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5672
5673# 887 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5674!$omp end target teams loop
5675# 887 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5676#endif
5677# 887 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5678
5679 elseif (t_step == t_step_start + 2) then
5680
5681# 889 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5682
5683# 889 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5684#if defined(MFC_OpenACC)
5685# 889 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5686!$acc parallel loop collapse(4) gang vector default(present)
5687# 889 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5688#elif defined(MFC_OpenMP)
5689# 889 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5690
5691# 889 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5692
5693# 889 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5694
5695# 889 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5696!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
5697# 889 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5698#endif
5699# 889 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5700
5701 do i = 1, sys_size
5702 do l = 0, p
5703 do k = 0, n
5704 do j = 0, m
5705 q_prim_ts1(2)%vf(i)%sf(j, k, l) = q_prim_vf(i)%sf(j, k, l)
5706 end do
5707 end do
5708 end do
5709 end do
5710
5711# 899 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5712
5713# 899 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5714#if defined(MFC_OpenACC)
5715# 899 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5716!$acc end parallel loop
5717# 899 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5718#elif defined(MFC_OpenMP)
5719# 899 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5720
5721# 899 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5722
5723# 899 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5724!$omp end target teams loop
5725# 899 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5726#endif
5727# 899 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5728
5729 elseif (t_step == t_step_start + 3) then
5730
5731# 901 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5732
5733# 901 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5734#if defined(MFC_OpenACC)
5735# 901 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5736!$acc parallel loop collapse(4) gang vector default(present)
5737# 901 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5738#elif defined(MFC_OpenMP)
5739# 901 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5740
5741# 901 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5742
5743# 901 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5744
5745# 901 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5746!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
5747# 901 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5748#endif
5749# 901 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5750
5751 do i = 1, sys_size
5752 do l = 0, p
5753 do k = 0, n
5754 do j = 0, m
5755 q_prim_ts1(1)%vf(i)%sf(j, k, l) = q_prim_vf(i)%sf(j, k, l)
5756 end do
5757 end do
5758 end do
5759 end do
5760
5761# 911 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5762
5763# 911 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5764#if defined(MFC_OpenACC)
5765# 911 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5766!$acc end parallel loop
5767# 911 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5768#elif defined(MFC_OpenMP)
5769# 911 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5770
5771# 911 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5772
5773# 911 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5774!$omp end target teams loop
5775# 911 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5776#endif
5777# 911 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5778
5779 else ! All other timesteps
5780
5781# 913 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5782
5783# 913 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5784#if defined(MFC_OpenACC)
5785# 913 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5786!$acc parallel loop collapse(4) gang vector default(present)
5787# 913 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5788#elif defined(MFC_OpenMP)
5789# 913 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5790
5791# 913 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5792
5793# 913 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5794
5795# 913 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5796!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(4) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer)
5797# 913 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5798#endif
5799# 913 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5800
5801 do i = 1, sys_size
5802 do l = 0, p
5803 do k = 0, n
5804 do j = 0, m
5805 q_prim_ts2(2)%vf(i)%sf(j, k, l) = q_prim_ts2(1)%vf(i)%sf(j, k, l)
5806 q_prim_ts2(1)%vf(i)%sf(j, k, l) = q_prim_ts1(2)%vf(i)%sf(j, k, l)
5807 q_prim_ts1(2)%vf(i)%sf(j, k, l) = q_prim_ts1(1)%vf(i)%sf(j, k, l)
5808 q_prim_ts1(1)%vf(i)%sf(j, k, l) = q_prim_vf(i)%sf(j, k, l)
5809 end do
5810 end do
5811 end do
5812 end do
5813
5814# 926 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5815
5816# 926 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5817#if defined(MFC_OpenACC)
5818# 926 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5819!$acc end parallel loop
5820# 926 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5821#elif defined(MFC_OpenMP)
5822# 926 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5823
5824# 926 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5825
5826# 926 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5827!$omp end target teams loop
5828# 926 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5829#endif
5830# 926 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5831
5832 end if
5833
5834 end subroutine s_time_step_cycling
5835
5836 !> Module deallocation and/or disassociation procedures
5838#ifdef FRONTIER_UNIFIED
5839 use hipfort
5840 use hipfort_hipmalloc
5841 use hipfort_check
5842#endif
5843 integer :: i, j !< Generic loop iterators
5844
5845 ! Deallocating the cell-average conservative variables
5846#if defined(__NVCOMPILER_GPU_UNIFIED_MEM)
5847 do j = 1, sys_size
5848#ifdef MFC_DEBUG
5849# 943 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5850 block
5851# 943 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5852 use iso_fortran_env, only: output_unit
5853# 943 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5854
5855# 943 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5856 print *, 'm_time_steppers.fpp:943: ', '@:DEALLOCATE(q_cons_ts(1)%vf(j)%sf)'
5857# 943 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5858
5859# 943 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5860 call flush (output_unit)
5861# 943 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5862 end block
5863# 943 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5864#endif
5865# 943 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5866
5867# 943 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5868#if defined(MFC_OpenACC)
5869# 943 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5870!$acc exit data delete(q_cons_ts(1)%vf(j)%sf)
5871# 943 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5872#elif defined(MFC_OpenMP)
5873# 943 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5874!$omp target exit data map(release:q_cons_ts(1)%vf(j)%sf)
5875# 943 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5876#endif
5877# 943 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5878 deallocate (q_cons_ts(1)%vf(j)%sf)
5879 if (num_ts == 2) then
5880 if (nv_uvm_out_of_core) then
5881 nullify (q_cons_ts(2)%vf(j)%sf)
5882 else
5883#ifdef MFC_DEBUG
5884# 948 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5885 block
5886# 948 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5887 use iso_fortran_env, only: output_unit
5888# 948 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5889
5890# 948 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5891 print *, 'm_time_steppers.fpp:948: ', '@:DEALLOCATE(q_cons_ts(2)%vf(j)%sf)'
5892# 948 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5893
5894# 948 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5895 call flush (output_unit)
5896# 948 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5897 end block
5898# 948 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5899#endif
5900# 948 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5901
5902# 948 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5903#if defined(MFC_OpenACC)
5904# 948 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5905!$acc exit data delete(q_cons_ts(2)%vf(j)%sf)
5906# 948 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5907#elif defined(MFC_OpenMP)
5908# 948 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5909!$omp target exit data map(release:q_cons_ts(2)%vf(j)%sf)
5910# 948 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5911#endif
5912# 948 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5913 deallocate (q_cons_ts(2)%vf(j)%sf)
5914 end if
5915 end if
5916 end do
5917 if (num_ts == 2 .and. nv_uvm_out_of_core) then
5918 deallocate (q_cons_ts_pool_host)
5919 end if
5920#elif defined(FRONTIER_UNIFIED)
5921 do i = 1, num_ts
5922 do j = 1, sys_size
5923 nullify (q_cons_ts(i)%vf(j)%sf)
5924 end do
5925 end do
5926#ifdef MFC_MIXED_PRECISION
5927 call hipcheck(hiphostfree_(c_loc(q_cons_ts_pool_host)))
5928 nullify (q_cons_ts_pool_host)
5929 call hipcheck(hipfree_(c_loc(q_cons_ts_pool_device)))
5930 nullify (q_cons_ts_pool_device)
5931#else
5932 call hipcheck(hiphostfree(q_cons_ts_pool_host))
5933 call hipcheck(hipfree(q_cons_ts_pool_device))
5934#endif
5935#else
5936 do i = 1, num_ts
5937 do j = 1, sys_size
5938#ifdef MFC_DEBUG
5939# 973 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5940 block
5941# 973 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5942 use iso_fortran_env, only: output_unit
5943# 973 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5944
5945# 973 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5946 print *, 'm_time_steppers.fpp:973: ', '@:DEALLOCATE(q_cons_ts(i)%vf(j)%sf)'
5947# 973 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5948
5949# 973 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5950 call flush (output_unit)
5951# 973 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5952 end block
5953# 973 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5954#endif
5955# 973 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5956
5957# 973 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5958#if defined(MFC_OpenACC)
5959# 973 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5960!$acc exit data delete(q_cons_ts(i)%vf(j)%sf)
5961# 973 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5962#elif defined(MFC_OpenMP)
5963# 973 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5964!$omp target exit data map(release:q_cons_ts(i)%vf(j)%sf)
5965# 973 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5966#endif
5967# 973 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5968 deallocate (q_cons_ts(i)%vf(j)%sf)
5969 end do
5970 end do
5971#endif
5972 do i = 1, num_ts
5973#ifdef MFC_DEBUG
5974# 978 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5975 block
5976# 978 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5977 use iso_fortran_env, only: output_unit
5978# 978 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5979
5980# 978 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5981 print *, 'm_time_steppers.fpp:978: ', '@:DEALLOCATE(q_cons_ts(i)%vf)'
5982# 978 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5983
5984# 978 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5985 call flush (output_unit)
5986# 978 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5987 end block
5988# 978 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5989#endif
5990# 978 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5991
5992# 978 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5993#if defined(MFC_OpenACC)
5994# 978 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5995!$acc exit data delete(q_cons_ts(i)%vf)
5996# 978 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5997#elif defined(MFC_OpenMP)
5998# 978 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
5999!$omp target exit data map(release:q_cons_ts(i)%vf)
6000# 978 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6001#endif
6002# 978 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6003 deallocate (q_cons_ts(i)%vf)
6004 end do
6005
6006#ifdef MFC_DEBUG
6007# 981 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6008 block
6009# 981 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6010 use iso_fortran_env, only: output_unit
6011# 981 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6012
6013# 981 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6014 print *, 'm_time_steppers.fpp:981: ', '@:DEALLOCATE(q_cons_ts)'
6015# 981 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6016
6017# 981 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6018 call flush (output_unit)
6019# 981 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6020 end block
6021# 981 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6022#endif
6023# 981 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6024
6025# 981 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6026#if defined(MFC_OpenACC)
6027# 981 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6028!$acc exit data delete(q_cons_ts)
6029# 981 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6030#elif defined(MFC_OpenMP)
6031# 981 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6032!$omp target exit data map(release:q_cons_ts)
6033# 981 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6034#endif
6035# 981 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6036 deallocate (q_cons_ts)
6037
6038 ! Deallocating the cell-average primitive ts variables
6039 if (probe_wrt) then
6040 do i = 1, num_probe_ts
6041 do j = 1, sys_size
6042#ifdef MFC_DEBUG
6043# 987 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6044 block
6045# 987 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6046 use iso_fortran_env, only: output_unit
6047# 987 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6048
6049# 987 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6050 print *, 'm_time_steppers.fpp:987: ', '@:DEALLOCATE(q_prim_ts1(i)%vf(j)%sf, q_prim_ts2(i)%vf(j)%sf)'
6051# 987 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6052
6053# 987 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6054 call flush (output_unit)
6055# 987 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6056 end block
6057# 987 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6058#endif
6059# 987 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6060
6061# 987 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6062#if defined(MFC_OpenACC)
6063# 987 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6064!$acc exit data delete(q_prim_ts1(i)%vf(j)%sf, q_prim_ts2(i)%vf(j)%sf)
6065# 987 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6066#elif defined(MFC_OpenMP)
6067# 987 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6068!$omp target exit data map(release:q_prim_ts1(i)%vf(j)%sf, q_prim_ts2(i)%vf(j)%sf)
6069# 987 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6070#endif
6071# 987 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6072 deallocate (q_prim_ts1(i)%vf(j)%sf, q_prim_ts2(i)%vf(j)%sf)
6073 end do
6074#ifdef MFC_DEBUG
6075# 989 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6076 block
6077# 989 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6078 use iso_fortran_env, only: output_unit
6079# 989 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6080
6081# 989 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6082 print *, 'm_time_steppers.fpp:989: ', '@:DEALLOCATE(q_prim_ts1(i)%vf, q_prim_ts2(i)%vf)'
6083# 989 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6084
6085# 989 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6086 call flush (output_unit)
6087# 989 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6088 end block
6089# 989 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6090#endif
6091# 989 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6092
6093# 989 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6094#if defined(MFC_OpenACC)
6095# 989 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6096!$acc exit data delete(q_prim_ts1(i)%vf, q_prim_ts2(i)%vf)
6097# 989 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6098#elif defined(MFC_OpenMP)
6099# 989 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6100!$omp target exit data map(release:q_prim_ts1(i)%vf, q_prim_ts2(i)%vf)
6101# 989 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6102#endif
6103# 989 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6104 deallocate (q_prim_ts1(i)%vf, q_prim_ts2(i)%vf)
6105 end do
6106#ifdef MFC_DEBUG
6107# 991 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6108 block
6109# 991 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6110 use iso_fortran_env, only: output_unit
6111# 991 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6112
6113# 991 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6114 print *, 'm_time_steppers.fpp:991: ', '@:DEALLOCATE(q_prim_ts1, q_prim_ts2)'
6115# 991 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6116
6117# 991 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6118 call flush (output_unit)
6119# 991 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6120 end block
6121# 991 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6122#endif
6123# 991 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6124
6125# 991 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6126#if defined(MFC_OpenACC)
6127# 991 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6128!$acc exit data delete(q_prim_ts1, q_prim_ts2)
6129# 991 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6130#elif defined(MFC_OpenMP)
6131# 991 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6132!$omp target exit data map(release:q_prim_ts1, q_prim_ts2)
6133# 991 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6134#endif
6135# 991 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6136 deallocate (q_prim_ts1, q_prim_ts2)
6137 end if
6138
6139 if (.not. igr) then
6140 ! Deallocating the cell-average primitive variables
6141 do i = 1, adv_idx%end
6142#ifdef MFC_DEBUG
6143# 997 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6144 block
6145# 997 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6146 use iso_fortran_env, only: output_unit
6147# 997 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6148
6149# 997 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6150 print *, 'm_time_steppers.fpp:997: ', '@:DEALLOCATE(q_prim_vf(i)%sf)'
6151# 997 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6152
6153# 997 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6154 call flush (output_unit)
6155# 997 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6156 end block
6157# 997 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6158#endif
6159# 997 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6160
6161# 997 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6162#if defined(MFC_OpenACC)
6163# 997 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6164!$acc exit data delete(q_prim_vf(i)%sf)
6165# 997 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6166#elif defined(MFC_OpenMP)
6167# 997 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6168!$omp target exit data map(release:q_prim_vf(i)%sf)
6169# 997 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6170#endif
6171# 997 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6172 deallocate (q_prim_vf(i)%sf)
6173 end do
6174
6175 if (mhd) then
6176 do i = b_idx%beg, b_idx%end
6177#ifdef MFC_DEBUG
6178# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6179 block
6180# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6181 use iso_fortran_env, only: output_unit
6182# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6183
6184# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6185 print *, 'm_time_steppers.fpp:1002: ', '@:DEALLOCATE(q_prim_vf(i)%sf)'
6186# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6187
6188# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6189 call flush (output_unit)
6190# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6191 end block
6192# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6193#endif
6194# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6195
6196# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6197#if defined(MFC_OpenACC)
6198# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6199!$acc exit data delete(q_prim_vf(i)%sf)
6200# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6201#elif defined(MFC_OpenMP)
6202# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6203!$omp target exit data map(release:q_prim_vf(i)%sf)
6204# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6205#endif
6206# 1002 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6207 deallocate (q_prim_vf(i)%sf)
6208 end do
6209 end if
6210
6211 if (elasticity) then
6212 do i = stress_idx%beg, stress_idx%end
6213#ifdef MFC_DEBUG
6214# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6215 block
6216# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6217 use iso_fortran_env, only: output_unit
6218# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6219
6220# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6221 print *, 'm_time_steppers.fpp:1008: ', '@:DEALLOCATE(q_prim_vf(i)%sf)'
6222# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6223
6224# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6225 call flush (output_unit)
6226# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6227 end block
6228# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6229#endif
6230# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6231
6232# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6233#if defined(MFC_OpenACC)
6234# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6235!$acc exit data delete(q_prim_vf(i)%sf)
6236# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6237#elif defined(MFC_OpenMP)
6238# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6239!$omp target exit data map(release:q_prim_vf(i)%sf)
6240# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6241#endif
6242# 1008 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6243 deallocate (q_prim_vf(i)%sf)
6244 end do
6245 end if
6246
6247 if (hyperelasticity) then
6248 do i = xibeg, xiend + 1
6249#ifdef MFC_DEBUG
6250# 1014 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6251 block
6252# 1014 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6253 use iso_fortran_env, only: output_unit
6254# 1014 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6255
6256# 1014 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6257 print *, 'm_time_steppers.fpp:1014: ', '@:DEALLOCATE(q_prim_vf(i)%sf)'
6258# 1014 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6259
6260# 1014 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6261 call flush (output_unit)
6262# 1014 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6263 end block
6264# 1014 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6265#endif
6266# 1014 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6267
6268# 1014 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6269#if defined(MFC_OpenACC)
6270# 1014 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6271!$acc exit data delete(q_prim_vf(i)%sf)
6272# 1014 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6273#elif defined(MFC_OpenMP)
6274# 1014 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6275!$omp target exit data map(release:q_prim_vf(i)%sf)
6276# 1014 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6277#endif
6278# 1014 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6279 deallocate (q_prim_vf(i)%sf)
6280 end do
6281 end if
6282
6283 if (cont_damage) then
6284#ifdef MFC_DEBUG
6285# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6286 block
6287# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6288 use iso_fortran_env, only: output_unit
6289# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6290
6291# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6292 print *, 'm_time_steppers.fpp:1019: ', '@:DEALLOCATE(q_prim_vf(damage_idx)%sf)'
6293# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6294
6295# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6296 call flush (output_unit)
6297# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6298 end block
6299# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6300#endif
6301# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6302
6303# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6304#if defined(MFC_OpenACC)
6305# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6306!$acc exit data delete(q_prim_vf(damage_idx)%sf)
6307# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6308#elif defined(MFC_OpenMP)
6309# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6310!$omp target exit data map(release:q_prim_vf(damage_idx)%sf)
6311# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6312#endif
6313# 1019 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6314 deallocate (q_prim_vf(damage_idx)%sf)
6315 end if
6316
6317 if (hyper_cleaning) then
6318#ifdef MFC_DEBUG
6319# 1023 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6320 block
6321# 1023 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6322 use iso_fortran_env, only: output_unit
6323# 1023 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6324
6325# 1023 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6326 print *, 'm_time_steppers.fpp:1023: ', '@:DEALLOCATE(q_prim_vf(psi_idx)%sf)'
6327# 1023 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6328
6329# 1023 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6330 call flush (output_unit)
6331# 1023 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6332 end block
6333# 1023 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6334#endif
6335# 1023 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6336
6337# 1023 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6338#if defined(MFC_OpenACC)
6339# 1023 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6340!$acc exit data delete(q_prim_vf(psi_idx)%sf)
6341# 1023 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6342#elif defined(MFC_OpenMP)
6343# 1023 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6344!$omp target exit data map(release:q_prim_vf(psi_idx)%sf)
6345# 1023 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6346#endif
6347# 1023 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6348 deallocate (q_prim_vf(psi_idx)%sf)
6349 end if
6350
6351 if (bubbles_euler) then
6352 do i = bub_idx%beg, bub_idx%end
6353#ifdef MFC_DEBUG
6354# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6355 block
6356# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6357 use iso_fortran_env, only: output_unit
6358# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6359
6360# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6361 print *, 'm_time_steppers.fpp:1028: ', '@:DEALLOCATE(q_prim_vf(i)%sf)'
6362# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6363
6364# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6365 call flush (output_unit)
6366# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6367 end block
6368# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6369#endif
6370# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6371
6372# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6373#if defined(MFC_OpenACC)
6374# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6375!$acc exit data delete(q_prim_vf(i)%sf)
6376# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6377#elif defined(MFC_OpenMP)
6378# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6379!$omp target exit data map(release:q_prim_vf(i)%sf)
6380# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6381#endif
6382# 1028 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6383 deallocate (q_prim_vf(i)%sf)
6384 end do
6385 end if
6386
6387 if (model_eqns == 3) then
6388 do i = internalenergies_idx%beg, internalenergies_idx%end
6389#ifdef MFC_DEBUG
6390# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6391 block
6392# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6393 use iso_fortran_env, only: output_unit
6394# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6395
6396# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6397 print *, 'm_time_steppers.fpp:1034: ', '@:DEALLOCATE(q_prim_vf(i)%sf)'
6398# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6399
6400# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6401 call flush (output_unit)
6402# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6403 end block
6404# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6405#endif
6406# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6407
6408# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6409#if defined(MFC_OpenACC)
6410# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6411!$acc exit data delete(q_prim_vf(i)%sf)
6412# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6413#elif defined(MFC_OpenMP)
6414# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6415!$omp target exit data map(release:q_prim_vf(i)%sf)
6416# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6417#endif
6418# 1034 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6419 deallocate (q_prim_vf(i)%sf)
6420 end do
6421 end if
6422 end if
6423
6424#ifdef MFC_DEBUG
6425# 1039 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6426 block
6427# 1039 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6428 use iso_fortran_env, only: output_unit
6429# 1039 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6430
6431# 1039 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6432 print *, 'm_time_steppers.fpp:1039: ', '@:DEALLOCATE(q_prim_vf)'
6433# 1039 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6434
6435# 1039 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6436 call flush (output_unit)
6437# 1039 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6438 end block
6439# 1039 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6440#endif
6441# 1039 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6442
6443# 1039 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6444#if defined(MFC_OpenACC)
6445# 1039 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6446!$acc exit data delete(q_prim_vf)
6447# 1039 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6448#elif defined(MFC_OpenMP)
6449# 1039 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6450!$omp target exit data map(release:q_prim_vf)
6451# 1039 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6452#endif
6453# 1039 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6454 deallocate (q_prim_vf)
6455
6456 ! Deallocating the cell-average RHS variables
6457 do i = 1, sys_size
6458#ifdef MFC_DEBUG
6459# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6460 block
6461# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6462 use iso_fortran_env, only: output_unit
6463# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6464
6465# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6466 print *, 'm_time_steppers.fpp:1043: ', '@:DEALLOCATE(rhs_vf(i)%sf)'
6467# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6468
6469# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6470 call flush (output_unit)
6471# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6472 end block
6473# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6474#endif
6475# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6476
6477# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6478#if defined(MFC_OpenACC)
6479# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6480!$acc exit data delete(rhs_vf(i)%sf)
6481# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6482#elif defined(MFC_OpenMP)
6483# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6484!$omp target exit data map(release:rhs_vf(i)%sf)
6485# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6486#endif
6487# 1043 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6488 deallocate (rhs_vf(i)%sf)
6489 end do
6490
6491#ifdef MFC_DEBUG
6492# 1046 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6493 block
6494# 1046 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6495 use iso_fortran_env, only: output_unit
6496# 1046 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6497
6498# 1046 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6499 print *, 'm_time_steppers.fpp:1046: ', '@:DEALLOCATE(rhs_vf)'
6500# 1046 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6501
6502# 1046 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6503 call flush (output_unit)
6504# 1046 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6505 end block
6506# 1046 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6507#endif
6508# 1046 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6509
6510# 1046 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6511#if defined(MFC_OpenACC)
6512# 1046 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6513!$acc exit data delete(rhs_vf)
6514# 1046 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6515#elif defined(MFC_OpenMP)
6516# 1046 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6517!$omp target exit data map(release:rhs_vf)
6518# 1046 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6519#endif
6520# 1046 "/home/runner/work/MFC/MFC/src/simulation/m_time_steppers.fpp"
6521 deallocate (rhs_vf)
6522
6523 ! Writing the footer of and closing the run-time information file
6524 if (proc_rank == 0 .and. run_time_info) then
6525 call s_close_run_time_information_file()
6526 end if
6527
6528 end subroutine s_finalize_time_steppers_module
6529
6530end module m_time_steppers
integer, intent(in) k
integer, intent(in) j
integer, intent(in) l
Computes gravitational and user-defined body force source terms for the momentum equations.
Noncharacteristic and processor boundary condition application for ghost cells and buffer regions.
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.
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...
integer time_stepper
Time-stepper algorithm.
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions...
Computes the left Cauchy–Green deformation tensor and hyperelastic stress source terms.
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...
Assembles the right-hand side of the governing equations using finite-volume flux differencing,...
Simulation helper routines for enthalpy computation, 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.
impure subroutine s_initialize_time_steppers_module
The computation of parameters, the allocation of memory, the association of pointers and/or the execu...
integer, private num_probe_ts
subroutine s_apply_bodyforces(q_cons_vf, q_prim_vf_in, rhs_vf_in, ldt)
This subroutine applies the body forces source term at each Runge-Kutta stage.
type(integer_field), dimension(:, :), allocatable bc_type
Boundary condition identifiers.
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.
real(wp), dimension(:, :, :, :, :), allocatable rhs_pb
type(vector_field), dimension(:), allocatable q_cons_ts
Cell-average conservative variables at each time-stage (TS).
type(vector_field), dimension(:), allocatable q_prim_ts2
Cell-average primitive variables at consecutive TIMESTEPS.
subroutine s_time_step_cycling(t_step)
This subroutine saves the temporary q_prim_vf vector into the q_prim_ts vector that is then used in p...
real(wp), dimension(:, :, :, :, :), allocatable rhs_mv
type(vector_field), dimension(:), allocatable q_prim_ts1
subroutine s_propagate_immersed_boundaries(s)
Updates immersed boundary positions and velocities at the current Runge-Kutta stage.
real(wp), dimension(:, :, :), allocatable max_dt
type(scalar_field), dimension(:), allocatable q_prim_vf
Cell-average primitive variables at the current time-stage.
real(wp), dimension(:, :), allocatable rk_coef
impure subroutine s_finalize_time_steppers_module
Module deallocation and/or disassociation procedures.
impure subroutine s_compute_dt()
Computes the global time step size from CFL stability constraints across all cells.
impure subroutine s_tvd_rk(t_step, time_avg, nstage)
Advances 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.
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).