module datatype
  implicit none
  integer, parameter :: gms_on_grid = 0
  integer, parameter :: gms_off_grid = 1
  integer, parameter :: gms_none_grid = -1

  type var_x
     integer :: id
     integer, dimension(3) :: grid
  end type var_x

  type var_y
     integer :: id
     integer, dimension(3) :: grid
  end type var_y

  type var_z
     integer :: id
     integer, dimension(3) :: grid
  end type var_z

  type var_xy
     integer :: id
     integer, dimension(3) :: grid
  end type var_xy

  type var_xz
     integer :: id
     integer, dimension(3) :: grid
  end type var_xz

  type var_yz
     integer :: id
     integer, dimension(3) :: grid
  end type var_yz

  type var_xyz
     integer :: id
     integer, dimension(3) :: grid
  end type var_xyz
end module datatype
