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