@@ -302,6 +302,7 @@ contains
302302 end do
303303
304304 levelset%sf(i, j, 0 , ib_patch_id) = side_dists(idx)
305+ levelset_norm%sf(i, j, 0 , ib_patch_id, :) = 0._wp
305306 if (.not. f_approx_equal(side_dists(idx), 0._wp )) then
306307 if (idx == 1 .or. idx == 2 ) then
307308 ! vector points along the x axis
@@ -387,56 +388,45 @@ contains
387388 ! leading to undesired behavior. This should be resolved
388389 ! and this code should be cleaned up. I verified this behavior
389390 ! with tests.
391+ levelset_norm%sf(i, j, k, ib_patch_id, :) = 0._wp
390392 if (f_approx_equal(min_dist, abs(side_dists(1)))) then
391393 levelset%sf(i, j, k, ib_patch_id) = side_dists(1)
392- if (f_approx_equal(side_dists(1), 0._wp)) then
393- levelset_norm%sf(i, j, k, ib_patch_id, 1) = 0._wp
394- else
394+ if (.not. f_approx_equal(side_dists(1), 0._wp)) then
395395 levelset_norm%sf(i, j, k, ib_patch_id, 1) = side_dists(1)/ &
396396 abs(side_dists(1))
397397 end if
398398
399399 else if (f_approx_equal(min_dist, abs(side_dists(2)))) then
400400 levelset%sf(i, j, k, ib_patch_id) = side_dists(2)
401- if (f_approx_equal(side_dists(2), 0._wp)) then
402- levelset_norm%sf(i, j, k, ib_patch_id, 1) = 0._wp
403- else
401+ if (.not. f_approx_equal(side_dists(2), 0._wp)) then
404402 levelset_norm%sf(i, j, k, ib_patch_id, 1) = -side_dists(2)/ &
405403 abs(side_dists(2))
406404 end if
407405
408406 else if (f_approx_equal(min_dist, abs(side_dists(3)))) then
409407 levelset%sf(i, j, k, ib_patch_id) = side_dists(3)
410- if (f_approx_equal(side_dists(3), 0._wp)) then
411- levelset_norm%sf(i, j, k, ib_patch_id, 2) = 0._wp
412- else
408+ if (.not. f_approx_equal(side_dists(3), 0._wp)) then
413409 levelset_norm%sf(i, j, k, ib_patch_id, 2) = side_dists(3)/ &
414410 abs(side_dists(3))
415411 end if
416412
417413 else if (f_approx_equal(min_dist, abs(side_dists(4)))) then
418414 levelset%sf(i, j, k, ib_patch_id) = side_dists(4)
419- if (f_approx_equal(side_dists(4), 0._wp)) then
420- levelset_norm%sf(i, j, k, ib_patch_id, 2) = 0._wp
421- else
415+ if (.not. f_approx_equal(side_dists(4), 0._wp)) then
422416 levelset_norm%sf(i, j, k, ib_patch_id, 2) = -side_dists(4)/ &
423417 abs(side_dists(4))
424418 end if
425419
426420 else if (f_approx_equal(min_dist, abs(side_dists(5)))) then
427421 levelset%sf(i, j, k, ib_patch_id) = side_dists(5)
428- if (f_approx_equal(side_dists(5), 0._wp)) then
429- levelset_norm%sf(i, j, k, ib_patch_id, 3) = 0._wp
430- else
422+ if (.not. f_approx_equal(side_dists(5), 0._wp)) then
431423 levelset_norm%sf(i, j, k, ib_patch_id, 3) = side_dists(5)/ &
432424 abs(side_dists(5))
433425 end if
434426
435427 else if (f_approx_equal(min_dist, abs(side_dists(6)))) then
436428 levelset%sf(i, j, k, ib_patch_id) = side_dists(6)
437- if (f_approx_equal(side_dists(6), 0._wp)) then
438- levelset_norm%sf(i, j, k, ib_patch_id, 3) = 0._wp
439- else
429+ if (.not. f_approx_equal(side_dists(6), 0._wp)) then
440430 levelset_norm%sf(i, j, k, ib_patch_id, 3) = -side_dists(6)/ &
441431 abs(side_dists(6))
442432 end if
0 commit comments