1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
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"
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"
19# 15 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
20# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
40# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
41# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
42# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
45# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
49# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 15 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
66# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
72# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
74# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
75# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
76# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
77# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 126 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114# 156 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116# 197 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118# 211 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120# 236 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122# 247 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124# 249 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125# 260 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127# 310 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 320 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 339 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 356 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 366 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 373 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141# 379 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143# 385 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145# 391 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147# 397 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
149# 403 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
151# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
152# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
153# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
154# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
155# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
156# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
157# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
161# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164# 15 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
165# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
168# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
174# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
176# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
178# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
180# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
182# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
184# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
186# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
234# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
236# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
238# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
240# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
242# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
245# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
287# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
290# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
293# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
296# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
299# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
301# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
302# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
304# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
306# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
311# 52 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
314# 72 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
317# 80 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
320# 104 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
323# 120 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
326# 145 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
328# 151 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
330# 158 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
332# 6 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp" 2
357 real(wp),
allocatable,
dimension(:,:,:) ::
rhom
359# 31 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
360#if defined(MFC_OpenACC)
361# 31 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
363# 31 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
364#elif defined(MFC_OpenMP)
365# 31 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
367# 31 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
372# 34 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
373#if defined(MFC_OpenACC)
374# 34 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
376# 34 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
377#elif defined(MFC_OpenMP)
378# 34 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
380# 34 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
391# 43 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
392#if defined(MFC_OpenACC)
393# 43 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
395# 43 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
396#elif defined(MFC_OpenMP)
397# 43 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
399# 43 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
402# 44 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
403#if defined(MFC_OpenACC)
404# 44 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
406# 44 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
407#elif defined(MFC_OpenMP)
408# 44 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
410# 44 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
420 integer :: s, m_wave, m_global
422 real(wp) :: rn1, rn2, k_mag
423 real(wp),
dimension(3) :: khat, xi, sig, sig_tmp
428# 60 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
430# 60 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
431 use iso_fortran_env,
only: output_unit
432# 60 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
434# 60 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
435 print *,
'm_body_forces.fpp:60: ',
'@:ALLOCATE(rhoM(-buff_size:buff_size + m, -buff_size:buff_size + n, -buff_size:buff_size + p))'
436# 60 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
438# 60 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
439 call flush (output_unit)
440# 60 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
442# 60 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
444# 60 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
446# 60 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
448# 60 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
450# 60 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
451#if defined(MFC_OpenACC)
452# 60 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
454# 60 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
455#elif defined(MFC_OpenMP)
456# 60 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
458# 60 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
462# 62 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
464# 62 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
465 use iso_fortran_env,
only: output_unit
466# 62 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
468# 62 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
469 print *,
'm_body_forces.fpp:62: ',
'@:ALLOCATE(rhoM(-buff_size:buff_size + m, -buff_size:buff_size + n, 0:0))'
470# 62 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
472# 62 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
473 call flush (output_unit)
474# 62 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
476# 62 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
478# 62 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
479 allocate (
rhom(-buff_size:buff_size + m, -buff_size:buff_size + n, 0:0))
480# 62 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
482# 62 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
484# 62 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
485#if defined(MFC_OpenACC)
486# 62 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
488# 62 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
489#elif defined(MFC_OpenMP)
490# 62 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
492# 62 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
497# 65 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
499# 65 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
500 use iso_fortran_env,
only: output_unit
501# 65 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
503# 65 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
504 print *,
'm_body_forces.fpp:65: ',
'@:ALLOCATE(rhoM(-buff_size:buff_size + m, 0:0, 0:0))'
505# 65 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
507# 65 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
508 call flush (output_unit)
509# 65 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
511# 65 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
513# 65 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
514 allocate (
rhom(-buff_size:buff_size + m, 0:0, 0:0))
515# 65 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
517# 65 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
519# 65 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
520#if defined(MFC_OpenACC)
521# 65 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
523# 65 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
524#elif defined(MFC_OpenMP)
525# 65 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
527# 65 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
531 if (bf_spatial_support)
then
535 if (.not. synthetic_turbulence)
return
536 if (synth_n_shells <= 0)
return
543# 79 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
545# 79 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
546 use iso_fortran_env,
only: output_unit
547# 79 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
549# 79 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
550 print *,
'm_body_forces.fpp:79: ',
'@:ALLOCATE(synthetic_k_x(1:num_synthetic_wave_numbers))'
551# 79 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
553# 79 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
554 call flush (output_unit)
555# 79 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
557# 79 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
559# 79 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
561# 79 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
563# 79 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
565# 79 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
566#if defined(MFC_OpenACC)
567# 79 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
569# 79 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
570#elif defined(MFC_OpenMP)
571# 79 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
573# 79 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
576# 80 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
578# 80 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
579 use iso_fortran_env,
only: output_unit
580# 80 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
582# 80 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
583 print *,
'm_body_forces.fpp:80: ',
'@:ALLOCATE(synthetic_phase(1:num_synthetic_wave_numbers))'
584# 80 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
586# 80 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
587 call flush (output_unit)
588# 80 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
590# 80 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
592# 80 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
594# 80 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
596# 80 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
598# 80 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
599#if defined(MFC_OpenACC)
600# 80 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
602# 80 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
603#elif defined(MFC_OpenMP)
604# 80 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
606# 80 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
609# 81 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
611# 81 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
612 use iso_fortran_env,
only: output_unit
613# 81 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
615# 81 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
616 print *,
'm_body_forces.fpp:81: ',
'@:ALLOCATE(synthetic_amp(1:num_synthetic_wave_numbers))'
617# 81 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
619# 81 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
620 call flush (output_unit)
621# 81 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
623# 81 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
625# 81 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
627# 81 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
629# 81 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
631# 81 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
632#if defined(MFC_OpenACC)
633# 81 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
635# 81 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
636#elif defined(MFC_OpenMP)
637# 81 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
639# 81 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
642# 82 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
644# 82 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
645 use iso_fortran_env,
only: output_unit
646# 82 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
648# 82 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
649 print *,
'm_body_forces.fpp:82: ',
'@:ALLOCATE(synthetic_ex(1:num_synthetic_wave_numbers))'
650# 82 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
652# 82 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
653 call flush (output_unit)
654# 82 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
656# 82 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
658# 82 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
660# 82 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
662# 82 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
664# 82 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
665#if defined(MFC_OpenACC)
666# 82 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
668# 82 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
669#elif defined(MFC_OpenMP)
670# 82 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
672# 82 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
675# 83 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
677# 83 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
678 use iso_fortran_env,
only: output_unit
679# 83 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
681# 83 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
682 print *,
'm_body_forces.fpp:83: ',
'@:ALLOCATE(synthetic_ey(1:num_synthetic_wave_numbers))'
683# 83 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
685# 83 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
686 call flush (output_unit)
687# 83 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
689# 83 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
691# 83 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
693# 83 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
695# 83 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
697# 83 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
698#if defined(MFC_OpenACC)
699# 83 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
701# 83 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
702#elif defined(MFC_OpenMP)
703# 83 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
705# 83 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
708# 84 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
710# 84 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
711 use iso_fortran_env,
only: output_unit
712# 84 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
714# 84 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
715 print *,
'm_body_forces.fpp:84: ',
'@:ALLOCATE(synthetic_ez(1:num_synthetic_wave_numbers))'
716# 84 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
718# 84 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
719 call flush (output_unit)
720# 84 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
722# 84 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
724# 84 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
726# 84 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
728# 84 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
730# 84 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
731#if defined(MFC_OpenACC)
732# 84 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
734# 84 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
735#elif defined(MFC_OpenMP)
736# 84 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
738# 84 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
741 if (num_dims > 1)
then
743# 87 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
745# 87 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
746 use iso_fortran_env,
only: output_unit
747# 87 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
749# 87 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
750 print *,
'm_body_forces.fpp:87: ',
'@:ALLOCATE(synthetic_k_y(1:num_synthetic_wave_numbers))'
751# 87 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
753# 87 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
754 call flush (output_unit)
755# 87 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
757# 87 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
759# 87 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
761# 87 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
763# 87 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
765# 87 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
766#if defined(MFC_OpenACC)
767# 87 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
769# 87 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
770#elif defined(MFC_OpenMP)
771# 87 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
773# 87 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
777 if (num_dims == 3)
then
779# 91 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
781# 91 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
782 use iso_fortran_env,
only: output_unit
783# 91 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
785# 91 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
786 print *,
'm_body_forces.fpp:91: ',
'@:ALLOCATE(synthetic_k_z(1:num_synthetic_wave_numbers))'
787# 91 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
789# 91 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
790 call flush (output_unit)
791# 91 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
793# 91 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
795# 91 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
797# 91 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
799# 91 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
801# 91 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
802#if defined(MFC_OpenACC)
803# 91 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
805# 91 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
806#elif defined(MFC_OpenMP)
807# 91 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
809# 91 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
817 if (proc_rank == 0)
then
821 do s = 1, synth_n_shells
822 k_mag = synth_k_shell(s)
823 do m_wave = 1, synth_n_waves_per_shell(s)
824 m_global = m_global + 1
826 if (num_dims == 1)
then
832 else if (num_dims == 2)
then
834 call s_prng(rn1, seed)
843 call s_prng(rn1, seed)
844 call s_prng(rn2, seed)
845 khat = f_unit_vector(rn1, rn2)
848 call s_prng(rn1, seed)
849 call s_prng(rn2, seed)
850 xi = f_unit_vector(rn1, rn2)
851 sig_tmp = f_cross(xi, khat)
852 sig_tmp = sig_tmp/max(sqrt(sum(sig_tmp**2._wp)), 1.e-10_wp)
853 sig = f_cross(khat, sig_tmp)
862 call s_prng(rn1, seed)
878 if (num_dims > 1)
then
882 if (num_dims == 3)
then
888# 168 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
889#if defined(MFC_OpenACC)
890# 168 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
892# 168 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
893#elif defined(MFC_OpenMP)
894# 168 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
896# 168 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
899# 169 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
900#if defined(MFC_OpenACC)
901# 169 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
903# 169 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
904#elif defined(MFC_OpenMP)
905# 169 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
907# 169 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
910 if (num_dims > 1)
then
912# 172 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
913#if defined(MFC_OpenACC)
914# 172 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
916# 172 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
917#elif defined(MFC_OpenMP)
918# 172 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
920# 172 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
924 if (num_dims == 3)
then
926# 176 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
927#if defined(MFC_OpenACC)
928# 176 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
930# 176 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
931#elif defined(MFC_OpenMP)
932# 176 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
934# 176 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
946 spbf_xc = spatial_bf%x_centroid
947 spbf_yc = spatial_bf%y_centroid
952# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
954# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
955 use iso_fortran_env,
only: output_unit
956# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
958# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
959 print *,
'm_body_forces.fpp:192: ',
'@:ALLOCATE(freq(spbf_num_freq), phase(spbf_num_freq))'
960# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
962# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
963 call flush (output_unit)
964# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
966# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
968# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
970# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
972# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
974# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
976# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
977#if defined(MFC_OpenACC)
978# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
980# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
981#elif defined(MFC_OpenMP)
982# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
984# 192 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
986#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
987# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
989# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
991# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
993# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
994#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
995# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
996 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
997# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
999# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1000 use cuda_runtime_api
1001# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1003# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1005# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1007# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1008 if (nv_uvm_pref_gpu)
then
1009# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1011# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1012 istat = cudamemadvise(c_devloc(
freq), sizeof(
freq), cudamemadvisesetpreferredlocation, 0)
1013# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1014 if (istat /= cudasuccess)
then
1015# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1016 write (*,
"('Error code: ',I0, ': ')") istat
1017# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1019# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1021# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1022 istat = cudamemadvise(c_devloc(
freq), sizeof(
freq), cudamemadvisesetaccessedby, cudacpudeviceid)
1023# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1024 if (istat /= cudasuccess)
then
1025# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1026 write (*,
"('Error code: ',I0, ': ')") istat
1027# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1029# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1031# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1032 istat = cudamemprefetchasync(c_devloc(
freq), sizeof(
freq), 0, 0)
1033# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1034 if (istat /= cudasuccess)
then
1035# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1036 write (*,
"('Error code: ',I0, ': ')") istat
1037# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1039# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1041# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1043# 193 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1045#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
1046# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1048# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1050# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1052# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1053#if __NVCOMPILER_MAJOR__ < 25 || (__NVCOMPILER_MAJOR__ == 25 && __NVCOMPILER_MINOR__ < 3)
1054# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1055 use cudafor, gpu_sum => sum, gpu_maxval => maxval, gpu_minval => minval
1056# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1058# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1059 use cuda_runtime_api
1060# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1062# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1064# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1066# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1067 if (nv_uvm_pref_gpu)
then
1068# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1070# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1071 istat = cudamemadvise(c_devloc(
phase), sizeof(
phase), cudamemadvisesetpreferredlocation, 0)
1072# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1073 if (istat /= cudasuccess)
then
1074# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1075 write (*,
"('Error code: ',I0, ': ')") istat
1076# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1078# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1080# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1081 istat = cudamemadvise(c_devloc(
phase), sizeof(
phase), cudamemadvisesetaccessedby, cudacpudeviceid)
1082# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1083 if (istat /= cudasuccess)
then
1084# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1085 write (*,
"('Error code: ',I0, ': ')") istat
1086# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1088# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1090# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1091 istat = cudamemprefetchasync(c_devloc(
phase), sizeof(
phase), 0, 0)
1092# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1093 if (istat /= cudasuccess)
then
1094# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1095 write (*,
"('Error code: ',I0, ': ')") istat
1096# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1098# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1100# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1102# 194 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1105 freq(f) = spatial_bf%freq(f)
1106 phase(f) = spatial_bf%phase(f)
1109# 199 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1110#if defined(MFC_OpenACC)
1111# 199 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1113# 199 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1114#elif defined(MFC_OpenMP)
1115# 199 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1117# 199 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1125 real(wp),
intent(in) :: t
1127# 209 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1129 accel_bf(1) = g_x + k_x*sin(w_x*t - p_x)
1131# 209 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1133 accel_bf(2) = g_y + k_y*sin(w_y*t - p_y)
1135# 209 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1137 accel_bf(3) = g_z + k_z*sin(w_z*t - p_z)
1139# 213 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1142# 214 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1143#if defined(MFC_OpenACC)
1144# 214 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1146# 214 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1147#elif defined(MFC_OpenMP)
1148# 214 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1150# 214 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1158 real(wp),
intent(in) :: t
1159 type(int_bounds_info),
dimension(1:3),
intent(in) :: bounds
1161 real(wp) :: theta_x, theta_y, pre_fac
1169# 231 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1171# 231 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1172#if defined(MFC_OpenACC)
1173# 231 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1175# 231 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1176#elif defined(MFC_OpenMP)
1177# 231 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1179# 231 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1181# 231 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1183# 231 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1185# 231 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1187# 231 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1189 do l = bounds(3)%beg, bounds(3)%end
1190 do k = bounds(2)%beg, bounds(2)%end
1191 do j = bounds(1)%beg, bounds(1)%end
1192 spbf_source_x(j, k, l) = 0._wp
1193 spbf_source_y(j, k, l) = 0._wp
1198# 240 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1199#if defined(MFC_OpenACC)
1200# 240 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1202# 240 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1203#elif defined(MFC_OpenMP)
1204# 240 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1206# 240 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1208# 240 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1214# 244 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1216# 244 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1217#if defined(MFC_OpenACC)
1218# 244 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1220# 244 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1221#elif defined(MFC_OpenMP)
1222# 244 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1224# 244 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1226# 244 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1228# 244 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1230# 244 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1232# 244 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1234 do l = bounds(3)%beg, bounds(3)%end
1235 do k = bounds(2)%beg, bounds(2)%end
1236 do j = bounds(1)%beg, bounds(1)%end
1238 spbf_source_x(j, k, l) = 0._wp
1239 spbf_source_y(j, k, l) = 0._wp
1244 spbf_source_x(j, k, l) = spbf_source_x(j, k, &
1245 & l) +
spbf_amp*support*(pre_fac*sin(theta_x)*cos(theta_y) - 2._wp*
spbf_sigma*(y_cc(k) &
1246 & -
spbf_yc)*sin(theta_x)*sin(theta_y))
1247 spbf_source_y(j, k, l) = spbf_source_y(j, k, &
1248 & l) -
spbf_amp*support*(pre_fac*cos(theta_x)*sin(theta_y) - 2._wp*
spbf_sigma*(x_cc(j) &
1249 & -
spbf_xc)*sin(theta_x)*sin(theta_y))
1255# 265 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1256#if defined(MFC_OpenACC)
1257# 265 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1259# 265 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1260#elif defined(MFC_OpenMP)
1261# 265 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1263# 265 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1265# 265 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1273 type(scalar_field),
dimension(sys_size),
intent(in) :: q_cons_vf
1274 type(int_bounds_info),
dimension(1:3),
intent(in) :: bounds
1275 integer :: i, j, k, l
1278# 276 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1280# 276 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1281#if defined(MFC_OpenACC)
1282# 276 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1284# 276 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1285#elif defined(MFC_OpenMP)
1286# 276 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1288# 276 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1290# 276 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1292# 276 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1294# 276 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1296# 276 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1298 do l = bounds(3)%beg, bounds(3)%end
1299 do k = bounds(2)%beg, bounds(2)%end
1300 do j = bounds(1)%beg, bounds(1)%end
1301 rhom(j, k, l) = 0._wp
1302 do i = 1, num_fluids
1303 rhom(j, k, l) =
rhom(j, k, l) + q_cons_vf(eqn_idx%cont%beg + i - 1)%sf(j, k, l)
1309# 287 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1310#if defined(MFC_OpenACC)
1311# 287 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1313# 287 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1314#elif defined(MFC_OpenMP)
1315# 287 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1317# 287 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1319# 287 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1327 type(scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
1328 type(scalar_field),
dimension(sys_size),
intent(in) ::
q_cons_vf
1329 type(scalar_field),
dimension(sys_size),
intent(inout) :: rhs_vf
1330 type(int_bounds_info),
dimension(1:3),
intent(in) :: bounds
1331 integer :: i,
j,
k,
l
1333 if (bf_x .or. bf_y .or. bf_z)
then
1337 if (bf_spatial_support)
then
1344# 310 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1346# 310 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1347#if defined(MFC_OpenACC)
1348# 310 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1350# 310 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1351#elif defined(MFC_OpenMP)
1352# 310 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1354# 310 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1356# 310 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1358# 310 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1360# 310 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1362# 310 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1364 do i = eqn_idx%mom%beg, eqn_idx%E
1365 do l = bounds(3)%beg, bounds(3)%end
1366 do k = bounds(2)%beg, bounds(2)%end
1367 do j = bounds(1)%beg, bounds(1)%end
1368 rhs_vf(i)%sf(
j,
k,
l) = 0._wp
1374# 320 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1375#if defined(MFC_OpenACC)
1376# 320 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1378# 320 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1379#elif defined(MFC_OpenMP)
1380# 320 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1382# 320 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1384# 320 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1387 if (bf_spatial_support)
then
1389# 323 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1391# 323 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1392#if defined(MFC_OpenACC)
1393# 323 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1395# 323 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1396#elif defined(MFC_OpenMP)
1397# 323 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1399# 323 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1401# 323 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1403# 323 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1405# 323 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1407# 323 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1409 do l = bounds(3)%beg, bounds(3)%end
1410 do k = bounds(2)%beg, bounds(2)%end
1411 do j = bounds(1)%beg, bounds(1)%end
1412 rhs_vf(eqn_idx%mom%beg)%sf(
j,
k,
l) = rhs_vf(eqn_idx%mom%beg)%sf(
j,
k,
l) + spbf_source_x(
j,
k,
l)
1413 rhs_vf(eqn_idx%mom%beg + 1)%sf(
j,
k,
l) = rhs_vf(eqn_idx%mom%beg + 1)%sf(
j,
k,
l) + spbf_source_y(
j,
k,
l)
1416 rhs_vf(eqn_idx%E)%sf(
j,
k,
l) = rhs_vf(eqn_idx%E)%sf(
j,
k,
l) + (
q_cons_vf(eqn_idx%mom%beg)%sf(
j,
k, &
1418 &
k,
l))*spbf_source_y(
j,
k,
l)
1423# 337 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1424#if defined(MFC_OpenACC)
1425# 337 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1427# 337 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1428#elif defined(MFC_OpenMP)
1429# 337 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1431# 337 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1433# 337 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1439# 341 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1441# 341 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1442#if defined(MFC_OpenACC)
1443# 341 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1445# 341 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1446#elif defined(MFC_OpenMP)
1447# 341 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1449# 341 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1451# 341 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1453# 341 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1455# 341 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1457# 341 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1459 do l = bounds(3)%beg, bounds(3)%end
1460 do k = bounds(2)%beg, bounds(2)%end
1461 do j = bounds(1)%beg, bounds(1)%end
1462 rhs_vf(eqn_idx%mom%beg)%sf(
j,
k,
l) = rhs_vf(eqn_idx%mom%beg)%sf(
j,
k,
l) +
rhom(
j,
k,
l)*accel_bf(1)
1463 rhs_vf(eqn_idx%E)%sf(
j,
k,
l) = rhs_vf(eqn_idx%E)%sf(
j,
k,
l) +
q_cons_vf(eqn_idx%mom%beg)%sf(
j,
k, &
1469# 351 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1470#if defined(MFC_OpenACC)
1471# 351 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1473# 351 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1474#elif defined(MFC_OpenMP)
1475# 351 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1477# 351 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1479# 351 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1485# 355 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1487# 355 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1488#if defined(MFC_OpenACC)
1489# 355 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1491# 355 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1492#elif defined(MFC_OpenMP)
1493# 355 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1495# 355 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1497# 355 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1499# 355 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1501# 355 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1503# 355 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1505 do l = bounds(3)%beg, bounds(3)%end
1506 do k = bounds(2)%beg, bounds(2)%end
1507 do j = bounds(1)%beg, bounds(1)%end
1508 rhs_vf(eqn_idx%mom%beg + 1)%sf(
j,
k,
l) = rhs_vf(eqn_idx%mom%beg + 1)%sf(
j,
k,
l) +
rhom(
j,
k, &
1510 rhs_vf(eqn_idx%E)%sf(
j,
k,
l) = rhs_vf(eqn_idx%E)%sf(
j,
k,
l) +
q_cons_vf(eqn_idx%mom%beg + 1)%sf(
j,
k, &
1516# 366 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1517#if defined(MFC_OpenACC)
1518# 366 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1520# 366 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1521#elif defined(MFC_OpenMP)
1522# 366 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1524# 366 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1526# 366 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1532# 370 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1534# 370 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1535#if defined(MFC_OpenACC)
1536# 370 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1538# 370 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1539#elif defined(MFC_OpenMP)
1540# 370 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1542# 370 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1544# 370 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1546# 370 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1548# 370 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1550# 370 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1552 do l = bounds(3)%beg, bounds(3)%end
1553 do k = bounds(2)%beg, bounds(2)%end
1554 do j = bounds(1)%beg, bounds(1)%end
1555 rhs_vf(eqn_idx%mom%end)%sf(
j,
k,
l) = rhs_vf(eqn_idx%mom%end)%sf(
j,
k,
l) +
rhom(
j,
k,
l)*accel_bf(3)
1556 rhs_vf(eqn_idx%E)%sf(
j,
k,
l) = rhs_vf(eqn_idx%E)%sf(
j,
k,
l) +
q_cons_vf(eqn_idx%mom%end)%sf(
j,
k, &
1562# 380 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1563#if defined(MFC_OpenACC)
1564# 380 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1566# 380 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1567#elif defined(MFC_OpenMP)
1568# 380 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1570# 380 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1572# 380 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1587 type(scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
1588 type(scalar_field),
dimension(sys_size),
intent(in) ::
q_cons_vf
1589 type(scalar_field),
dimension(sys_size),
intent(inout) :: rhs_vf
1590 integer :: i,
j,
k,
l, n_mode, turb_idx, iq
1591 real(wp) :: pos_x, pos_y, pos_z
1592 real(wp) :: gauss_env, g_norm, f_scale
1593 real(wp) :: a_m, phase_arg
1594 real(wp) :: force_x, force_y, force_z
1595 real(wp) :: rho_local, u_local_x, u_local_y, u_local_z
1596 real(wp) :: adv_offset
1600 real(wp),
parameter :: g_bar = 0.760173_wp
1605# 411 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1607# 411 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1608#if defined(MFC_OpenACC)
1609# 411 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1611# 411 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1612#elif defined(MFC_OpenMP)
1613# 411 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1615# 411 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1617# 411 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1619# 411 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1621# 411 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1623 do i = eqn_idx%mom%beg, eqn_idx%E
1627 rhs_vf(i)%sf(
j,
k,
l) = 0._wp
1633# 421 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1634#if defined(MFC_OpenACC)
1635# 421 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1637# 421 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1638#elif defined(MFC_OpenMP)
1639# 421 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1641# 421 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1643# 421 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1647 adv_offset = synth_u_inf*mytime
1649 do turb_idx = 1, num_turbulent_sources
1651# 427 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1653# 427 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1654#if defined(MFC_OpenACC)
1655# 427 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1657# 427 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1659# 427 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1660#elif defined(MFC_OpenMP)
1661# 427 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1663# 427 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1665# 427 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1667# 427 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1669# 427 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1671# 427 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1673# 429 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1678 pos_x = x_cc(
j) - turb_pos(turb_idx, 1)
1681 if (num_dims > 1) pos_y = y_cc(
k) - turb_pos(turb_idx, 2)
1682 if (num_dims == 3) pos_z = z_cc(
l) - turb_pos(turb_idx, 3)
1685 in_box = abs(pos_x) <= 0.5_wp*synth_l(turb_idx, 1)
1686 if (num_dims > 1) in_box = in_box .and. abs(pos_y) <= 0.5_wp*synth_l(turb_idx, 2)
1687 if (num_dims == 3) in_box = in_box .and. abs(pos_z) <= 0.5_wp*synth_l(turb_idx, 3)
1691 gauss_env = exp(-0.5_wp*pi*(2._wp*pos_x/synth_l(turb_idx, 1))**2)
1692 if (num_dims > 1) gauss_env = gauss_env*exp(-0.5_wp*pi*(2._wp*pos_y/synth_l(turb_idx, 2))**2)
1693 if (num_dims == 3) gauss_env = gauss_env*exp(-0.5_wp*pi*(2._wp*pos_z/synth_l(turb_idx, 3))**2)
1694 g_norm = gauss_env/g_bar**num_dims
1704 if (num_dims > 1) phase_arg = phase_arg +
synthetic_k_y(n_mode)*y_cc(
k)
1705 if (num_dims == 3) phase_arg = phase_arg +
synthetic_k_z(n_mode)*z_cc(
l)
1715 do iq = eqn_idx%cont%beg, eqn_idx%cont%end
1716 rho_local = rho_local + q_prim_vf(iq)%sf(
j,
k,
l)
1718 f_scale = rho_local*(synth_u_inf/synth_l(turb_idx, 1))*g_norm
1720 force_x = force_x*f_scale
1721 force_y = force_y*f_scale
1722 force_z = force_z*f_scale
1725 u_local_x = q_prim_vf(eqn_idx%mom%beg)%sf(
j,
k,
l)
1728 if (num_dims > 1) u_local_y = q_prim_vf(eqn_idx%mom%beg + 1)%sf(
j,
k,
l)
1729 if (num_dims == 3) u_local_z = q_prim_vf(eqn_idx%mom%end)%sf(
j,
k,
l)
1731 rhs_vf(eqn_idx%mom%beg)%sf(
j,
k,
l) = rhs_vf(eqn_idx%mom%beg)%sf(
j,
k,
l) + force_x
1732 if (num_dims > 1) rhs_vf(eqn_idx%mom%beg + 1)%sf(
j,
k,
l) = rhs_vf(eqn_idx%mom%beg + 1)%sf(
j,
k, &
1734 if (num_dims == 3) rhs_vf(eqn_idx%mom%end)%sf(
j,
k,
l) = rhs_vf(eqn_idx%mom%end)%sf(
j,
k,
l) + force_z
1735 rhs_vf(eqn_idx%E)%sf(
j,
k,
l) = rhs_vf(eqn_idx%E)%sf(
j,
k, &
1736 &
l) + force_x*u_local_x + force_y*u_local_y + force_z*u_local_z
1742# 496 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1743#if defined(MFC_OpenACC)
1744# 496 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1746# 496 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1747#elif defined(MFC_OpenMP)
1748# 496 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1750# 496 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1752# 496 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1762# 504 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1764# 504 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1765 use iso_fortran_env,
only: output_unit
1766# 504 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1768# 504 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1769 print *,
'm_body_forces.fpp:504: ',
'@:DEALLOCATE(rhoM)'
1770# 504 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1772# 504 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1773 call flush (output_unit)
1774# 504 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1776# 504 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1778# 504 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1780# 504 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1781#if defined(MFC_OpenACC)
1782# 504 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1784# 504 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1785#elif defined(MFC_OpenMP)
1786# 504 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1788# 504 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1790# 504 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1793 if (bf_spatial_support)
then
1795# 507 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1797# 507 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1798 use iso_fortran_env,
only: output_unit
1799# 507 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1801# 507 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1802 print *,
'm_body_forces.fpp:507: ',
'@:DEALLOCATE(freq, phase)'
1803# 507 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1805# 507 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1806 call flush (output_unit)
1807# 507 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1809# 507 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1811# 507 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1813# 507 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1814#if defined(MFC_OpenACC)
1815# 507 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1817# 507 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1818#elif defined(MFC_OpenMP)
1819# 507 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1821# 507 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1823# 507 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1829# 511 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1831# 511 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1832 use iso_fortran_env,
only: output_unit
1833# 511 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1835# 511 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1836 print *,
'm_body_forces.fpp:511: ',
'@:DEALLOCATE(synthetic_k_x)'
1837# 511 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1839# 511 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1840 call flush (output_unit)
1841# 511 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1843# 511 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1845# 511 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1847# 511 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1848#if defined(MFC_OpenACC)
1849# 511 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1851# 511 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1852#elif defined(MFC_OpenMP)
1853# 511 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1855# 511 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1857# 511 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1860# 512 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1862# 512 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1863 use iso_fortran_env,
only: output_unit
1864# 512 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1866# 512 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1867 print *,
'm_body_forces.fpp:512: ',
'@:DEALLOCATE(synthetic_phase)'
1868# 512 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1870# 512 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1871 call flush (output_unit)
1872# 512 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1874# 512 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1876# 512 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1878# 512 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1879#if defined(MFC_OpenACC)
1880# 512 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1882# 512 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1883#elif defined(MFC_OpenMP)
1884# 512 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1886# 512 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1888# 512 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1891# 513 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1893# 513 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1894 use iso_fortran_env,
only: output_unit
1895# 513 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1897# 513 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1898 print *,
'm_body_forces.fpp:513: ',
'@:DEALLOCATE(synthetic_amp)'
1899# 513 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1901# 513 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1902 call flush (output_unit)
1903# 513 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1905# 513 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1907# 513 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1909# 513 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1910#if defined(MFC_OpenACC)
1911# 513 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1913# 513 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1914#elif defined(MFC_OpenMP)
1915# 513 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1917# 513 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1919# 513 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1922# 514 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1924# 514 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1925 use iso_fortran_env,
only: output_unit
1926# 514 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1928# 514 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1929 print *,
'm_body_forces.fpp:514: ',
'@:DEALLOCATE(synthetic_ex)'
1930# 514 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1932# 514 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1933 call flush (output_unit)
1934# 514 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1936# 514 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1938# 514 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1940# 514 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1941#if defined(MFC_OpenACC)
1942# 514 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1944# 514 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1945#elif defined(MFC_OpenMP)
1946# 514 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1948# 514 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1950# 514 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1953# 515 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1955# 515 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1956 use iso_fortran_env,
only: output_unit
1957# 515 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1959# 515 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1960 print *,
'm_body_forces.fpp:515: ',
'@:DEALLOCATE(synthetic_ey)'
1961# 515 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1963# 515 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1964 call flush (output_unit)
1965# 515 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1967# 515 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1969# 515 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1971# 515 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1972#if defined(MFC_OpenACC)
1973# 515 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1975# 515 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1976#elif defined(MFC_OpenMP)
1977# 515 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1979# 515 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1981# 515 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1984# 516 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1986# 516 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1987 use iso_fortran_env,
only: output_unit
1988# 516 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1990# 516 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1991 print *,
'm_body_forces.fpp:516: ',
'@:DEALLOCATE(synthetic_ez)'
1992# 516 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1994# 516 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1995 call flush (output_unit)
1996# 516 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
1998# 516 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2000# 516 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2002# 516 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2003#if defined(MFC_OpenACC)
2004# 516 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2006# 516 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2007#elif defined(MFC_OpenMP)
2008# 516 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2010# 516 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2012# 516 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2014 if (num_dims > 1)
then
2016# 518 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2018# 518 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2019 use iso_fortran_env,
only: output_unit
2020# 518 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2022# 518 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2023 print *,
'm_body_forces.fpp:518: ',
'@:DEALLOCATE(synthetic_k_y)'
2024# 518 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2026# 518 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2027 call flush (output_unit)
2028# 518 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2030# 518 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2032# 518 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2034# 518 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2035#if defined(MFC_OpenACC)
2036# 518 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2038# 518 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2039#elif defined(MFC_OpenMP)
2040# 518 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2042# 518 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2044# 518 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2047 if (num_dims == 3)
then
2049# 521 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2051# 521 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2052 use iso_fortran_env,
only: output_unit
2053# 521 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2055# 521 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2056 print *,
'm_body_forces.fpp:521: ',
'@:DEALLOCATE(synthetic_k_z)'
2057# 521 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2059# 521 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2060 call flush (output_unit)
2061# 521 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2063# 521 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2065# 521 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2067# 521 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2068#if defined(MFC_OpenACC)
2069# 521 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2071# 521 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2072#elif defined(MFC_OpenMP)
2073# 521 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2075# 521 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
2077# 521 "/home/runner/work/MFC/MFC/src/simulation/m_body_forces.fpp"
type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf
Computes gravitational and body force source terms for the momentum equations.
integer, parameter spbf_num_freq
real(wp), dimension(:), allocatable phase
real(wp), dimension(:), allocatable synthetic_ex
subroutine s_compute_body_force_with_spatial_support(t, bounds)
Apply the body force of Wei & Freund (JFM, 2005).
real(wp), dimension(:), allocatable synthetic_ez
real(wp), dimension(:), allocatable freq
subroutine, public s_compute_synthetic_forces_rhs(q_prim_vf, q_cons_vf, rhs_vf)
Compute the synthetic turbulence RHS contribution.
real(wp), dimension(:), allocatable synthetic_phase
impure subroutine s_initialize_body_force_with_spatial_support
Initialize a body force with spatial support presented in Wei & Freund (JFM, 2005).
impure subroutine, public s_initialize_body_forces_module
Initialize the body forces module. When synthetic_turbulence is enabled, generates random wave vector...
real(wp), dimension(:), allocatable synthetic_amp
real(wp), dimension(:), allocatable synthetic_k_y
subroutine s_compute_acceleration(t)
Compute the acceleration at time t.
real(wp), dimension(:), allocatable synthetic_k_z
real(wp), dimension(:), allocatable synthetic_ey
real(wp), dimension(:,:,:), allocatable rhom
integer num_synthetic_wave_numbers
real(wp), dimension(:), allocatable synthetic_k_x
subroutine s_compute_mixture_density(q_cons_vf, bounds)
Compute the mixture density at each cell center.
impure subroutine, public s_finalize_body_forces_module
Finalize the body forces module.
subroutine, public s_compute_body_forces_rhs(q_prim_vf, q_cons_vf, rhs_vf, bounds)
Compute the body force source terms for momentum and energy equations.
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
integer buff_size
Number of ghost cells for boundary condition storage.
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions...
real(wp) function, dimension(3), public f_unit_vector(theta, eta)
Generate a unit vector uniformly distributed on the sphere from two random parameters.
subroutine, public s_prng(var, seed)
Generate a pseudo-random number between 0 and 1 using a linear congruential generator.
pure real(wp) function, dimension(3), public f_cross(a, b)
Compute the cross product of two vectors.
MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver.
NVIDIA NVTX profiling API bindings for GPU performance instrumentation.
Conservative-to-primitive variable conversion, mixture property evaluation, and pressure computation.