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