1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.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# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
20# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
23# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
24# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
25# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
27# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
28# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
30# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
32# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
34# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
36# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
38# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
47# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
48# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
49# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
57# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
59# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
63# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
64# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
65# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
67# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
72# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
74# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
76# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
78# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
80# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
82# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
84# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
86# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
88# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
89# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
91# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 95 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 100 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114# 105 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116# 110 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118# 115 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120# 120 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122# 125 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124# 130 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
126# 135 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128# 165 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
130# 219 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
132# 233 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
134# 258 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
136# 269 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
138# 271 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 282 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141# 332 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143# 342 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147# 361 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
149# 378 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
151# 388 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
153# 395 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
155# 401 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
157# 407 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
159# 413 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
161# 419 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
163# 425 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
165# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
166# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
167# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
168# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
169# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
171# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
174# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
175# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
176# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
178# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
179# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
182# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
183# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
184# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
186# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
187# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
189# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
191# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
193# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
195# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
197# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
199# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
201# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
203# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
205# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
207# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
209# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
211# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
213# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
215# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
217# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
219# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
221# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
223# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
225# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
227# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
229# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
231# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
233# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
235# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
237# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
239# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
241# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
243# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
245# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
247# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
249# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
251# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
253# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
255# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
257# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
259# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
261# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
263# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
266# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
287# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
290# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
293# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
296# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
299# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
302# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
305# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
308# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
311# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
314# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
317# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
320# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
322# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
323# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
325# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
327# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
332# 52 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
335# 72 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
338# 80 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
341# 104 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
344# 120 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
347# 145 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
349# 151 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
351# 158 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
353# 6 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp" 2
372# 23 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
373#if defined(MFC_OpenACC)
374# 23 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
376# 23 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
377#elif defined(MFC_OpenMP)
378# 23 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
380# 23 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
382# 24 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
384 logical,
allocatable,
dimension(:) ::
dipole
386# 26 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
387#if defined(MFC_OpenACC)
388# 26 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
390# 26 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
391#elif defined(MFC_OpenMP)
392# 26 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
394# 26 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
396# 27 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
400# 29 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
401#if defined(MFC_OpenACC)
402# 29 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
404# 29 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
405#elif defined(MFC_OpenMP)
406# 29 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
408# 29 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
410# 30 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
415# 33 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
416#if defined(MFC_OpenACC)
417# 33 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
419# 33 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
420#elif defined(MFC_OpenMP)
421# 33 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
423# 33 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
425# 34 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
427# 34 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
428#if defined(MFC_OpenACC)
429# 34 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
431# 34 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
432#elif defined(MFC_OpenMP)
433# 34 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
435# 34 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
437# 35 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
441# 37 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
442#if defined(MFC_OpenACC)
443# 37 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
445# 37 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
446#elif defined(MFC_OpenMP)
447# 37 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
449# 37 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
451# 38 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
455# 40 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
456#if defined(MFC_OpenACC)
457# 40 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
459# 40 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
460#elif defined(MFC_OpenMP)
461# 40 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
463# 40 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
465# 41 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
469# 43 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
470#if defined(MFC_OpenACC)
471# 43 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
473# 43 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
474#elif defined(MFC_OpenMP)
475# 43 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
477# 43 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
479# 44 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
483# 46 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
484#if defined(MFC_OpenACC)
485# 46 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
487# 46 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
488#elif defined(MFC_OpenMP)
489# 46 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
491# 46 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
493# 47 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
498 real(wp),
allocatable,
dimension(:,:,:,:) ::
mom_src
501# 53 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
502#if defined(MFC_OpenACC)
503# 53 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
505# 53 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
506#elif defined(MFC_OpenMP)
507# 53 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
509# 53 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
511# 54 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
515# 56 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
516#if defined(MFC_OpenACC)
517# 56 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
519# 56 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
520#elif defined(MFC_OpenMP)
521# 56 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
523# 56 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
525# 57 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
529# 59 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
530#if defined(MFC_OpenACC)
531# 59 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
533# 59 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
534#elif defined(MFC_OpenMP)
535# 59 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
537# 59 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
539# 60 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
549# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
551# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
552 use iso_fortran_env,
only: output_unit
553# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
555# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
556 print *,
'm_acoustic_src.fpp:68: ',
'@:ALLOCATE(loc_acoustic(1:3, 1:num_source), mag(1:num_source), dipole(1:num_source), support(1:num_source), length(1:num_source), height(1:num_source), wavelength(1:num_source), frequency(1:num_source), gauss_sigma_dist(1:num_source), gauss_sigma_time(1:num_source), foc_length(1:num_source), aperture(1:num_source), npulse(1:num_source), pulse(1:num_source), dir(1:num_source), delay(1:num_source), element_polygon_ratio(1:num_source), rotate_angle(1:num_source), element_spacing_angle(1:num_source), num_elements(1:num_source), element_on(1:num_source), bb_num_freq(1:num_source), bb_bandwidth(1:num_source), bb_lowest_freq(1:num_source))'
557# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
559# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
560 call flush (output_unit)
561# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
563# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
565# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
566 allocate (
loc_acoustic(1:3, 1:num_source),
mag(1:num_source),
dipole(1:num_source),
support(1:num_source),
length(1:num_source),
height(1:num_source),
wavelength(1:num_source),
frequency(1:num_source),
gauss_sigma_dist(1:num_source),
gauss_sigma_time(1:num_source),
foc_length(1:num_source),
aperture(1:num_source),
npulse(1:num_source),
pulse(1:num_source),
dir(1:num_source),
delay(1:num_source),
element_polygon_ratio(1:num_source),
rotate_angle(1:num_source),
element_spacing_angle(1:num_source),
num_elements(1:num_source),
element_on(1:num_source),
bb_num_freq(1:num_source),
bb_bandwidth(1:num_source),
bb_lowest_freq(1:num_source))
567# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
569# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
571# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
573# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
575# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
577# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
579# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
581# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
583# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
585# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
587# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
589# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
591# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
593# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
595# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
597# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
599# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
601# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
603# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
605# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
607# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
609# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
611# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
613# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
615# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
617# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
618#if defined(MFC_OpenACC)
619# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
621# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
622#elif defined(MFC_OpenMP)
623# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
625# 68 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
627# 74 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
633 mag(i) = acoustic(i)%mag
634 dipole(i) = acoustic(i)%dipole
635 support(i) = acoustic(i)%support
636 length(i) = acoustic(i)%length
637 height(i) = acoustic(i)%height
644 npulse(i) = acoustic(i)%npulse
645 pulse(i) = acoustic(i)%pulse
646 dir(i) = acoustic(i)%dir
654 if (acoustic(i)%element_on ==
dflt_int)
then
667 delay(i) = acoustic(i)%delay
671# 116 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
672#if defined(MFC_OpenACC)
673# 116 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
675# 116 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
676#elif defined(MFC_OpenMP)
677# 116 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
679# 116 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
681# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
684# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
686# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
687 use iso_fortran_env,
only: output_unit
688# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
690# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
691 print *,
'm_acoustic_src.fpp:120: ',
'@:ALLOCATE(mass_src(0:m, 0:n, 0:p))'
692# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
694# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
695 call flush (output_unit)
696# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
698# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
700# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
702# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
704# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
706# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
707#if defined(MFC_OpenACC)
708# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
710# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
711#elif defined(MFC_OpenMP)
712# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
714# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
716# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
718# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
720# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
721 use iso_fortran_env,
only: output_unit
722# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
724# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
725 print *,
'm_acoustic_src.fpp:121: ',
'@:ALLOCATE(mom_src(1:num_vels, 0:m, 0:n, 0:p))'
726# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
728# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
729 call flush (output_unit)
730# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
732# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
734# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
735 allocate (
mom_src(1:num_vels, 0:m, 0:n, 0:p))
736# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
738# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
740# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
741#if defined(MFC_OpenACC)
742# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
744# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
745#elif defined(MFC_OpenMP)
746# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
748# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
750# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
752# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
754# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
755 use iso_fortran_env,
only: output_unit
756# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
758# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
759 print *,
'm_acoustic_src.fpp:122: ',
'@:ALLOCATE(E_src(0:m, 0:n, 0:p))'
760# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
762# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
763 call flush (output_unit)
764# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
766# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
768# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
769 allocate (
e_src(0:m, 0:n, 0:p))
770# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
772# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
774# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
775#if defined(MFC_OpenACC)
776# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
778# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
779#elif defined(MFC_OpenMP)
780# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
782# 122 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
784# 123 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
791 type(scalar_field),
dimension(sys_size),
intent(inout) ::
q_cons_vf
792 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
793 type(scalar_field),
dimension(sys_size),
intent(inout) :: rhs_vf
795# 136 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
796 real(wp),
dimension(num_fluids) :: myalpha, myalpha_rho
797# 138 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
798 real(wp) :: myrho, pi_inf_mix, qv_dummy
799 real(wp) :: sim_time, c, gamma_mix
800 real(wp) :: blkmod_q, pres_q, alpha_q, alpha_rho_q
801 real(wp) :: frequency_local, gauss_sigma_time_local
802 real(wp) :: mass_src_diff, mom_src_diff
803 real(wp) :: source_temporal
804 real(wp) :: period_bb
808 real(wp),
allocatable,
dimension(:) :: phi_rn
809 integer :: i,
j,
k,
l, q
811 integer :: num_points
812 logical :: freq_conv_flag, gauss_conv_flag
813 integer,
parameter :: mass_label = 1, mom_label = 2
818# 157 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
820# 157 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
821#if defined(MFC_OpenACC)
822# 157 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
824# 157 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
825#elif defined(MFC_OpenMP)
826# 157 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
828# 157 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
830# 157 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
832# 157 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
834# 157 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
836# 158 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
849# 169 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
850#if defined(MFC_OpenACC)
851# 169 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
853# 169 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
854#elif defined(MFC_OpenMP)
855# 169 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
857# 169 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
859# 169 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
861# 170 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
864 do ai = 1, num_source
866 if (.not. (sim_time <
delay(ai) .and. (
pulse(ai) == 1 .or.
pulse(ai) == 3)))
then
868 freq_conv_flag = f_is_default(
frequency(ai))
883 if (
pulse(ai) == 4)
then
886 call s_mpi_send_random_number(phi_rn,
bb_num_freq(ai))
893 sl_bb = broadband_spectral_level_constant*
mag(ai) +
k*
mag(ai)/broadband_spectral_level_growth_rate
895 ffre_bb = sqrt((2._wp*sl_bb*
bb_bandwidth(ai)))*cos((sim_time)*2._wp*pi/period_bb + 2._wp*pi*phi_rn(
k))
897 sum_bb = sum_bb + ffre_bb
903# 210 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
905# 210 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
906#if defined(MFC_OpenACC)
907# 210 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
909# 210 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
911# 210 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
912#elif defined(MFC_OpenMP)
913# 210 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
915# 210 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
917# 210 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
919# 210 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
921# 210 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
923# 210 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
925# 210 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
927# 214 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
935# 220 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
936#if defined(MFC_OpenACC)
937# 220 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
939# 220 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
940#elif defined(MFC_OpenMP)
941# 220 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
943# 220 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
945# 221 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
948 myalpha(q) =
q_cons_vf(eqn_idx%adv%beg + q - 1)%sf(
j,
k,
l)
951 call s_compute_mixture_coefficients(myalpha_rho, myalpha, myrho, gamma_mix, pi_inf_mix, qv_dummy)
955 if (any_state_dependent_eos)
then
958# 232 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
959#if defined(MFC_OpenACC)
960# 232 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
962# 232 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
963#elif defined(MFC_OpenMP)
964# 232 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
966# 232 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
968# 233 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
970 pres_q = q_prim_vf(eqn_idx%E)%sf(
j,
k,
l)
972 alpha_rho_q = myalpha_rho(q)
973 call s_phase_bulk_modulus(pres_q, alpha_q, alpha_rho_q, q, blkmod_q)
974 c = c + myalpha(q)*blkmod_q
978 c = f_bulk_modulus(q_prim_vf(eqn_idx%E)%sf(
j,
k,
l), gamma_mix, pi_inf_mix)/myrho
980 if (model_eqns == model_eqns_5eq .and. bubbles_euler .and. .not. (mpp_lim .and. num_fluids > 1))
then
981 c = c/(1._wp - myalpha(num_fluids))
990 call s_source_temporal(sim_time, c, ai, mom_label, frequency_local, gauss_sigma_time_local, source_temporal, &
1002 else if (p == 0)
then
1023 mass_src_diff = mom_src_diff/c
1027 call s_source_temporal(sim_time, c, ai, mass_label, frequency_local, gauss_sigma_time_local, &
1028 & source_temporal, sum_bb)
1037# 300 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1038#if defined(MFC_OpenACC)
1039# 300 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1041# 300 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1042#elif defined(MFC_OpenMP)
1043# 300 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1045# 300 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1047# 300 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1049# 301 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1055# 305 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1057# 305 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1058#if defined(MFC_OpenACC)
1059# 305 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1061# 305 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1062#elif defined(MFC_OpenMP)
1063# 305 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1065# 305 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1067# 305 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1069# 305 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1071# 305 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1073# 306 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1078# 309 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1079#if defined(MFC_OpenACC)
1080# 309 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1082# 309 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1083#elif defined(MFC_OpenMP)
1084# 309 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1086# 309 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1088# 310 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1089 do q = eqn_idx%cont%beg, eqn_idx%cont%end
1093# 313 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1094#if defined(MFC_OpenACC)
1095# 313 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1097# 313 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1098#elif defined(MFC_OpenMP)
1099# 313 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1101# 313 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1103# 314 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1104 do q = eqn_idx%mom%beg, eqn_idx%mom%end
1105 rhs_vf(q)%sf(
j,
k,
l) = rhs_vf(q)%sf(
j,
k,
l) +
mom_src(q - eqn_idx%cont%end,
j,
k,
l)
1107 rhs_vf(eqn_idx%E)%sf(
j,
k,
l) = rhs_vf(eqn_idx%E)%sf(
j,
k,
l) +
e_src(
j,
k,
l)
1112# 321 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1113#if defined(MFC_OpenACC)
1114# 321 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1116# 321 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1117#elif defined(MFC_OpenMP)
1118# 321 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1120# 321 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1122# 321 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1124# 322 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1129 elemental subroutine s_source_temporal(sim_time, c, ai, term_index, frequency_local, gauss_sigma_time_local, source, sum_BB)
1132# 328 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1134# 328 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1136# 328 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1138# 328 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1140# 328 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1142# 328 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1144# 328 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1146# 329 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1147 integer,
intent(in) :: ai, term_index
1148 real(wp),
intent(in) :: sim_time, c, sum_bb
1149 real(wp),
intent(in) :: frequency_local, gauss_sigma_time_local
1150 real(wp),
intent(out) :: source
1152 real(wp) :: sine_wave
1153 real(wp) :: foc_length_factor
1155 integer,
parameter :: mass_label = 1
1161 if (n == 0 .or.
foc_length(ai) <= 0._wp)
then
1162 foc_length_factor = 1._wp
1163 else if (p == 0 .and. (.not. cyl_coord))
then
1164 foc_length_factor =
foc_length(ai)**(-0.85_wp)
1172 if (
pulse(ai) == 1)
then
1173 if ((sim_time -
delay(ai))*frequency_local >
npulse(ai))
return
1175 omega = 2._wp*pi*frequency_local
1176 source =
mag(ai)*sin((sim_time -
delay(ai))*omega)
1178 if (term_index == mass_label)
then
1179 source = source/c + foc_length_factor*
mag(ai)*(cos((sim_time -
delay(ai))*omega) - 1._wp)/omega
1181 else if (
pulse(ai) == 2)
then
1182 source =
mag(ai)*exp(-0.5_wp*((sim_time -
delay(ai))**2._wp)/(gauss_sigma_time_local**2._wp))
1184 if (term_index == mass_label)
then
1185 source = source/c - foc_length_factor*
mag(ai)*sqrt(pi/2)*gauss_sigma_time_local*(erf((sim_time -
delay(ai)) &
1186 & /(sqrt(2._wp)*gauss_sigma_time_local)) + 1)
1188 else if (
pulse(ai) == 3)
then
1189 if ((sim_time -
delay(ai))*frequency_local >
npulse(ai))
return
1191 omega = 2._wp*pi*frequency_local
1192 sine_wave = sin((sim_time -
delay(ai))*omega)
1193 source =
mag(ai)*sign(1._wp, sine_wave)
1196 if (abs(sine_wave) < 1.e-2_wp)
then
1197 source =
mag(ai)*sine_wave*1.e2_wp
1199 else if (
pulse(ai) == 4)
then
1208 integer ::
j,
k,
l, ai
1211 real(wp) :: source_spatial, angle, xyz_to_r_ratios(3)
1212 real(wp),
parameter :: threshold = 1.e-10_wp
1216 else if (p == 0)
then
1223# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1225# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1226 use iso_fortran_env,
only: output_unit
1227# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1229# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1230 print *,
'm_acoustic_src.fpp:404: ',
'@:ALLOCATE(source_spatials_num_points(1:num_source))'
1231# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1233# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1234 call flush (output_unit)
1235# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1237# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1239# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1241# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1243# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1245# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1246#if defined(MFC_OpenACC)
1247# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1249# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1250#elif defined(MFC_OpenMP)
1251# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1253# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1255# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1257# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1259# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1260 use iso_fortran_env,
only: output_unit
1261# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1263# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1264 print *,
'm_acoustic_src.fpp:405: ',
'@:ALLOCATE(source_spatials(1:num_source))'
1265# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1267# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1268 call flush (output_unit)
1269# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1271# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1273# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1275# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1277# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1279# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1280#if defined(MFC_OpenACC)
1281# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1283# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1284#elif defined(MFC_OpenMP)
1285# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1287# 405 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1289# 406 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1291 do ai = 1, num_source
1298 if (abs(source_spatial) < threshold) cycle
1308# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1310# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1311 use iso_fortran_env,
only: output_unit
1312# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1314# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1315 print *,
'm_acoustic_src.fpp:423: ',
'@:ALLOCATE(source_spatials(ai)%coord(1:3, 1:count))'
1316# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1318# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1319 call flush (output_unit)
1320# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1322# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1324# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1326# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1328# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1330# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1331#if defined(MFC_OpenACC)
1332# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1334# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1335#elif defined(MFC_OpenMP)
1336# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1338# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1340# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1342# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1344# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1345 use iso_fortran_env,
only: output_unit
1346# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1348# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1349 print *,
'm_acoustic_src.fpp:424: ',
'@:ALLOCATE(source_spatials(ai)%val(1:count))'
1350# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1352# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1353 call flush (output_unit)
1354# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1356# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1358# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1360# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1362# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1364# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1365#if defined(MFC_OpenACC)
1366# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1368# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1369#elif defined(MFC_OpenMP)
1370# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1372# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1374# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1376# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1378# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1379 use iso_fortran_env,
only: output_unit
1380# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1382# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1383 print *,
'm_acoustic_src.fpp:425: ',
'@:ALLOCATE(source_spatials(ai)%angle(1:count))'
1384# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1386# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1387 call flush (output_unit)
1388# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1390# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1392# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1394# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1396# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1398# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1399#if defined(MFC_OpenACC)
1400# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1402# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1403#elif defined(MFC_OpenMP)
1404# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1406# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1408# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1410# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1412# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1413 use iso_fortran_env,
only: output_unit
1414# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1416# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1417 print *,
'm_acoustic_src.fpp:426: ',
'@:ALLOCATE(source_spatials(ai)%xyz_to_r_ratios(1:3, 1:count))'
1418# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1420# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1421 call flush (output_unit)
1422# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1424# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1426# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1428# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1430# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1432# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1433#if defined(MFC_OpenACC)
1434# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1436# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1437#elif defined(MFC_OpenMP)
1438# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1440# 426 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1442# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1445# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1447# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1449# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1451# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1452 use iso_fortran_env,
only: output_unit
1453# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1455# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1456 print *,
'm_acoustic_src.fpp:428: ',
'@:ACC_SETUP_source_spatials(source_spatials(ai))'
1457# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1459# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1460 call flush (output_unit)
1461# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1463# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1465# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1467# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1469# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1470#if defined(MFC_OpenACC)
1471# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1473# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1474#elif defined(MFC_OpenMP)
1475# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1477# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1479# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1481# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1483# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1484#if defined(MFC_OpenACC)
1485# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1487# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1488#elif defined(MFC_OpenMP)
1489# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1491# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1493# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1495# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1497# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1499# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1500#if defined(MFC_OpenACC)
1501# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1503# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1504#elif defined(MFC_OpenMP)
1505# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1507# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1509# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1511# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1513# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1515# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1516#if defined(MFC_OpenACC)
1517# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1519# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1520#elif defined(MFC_OpenMP)
1521# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1523# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1525# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1527# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1529# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1531# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1532#if defined(MFC_OpenACC)
1533# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1535# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1536#elif defined(MFC_OpenMP)
1537# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1539# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1541# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1543# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1545# 428 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1547# 429 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1555 if (abs(source_spatial) < threshold) cycle
1563 if (dim == 3)
source_spatials(ai)%xyz_to_r_ratios(1:3,count) = xyz_to_r_ratios
1570 call s_mpi_abort(
'Fatal Error: Inconsistent allocation of source_spatials')
1575# 455 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1576#if defined(MFC_OpenACC)
1577# 455 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1579# 455 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1580#elif defined(MFC_OpenMP)
1581# 455 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1583# 455 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1585# 456 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1587# 456 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1588#if defined(MFC_OpenACC)
1589# 456 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1591# 456 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1592#elif defined(MFC_OpenMP)
1593# 456 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1595# 456 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1597# 457 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1601# 459 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1602#if defined(MFC_OpenACC)
1603# 459 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1605# 459 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1606#elif defined(MFC_OpenMP)
1607# 459 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1609# 459 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1611# 460 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1615# 462 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1616#if defined(MFC_OpenACC)
1617# 462 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1619# 462 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1620#elif defined(MFC_OpenMP)
1621# 462 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1623# 462 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1625# 463 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1632 do ai = 1, num_source
1634 &
' grid points with non-zero source term'
1643 integer,
intent(in) :: j, k, l, ai
1644 real(wp),
dimension(3),
intent(in) :: loc
1645 real(wp),
intent(out) :: source, angle, xyz_to_r_ratios(3)
1646 real(wp) :: sig, r(3)
1652 else if (p == 0)
then
1653 sig = maxval((/dx(j), dy(k)/))
1655 sig = maxval((/dx(j), dy(k), dz(l)/))
1657 sig = sig*acoustic_spatial_support_width
1660 r(1) = x_cc(j) - loc(1)
1661 if (n /= 0) r(2) = y_cc(k) - loc(2)
1662 if (p /= 0) r(3) = z_cc(l) - loc(3)
1664 if (any(
support(ai) == (/1, 2, 3, 4/)))
then
1666 else if (any(
support(ai) == (/5, 6, 7/)))
then
1668 else if (any(
support(ai) == (/9, 10, 11/)))
then
1677 integer,
intent(in) :: ai
1678 real(wp),
intent(in) :: sig, r(3)
1679 real(wp),
intent(out) :: source
1686 source = 1._wp/(sqrt(2._wp*pi)*sig/2._wp)*exp(-0.5_wp*(r(1)/(sig/2._wp))**2._wp)
1689 dist = r(1)*cos(
dir(ai)) + r(2)*sin(
dir(ai))
1691 if ((r(1) - dist*cos(
dir(ai)))**2._wp + (r(2) - dist*sin(
dir(ai)))**2._wp < 0.25_wp*
length(ai)**2._wp)
then
1692 if (
support(ai) /= 3 .or. abs(r(3)) < 0.25_wp*
height(ai))
then
1693 source = 1._wp/(sqrt(2._wp*pi)*sig/2._wp)*exp(-0.5_wp*(dist/(sig/2._wp))**2._wp)
1703 integer,
intent(in) :: ai
1704 real(wp),
intent(in) :: sig, r(3)
1705 real(wp),
intent(out) :: source, angle, xyz_to_r_ratios(3)
1706 real(wp) :: current_angle, angle_half_aperture, dist, norm
1710 xyz_to_r_ratios = 0._wp
1713 current_angle = -atan(r(2)/(
foc_length(ai) - r(1)))
1716 if (abs(current_angle) < angle_half_aperture .and. r(1) <
foc_length(ai))
then
1718 source = 1._wp/(sqrt(2._wp*pi)*sig/2._wp)*exp(-0.5_wp*(dist/(sig/2._wp))**2._wp)
1721 else if (
support(ai) == 7)
then
1722 current_angle = -atan(sqrt(r(2)**2 + r(3)**2)/(
foc_length(ai) - r(1)))
1725 if (abs(current_angle) < angle_half_aperture .and. r(1) <
foc_length(ai))
then
1727 source = 1._wp/(sqrt(2._wp*pi)*sig/2._wp)*exp(-0.5_wp*(dist/(sig/2._wp))**2._wp)
1729 norm = sqrt(r(2)**2._wp + r(3)**2._wp + (
foc_length(ai) - r(1))**2._wp)
1730 xyz_to_r_ratios(1) = -(r(1) -
foc_length(ai))/norm
1731 xyz_to_r_ratios(2) = -r(2)/norm
1732 xyz_to_r_ratios(3) = -r(3)/norm
1741 integer,
intent(in) :: ai
1742 real(wp),
intent(in) :: sig, r(3)
1743 real(wp),
intent(out) :: source, angle, xyz_to_r_ratios(3)
1744 integer :: elem, elem_min, elem_max
1745 real(wp) :: current_angle, angle_half_aperture, angle_per_elem, dist
1746 real(wp) :: angle_min, angle_max, norm
1747 real(wp) :: poly_side_length, aperture_element_3D, angle_elem
1748 real(wp) :: x2, y2, z2, x3, y3, z3, C, f, half_apert, dist_interp_to_elem_center
1760 xyz_to_r_ratios = 0._wp
1763 current_angle = -atan(r(2)/(
foc_length(ai) - r(1)))
1768 do elem = elem_min, elem_max
1770 angle_min = angle_max - angle_per_elem
1772 if (current_angle > angle_min .and. current_angle < angle_max .and. r(1) <
foc_length(ai))
then
1773 source = exp(-0.5_wp*(dist/(sig/2._wp))**2._wp)/(sqrt(2._wp*pi)*sig/2._wp)
1774 angle = current_angle
1778 else if (
support(ai) == 11)
then
1784 do elem = elem_min, elem_max
1788 x2 = f - sqrt(f**2 - half_apert**2)
1789 y2 = half_apert*cos(angle_elem)
1790 z2 = half_apert*sin(angle_elem)
1794 c = f**2._wp/((r(1) - f)*(x2 - f) + r(2)*y2 + r(3)*z2)
1795 x3 = c*(r(1) - f) + f
1799 dist_interp_to_elem_center = sqrt((x2 - x3)**2._wp + (y2 - y3)**2._wp + (z2 - z3)**2._wp)
1800 if ((dist_interp_to_elem_center < aperture_element_3d/2._wp) .and. (r(1) < f))
then
1801 dist = sqrt((x3 - r(1))**2._wp + (y3 - r(2))**2._wp + (z3 - r(3))**2._wp)
1802 source = exp(-0.5_wp*(dist/(sig/2._wp))**2._wp)/(sqrt(2._wp*pi)*sig/2._wp)
1804 norm = sqrt(r(2)**2._wp + r(3)**2._wp + (f - r(1))**2._wp)
1805 xyz_to_r_ratios(1) = -(r(1) - f)/norm
1806 xyz_to_r_ratios(2) = -r(2)/norm
1807 xyz_to_r_ratios(3) = -r(3)/norm
1818# 654 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1820# 654 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1822# 654 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1824# 654 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1826# 654 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1828# 654 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1830# 654 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1832# 655 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1833 logical,
intent(in) :: freq_conv_flag
1834 integer,
intent(in) :: ai
1835 real(wp),
intent(in) :: c
1838 if (freq_conv_flag)
then
1850# 671 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1852# 671 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1854# 671 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1856# 671 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1858# 671 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1860# 671 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1862# 671 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1864# 672 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1865 logical,
intent(in) :: gauss_conv_flag
1866 integer,
intent(in) :: ai
1867 real(wp),
intent(in) :: c
1870 if (gauss_conv_flag)
then
type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf
One-way acoustic source injection, Maeda and Colonius JCP (2017).
real(wp), dimension(:), allocatable gauss_sigma_time
elemental real(wp) function f_frequency_local(freq_conv_flag, ai, c)
Convert wavelength to frequency.
type(source_spatial_type), dimension(:), allocatable source_spatials
Data of non-zero source grid points for each source.
subroutine s_source_spatial_transducer(ai, sig, r, source, angle, xyz_to_r_ratios)
Compute the spatial support for a single transducer in 2D, 2D axisymmetric, and 3D.
real(wp), dimension(:), allocatable height
integer, dimension(:), allocatable pulse
integer, dimension(:), allocatable bb_num_freq
real(wp), dimension(:), allocatable dir
impure subroutine, public s_precalculate_acoustic_spatial_sources
Pre-compute non-zero spatial source weights before time-stepping.
real(wp), dimension(:), allocatable length
real(wp), dimension(:), allocatable rotate_angle
integer, dimension(:), allocatable support
real(wp), dimension(:), allocatable wavelength
impure subroutine, public s_acoustic_src_calculations(q_cons_vf, q_prim_vf, rhs_vf)
Compute mass, momentum, and energy acoustic source terms and add to the RHS.
real(wp), dimension(:), allocatable npulse
integer, dimension(:), allocatable element_on
real(wp), dimension(:), allocatable aperture
real(wp), dimension(:), allocatable foc_length
subroutine s_source_spatial_planar(ai, sig, r, source)
Compute the spatial support for planar acoustic sources in 1D, 2D, and 3D.
subroutine s_source_spatial_transducer_array(ai, sig, r, source, angle, xyz_to_r_ratios)
Compute the spatial support for multiple transducers in 2D, 2D axisymmetric, and 3D.
real(wp), dimension(:), allocatable bb_lowest_freq
integer, dimension(:), allocatable num_elements
impure subroutine, public s_initialize_acoustic_src
Initialize the acoustic source module.
real(wp), dimension(:,:), allocatable, target loc_acoustic
logical, dimension(:), allocatable dipole
real(wp), dimension(:,:,:), allocatable mass_src
real(wp), dimension(:), allocatable mag
real(wp), dimension(:), allocatable frequency
elemental subroutine s_source_temporal(sim_time, c, ai, term_index, frequency_local, gauss_sigma_time_local, source, sum_bb)
Compute the temporally varying amplitude of the pulse.
real(wp) function f_gauss_sigma_time_local(gauss_conv_flag, ai, c)
Convert Gaussian sigma from distance to time.
real(wp), dimension(:,:,:), allocatable e_src
subroutine s_source_spatial(j, k, l, loc, ai, source, angle, xyz_to_r_ratios)
Compute the spatial support of the acoustic source.
real(wp), dimension(:), allocatable element_spacing_angle
integer, dimension(:), allocatable source_spatials_num_points
Number of non-zero source grid points for each source.
real(wp), dimension(:), allocatable element_polygon_ratio
real(wp), dimension(:), allocatable bb_bandwidth
real(wp), dimension(:), allocatable gauss_sigma_dist
real(wp), dimension(:), allocatable delay
real(wp), dimension(:,:,:,:), allocatable mom_src
Bubble-dynamics procedures for ensemble- and volume-averaged model.
Compile-time constant parameters: default values, tolerances, and physical constants.
integer, parameter dflt_int
Default integer value.
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Equations of state in Gamma/Pi form, rho e = Gamma(rho) p + Pi(rho).
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
Basic floating-point utilities: approximate equality, default detection, and coordinate bounds.
logical elemental function, public f_is_default(var)
Check if a real(wp) variable is of default value.
Conservative-to-primitive variable conversion, mixture property evaluation, and pressure computation.
Acoustic source source_spatial pre-calculated values.