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