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