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