25 type(
coef_t),
intent(in),
target :: coef
26 real(kind=
rp),
dimension(coef%Xh%lx,coef%Xh%ly,coef%Xh%lz,coef%msh%nelv),
intent(inout) :: du
27 real(kind=
rp),
dimension(coef%Xh%lx,coef%Xh%ly,coef%Xh%lz,coef%msh%nelv),
intent(in) :: u, dr, ds, dt
29 associate(xh => coef%Xh, msh => coef%msh, dof => coef%dof)
30 select case(coef%Xh%lx)
33 coef%jacinv, msh%nelv, dof%size())
36 coef%jacinv, msh%nelv, dof%size())
39 coef%jacinv, msh%nelv, dof%size())
42 coef%jacinv, msh%nelv, dof%size())
45 coef%jacinv, msh%nelv, dof%size())
48 coef%jacinv, msh%nelv, dof%size())
51 coef%jacinv, msh%nelv, dof%size())
54 coef%jacinv, msh%nelv, dof%size())
57 coef%jacinv, msh%nelv, dof%size())
60 coef%jacinv, msh%nelv, dof%size())
63 coef%jacinv, msh%nelv, dof%size())
66 coef%jacinv, msh%nelv, dof%size())
69 coef%jacinv, msh%nelv, dof%size())
71 call sx_dudxyz_lx(du, u, dr, ds, dt, xh%dx, xh%dy, xh%dz, &
72 coef%jacinv, msh%nelv, dof%size(), xh%lx)
79 type(coef_t),
intent(in) :: coef
80 real(kind=rp),
dimension(coef%Xh%lxyz,coef%msh%nelv),
intent(inout) :: ux
81 real(kind=rp),
dimension(coef%Xh%lxyz,coef%msh%nelv),
intent(inout) :: uy
82 real(kind=rp),
dimension(coef%Xh%lxyz,coef%msh%nelv),
intent(inout) :: uz
83 real(kind=rp),
dimension(coef%Xh%lxyz,coef%msh%nelv),
intent(in) :: u
85 associate(xh => coef%Xh, msh => coef%msh)
88 call sx_opgrad_lx18(ux, uy, uz, u, &
89 xh%dx, xh%dy, xh%dz, &
90 coef%drdx, coef%dsdx, coef%dtdx, &
91 coef%drdy, coef%dsdy, coef%dtdy, &
92 coef%drdz, coef%dsdz, coef%dtdz, &
95 call sx_opgrad_lx17(ux, uy, uz, u, &
96 xh%dx, xh%dy, xh%dz, &
97 coef%drdx, coef%dsdx, coef%dtdx, &
98 coef%drdy, coef%dsdy, coef%dtdy, &
99 coef%drdz, coef%dsdz, coef%dtdz, &
102 call sx_opgrad_lx16(ux, uy, uz, u, &
103 xh%dx, xh%dy, xh%dz, &
104 coef%drdx, coef%dsdx, coef%dtdx, &
105 coef%drdy, coef%dsdy, coef%dtdy, &
106 coef%drdz, coef%dsdz, coef%dtdz, &
109 call sx_opgrad_lx15(ux, uy, uz, u, &
110 xh%dx, xh%dy, xh%dz, &
111 coef%drdx, coef%dsdx, coef%dtdx, &
112 coef%drdy, coef%dsdy, coef%dtdy, &
113 coef%drdz, coef%dsdz, coef%dtdz, &
116 call sx_opgrad_lx14(ux, uy, uz, u, &
117 xh%dx, xh%dy, xh%dz, &
118 coef%drdx, coef%dsdx, coef%dtdx, &
119 coef%drdy, coef%dsdy, coef%dtdy, &
120 coef%drdz, coef%dsdz, coef%dtdz, &
123 call sx_opgrad_lx13(ux, uy, uz, u, &
124 xh%dx, xh%dy, xh%dz, &
125 coef%drdx, coef%dsdx, coef%dtdx, &
126 coef%drdy, coef%dsdy, coef%dtdy, &
127 coef%drdz, coef%dsdz, coef%dtdz, &
130 call sx_opgrad_lx12(ux, uy, uz, u, &
131 xh%dx, xh%dy, xh%dz, &
132 coef%drdx, coef%dsdx, coef%dtdx, &
133 coef%drdy, coef%dsdy, coef%dtdy, &
134 coef%drdz, coef%dsdz, coef%dtdz, &
137 call sx_opgrad_lx11(ux, uy, uz, u, &
138 xh%dx, xh%dy, xh%dz, &
139 coef%drdx, coef%dsdx, coef%dtdx, &
140 coef%drdy, coef%dsdy, coef%dtdy, &
141 coef%drdz, coef%dsdz, coef%dtdz, &
144 call sx_opgrad_lx10(ux, uy, uz, u, &
145 xh%dx, xh%dy, xh%dz, &
146 coef%drdx, coef%dsdx, coef%dtdx, &
147 coef%drdy, coef%dsdy, coef%dtdy, &
148 coef%drdz, coef%dsdz, coef%dtdz, &
151 call sx_opgrad_lx9(ux, uy, uz, u, &
152 xh%dx, xh%dy, xh%dz, &
153 coef%drdx, coef%dsdx, coef%dtdx, &
154 coef%drdy, coef%dsdy, coef%dtdy, &
155 coef%drdz, coef%dsdz, coef%dtdz, &
158 call sx_opgrad_lx8(ux, uy, uz, u, &
159 xh%dx, xh%dy, xh%dz, &
160 coef%drdx, coef%dsdx, coef%dtdx, &
161 coef%drdy, coef%dsdy, coef%dtdy, &
162 coef%drdz, coef%dsdz, coef%dtdz, &
165 call sx_opgrad_lx7(ux, uy, uz, u, &
166 xh%dx, xh%dy, xh%dz, &
167 coef%drdx, coef%dsdx, coef%dtdx, &
168 coef%drdy, coef%dsdy, coef%dtdy, &
169 coef%drdz, coef%dsdz, coef%dtdz, &
172 call sx_opgrad_lx6(ux, uy, uz, u, &
173 xh%dx, xh%dy, xh%dz, &
174 coef%drdx, coef%dsdx, coef%dtdx, &
175 coef%drdy, coef%dsdy, coef%dtdy, &
176 coef%drdz, coef%dsdz, coef%dtdz, &
179 call sx_opgrad_lx5(ux, uy, uz, u, &
180 xh%dx, xh%dy, xh%dz, &
181 coef%drdx, coef%dsdx, coef%dtdx, &
182 coef%drdy, coef%dsdy, coef%dtdy, &
183 coef%drdz, coef%dsdz, coef%dtdz, &
186 call sx_opgrad_lx4(ux, uy, uz, u, &
187 xh%dx, xh%dy, xh%dz, &
188 coef%drdx, coef%dsdx, coef%dtdx, &
189 coef%drdy, coef%dsdy, coef%dtdy, &
190 coef%drdz, coef%dsdz, coef%dtdz, &
193 call sx_opgrad_lx3(ux, uy, uz, u, &
194 xh%dx, xh%dy, xh%dz, &
195 coef%drdx, coef%dsdx, coef%dtdx, &
196 coef%drdy, coef%dsdy, coef%dtdy, &
197 coef%drdz, coef%dsdz, coef%dtdz, &
200 call sx_opgrad_lx2(ux, uy, uz, u, &
201 xh%dx, xh%dy, xh%dz, &
202 coef%drdx, coef%dsdx, coef%dtdx, &
203 coef%drdy, coef%dsdy, coef%dtdy, &
204 coef%drdz, coef%dsdz, coef%dtdz, &
207 call sx_opgrad_lx(ux, uy, uz, u, &
208 xh%dx, xh%dy, xh%dz, &
209 coef%drdx, coef%dsdx, coef%dtdx, &
210 coef%drdy, coef%dsdy, coef%dtdy, &
211 coef%drdz, coef%dsdz, coef%dtdz, &
212 xh%w3, msh%nelv, xh%lx)
219 type(coef_t),
intent(in) :: coef
220 real(kind=rp),
dimension(coef%Xh%lxyz,coef%msh%nelv),
intent(inout) :: dtx
221 real(kind=rp),
dimension(coef%Xh%lxyz,coef%msh%nelv),
intent(inout) :: x
222 real(kind=rp),
dimension(coef%Xh%lxyz,coef%msh%nelv),
intent(in) :: dr
223 real(kind=rp),
dimension(coef%Xh%lxyz,coef%msh%nelv),
intent(in) :: ds
224 real(kind=rp),
dimension(coef%Xh%lxyz,coef%msh%nelv),
intent(in) :: dt
226 associate(xh => coef%Xh, msh => coef%msh, dof => coef%dof)
229 call sx_cdtp_lx14(dtx, x, dr, ds, dt, &
230 xh%dxt, xh%dyt, xh%dzt, &
231 coef%B, coef%jac, msh%nelv, dof%size())
233 call sx_cdtp_lx13(dtx, x, dr, ds, dt, &
234 xh%dxt, xh%dyt, xh%dzt, &
235 coef%B, coef%jac, msh%nelv, dof%size())
237 call sx_cdtp_lx12(dtx, x, dr, ds, dt, &
238 xh%dxt, xh%dyt, xh%dzt, &
239 coef%B, coef%jac, msh%nelv, dof%size())
241 call sx_cdtp_lx11(dtx, x, dr, ds, dt, &
242 xh%dxt, xh%dyt, xh%dzt, &
243 coef%B, coef%jac, msh%nelv, dof%size())
245 call sx_cdtp_lx10(dtx, x, dr, ds, dt, &
246 xh%dxt, xh%dyt, xh%dzt, &
247 coef%B, coef%jac, msh%nelv, dof%size())
249 call sx_cdtp_lx9(dtx, x, dr, ds, dt, &
250 xh%dxt, xh%dyt, xh%dzt, &
251 coef%B, coef%jac, msh%nelv, dof%size())
253 call sx_cdtp_lx8(dtx, x, dr, ds, dt, &
254 xh%dxt, xh%dyt, xh%dzt, &
255 coef%B, coef%jac, msh%nelv, dof%size())
257 call sx_cdtp_lx7(dtx, x, dr, ds, dt, &
258 xh%dxt, xh%dyt, xh%dzt, &
259 coef%B, coef%jac, msh%nelv, dof%size())
261 call sx_cdtp_lx6(dtx, x, dr, ds, dt, &
262 xh%dxt, xh%dyt, xh%dzt, &
263 coef%B, coef%jac, msh%nelv, dof%size())
265 call sx_cdtp_lx5(dtx, x, dr, ds, dt, &
266 xh%dxt, xh%dyt, xh%dzt, &
267 coef%B, coef%jac, msh%nelv, dof%size())
269 call sx_cdtp_lx4(dtx, x, dr, ds, dt, &
270 xh%dxt, xh%dyt, xh%dzt, &
271 coef%B, coef%jac, msh%nelv, dof%size())
273 call sx_cdtp_lx3(dtx, x, dr, ds, dt, &
274 xh%dxt, xh%dyt, xh%dzt, &
275 coef%B, coef%jac, msh%nelv, dof%size())
277 call sx_cdtp_lx2(dtx, x, dr, ds, dt, &
278 xh%dxt, xh%dyt, xh%dzt, &
279 coef%B, coef%jac, msh%nelv, dof%size())
281 call sx_cdtp_lx(dtx, x, dr, ds, dt, &
282 xh%dxt, xh%dyt, xh%dzt, &
283 coef%B, coef%jac, msh%nelv, dof%size(), xh%lx)
290 type(space_t),
intent(inout) :: xh
291 type(coef_t),
intent(inout) :: coef
292 integer,
intent(in) :: nelv, gdim
293 real(kind=rp),
intent(inout) :: du(xh%lxyz,nelv)
294 real(kind=rp),
intent(inout),
dimension(Xh%lx,Xh%ly,Xh%lz,nelv) :: u
295 real(kind=rp),
intent(inout),
dimension(Xh%lx,Xh%ly,Xh%lz,nelv) :: vx
296 real(kind=rp),
intent(inout),
dimension(Xh%lx,Xh%ly,Xh%lz,nelv) :: vy
297 real(kind=rp),
intent(inout),
dimension(Xh%lx,Xh%ly,Xh%lz,nelv) :: vz
301 call sx_conv1_lx14(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
302 coef%drdx, coef%dsdx, coef%dtdx, &
303 coef%drdy, coef%dsdy, coef%dtdy, &
304 coef%drdz, coef%dsdz, coef%dtdz, &
305 coef%jacinv, nelv, gdim)
307 call sx_conv1_lx13(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
308 coef%drdx, coef%dsdx, coef%dtdx, &
309 coef%drdy, coef%dsdy, coef%dtdy, &
310 coef%drdz, coef%dsdz, coef%dtdz, &
311 coef%jacinv, nelv, gdim)
313 call sx_conv1_lx12(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
314 coef%drdx, coef%dsdx, coef%dtdx, &
315 coef%drdy, coef%dsdy, coef%dtdy, &
316 coef%drdz, coef%dsdz, coef%dtdz, &
317 coef%jacinv, nelv, gdim)
319 call sx_conv1_lx11(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
320 coef%drdx, coef%dsdx, coef%dtdx, &
321 coef%drdy, coef%dsdy, coef%dtdy, &
322 coef%drdz, coef%dsdz, coef%dtdz, &
323 coef%jacinv, nelv, gdim)
325 call sx_conv1_lx10(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
326 coef%drdx, coef%dsdx, coef%dtdx, &
327 coef%drdy, coef%dsdy, coef%dtdy, &
328 coef%drdz, coef%dsdz, coef%dtdz, &
329 coef%jacinv, nelv, gdim)
331 call sx_conv1_lx9(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
332 coef%drdx, coef%dsdx, coef%dtdx, &
333 coef%drdy, coef%dsdy, coef%dtdy, &
334 coef%drdz, coef%dsdz, coef%dtdz, &
335 coef%jacinv, nelv, gdim)
337 call sx_conv1_lx8(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
338 coef%drdx, coef%dsdx, coef%dtdx, &
339 coef%drdy, coef%dsdy, coef%dtdy, &
340 coef%drdz, coef%dsdz, coef%dtdz, &
341 coef%jacinv, nelv, gdim)
343 call sx_conv1_lx7(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
344 coef%drdx, coef%dsdx, coef%dtdx, &
345 coef%drdy, coef%dsdy, coef%dtdy, &
346 coef%drdz, coef%dsdz, coef%dtdz, &
347 coef%jacinv, nelv, gdim)
349 call sx_conv1_lx6(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
350 coef%drdx, coef%dsdx, coef%dtdx, &
351 coef%drdy, coef%dsdy, coef%dtdy, &
352 coef%drdz, coef%dsdz, coef%dtdz, &
353 coef%jacinv, nelv, gdim)
355 call sx_conv1_lx5(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
356 coef%drdx, coef%dsdx, coef%dtdx, &
357 coef%drdy, coef%dsdy, coef%dtdy, &
358 coef%drdz, coef%dsdz, coef%dtdz, &
359 coef%jacinv, nelv, gdim)
361 call sx_conv1_lx4(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
362 coef%drdx, coef%dsdx, coef%dtdx, &
363 coef%drdy, coef%dsdy, coef%dtdy, &
364 coef%drdz, coef%dsdz, coef%dtdz, &
365 coef%jacinv, nelv, gdim)
367 call sx_conv1_lx3(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
368 coef%drdx, coef%dsdx, coef%dtdx, &
369 coef%drdy, coef%dsdy, coef%dtdy, &
370 coef%drdz, coef%dsdz, coef%dtdz, &
371 coef%jacinv, nelv, gdim)
373 call sx_conv1_lx2(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
374 coef%drdx, coef%dsdx, coef%dtdx, &
375 coef%drdy, coef%dsdy, coef%dtdy, &
376 coef%drdz, coef%dsdz, coef%dtdz, &
377 coef%jacinv, nelv, gdim)
379 call sx_conv1_lx(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
380 coef%drdx, coef%dsdx, coef%dtdx, &
381 coef%drdy, coef%dsdy, coef%dtdy, &
382 coef%drdz, coef%dsdz, coef%dtdz, &
383 coef%jacinv, nelv, gdim, xh%lx)
388 subroutine opr_sx_curl(w1, w2, w3, u1, u2, u3, work1, work2, c_Xh)
389 type(field_t),
intent(inout) :: w1
390 type(field_t),
intent(inout) :: w2
391 type(field_t),
intent(inout) :: w3
392 type(field_t),
intent(inout) :: u1
393 type(field_t),
intent(inout) :: u2
394 type(field_t),
intent(inout) :: u3
395 type(field_t),
intent(inout) :: work1
396 type(field_t),
intent(inout) :: work2
397 type(coef_t),
intent(in) :: c_xh
404 call opr_sx_dudxyz(work1%x, u3%x, c_xh%drdy, c_xh%dsdy, c_xh%dtdy, c_xh)
405 if (gdim .eq. 3)
then
406 call opr_sx_dudxyz(work2%x, u2%x, c_xh%drdz, c_xh%dsdz, c_xh%dtdz, c_xh)
407 call sub3(w1%x, work1%x, work2%x, n)
409 call copy(w1%x, work1%x, n)
412 if (gdim .eq. 3)
then
413 call opr_sx_dudxyz(work1%x, u1%x, c_xh%drdz, c_xh%dsdz, c_xh%dtdz, c_xh)
414 call opr_sx_dudxyz(work2%x, u3%x, c_xh%drdx, c_xh%dsdx, c_xh%dtdx, c_xh)
415 call sub3(w2%x, work1%x, work2%x, n)
417 call rzero (work1%x, n)
418 call opr_sx_dudxyz(work2%x, u3%x, c_xh%drdx, c_xh%dsdx, c_xh%dtdx, c_xh)
419 call sub3(w2%x, work1%x, work2%x, n)
422 call opr_sx_dudxyz(work1%x, u2%x, c_xh%drdx, c_xh%dsdx, c_xh%dtdx, c_xh)
423 call opr_sx_dudxyz(work2%x, u1%x, c_xh%drdy, c_xh%dsdy, c_xh%dtdy, c_xh)
424 call sub3(w3%x, work1%x, work2%x, n)
427 call opcolv(w1%x,w2%x,w3%x,c_xh%B, gdim, n)
428 call c_xh%gs_h%op(w1, gs_op_add)
429 call c_xh%gs_h%op(w2, gs_op_add)
430 call c_xh%gs_h%op(w3, gs_op_add)
431 call opcolv(w1%x,w2%x,w3%x,c_xh%Binv, gdim, n)
435 function opr_sx_cfl(dt, u, v, w, Xh, coef, nelv, gdim)
result(cfl)
438 integer :: nelv, gdim
440 real(kind=rp),
dimension(Xh%lx,Xh%ly,Xh%lz,nelv) :: u, v, w
445 cfl = sx_cfl_lx14(dt, u, v, w, &
446 coef%drdx, coef%dsdx, coef%dtdx, &
447 coef%drdy, coef%dsdy, coef%dtdy, &
448 coef%drdz, coef%dsdz, coef%dtdz, &
449 xh%dr_inv, xh%ds_inv, xh%dt_inv, &
450 coef%jacinv, nelv, gdim)
452 cfl = sx_cfl_lx13(dt, u, v, w, &
453 coef%drdx, coef%dsdx, coef%dtdx, &
454 coef%drdy, coef%dsdy, coef%dtdy, &
455 coef%drdz, coef%dsdz, coef%dtdz, &
456 xh%dr_inv, xh%ds_inv, xh%dt_inv, &
457 coef%jacinv, nelv, gdim)
459 cfl = sx_cfl_lx12(dt, u, v, w, &
460 coef%drdx, coef%dsdx, coef%dtdx, &
461 coef%drdy, coef%dsdy, coef%dtdy, &
462 coef%drdz, coef%dsdz, coef%dtdz, &
463 xh%dr_inv, xh%ds_inv, xh%dt_inv, &
464 coef%jacinv, nelv, gdim)
466 cfl = sx_cfl_lx11(dt, u, v, w, &
467 coef%drdx, coef%dsdx, coef%dtdx, &
468 coef%drdy, coef%dsdy, coef%dtdy, &
469 coef%drdz, coef%dsdz, coef%dtdz, &
470 xh%dr_inv, xh%ds_inv, xh%dt_inv, &
471 coef%jacinv, nelv, gdim)
473 cfl = sx_cfl_lx10(dt, u, v, w, &
474 coef%drdx, coef%dsdx, coef%dtdx, &
475 coef%drdy, coef%dsdy, coef%dtdy, &
476 coef%drdz, coef%dsdz, coef%dtdz, &
477 xh%dr_inv, xh%ds_inv, xh%dt_inv, &
478 coef%jacinv, nelv, gdim)
480 cfl = sx_cfl_lx9(dt, u, v, w, &
481 coef%drdx, coef%dsdx, coef%dtdx, &
482 coef%drdy, coef%dsdy, coef%dtdy, &
483 coef%drdz, coef%dsdz, coef%dtdz, &
484 xh%dr_inv, xh%ds_inv, xh%dt_inv, &
485 coef%jacinv, nelv, gdim)
487 cfl = sx_cfl_lx8(dt, u, v, w, &
488 coef%drdx, coef%dsdx, coef%dtdx, &
489 coef%drdy, coef%dsdy, coef%dtdy, &
490 coef%drdz, coef%dsdz, coef%dtdz, &
491 xh%dr_inv, xh%ds_inv, xh%dt_inv, &
492 coef%jacinv, nelv, gdim)
494 cfl = sx_cfl_lx7(dt, u, v, w, &
495 coef%drdx, coef%dsdx, coef%dtdx, &
496 coef%drdy, coef%dsdy, coef%dtdy, &
497 coef%drdz, coef%dsdz, coef%dtdz, &
498 xh%dr_inv, xh%ds_inv, xh%dt_inv, &
499 coef%jacinv, nelv, gdim)
501 cfl = sx_cfl_lx6(dt, u, v, w, &
502 coef%drdx, coef%dsdx, coef%dtdx, &
503 coef%drdy, coef%dsdy, coef%dtdy, &
504 coef%drdz, coef%dsdz, coef%dtdz, &
505 xh%dr_inv, xh%ds_inv, xh%dt_inv, &
506 coef%jacinv, nelv, gdim)
508 cfl = sx_cfl_lx5(dt, u, v, w, &
509 coef%drdx, coef%dsdx, coef%dtdx, &
510 coef%drdy, coef%dsdy, coef%dtdy, &
511 coef%drdz, coef%dsdz, coef%dtdz, &
512 xh%dr_inv, xh%ds_inv, xh%dt_inv, &
513 coef%jacinv, nelv, gdim)
515 cfl = sx_cfl_lx4(dt, u, v, w, &
516 coef%drdx, coef%dsdx, coef%dtdx, &
517 coef%drdy, coef%dsdy, coef%dtdy, &
518 coef%drdz, coef%dsdz, coef%dtdz, &
519 xh%dr_inv, xh%ds_inv, xh%dt_inv, &
520 coef%jacinv, nelv, gdim)
522 cfl = sx_cfl_lx3(dt, u, v, w, &
523 coef%drdx, coef%dsdx, coef%dtdx, &
524 coef%drdy, coef%dsdy, coef%dtdy, &
525 coef%drdz, coef%dsdz, coef%dtdz, &
526 xh%dr_inv, xh%ds_inv, xh%dt_inv, &
527 coef%jacinv, nelv, gdim)
529 cfl = sx_cfl_lx2(dt, u, v, w, &
530 coef%drdx, coef%dsdx, coef%dtdx, &
531 coef%drdy, coef%dsdy, coef%dtdy, &
532 coef%drdz, coef%dsdz, coef%dtdz, &
533 xh%dr_inv, xh%ds_inv, xh%dt_inv, &
534 coef%jacinv, nelv, gdim)
536 cfl = sx_cfl_lx(dt, u, v, w, &
537 coef%drdx, coef%dsdx, coef%dtdx, &
538 coef%drdy, coef%dsdy, coef%dtdy, &
539 coef%drdz, coef%dsdz, coef%dtdz, &
540 xh%dr_inv, xh%ds_inv, xh%dt_inv, &
541 coef%jacinv, nelv, gdim, xh%lx)
547 type(coef_t),
intent(in) :: coef
548 type(field_t),
intent(inout) ::
lambda2
549 type(field_t),
intent(in) :: u, v, w
551 associate(xh => coef%Xh, msh => coef%msh)
554 call sx_lambda2_lx18(
lambda2%x, u%x, v%x, w%x, &
555 xh%dx, xh%dy, xh%dz, &
556 coef%drdx, coef%dsdx, coef%dtdx, &
557 coef%drdy, coef%dsdy, coef%dtdy, &
558 coef%drdz, coef%dsdz, coef%dtdz, &
559 xh%w3, coef%B, msh%nelv)
561 call sx_lambda2_lx17(
lambda2%x, u%x, v%x, w%x, &
562 xh%dx, xh%dy, xh%dz, &
563 coef%drdx, coef%dsdx, coef%dtdx, &
564 coef%drdy, coef%dsdy, coef%dtdy, &
565 coef%drdz, coef%dsdz, coef%dtdz, &
566 xh%w3, coef%B, msh%nelv)
568 call sx_lambda2_lx16(
lambda2%x, u%x, v%x, w%x, &
569 xh%dx, xh%dy, xh%dz, &
570 coef%drdx, coef%dsdx, coef%dtdx, &
571 coef%drdy, coef%dsdy, coef%dtdy, &
572 coef%drdz, coef%dsdz, coef%dtdz, &
573 xh%w3, coef%B, msh%nelv)
575 call sx_lambda2_lx15(
lambda2%x, u%x, v%x, w%x, &
576 xh%dx, xh%dy, xh%dz, &
577 coef%drdx, coef%dsdx, coef%dtdx, &
578 coef%drdy, coef%dsdy, coef%dtdy, &
579 coef%drdz, coef%dsdz, coef%dtdz, &
580 xh%w3, coef%B, msh%nelv)
582 call sx_lambda2_lx14(
lambda2%x, u%x, v%x, w%x, &
583 xh%dx, xh%dy, xh%dz, &
584 coef%drdx, coef%dsdx, coef%dtdx, &
585 coef%drdy, coef%dsdy, coef%dtdy, &
586 coef%drdz, coef%dsdz, coef%dtdz, &
587 xh%w3, coef%B, msh%nelv)
589 call sx_lambda2_lx13(
lambda2%x, u%x, v%x, w%x, &
590 xh%dx, xh%dy, xh%dz, &
591 coef%drdx, coef%dsdx, coef%dtdx, &
592 coef%drdy, coef%dsdy, coef%dtdy, &
593 coef%drdz, coef%dsdz, coef%dtdz, &
594 xh%w3, coef%B, msh%nelv)
596 call sx_lambda2_lx12(
lambda2%x, u%x, v%x, w%x, &
597 xh%dx, xh%dy, xh%dz, &
598 coef%drdx, coef%dsdx, coef%dtdx, &
599 coef%drdy, coef%dsdy, coef%dtdy, &
600 coef%drdz, coef%dsdz, coef%dtdz, &
601 xh%w3, coef%B, msh%nelv)
603 call sx_lambda2_lx11(
lambda2%x, u%x, v%x, w%x, &
604 xh%dx, xh%dy, xh%dz, &
605 coef%drdx, coef%dsdx, coef%dtdx, &
606 coef%drdy, coef%dsdy, coef%dtdy, &
607 coef%drdz, coef%dsdz, coef%dtdz, &
608 xh%w3, coef%B, msh%nelv)
610 call sx_lambda2_lx10(
lambda2%x, u%x, v%x, w%x, &
611 xh%dx, xh%dy, xh%dz, &
612 coef%drdx, coef%dsdx, coef%dtdx, &
613 coef%drdy, coef%dsdy, coef%dtdy, &
614 coef%drdz, coef%dsdz, coef%dtdz, &
615 xh%w3, coef%B, msh%nelv)
617 call sx_lambda2_lx9(
lambda2%x, u%x, v%x, w%x, &
618 xh%dx, xh%dy, xh%dz, &
619 coef%drdx, coef%dsdx, coef%dtdx, &
620 coef%drdy, coef%dsdy, coef%dtdy, &
621 coef%drdz, coef%dsdz, coef%dtdz, &
622 xh%w3, coef%B, msh%nelv)
624 call sx_lambda2_lx8(
lambda2%x, u%x, v%x, w%x, &
625 xh%dx, xh%dy, xh%dz, &
626 coef%drdx, coef%dsdx, coef%dtdx, &
627 coef%drdy, coef%dsdy, coef%dtdy, &
628 coef%drdz, coef%dsdz, coef%dtdz, &
629 xh%w3, coef%B, msh%nelv)
631 call sx_lambda2_lx7(
lambda2%x, u%x, v%x, w%x, &
632 xh%dx, xh%dy, xh%dz, &
633 coef%drdx, coef%dsdx, coef%dtdx, &
634 coef%drdy, coef%dsdy, coef%dtdy, &
635 coef%drdz, coef%dsdz, coef%dtdz, &
636 xh%w3, coef%B, msh%nelv)
638 call sx_lambda2_lx6(
lambda2%x, u%x, v%x, w%x, &
639 xh%dx, xh%dy, xh%dz, &
640 coef%drdx, coef%dsdx, coef%dtdx, &
641 coef%drdy, coef%dsdy, coef%dtdy, &
642 coef%drdz, coef%dsdz, coef%dtdz, &
643 xh%w3, coef%B, msh%nelv)
645 call sx_lambda2_lx5(
lambda2%x, u%x, v%x, w%x, &
646 xh%dx, xh%dy, xh%dz, &
647 coef%drdx, coef%dsdx, coef%dtdx, &
648 coef%drdy, coef%dsdy, coef%dtdy, &
649 coef%drdz, coef%dsdz, coef%dtdz, &
650 xh%w3, coef%B, msh%nelv)
652 call sx_lambda2_lx4(
lambda2%x, u%x, v%x, w%x, &
653 xh%dx, xh%dy, xh%dz, &
654 coef%drdx, coef%dsdx, coef%dtdx, &
655 coef%drdy, coef%dsdy, coef%dtdy, &
656 coef%drdz, coef%dsdz, coef%dtdz, &
657 xh%w3, coef%B, msh%nelv)
659 call sx_lambda2_lx3(
lambda2%x, u%x, v%x, w%x, &
660 xh%dx, xh%dy, xh%dz, &
661 coef%drdx, coef%dsdx, coef%dtdx, &
662 coef%drdy, coef%dsdy, coef%dtdy, &
663 coef%drdz, coef%dsdz, coef%dtdz, &
664 xh%w3, coef%B, msh%nelv)
666 call sx_lambda2_lx2(
lambda2%x, u%x, v%x, w%x, &
667 xh%dx, xh%dy, xh%dz, &
668 coef%drdx, coef%dsdx, coef%dtdx, &
669 coef%drdy, coef%dsdy, coef%dtdy, &
670 coef%drdz, coef%dsdz, coef%dtdz, &
671 xh%w3, coef%B, msh%nelv)
673 call sx_lambda2_lx(
lambda2%x, u%x, v%x, w%x, &
674 xh%dx, xh%dy, xh%dz, &
675 coef%drdx, coef%dsdx, coef%dtdx, &
676 coef%drdy, coef%dsdy, coef%dtdy, &
677 coef%drdz, coef%dsdz, coef%dtdz, &
678 xh%w3, coef%B, msh%nelv, xh%lx)
A simulation component that computes lambda2 The values are stored in the field registry under the na...
Collection of vector field operations operating on and . Note that in general the indices and ....
integer, parameter, public rp
Global precision used in computations.
Operators SX-Aurora backend.
subroutine, public opr_sx_conv1(du, u, vx, vy, vz, Xh, coef, nelv, gdim)
subroutine, public opr_sx_opgrad(ux, uy, uz, u, coef)
subroutine, public opr_sx_dudxyz(du, u, dr, ds, dt, coef)
real(kind=rp) function, public opr_sx_cfl(dt, u, v, w, Xh, coef, nelv, gdim)
subroutine, public opr_sx_curl(w1, w2, w3, u1, u2, u3, work1, work2, c_Xh)
subroutine, public opr_sx_cdtp(dtx, x, dr, ds, dt, coef)
subroutine, public opr_sx_lambda2(lambda2, u, v, w, coef)
Defines a function space.
DT*X kernels for SX-Aurora.
Derivative kernels for SX-Aurora.
subroutine, public sx_dudxyz_lx8(du, u, dr, ds, dt, dx, dy, dz, jacinv, nel, nd)
subroutine, public sx_dudxyz_lx4(du, u, dr, ds, dt, dx, dy, dz, jacinv, nel, nd)
subroutine, public sx_dudxyz_lx12(du, u, dr, ds, dt, dx, dy, dz, jacinv, nel, nd)
subroutine, public sx_dudxyz_lx(du, u, dr, ds, dt, dx, dy, dz, jacinv, nel, nd, lx)
subroutine, public sx_dudxyz_lx3(du, u, dr, ds, dt, dx, dy, dz, jacinv, nel, nd)
subroutine, public sx_dudxyz_lx6(du, u, dr, ds, dt, dx, dy, dz, jacinv, nel, nd)
subroutine, public sx_dudxyz_lx7(du, u, dr, ds, dt, dx, dy, dz, jacinv, nel, nd)
subroutine, public sx_dudxyz_lx13(du, u, dr, ds, dt, dx, dy, dz, jacinv, nel, nd)
subroutine, public sx_dudxyz_lx2(du, u, dr, ds, dt, dx, dy, dz, jacinv, nel, nd)
subroutine, public sx_dudxyz_lx14(du, u, dr, ds, dt, dx, dy, dz, jacinv, nel, nd)
subroutine, public sx_dudxyz_lx10(du, u, dr, ds, dt, dx, dy, dz, jacinv, nel, nd)
subroutine, public sx_dudxyz_lx11(du, u, dr, ds, dt, dx, dy, dz, jacinv, nel, nd)
subroutine, public sx_dudxyz_lx5(du, u, dr, ds, dt, dx, dy, dz, jacinv, nel, nd)
subroutine, public sx_dudxyz_lx9(du, u, dr, ds, dt, dx, dy, dz, jacinv, nel, nd)
Lambda2 kernels for SX-Aurora.
Gradient kernels for SX-Aurora.
Coefficients defined on a given (mesh, ) tuple. Arrays use indices (i,j,k,e): element e,...
The function space for the SEM solution fields.