logical function tests_read_sparse_ijk() use modglobal, only : runmode use readinput, only : read_sparse_ijk use modibm, only : initibm use modibm, only : solid_info_u, solid_info_v, solid_info_w, solid_info_c use modibm, only : bound_info_u, bound_info_v, bound_info_w, bound_info_c use modibm, only : nsolpts_u, nsolpts_v, nsolpts_w, nsolpts_c use modibm, only : nbndpts_u, nbndpts_v, nbndpts_w, nbndpts_c use initfac, only : readfacetfiles use decomp_2d, only : zstart, zend, xstart, xend, ystart, yend implicit none integer :: npts_loc_new integer, allocatable :: ids_loc_new(:) integer, allocatable :: pts_loc_new(:,:) logical :: all_passed if (myid == 0) then write(*, '(A)') '================================================' write(*, '(A, I8)') 'runmode = ', runmode write(*, '(A)') 'tests_read_sparse_ijk: SPARSE INPUT FILE TEST' write(*, '(A)') '------------------------------------------------' write(*, '(A)') 'Testing sparse solid_*.txt and fluid_boundary_*.txt files' end if ! Read facet files and initialize IBM - populates all global arrays call readfacetfiles call initibm all_passed = .true. ! Test solid_u call read_sparse_ijk('solid_u.txt', nsolpts_u, npts_loc_new, ids_loc_new, pts_loc_new, 1) if (.not. compare_solid(solid_info_u, npts_loc_new, ids_loc_new, pts_loc_new, 'solid_u')) all_passed = .false. deallocate(ids_loc_new, pts_loc_new) ! Test solid_v call read_sparse_ijk('solid_v.txt', nsolpts_v, npts_loc_new, ids_loc_new, pts_loc_new, 1) if (.not. compare_solid(solid_info_v, npts_loc_new, ids_loc_new, pts_loc_new, 'solid_v')) all_passed = .false. deallocate(ids_loc_new, pts_loc_new) ! Test solid_w call read_sparse_ijk('solid_w.txt', nsolpts_w, npts_loc_new, ids_loc_new, pts_loc_new, 1) if (.not. compare_solid(solid_info_w, npts_loc_new, ids_loc_new, pts_loc_new, 'solid_w')) all_passed = .false. deallocate(ids_loc_new, pts_loc_new) ! Test solid_c call read_sparse_ijk('solid_c.txt', nsolpts_c, npts_loc_new, ids_loc_new, pts_loc_new, 1) if (.not. compare_solid(solid_info_c, npts_loc_new, ids_loc_new, pts_loc_new, 'solid_c')) all_passed = .false. deallocate(ids_loc_new, pts_loc_new) ! Test fluid_boundary_u call read_sparse_ijk('fluid_boundary_u.txt', nbndpts_u, npts_loc_new, ids_loc_new, pts_loc_new, 1) if (.not. compare_boundary(bound_info_u, npts_loc_new, ids_loc_new, pts_loc_new, 'fluid_boundary_u')) all_passed = .false. deallocate(ids_loc_new, pts_loc_new) ! Test fluid_boundary_v call read_sparse_ijk('fluid_boundary_v.txt', nbndpts_v, npts_loc_new, ids_loc_new, pts_loc_new, 1) if (.not. compare_boundary(bound_info_v, npts_loc_new, ids_loc_new, pts_loc_new, 'fluid_boundary_v')) all_passed = .false. deallocate(ids_loc_new, pts_loc_new) ! Test fluid_boundary_w call read_sparse_ijk('fluid_boundary_w.txt', nbndpts_w, npts_loc_new, ids_loc_new, pts_loc_new, 1) if (.not. compare_boundary(bound_info_w, npts_loc_new, ids_loc_new, pts_loc_new, 'fluid_boundary_w')) all_passed = .false. deallocate(ids_loc_new, pts_loc_new) ! Test fluid_boundary_c call read_sparse_ijk('fluid_boundary_c.txt', nbndpts_c, npts_loc_new, ids_loc_new, pts_loc_new, 1) if (.not. compare_boundary(bound_info_c, npts_loc_new, ids_loc_new, pts_loc_new, 'fluid_boundary_c')) all_passed = .false. deallocate(ids_loc_new, pts_loc_new) if (all_passed .and. myid == 0) then write(*, '(A)') '------------------------------------------------' write(*, '(A)') 'ALL TESTS PASSED: tests_read_sparse_ijk' write(*, '(A)') ' Tested 8 files successfully' write(*, '(A)') ' All results match IBM initialization code' write(*, '(A)') '================================================' else if (.not. all_passed .and. myid == 0) then write(*, '(A)') '------------------------------------------------' write(*, '(A)') 'TESTS FAILED: tests_read_sparse_ijk' write(*, '(A)') ' One or more tests did not pass' write(*, '(A)') '================================================' end if tests_read_sparse_ijk = all_passed end function tests_read_sparse_ijk