Map a global element position (gx,gy,gz), with gx in [1,nX] etc., to the tile-ordered element id used throughout the structured mesh. This is the inverse of the (i,ti) decomposition: gx = i + nxpertile*(ti-1).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | gx | |||
| integer, | intent(in) | :: | gy | |||
| integer, | intent(in) | :: | gz | |||
| integer, | intent(in) | :: | nxpertile | |||
| integer, | intent(in) | :: | nypertile | |||
| integer, | intent(in) | :: | nzpertile | |||
| integer, | intent(in) | :: | ntilex | |||
| integer, | intent(in) | :: | ntiley | |||
| integer, | intent(in) | :: | ntilez |
pure function gid2eid(gx,gy,gz,nxpertile,nypertile,nzpertile, &
ntilex,ntiley,ntilez) result(eid)
!! Map a global element position (gx,gy,gz), with gx in [1,nX] etc., to the
!! tile-ordered element id used throughout the structured mesh. This is the
!! inverse of the (i,ti) decomposition: gx = i + nxpertile*(ti-1).
integer,intent(in) :: gx,gy,gz
integer,intent(in) :: nxpertile,nypertile,nzpertile
integer,intent(in) :: ntilex,ntiley,ntilez
integer :: eid
integer :: i,j,k,ti,tj,tk
ti = (gx-1)/nxpertile+1; i = gx-(ti-1)*nxpertile
tj = (gy-1)/nypertile+1; j = gy-(tj-1)*nypertile
tk = (gz-1)/nzpertile+1; k = gz-(tk-1)*nzpertile
eid = elementid(i,j,k,ti,tj,tk,nxpertile,nypertile,nzpertile, &
ntilex,ntiley,ntilez)
endfunction gid2eid