function calc_nsites_kagome(this, length_x, length_y, length_z) result(n_sites)
class(kagome) :: this
integer, intent(in) :: length_x, length_y
integer, intent(in), optional :: length_z
integer :: n_sites
character(*), parameter :: this_routine = "calc_nsites_kagome"
unused_var(this)
if (present(length_z)) then
unused_var(length_z)
end if
! the length_x and length_y of the kagome are defined as the number of unit cells..
! and there are 8 sites in my kagome unit cell..
ASSERT(length_x > 0)
ASSERT(length_y > 0)
n_sites = length_x * length_y * 6
end function calc_nsites_kagome