96 DENS_dt, MOMX_dt, MOMY_dt, MOMZ_dt, RHOT_dt, & ! (out)
97 ddens_, momx_, momy_, momz_, drhot_, dpres_, &
98 dens_hyd, pres_hyd, pres_hyd_ref, therm_hyd, &
99 coriolis, rtot, cvtot, cptot, dphyddx, dphyddy, &
100 element3d_operation, dx, dy, dz, sx, sy, sz, lift, &
101 lmesh, elem, lmesh2d, elem2d )
113 type(
sparsemat),
intent(in) :: dx, dy, dz, sx, sy, sz, lift
114 real(rp),
intent(out) :: dens_dt(elem%np,lmesh%nea)
115 real(rp),
intent(out) :: momx_dt(elem%np,lmesh%nea)
116 real(rp),
intent(out) :: momy_dt(elem%np,lmesh%nea)
117 real(rp),
intent(out) :: momz_dt(elem%np,lmesh%nea)
118 real(rp),
intent(out) :: rhot_dt(elem%np,lmesh%nea)
119 real(rp),
intent(in) :: ddens_(elem%np,lmesh%nea)
120 real(rp),
intent(in) :: momx_(elem%np,lmesh%nea)
121 real(rp),
intent(in) :: momy_(elem%np,lmesh%nea)
122 real(rp),
intent(in) :: momz_(elem%np,lmesh%nea)
123 real(rp),
intent(in) :: drhot_(elem%np,lmesh%nea)
124 real(rp),
intent(in) :: dpres_(elem%np,lmesh%nea)
125 real(rp),
intent(in) :: dens_hyd(elem%np,lmesh%nea)
126 real(rp),
intent(in) :: pres_hyd(elem%np,lmesh%nea)
127 real(rp),
intent(in) :: pres_hyd_ref(elem%np,lmesh%nea)
128 real(rp),
intent(in) :: therm_hyd(elem%np,lmesh%nea)
129 real(rp),
intent(in) :: coriolis(elem2d%np,lmesh2d%nea)
130 real(rp),
intent(in) :: rtot(elem%np,lmesh%nea)
131 real(rp),
intent(in) :: cvtot(elem%np,lmesh%nea)
132 real(rp),
intent(in) :: cptot(elem%np,lmesh%nea)
133 real(rp),
intent(in) :: dphyddx(elem%np,lmesh%nea)
134 real(rp),
intent(in) :: dphyddy(elem%np,lmesh%nea)
136 real(rp) :: fx(elem%np), fy(elem%np), fz(elem%np), liftdelflx(elem%np)
137 real(rp) :: dpres_hyd(elem%np), gradphyd_x(elem%np), gradphyd_y(elem%np)
138 real(rp) :: del_flux(elem%nfptot,lmesh%ne,
prgvar_num)
139 real(rp) :: del_flux_hyd(elem%nfptot,lmesh%ne,2)
140 real(rp) :: rhot_(elem%np)
141 real(rp) :: rdens_(elem%np), u_(elem%np), v_(elem%np), w_(elem%np), wt_(elem%np)
142 real(rp) :: cori(elem%np)
143 real(rp) :: drho(elem%np)
144 real(rp) :: gsqrtv(elem%np), rgsqrtv(elem%np)
148 real(rp) :: gamm, rgamm
150 real(rp) :: rovp0, p0ovr
153 call prof_rapstart(
'cal_dyn_tend_bndflux', 3)
154 call get_ebnd_flux( &
155 del_flux, del_flux_hyd, &
156 ddens_, momx_, momy_, momz_, drhot_, dpres_, dens_hyd, pres_hyd, &
157 rtot, cvtot, cptot, &
158 lmesh%Gsqrt, lmesh%GI3(:,:,1), lmesh%GI3(:,:,2), &
159 lmesh%normal_fn(:,:,1), lmesh%normal_fn(:,:,2), lmesh%normal_fn(:,:,3), &
160 lmesh%vmapM, lmesh%vmapP, &
161 lmesh, elem, lmesh2d, elem2d )
162 call prof_rapend(
'cal_dyn_tend_bndflux', 3)
165 call prof_rapstart(
'cal_dyn_tend_interior', 3)
167 rgamm = cvdry / cpdry
168 rp0 = 1.0_rp / pres00
170 p0ovr = pres00 / rdry
177 do ke = lmesh%NeS, lmesh%NeE
179 ke2d = lmesh%EMap3Dto2D(ke)
180 cori(:) = coriolis(elem%IndexH2Dto3D(:),ke2d)
182 gsqrtv(:) = lmesh%Gsqrt(:,ke) / lmesh%GsqrtH(elem%IndexH2Dto3D,ke2d)
183 rgsqrtv(:) = 1.0_rp / gsqrtv(:)
186 rhot_(:) = p0ovr * (pres_hyd(:,ke) * rp0)**rgamm + drhot_(:,ke)
190 rdens_(:) = 1.0_rp / (ddens_(:,ke) + dens_hyd(:,ke))
191 u_(:) = momx_(:,ke) * rdens_(:)
192 v_(:) = momy_(:,ke) * rdens_(:)
193 w_(:) = momz_(:,ke) * rdens_(:)
194 wt_(:) = w_(:) * rgsqrtv(:) + lmesh%GI3(:,ke,1) * u_(:) + lmesh%GI3(:,ke,2) * v_(:)
200 dpres_hyd(:) = pres_hyd(:,ke) - pres_hyd_ref(:,ke)
204 call sparsemat_matmul(lift, lmesh%Fscale(:,ke) * del_flux_hyd(:,ke,1), liftdelflx)
205 gradphyd_x(:) = lmesh%Escale(:,ke,1,1) * fx(:) &
206 + lmesh%Escale(:,ke,3,3) * fz(:) &
211 call sparsemat_matmul(lift, lmesh%Fscale(:,ke) * del_flux_hyd(:,ke,2), liftdelflx)
212 gradphyd_y(:) = lmesh%Escale(:,ke,2,2) * fy(:) &
213 + lmesh%Escale(:,ke,3,3) * fz(:) &
219 call sparsemat_matmul(dz, lmesh%Gsqrt(:,ke) * ( ddens_(:,ke) + dens_hyd(:,ke) ) * wt_(:), fz)
220 call sparsemat_matmul(lift, lmesh%Fscale(:,ke) * del_flux(:,ke,dens_vid), liftdelflx)
222 dens_dt(:,ke) = - ( &
223 lmesh%Escale(:,ke,1,1) * fx(:) &
224 + lmesh%Escale(:,ke,2,2) * fy(:) &
225 + lmesh%Escale(:,ke,3,3) * fz(:) &
226 + liftdelflx(:) ) / lmesh%Gsqrt(:,ke)
229 call sparsemat_matmul(dx, lmesh%Gsqrt(:,ke) * ( u_(:) * momx_(:,ke) + dpres_(:,ke) ), fx)
232 + lmesh%GI3(:,ke,1) * dpres_(:,ke) ), fz)
233 call sparsemat_matmul(lift, lmesh%Fscale(:,ke) * del_flux(:,ke,momx_vid), liftdelflx)
236 - ( lmesh%Escale(:,ke,1,1) * fx(:) &
237 + lmesh%Escale(:,ke,2,2) * fy(:) &
238 + lmesh%Escale(:,ke,3,3) * fz(:) &
239 + liftdelflx(:) ) / lmesh%Gsqrt(:,ke) &
240 - gradphyd_x(:) * rgsqrtv(:) &
241 + cori(:) * momy_(:,ke)
245 call sparsemat_matmul(dy, lmesh%Gsqrt(:,ke) * ( v_(:) * momy_(:,ke) + dpres_(:,ke) ), fy)
247 + lmesh%GI3(:,ke,2) * dpres_(:,ke) ), fz)
248 call sparsemat_matmul(lift, lmesh%Fscale(:,ke) * del_flux(:,ke,momy_vid), liftdelflx)
251 - ( lmesh%Escale(:,ke,1,1) * fx(:) &
252 + lmesh%Escale(:,ke,2,2) * fy(:) &
253 + lmesh%Escale(:,ke,3,3) * fz(:) &
254 + liftdelflx(:) ) / lmesh%Gsqrt(:,ke) &
255 - gradphyd_y(:) * rgsqrtv(:) &
256 - cori(:) * momx_(:,ke)
262 + rgsqrtv(:) * dpres_(:,ke) ), fz)
263 call sparsemat_matmul(lift, lmesh%Fscale(:,ke) * del_flux(:,ke,momz_vid), liftdelflx)
266 - ( lmesh%Escale(:,ke,1,1) * fx(:) &
267 + lmesh%Escale(:,ke,2,2) * fy(:) &
268 + lmesh%Escale(:,ke,3,3) * fz(:) &
269 + liftdelflx(:) ) / lmesh%Gsqrt(:,ke) &
276 call sparsemat_matmul(lift, lmesh%Fscale(:,ke) * del_flux(:,ke,rhot_vid), liftdelflx)
279 - ( lmesh%Escale(:,ke,1,1) * fx(:) &
280 + lmesh%Escale(:,ke,2,2) * fy(:) &
281 + lmesh%Escale(:,ke,3,3) * fz(:) &
282 + liftdelflx(:) ) / lmesh%Gsqrt(:,ke)
285 call prof_rapend(
'cal_dyn_tend_interior', 3)
293 DENS_dt, MOMX_dt, MOMY_dt, MOMZ_dt, RHOT_dt, & ! (out)
294 ddens_, momx_, momy_, momz_, drhot_, dpres_, &
295 dens_hyd, pres_hyd, pres_hyd_ref, therm_hyd, &
296 coriolis, rtot, cvtot, cptot, dphyddx, dphyddy, &
297 element3d_operation, dx, dy, dz, sx, sy, sz, lift, &
298 lmesh, elem, lmesh2d, elem2d )
310 type(
sparsemat),
intent(in) :: dx, dy, dz, sx, sy, sz, lift
311 real(rp),
intent(out) :: dens_dt(elem%np,lmesh%nea)
312 real(rp),
intent(out) :: momx_dt(elem%np,lmesh%nea)
313 real(rp),
intent(out) :: momy_dt(elem%np,lmesh%nea)
314 real(rp),
intent(out) :: momz_dt(elem%np,lmesh%nea)
315 real(rp),
intent(out) :: rhot_dt(elem%np,lmesh%nea)
316 real(rp),
intent(in) :: ddens_(elem%np,lmesh%nea)
317 real(rp),
intent(in) :: momx_(elem%np,lmesh%nea)
318 real(rp),
intent(in) :: momy_(elem%np,lmesh%nea)
319 real(rp),
intent(in) :: momz_(elem%np,lmesh%nea)
320 real(rp),
intent(in) :: drhot_(elem%np,lmesh%nea)
321 real(rp),
intent(in) :: dpres_(elem%np,lmesh%nea)
322 real(rp),
intent(in) :: dens_hyd(elem%np,lmesh%nea)
323 real(rp),
intent(in) :: pres_hyd(elem%np,lmesh%nea)
324 real(rp),
intent(in) :: pres_hyd_ref(elem%np,lmesh%nea)
325 real(rp),
intent(in) :: therm_hyd(elem%np,lmesh%nea)
326 real(rp),
intent(in) :: coriolis(elem2d%np,lmesh2d%nea)
327 real(rp),
intent(in) :: rtot(elem%np,lmesh%nea)
328 real(rp),
intent(in) :: cvtot(elem%np,lmesh%nea)
329 real(rp),
intent(in) :: cptot(elem%np,lmesh%nea)
330 real(rp),
intent(in) :: dphyddx(elem%np,lmesh%nea)
331 real(rp),
intent(in) :: dphyddy(elem%np,lmesh%nea)
333 real(rp) :: flux(elem%np,3,5), dflux(elem%np,4,5)
334 real(rp) :: del_flux(elem%nfptot,
prgvar_num,lmesh%ne)
335 real(rp) :: u_, v_, w_, pt_
337 real(rp) :: drho(elem%np)
338 real(rp) :: rdens_(elem%np), gsqrtv(elem%np), rgsqrtv(elem%np), rgsqrt(elem%np)
339 real(rp) :: gsqrt_, gsqrtdpres_, e11, e22, e33
344 real(rp) :: gamm, rgamm
346 real(rp) :: rovp0, p0ovr
349 call prof_rapstart(
'cal_dyn_tend_bndflux', 3)
350 call get_ebnd_flux( &
352 ddens_, momx_, momy_, momz_, drhot_, dpres_, dens_hyd, pres_hyd, therm_hyd, &
353 rtot, cvtot, cptot, &
354 lmesh%Gsqrt, lmesh%GI3(:,:,1), lmesh%GI3(:,:,2), &
355 lmesh%normal_fn(:,:,1), lmesh%normal_fn(:,:,2), lmesh%normal_fn(:,:,3), &
356 lmesh%vmapM, lmesh%vmapP, &
357 lmesh, elem, lmesh2d, elem2d )
358 call prof_rapend(
'cal_dyn_tend_bndflux', 3)
360 call prof_rapstart(
'cal_dyn_tend_interior', 3)
362 rgamm = cvdry / cpdry
363 rp0 = 1.0_rp / pres00
365 p0ovr = pres00 / rdry
372 do ke = lmesh%NeS, lmesh%NeE
374 ke2d = lmesh%EMap3Dto2D(ke)
377 gsqrtv(p) = lmesh%Gsqrt(p,ke) / lmesh%GsqrtH(elem%IndexH2Dto3D(p),ke2d)
378 rgsqrtv(p) = 1.0_rp / gsqrtv(p)
379 rgsqrt(p) = 1.0_rp / lmesh%Gsqrt(p,ke)
380 rdens_(p) = 1.0_rp / (ddens_(p,ke) + dens_hyd(p,ke))
386 gsqrt_ = lmesh%Gsqrt(p,ke)
387 flux(p,1,dens_vid) = gsqrt_ * momx_(p,ke)
388 flux(p,2,dens_vid) = gsqrt_ * momy_(p,ke)
389 flux(p,3,dens_vid) = gsqrt_ * ( &
390 momz_(p,ke) * rgsqrtv(p) &
391 + lmesh%GI3(p,ke,1) * momx_(p,ke) &
392 + lmesh%GI3(p,ke,2) * momy_(p,ke) )
395 pt_ = ( therm_hyd(p,ke) + drhot_(p,ke) ) * rdens_(p)
397 flux(p,1,rhot_vid) = flux(p,1,dens_vid) * pt_
398 flux(p,2,rhot_vid) = flux(p,2,dens_vid) * pt_
399 flux(p,3,rhot_vid) = flux(p,3,dens_vid) * pt_
401 w_ = momz_(p,ke) * rdens_(p)
402 flux(p,1,momz_vid) = flux(p,1,dens_vid) * w_
403 flux(p,2,momz_vid) = flux(p,2,dens_vid) * w_
404 flux(p,3,momz_vid) = flux(p,3,dens_vid) * w_ + lmesh%Gsqrt(p,ke) * dpres_(p,ke) * rgsqrtv(p)
407 gsqrtdpres_ = lmesh%Gsqrt(p,ke) * dpres_(p,ke)
409 u_ = momx_(p,ke) * rdens_(p)
410 flux(p,1,momx_vid) = flux(p,1,dens_vid) * u_ + gsqrtdpres_
411 flux(p,2,momx_vid) = flux(p,2,dens_vid) * u_
412 flux(p,3,momx_vid) = flux(p,3,dens_vid) * u_ + gsqrtdpres_ * lmesh%GI3(p,ke,1)
414 v_ = momy_(p,ke) * rdens_(p)
415 flux(p,1,momy_vid) = flux(p,1,dens_vid) * v_
416 flux(p,2,momy_vid) = flux(p,2,dens_vid) * v_ + gsqrtdpres_
417 flux(p,3,momy_vid) = flux(p,3,dens_vid) * v_ + gsqrtdpres_ * lmesh%GI3(p,ke,2)
420 call element3d_operation%Div_var5( &
421 flux, del_flux(:,:,ke), &
425 e11 = lmesh%Escale(p,ke,1,1)
426 e22 = lmesh%Escale(p,ke,2,2)
427 e33 = lmesh%Escale(p,ke,3,3)
429 dens_dt(p,ke) = - ( &
430 e11 * dflux(p,1,dens_vid) &
431 + e22 * dflux(p,2,dens_vid) &
432 + e33 * dflux(p,3,dens_vid) &
433 + dflux(p,4,dens_vid) ) * rgsqrt(p)
435 rhot_dt(p,ke) = - ( &
436 e11 * dflux(p,1,rhot_vid) &
437 + e22 * dflux(p,2,rhot_vid) &
438 + e33 * dflux(p,3,rhot_vid) &
439 + dflux(p,4,rhot_vid) ) * rgsqrt(p)
442 call element3d_operation%VFilterPM1( ddens_(:,ke), &
446 e11 = lmesh%Escale(p,ke,1,1)
447 e22 = lmesh%Escale(p,ke,2,2)
448 e33 = lmesh%Escale(p,ke,3,3)
450 momz_dt(p,ke) = - ( &
451 e11 * dflux(p,1,momz_vid) &
452 + e22 * dflux(p,2,momz_vid) &
453 + e33 * dflux(p,3,momz_vid) &
454 + dflux(p,4,momz_vid) ) * rgsqrt(p) &
460 cor = coriolis(elem%IndexH2Dto3D(p),ke2d)
461 momx_dt(p,ke) = - dphyddx(p,ke) &
463 momy_dt(p,ke) = - dphyddy(p,ke) &
468 e11 = lmesh%Escale(p,ke,1,1)
469 e22 = lmesh%Escale(p,ke,2,2)
470 e33 = lmesh%Escale(p,ke,3,3)
472 momx_dt(p,ke) = momx_dt(p,ke) - ( &
473 e11 * dflux(p,1,momx_vid) &
474 + e22 * dflux(p,2,momx_vid) &
475 + e33 * dflux(p,3,momx_vid) &
476 + dflux(p,4,momx_vid) ) * rgsqrt(p)
478 momy_dt(p,ke) = momy_dt(p,ke) - ( &
479 e11 * dflux(p,1,momy_vid) &
480 + e22 * dflux(p,2,momy_vid) &
481 + e33 * dflux(p,3,momy_vid) &
482 + dflux(p,4,momy_vid) ) * rgsqrt(p)
486 call prof_rapend(
'cal_dyn_tend_interior', 3)
494 DENS_dt, MOMX_dt, MOMY_dt, MOMZ_dt, RHOT_dt, & ! (out)
495 ddens_, momx_, momy_, momz_, drhot_, dpres_, &
496 dens_hyd, pres_hyd, pres_hyd_ref, therm_hyd, &
497 coriolis, rtot, cvtot, cptot, dphyddx, dphyddy, &
498 element3d_operation, dx, dy, dz, sx, sy, sz, lift, &
499 lmesh, elem, lmesh2d, elem2d )
511 type(
sparsemat),
intent(in) :: dx, dy, dz, sx, sy, sz, lift
512 real(rp),
intent(out) :: dens_dt(elem%np,lmesh%nea)
513 real(rp),
intent(out) :: momx_dt(elem%np,lmesh%nea)
514 real(rp),
intent(out) :: momy_dt(elem%np,lmesh%nea)
515 real(rp),
intent(out) :: momz_dt(elem%np,lmesh%nea)
516 real(rp),
intent(out) :: rhot_dt(elem%np,lmesh%nea)
517 real(rp),
intent(in) :: ddens_(elem%np,lmesh%nea)
518 real(rp),
intent(in) :: momx_(elem%np,lmesh%nea)
519 real(rp),
intent(in) :: momy_(elem%np,lmesh%nea)
520 real(rp),
intent(in) :: momz_(elem%np,lmesh%nea)
521 real(rp),
intent(in) :: drhot_(elem%np,lmesh%nea)
522 real(rp),
intent(in) :: dpres_(elem%np,lmesh%nea)
523 real(rp),
intent(in) :: dens_hyd(elem%np,lmesh%nea)
524 real(rp),
intent(in) :: pres_hyd(elem%np,lmesh%nea)
525 real(rp),
intent(in) :: pres_hyd_ref(elem%np,lmesh%nea)
526 real(rp),
intent(in) :: therm_hyd(elem%np,lmesh%nea)
527 real(rp),
intent(in) :: coriolis(elem2d%np,lmesh2d%nea)
528 real(rp),
intent(in) :: rtot(elem%np,lmesh%nea)
529 real(rp),
intent(in) :: cvtot(elem%np,lmesh%nea)
530 real(rp),
intent(in) :: cptot(elem%np,lmesh%nea)
531 real(rp),
intent(in) :: dphyddx(elem%np,lmesh%nea)
532 real(rp),
intent(in) :: dphyddy(elem%np,lmesh%nea)
534 real(rp) :: flux(elem%np,3,5), dflux(elem%np,3,5)
535 real(rp) :: u_, v_, w_, pt_
537 real(rp) :: drho(elem%np)
538 real(rp) :: rdens_(elem%np), gsqrtv(elem%np), rgsqrtv(elem%np), rgsqrt(elem%np)
539 real(rp) :: gsqrt_, gsqrtdpres_, e11, e22, e33
544 real(rp) :: gamm, rgamm
546 real(rp) :: rovp0, p0ovr
549 call prof_rapstart(
'cal_dyn_tend_interior', 3)
551 rgamm = cvdry / cpdry
552 rp0 = 1.0_rp / pres00
554 p0ovr = pres00 / rdry
561 do ke = lmesh%NeS, lmesh%NeE
563 ke2d = lmesh%EMap3Dto2D(ke)
566 gsqrtv(p) = lmesh%Gsqrt(p,ke) / lmesh%GsqrtH(elem%IndexH2Dto3D(p),ke2d)
567 rgsqrtv(p) = 1.0_rp / gsqrtv(p)
568 rgsqrt(p) = 1.0_rp / lmesh%Gsqrt(p,ke)
569 rdens_(p) = 1.0_rp / (ddens_(p,ke) + dens_hyd(p,ke))
575 gsqrt_ = lmesh%Gsqrt(p,ke)
576 flux(p,1,dens_vid) = gsqrt_ * momx_(p,ke)
577 flux(p,2,dens_vid) = gsqrt_ * momy_(p,ke)
578 flux(p,3,dens_vid) = gsqrt_ * ( &
579 momz_(p,ke) * rgsqrtv(p) &
580 + lmesh%GI3(p,ke,1) * momx_(p,ke) &
581 + lmesh%GI3(p,ke,2) * momy_(p,ke) )
584 pt_ = ( therm_hyd(p,ke) + drhot_(p,ke) ) * rdens_(p)
586 flux(p,1,rhot_vid) = flux(p,1,dens_vid) * pt_
587 flux(p,2,rhot_vid) = flux(p,2,dens_vid) * pt_
588 flux(p,3,rhot_vid) = flux(p,3,dens_vid) * pt_
590 w_ = momz_(p,ke) * rdens_(p)
591 flux(p,1,momz_vid) = flux(p,1,dens_vid) * w_
592 flux(p,2,momz_vid) = flux(p,2,dens_vid) * w_
593 flux(p,3,momz_vid) = flux(p,3,dens_vid) * w_ + lmesh%Gsqrt(p,ke) * dpres_(p,ke) * rgsqrtv(p)
596 gsqrtdpres_ = lmesh%Gsqrt(p,ke) * dpres_(p,ke)
598 u_ = momx_(p,ke) * rdens_(p)
599 flux(p,1,momx_vid) = flux(p,1,dens_vid) * u_ + gsqrtdpres_
600 flux(p,2,momx_vid) = flux(p,2,dens_vid) * u_
601 flux(p,3,momx_vid) = flux(p,3,dens_vid) * u_ + gsqrtdpres_ * lmesh%GI3(p,ke,1)
603 v_ = momy_(p,ke) * rdens_(p)
604 flux(p,1,momy_vid) = flux(p,1,dens_vid) * v_
605 flux(p,2,momy_vid) = flux(p,2,dens_vid) * v_ + gsqrtdpres_
606 flux(p,3,momy_vid) = flux(p,3,dens_vid) * v_ + gsqrtdpres_ * lmesh%GI3(p,ke,2)
609 call element3d_operation%Div_var5_2( &
614 e11 = lmesh%Escale(p,ke,1,1)
615 e22 = lmesh%Escale(p,ke,2,2)
616 e33 = lmesh%Escale(p,ke,3,3)
618 dens_dt(p,ke) = - ( &
619 e11 * dflux(p,1,dens_vid) &
620 + e22 * dflux(p,2,dens_vid) &
621 + e33 * dflux(p,3,dens_vid) &
624 rhot_dt(p,ke) = - ( &
625 e11 * dflux(p,1,rhot_vid) &
626 + e22 * dflux(p,2,rhot_vid) &
627 + e33 * dflux(p,3,rhot_vid) &
631 call element3d_operation%VFilterPM1( ddens_(:,ke), &
635 e11 = lmesh%Escale(p,ke,1,1)
636 e22 = lmesh%Escale(p,ke,2,2)
637 e33 = lmesh%Escale(p,ke,3,3)
639 momz_dt(p,ke) = - ( &
640 e11 * dflux(p,1,momz_vid) &
641 + e22 * dflux(p,2,momz_vid) &
642 + e33 * dflux(p,3,momz_vid) &
649 cor = coriolis(elem%IndexH2Dto3D(p),ke2d)
650 momx_dt(p,ke) = - dphyddx(p,ke) &
652 momy_dt(p,ke) = - dphyddy(p,ke) &
657 e11 = lmesh%Escale(p,ke,1,1)
658 e22 = lmesh%Escale(p,ke,2,2)
659 e33 = lmesh%Escale(p,ke,3,3)
661 momx_dt(p,ke) = momx_dt(p,ke) - ( &
662 e11 * dflux(p,1,momx_vid) &
663 + e22 * dflux(p,2,momx_vid) &
664 + e33 * dflux(p,3,momx_vid) &
667 momy_dt(p,ke) = momy_dt(p,ke) - ( &
668 e11 * dflux(p,1,momy_vid) &
669 + e22 * dflux(p,2,momy_vid) &
670 + e33 * dflux(p,3,momy_vid) &
675 call prof_rapend(
'cal_dyn_tend_interior', 3)