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# 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_acoustic_src.fpp" 2
350# 22 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
351#if defined(MFC_OpenACC)
352# 22 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
354# 22 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
355#elif defined(MFC_OpenMP)
356# 22 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
358# 22 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
361 logical,
allocatable,
dimension(:) ::
dipole
363# 25 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
364#if defined(MFC_OpenACC)
365# 25 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
367# 25 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
368#elif defined(MFC_OpenMP)
369# 25 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
371# 25 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
376# 28 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
377#if defined(MFC_OpenACC)
378# 28 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
380# 28 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
381#elif defined(MFC_OpenMP)
382# 28 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
384# 28 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
390# 32 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
391#if defined(MFC_OpenACC)
392# 32 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
394# 32 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
395#elif defined(MFC_OpenMP)
396# 32 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
398# 32 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
401# 33 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
402#if defined(MFC_OpenACC)
403# 33 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
405# 33 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
406#elif defined(MFC_OpenMP)
407# 33 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
409# 33 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
414# 36 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
415#if defined(MFC_OpenACC)
416# 36 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
418# 36 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
419#elif defined(MFC_OpenMP)
420# 36 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
422# 36 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
427# 39 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
428#if defined(MFC_OpenACC)
429# 39 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
431# 39 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
432#elif defined(MFC_OpenMP)
433# 39 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
435# 39 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
440# 42 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
441#if defined(MFC_OpenACC)
442# 42 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
444# 42 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
445#elif defined(MFC_OpenMP)
446# 42 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
448# 42 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
453# 45 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
454#if defined(MFC_OpenACC)
455# 45 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
457# 45 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
458#elif defined(MFC_OpenMP)
459# 45 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
461# 45 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
467 real(wp),
allocatable,
dimension(:,:,:,:) ::
mom_src
470# 52 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
471#if defined(MFC_OpenACC)
472# 52 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
474# 52 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
475#elif defined(MFC_OpenMP)
476# 52 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
478# 52 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
483# 55 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
484#if defined(MFC_OpenACC)
485# 55 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
487# 55 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
488#elif defined(MFC_OpenMP)
489# 55 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
491# 55 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
496# 58 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
497#if defined(MFC_OpenACC)
498# 58 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
500# 58 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
501#elif defined(MFC_OpenMP)
502# 58 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
504# 58 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
515# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
517# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
518 use iso_fortran_env,
only: output_unit
519# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
521# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
522 print *,
'm_acoustic_src.fpp:67: ',
'@: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))'
523# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
525# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
526 call flush (output_unit)
527# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
529# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
531# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
532 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))
533# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
535# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
537# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
539# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
541# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
543# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
545# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
547# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
549# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
551# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
553# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
555# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
557# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
559# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
561# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
563# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
565# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
567# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
569# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
571# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
573# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
575# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
577# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
579# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
581# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
583# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
584#if defined(MFC_OpenACC)
585# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
587# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
588#elif defined(MFC_OpenMP)
589# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
591# 67 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
593# 73 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
599 mag(i) = acoustic(i)%mag
600 dipole(i) = acoustic(i)%dipole
601 support(i) = acoustic(i)%support
602 length(i) = acoustic(i)%length
603 height(i) = acoustic(i)%height
610 npulse(i) = acoustic(i)%npulse
611 pulse(i) = acoustic(i)%pulse
612 dir(i) = acoustic(i)%dir
620 if (acoustic(i)%element_on ==
dflt_int)
then
633 delay(i) = acoustic(i)%delay
637# 115 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
638#if defined(MFC_OpenACC)
639# 115 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
641# 115 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
642#elif defined(MFC_OpenMP)
643# 115 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
645# 115 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
647# 118 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
650# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
652# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
653 use iso_fortran_env,
only: output_unit
654# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
656# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
657 print *,
'm_acoustic_src.fpp:119: ',
'@:ALLOCATE(mass_src(0:m, 0:n, 0:p))'
658# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
660# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
661 call flush (output_unit)
662# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
664# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
666# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
668# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
670# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
672# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
673#if defined(MFC_OpenACC)
674# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
676# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
677#elif defined(MFC_OpenMP)
678# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
680# 119 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
683# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
685# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
686 use iso_fortran_env,
only: output_unit
687# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
689# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
690 print *,
'm_acoustic_src.fpp:120: ',
'@:ALLOCATE(mom_src(1:num_vels, 0:m, 0:n, 0:p))'
691# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
693# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
694 call flush (output_unit)
695# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
697# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
699# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
700 allocate (
mom_src(1:num_vels, 0:m, 0:n, 0:p))
701# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
703# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
705# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
706#if defined(MFC_OpenACC)
707# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
709# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
710#elif defined(MFC_OpenMP)
711# 120 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
713# 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"
719 use iso_fortran_env,
only: output_unit
720# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
722# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
723 print *,
'm_acoustic_src.fpp:121: ',
'@:ALLOCATE(E_src(0:m, 0:n, 0:p))'
724# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
726# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
727 call flush (output_unit)
728# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
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"
733 allocate (
e_src(0:m, 0:n, 0:p))
734# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
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"
739#if defined(MFC_OpenACC)
740# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
742# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
743#elif defined(MFC_OpenMP)
744# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
746# 121 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
754 type(scalar_field),
dimension(sys_size),
intent(inout) ::
q_cons_vf
755 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
756 type(scalar_field),
dimension(sys_size),
intent(inout) :: rhs_vf
758# 135 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
759 real(wp),
dimension(num_fluids) :: myalpha, myalpha_rho
760# 137 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
761 real(wp) :: myrho, pi_inf_mix, qv_dummy
762 real(wp) :: sim_time, c, gamma_mix
763 real(wp) :: blkmod_q, pres_q, alpha_q, alpha_rho_q
764 real(wp) :: frequency_local, gauss_sigma_time_local
765 real(wp) :: mass_src_diff, mom_src_diff
766 real(wp) :: source_temporal
767 real(wp) :: period_bb
771 real(wp),
allocatable,
dimension(:) :: phi_rn
772 integer :: i,
j,
k,
l, q
774 integer :: num_points
775 logical :: freq_conv_flag, gauss_conv_flag
776 integer,
parameter :: mass_label = 1, mom_label = 2
781# 156 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
783# 156 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
784#if defined(MFC_OpenACC)
785# 156 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
787# 156 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
788#elif defined(MFC_OpenMP)
789# 156 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
791# 156 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
793# 156 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
795# 156 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
797# 156 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
811# 168 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
812#if defined(MFC_OpenACC)
813# 168 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
815# 168 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
816#elif defined(MFC_OpenMP)
817# 168 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
819# 168 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
821# 168 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
825 do ai = 1, num_source
827 if (.not. (sim_time <
delay(ai) .and. (
pulse(ai) == 1 .or.
pulse(ai) == 3)))
then
829 freq_conv_flag = f_is_default(
frequency(ai))
844 if (
pulse(ai) == 4)
then
847 call s_mpi_send_random_number(phi_rn,
bb_num_freq(ai))
854 sl_bb = broadband_spectral_level_constant*
mag(ai) +
k*
mag(ai)/broadband_spectral_level_growth_rate
856 ffre_bb = sqrt((2._wp*sl_bb*
bb_bandwidth(ai)))*cos((sim_time)*2._wp*pi/period_bb + 2._wp*pi*phi_rn(
k))
858 sum_bb = sum_bb + ffre_bb
864# 209 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
866# 209 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
867#if defined(MFC_OpenACC)
868# 209 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
870# 209 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
872# 209 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
873#elif defined(MFC_OpenMP)
874# 209 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
876# 209 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
878# 209 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
880# 209 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
882# 209 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
884# 209 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
886# 209 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
888# 213 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
896# 219 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
897#if defined(MFC_OpenACC)
898# 219 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
900# 219 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
901#elif defined(MFC_OpenMP)
902# 219 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
904# 219 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
908 myalpha(q) =
q_cons_vf(eqn_idx%adv%beg + q - 1)%sf(
j,
k,
l)
911 call s_compute_mixture_coefficients(myalpha_rho, myalpha, myrho, gamma_mix, pi_inf_mix, qv_dummy)
915 if (any_state_dependent_eos)
then
918# 231 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
919#if defined(MFC_OpenACC)
920# 231 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
922# 231 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
923#elif defined(MFC_OpenMP)
924# 231 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
926# 231 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
929 pres_q = q_prim_vf(eqn_idx%E)%sf(
j,
k,
l)
931 alpha_rho_q = myalpha_rho(q)
932 call s_phase_bulk_modulus(pres_q, alpha_q, alpha_rho_q, q, blkmod_q)
933 c = c + myalpha(q)*blkmod_q
937 c = f_bulk_modulus(q_prim_vf(eqn_idx%E)%sf(
j,
k,
l), gamma_mix, pi_inf_mix)/myrho
939 if (model_eqns == model_eqns_5eq .and. bubbles_euler .and. .not. (mpp_lim .and. num_fluids > 1))
then
940 c = c/(1._wp - myalpha(num_fluids))
949 call s_source_temporal(sim_time, c, ai, mom_label, frequency_local, gauss_sigma_time_local, source_temporal, &
961 else if (p == 0)
then
982 mass_src_diff = mom_src_diff/c
986 call s_source_temporal(sim_time, c, ai, mass_label, frequency_local, gauss_sigma_time_local, &
987 & source_temporal, sum_bb)
996# 299 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
997#if defined(MFC_OpenACC)
998# 299 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1000# 299 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1001#elif defined(MFC_OpenMP)
1002# 299 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1004# 299 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1006# 299 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1013# 304 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1015# 304 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1016#if defined(MFC_OpenACC)
1017# 304 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1019# 304 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1020#elif defined(MFC_OpenMP)
1021# 304 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1023# 304 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1025# 304 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1027# 304 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1029# 304 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1035# 308 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1036#if defined(MFC_OpenACC)
1037# 308 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1039# 308 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1040#elif defined(MFC_OpenMP)
1041# 308 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1043# 308 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1045 do q = eqn_idx%cont%beg, eqn_idx%cont%end
1049# 312 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1050#if defined(MFC_OpenACC)
1051# 312 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1053# 312 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1054#elif defined(MFC_OpenMP)
1055# 312 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1057# 312 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1059 do q = eqn_idx%mom%beg, eqn_idx%mom%end
1060 rhs_vf(q)%sf(
j,
k,
l) = rhs_vf(q)%sf(
j,
k,
l) +
mom_src(q - eqn_idx%cont%end,
j,
k,
l)
1062 rhs_vf(eqn_idx%E)%sf(
j,
k,
l) = rhs_vf(eqn_idx%E)%sf(
j,
k,
l) +
e_src(
j,
k,
l)
1067# 320 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1068#if defined(MFC_OpenACC)
1069# 320 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1071# 320 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1072#elif defined(MFC_OpenMP)
1073# 320 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1075# 320 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1077# 320 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1083 elemental subroutine s_source_temporal(sim_time, c, ai, term_index, frequency_local, gauss_sigma_time_local, source, sum_BB)
1086# 327 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1088# 327 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1090# 327 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1092# 327 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1094# 327 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1096# 327 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1098# 327 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1100 integer,
intent(in) :: ai, term_index
1101 real(wp),
intent(in) :: sim_time, c, sum_bb
1102 real(wp),
intent(in) :: frequency_local, gauss_sigma_time_local
1103 real(wp),
intent(out) :: source
1105 real(wp) :: sine_wave
1106 real(wp) :: foc_length_factor
1108 integer,
parameter :: mass_label = 1
1114 if (n == 0 .or.
foc_length(ai) <= 0._wp)
then
1115 foc_length_factor = 1._wp
1116 else if (p == 0 .and. (.not. cyl_coord))
then
1117 foc_length_factor =
foc_length(ai)**(-0.85_wp)
1125 if (
pulse(ai) == 1)
then
1126 if ((sim_time -
delay(ai))*frequency_local >
npulse(ai))
return
1128 omega = 2._wp*pi*frequency_local
1129 source =
mag(ai)*sin((sim_time -
delay(ai))*omega)
1131 if (term_index == mass_label)
then
1132 source = source/c + foc_length_factor*
mag(ai)*(cos((sim_time -
delay(ai))*omega) - 1._wp)/omega
1134 else if (
pulse(ai) == 2)
then
1135 source =
mag(ai)*exp(-0.5_wp*((sim_time -
delay(ai))**2._wp)/(gauss_sigma_time_local**2._wp))
1137 if (term_index == mass_label)
then
1138 source = source/c - foc_length_factor*
mag(ai)*sqrt(pi/2)*gauss_sigma_time_local*(erf((sim_time -
delay(ai)) &
1139 & /(sqrt(2._wp)*gauss_sigma_time_local)) + 1)
1141 else if (
pulse(ai) == 3)
then
1142 if ((sim_time -
delay(ai))*frequency_local >
npulse(ai))
return
1144 omega = 2._wp*pi*frequency_local
1145 sine_wave = sin((sim_time -
delay(ai))*omega)
1146 source =
mag(ai)*sign(1._wp, sine_wave)
1149 if (abs(sine_wave) < 1.e-2_wp)
then
1150 source =
mag(ai)*sine_wave*1.e2_wp
1152 else if (
pulse(ai) == 4)
then
1161 integer ::
j,
k,
l, ai
1164 real(wp) :: source_spatial, angle, xyz_to_r_ratios(3)
1165 real(wp),
parameter :: threshold = 1.e-10_wp
1169 else if (p == 0)
then
1176# 403 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1178# 403 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1179 use iso_fortran_env,
only: output_unit
1180# 403 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1182# 403 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1183 print *,
'm_acoustic_src.fpp:403: ',
'@:ALLOCATE(source_spatials_num_points(1:num_source))'
1184# 403 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1186# 403 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1187 call flush (output_unit)
1188# 403 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1190# 403 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1192# 403 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1194# 403 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1196# 403 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1198# 403 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1199#if defined(MFC_OpenACC)
1200# 403 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1202# 403 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1203#elif defined(MFC_OpenMP)
1204# 403 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1206# 403 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1209# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1211# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1212 use iso_fortran_env,
only: output_unit
1213# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1215# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1216 print *,
'm_acoustic_src.fpp:404: ',
'@:ALLOCATE(source_spatials(1:num_source))'
1217# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1219# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1220 call flush (output_unit)
1221# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
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"
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"
1231# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1232#if defined(MFC_OpenACC)
1233# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1235# 404 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1236#elif defined(MFC_OpenMP)
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"
1242 do ai = 1, num_source
1249 if (abs(source_spatial) < threshold) cycle
1259# 422 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1261# 422 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1262 use iso_fortran_env,
only: output_unit
1263# 422 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1265# 422 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1266 print *,
'm_acoustic_src.fpp:422: ',
'@:ALLOCATE(source_spatials(ai)%coord(1:3, 1:count))'
1267# 422 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1269# 422 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1270 call flush (output_unit)
1271# 422 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1273# 422 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1275# 422 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1277# 422 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1279# 422 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1281# 422 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1282#if defined(MFC_OpenACC)
1283# 422 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1285# 422 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1286#elif defined(MFC_OpenMP)
1287# 422 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1289# 422 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1292# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1294# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1295 use iso_fortran_env,
only: output_unit
1296# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1298# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1299 print *,
'm_acoustic_src.fpp:423: ',
'@:ALLOCATE(source_spatials(ai)%val(1:count))'
1300# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1302# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1303 call flush (output_unit)
1304# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1306# 423 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
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"
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#if defined(MFC_OpenACC)
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#elif defined(MFC_OpenMP)
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"
1325# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1327# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1328 use iso_fortran_env,
only: output_unit
1329# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1331# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1332 print *,
'm_acoustic_src.fpp:424: ',
'@:ALLOCATE(source_spatials(ai)%angle(1:count))'
1333# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1335# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1336 call flush (output_unit)
1337# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1339# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1341# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1343# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1345# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1347# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1348#if defined(MFC_OpenACC)
1349# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1351# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1352#elif defined(MFC_OpenMP)
1353# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1355# 424 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1358# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1360# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1361 use iso_fortran_env,
only: output_unit
1362# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1364# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1365 print *,
'm_acoustic_src.fpp:425: ',
'@:ALLOCATE(source_spatials(ai)%xyz_to_r_ratios(1:3, 1:count))'
1366# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1368# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1369 call flush (output_unit)
1370# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1372# 425 "/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"
1380# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1381#if defined(MFC_OpenACC)
1382# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1384# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1385#elif defined(MFC_OpenMP)
1386# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1388# 425 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1392# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1394# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1396# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1398# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1399 use iso_fortran_env,
only: output_unit
1400# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1402# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1403 print *,
'm_acoustic_src.fpp:427: ',
'@:ACC_SETUP_source_spatials(source_spatials(ai))'
1404# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1406# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1407 call flush (output_unit)
1408# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1410# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1412# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1414# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1416# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1417#if defined(MFC_OpenACC)
1418# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1420# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1421#elif defined(MFC_OpenMP)
1422# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1424# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1426# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1428# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1430# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1431#if defined(MFC_OpenACC)
1432# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1434# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1435#elif defined(MFC_OpenMP)
1436# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1438# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1440# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1442# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1444# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1446# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1447#if defined(MFC_OpenACC)
1448# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1450# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1451#elif defined(MFC_OpenMP)
1452# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1454# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1456# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1458# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1460# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1462# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1463#if defined(MFC_OpenACC)
1464# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1466# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1467#elif defined(MFC_OpenMP)
1468# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1470# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1472# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1474# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1476# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1478# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1479#if defined(MFC_OpenACC)
1480# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1482# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1483#elif defined(MFC_OpenMP)
1484# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1486# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1488# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1490# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1492# 427 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1501 if (abs(source_spatial) < threshold) cycle
1509 if (dim == 3)
source_spatials(ai)%xyz_to_r_ratios(1:3,count) = xyz_to_r_ratios
1516 call s_mpi_abort(
'Fatal Error: Inconsistent allocation of source_spatials')
1521# 454 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1522#if defined(MFC_OpenACC)
1523# 454 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1525# 454 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1526#elif defined(MFC_OpenMP)
1527# 454 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1529# 454 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1532# 455 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1533#if defined(MFC_OpenACC)
1534# 455 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1536# 455 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1537#elif defined(MFC_OpenMP)
1538# 455 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1540# 455 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1545# 458 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1546#if defined(MFC_OpenACC)
1547# 458 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1549# 458 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1550#elif defined(MFC_OpenMP)
1551# 458 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1553# 458 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1558# 461 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1559#if defined(MFC_OpenACC)
1560# 461 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1562# 461 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1563#elif defined(MFC_OpenMP)
1564# 461 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1566# 461 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1574 do ai = 1, num_source
1576 &
' grid points with non-zero source term'
1585 integer,
intent(in) :: j, k, l, ai
1586 real(wp),
dimension(3),
intent(in) :: loc
1587 real(wp),
intent(out) :: source, angle, xyz_to_r_ratios(3)
1588 real(wp) :: sig, r(3)
1594 else if (p == 0)
then
1595 sig = maxval((/dx(j), dy(k)/))
1597 sig = maxval((/dx(j), dy(k), dz(l)/))
1599 sig = sig*acoustic_spatial_support_width
1602 r(1) = x_cc(j) - loc(1)
1603 if (n /= 0) r(2) = y_cc(k) - loc(2)
1604 if (p /= 0) r(3) = z_cc(l) - loc(3)
1606 if (any(
support(ai) == (/1, 2, 3, 4/)))
then
1608 else if (any(
support(ai) == (/5, 6, 7/)))
then
1610 else if (any(
support(ai) == (/9, 10, 11/)))
then
1619 integer,
intent(in) :: ai
1620 real(wp),
intent(in) :: sig, r(3)
1621 real(wp),
intent(out) :: source
1628 source = 1._wp/(sqrt(2._wp*pi)*sig/2._wp)*exp(-0.5_wp*(r(1)/(sig/2._wp))**2._wp)
1631 dist = r(1)*cos(
dir(ai)) + r(2)*sin(
dir(ai))
1633 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
1634 if (
support(ai) /= 3 .or. abs(r(3)) < 0.25_wp*
height(ai))
then
1635 source = 1._wp/(sqrt(2._wp*pi)*sig/2._wp)*exp(-0.5_wp*(dist/(sig/2._wp))**2._wp)
1645 integer,
intent(in) :: ai
1646 real(wp),
intent(in) :: sig, r(3)
1647 real(wp),
intent(out) :: source, angle, xyz_to_r_ratios(3)
1648 real(wp) :: current_angle, angle_half_aperture, dist, norm
1652 xyz_to_r_ratios = 0._wp
1655 current_angle = -atan(r(2)/(
foc_length(ai) - r(1)))
1658 if (abs(current_angle) < angle_half_aperture .and. r(1) <
foc_length(ai))
then
1660 source = 1._wp/(sqrt(2._wp*pi)*sig/2._wp)*exp(-0.5_wp*(dist/(sig/2._wp))**2._wp)
1663 else if (
support(ai) == 7)
then
1664 current_angle = -atan(sqrt(r(2)**2 + r(3)**2)/(
foc_length(ai) - r(1)))
1667 if (abs(current_angle) < angle_half_aperture .and. r(1) <
foc_length(ai))
then
1669 source = 1._wp/(sqrt(2._wp*pi)*sig/2._wp)*exp(-0.5_wp*(dist/(sig/2._wp))**2._wp)
1671 norm = sqrt(r(2)**2._wp + r(3)**2._wp + (
foc_length(ai) - r(1))**2._wp)
1672 xyz_to_r_ratios(1) = -(r(1) -
foc_length(ai))/norm
1673 xyz_to_r_ratios(2) = -r(2)/norm
1674 xyz_to_r_ratios(3) = -r(3)/norm
1683 integer,
intent(in) :: ai
1684 real(wp),
intent(in) :: sig, r(3)
1685 real(wp),
intent(out) :: source, angle, xyz_to_r_ratios(3)
1686 integer :: elem, elem_min, elem_max
1687 real(wp) :: current_angle, angle_half_aperture, angle_per_elem, dist
1688 real(wp) :: angle_min, angle_max, norm
1689 real(wp) :: poly_side_length, aperture_element_3D, angle_elem
1690 real(wp) :: x2, y2, z2, x3, y3, z3, C, f, half_apert, dist_interp_to_elem_center
1702 xyz_to_r_ratios = 0._wp
1705 current_angle = -atan(r(2)/(
foc_length(ai) - r(1)))
1710 do elem = elem_min, elem_max
1712 angle_min = angle_max - angle_per_elem
1714 if (current_angle > angle_min .and. current_angle < angle_max .and. r(1) <
foc_length(ai))
then
1715 source = exp(-0.5_wp*(dist/(sig/2._wp))**2._wp)/(sqrt(2._wp*pi)*sig/2._wp)
1716 angle = current_angle
1720 else if (
support(ai) == 11)
then
1726 do elem = elem_min, elem_max
1730 x2 = f - sqrt(f**2 - half_apert**2)
1731 y2 = half_apert*cos(angle_elem)
1732 z2 = half_apert*sin(angle_elem)
1736 c = f**2._wp/((r(1) - f)*(x2 - f) + r(2)*y2 + r(3)*z2)
1737 x3 = c*(r(1) - f) + f
1741 dist_interp_to_elem_center = sqrt((x2 - x3)**2._wp + (y2 - y3)**2._wp + (z2 - z3)**2._wp)
1742 if ((dist_interp_to_elem_center < aperture_element_3d/2._wp) .and. (r(1) < f))
then
1743 dist = sqrt((x3 - r(1))**2._wp + (y3 - r(2))**2._wp + (z3 - r(3))**2._wp)
1744 source = exp(-0.5_wp*(dist/(sig/2._wp))**2._wp)/(sqrt(2._wp*pi)*sig/2._wp)
1746 norm = sqrt(r(2)**2._wp + r(3)**2._wp + (f - r(1))**2._wp)
1747 xyz_to_r_ratios(1) = -(r(1) - f)/norm
1748 xyz_to_r_ratios(2) = -r(2)/norm
1749 xyz_to_r_ratios(3) = -r(3)/norm
1760# 653 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1762# 653 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1764# 653 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1766# 653 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1768# 653 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1770# 653 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1772# 653 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1774 logical,
intent(in) :: freq_conv_flag
1775 integer,
intent(in) :: ai
1776 real(wp),
intent(in) :: c
1779 if (freq_conv_flag)
then
1791# 670 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1793# 670 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1795# 670 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1797# 670 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1799# 670 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1801# 670 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1803# 670 "/home/runner/work/MFC/MFC/src/simulation/m_acoustic_src.fpp"
1805 logical,
intent(in) :: gauss_conv_flag
1806 integer,
intent(in) :: ai
1807 real(wp),
intent(in) :: c
1810 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.
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.