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