subroutine get_fortran_array(array)
  use dc_types, only: DP

  real(DP), intent(out) :: array(3,2)

  integer :: i, j
  array(:,:) = reshape((/ 10d0, 20d0, 30d0, 40d0, 50d0, 60d0 /), shape(array) )

  write(*,*) 'Fortran side:--- Follwing array will be passed to C++.'
  write(*,*) 'shape:', shape(array)
  do i=1,3
      write(*,*) (array(i,j), j=1,2)
  end do
  write(*,*) '----------------'

end subroutine get_fortran_array

subroutine check_field_grid1d(ptr)
  use Field_Grid1D_Manager, only: &
    & Field_Grid1D

  type(Field_Grid1D), pointer, intent(in) :: ptr

  write(*,*) 'field1D Grid--'
  write(*,*) ptr%grid1D(:)

end subroutine check_field_grid1d
