compare_solid Function

public function compare_solid(solid_info, npts_loc_new, ids_loc_new, pts_loc_new, label) result(passed)

Uses

  • proc~~compare_solid~~UsesGraph proc~compare_solid compare_solid decomp_2d decomp_2d proc~compare_solid->decomp_2d module~modibm modibm proc~compare_solid->module~modibm module~modmpi modmpi proc~compare_solid->module~modmpi module~modibmdata modibmdata module~modibm->module~modibmdata mpi mpi module~modibm->mpi module~modmpi->mpi

Arguments

Type IntentOptional Attributes Name
type(solid_info_type), intent(in) :: solid_info
integer, intent(in) :: npts_loc_new
integer, intent(in) :: ids_loc_new(:)
integer, intent(in) :: pts_loc_new(:,:)
character(len=*), intent(in) :: label

Return Value logical


Called by

proc~~compare_solid~~CalledByGraph proc~compare_solid compare_solid proc~tests_read_sparse_ijk tests_read_sparse_ijk proc~tests_read_sparse_ijk->proc~compare_solid proc~execute_runmode_actions execute_runmode_actions proc~execute_runmode_actions->proc~tests_read_sparse_ijk program~udales uDALES program~udales->proc~execute_runmode_actions

Source Code

  function compare_solid(solid_info, npts_loc_new, ids_loc_new, pts_loc_new, label) result(passed)
    use modmpi, only : myid
    use modibm, only : solid_info_type
    use decomp_2d, only : zstart, zend
    
    type(solid_info_type), intent(in) :: solid_info
    integer, intent(in) :: npts_loc_new
    integer, intent(in) :: ids_loc_new(:), pts_loc_new(:,:)
    character(len=*), intent(in) :: label
    logical :: passed
    integer :: m
    
    passed = .true.
    
    if (npts_loc_new /= solid_info%nsolptsrank) then
      write(*, '(A,I0,A,A,A)') 'FAIL on rank ', myid, ': ', trim(label), ' count mismatch'
      passed = .false.
      return
    end if
    
    do m = 1, solid_info%nsolptsrank
      if (ids_loc_new(m) /= solid_info%solptsrank(m)) then
        write(*, '(A,I0,A,A,A)') 'FAIL on rank ', myid, ': ', trim(label), ' index mismatch'
        passed = .false.
        return
      end if
      if (pts_loc_new(m,1) /= solid_info%solpts_loc(m,1) .or. &
          pts_loc_new(m,2) /= solid_info%solpts_loc(m,2) .or. &
          pts_loc_new(m,3) /= solid_info%solpts_loc(m,3)) then
        write(*, '(A,I0,A,A,A)') 'FAIL on rank ', myid, ': ', trim(label), ' coordinate mismatch'
        passed = .false.
        return
      end if
    end do
    
  end function compare_solid