module gms_grid_info
 	use datatype
 	use model_info
 	use mem_manager
	implicit none

!! on = 0, off = 1 !!
!! 3D !!
	integer, dimension(3),parameter :: on_on_on_grid 		= (/gms_on_grid, gms_on_grid, gms_on_grid/)
	integer, dimension(3),parameter :: on_on_off_grid 		= (/gms_on_grid, gms_on_grid, gms_off_grid/)
	integer, dimension(3),parameter :: on_off_on_grid 		= (/gms_on_grid, gms_off_grid, gms_on_grid/)
	integer, dimension(3),parameter :: on_off_off_grid 		= (/gms_on_grid, gms_off_grid, gms_off_grid/)

	integer, dimension(3),parameter :: off_on_on_grid 		= (/gms_off_grid, gms_on_grid, gms_on_grid/)
	integer, dimension(3),parameter :: off_on_off_grid 		= (/gms_off_grid, gms_on_grid, gms_off_grid/)
	integer, dimension(3),parameter :: off_off_on_grid 		= (/gms_off_grid, gms_off_grid, gms_on_grid/)
	integer, dimension(3),parameter :: off_off_off_grid 	= (/gms_off_grid, gms_off_grid, gms_off_grid/)

!! 2D !!
!!! x-y !!!
	integer, dimension(3),parameter :: on_on_none_grid 		= (/gms_on_grid, gms_on_grid, gms_none_grid/)
	integer, dimension(3),parameter :: on_off_none_grid 	= (/gms_on_grid, gms_off_grid, gms_none_grid/)
	integer, dimension(3),parameter :: off_on_none_grid 	= (/gms_off_grid, gms_on_grid, gms_none_grid/)
	integer, dimension(3),parameter :: off_off_none_grid 	= (/gms_off_grid, gms_off_grid, gms_none_grid/)

!!! x-z !!!
	integer, dimension(3),parameter :: on_none_on_grid 		= (/gms_on_grid, gms_none_grid, gms_on_grid/)
	integer, dimension(3),parameter :: on_none_off_grid 	= (/gms_on_grid, gms_none_grid, gms_off_grid/)
	integer, dimension(3),parameter :: off_none_on_grid 	= (/gms_off_grid, gms_none_grid, gms_on_grid/)
	integer, dimension(3),parameter :: off_none_off_grid 	= (/gms_off_grid, gms_none_grid, gms_off_grid/)

!!! y-z !!!
	integer, dimension(3),parameter :: none_on_on_grid 		= (/gms_none_grid, gms_on_grid, gms_on_grid/)
	integer, dimension(3),parameter :: none_on_off_grid 	= (/gms_none_grid, gms_on_grid, gms_off_grid/)
	integer, dimension(3),parameter :: none_off_on_grid 	= (/gms_none_grid, gms_off_grid, gms_on_grid/)
	integer, dimension(3),parameter :: none_off_off_grid 	= (/gms_none_grid, gms_off_grid, gms_off_grid/)


!! 1D !!
!!! x !!!
	integer, dimension(3),parameter :: on_none_none_grid 	= (/gms_on_grid, gms_none_grid, gms_none_grid/)
	integer, dimension(3),parameter :: off_none_none_grid 	= (/gms_off_grid, gms_none_grid, gms_none_grid/)

!!! y !!!
	integer, dimension(3),parameter :: none_on_none_grid 	= (/gms_none_grid, gms_on_grid, gms_none_grid/)
	integer, dimension(3),parameter :: none_off_none_grid 	= (/gms_none_grid, gms_off_grid, gms_none_grid/)

!!! z !!!
	integer, dimension(3),parameter :: none_none_on_grid 	= (/gms_none_grid, gms_none_grid, gms_on_grid/)
	integer, dimension(3),parameter :: none_none_off_grid 	= (/gms_none_grid, gms_none_grid, gms_off_grid/)

end module gms_grid_info
