module hpfdata
use types
use parameters
integer, parameter  :: ngf=2
integer, parameter  :: tlevels=2
integer, parameter  :: n1id=1,n2id=2,n3id=2,n4id=2,n5id=2
integer, parameter  :: g1x=100,g2x=200,g3x=400,g4x=800,g5x=1600
integer, parameter  :: g1y=100,g2y=200,g3y=400,g4y=800,g5y=1600
integer, parameter  :: g1z=1,g2z=1,g3z=1,g4z=1,g5z=1

!assuming that n5id == max(nXid)
integer(I4B),dimension(maxlevel,n5id,3)               :: gfrb,gflb

real, dimension(n1id,ngf,tlevels,g1x,g1y,g1z),target :: glev1
real, dimension(n2id,ngf,tlevels,g2x,g2y,g2z),target :: glev2
real, dimension(n3id,ngf,tlevels,g3x,g3y,g3z),target :: glev3
real, dimension(n4id,ngf,tlevels,g4x,g4y,g4z),target :: glev4
real, dimension(n5id,ngf,tlevels,g5x,g5y,g5z),target :: glev5

!HPF$ PROCESSORS PCS(PX,PY)
!HPF$ DISTRIBUTE (*,*,*,BLOCK,BLOCK,*) ONTO PCS :: glev1,glev2,glev3
!HPF$ DISTRIBUTE (*,*,*,BLOCK,BLOCK,*) ONTO PCS :: glev4,glev5

end module hpfdata