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