Data sets on grids may be at various locations. The Datalocation attributes are used to indicate where the data is stored for each cell. These include the grid centers, corners, faces, or on faces in a particular direction. Also, an 3D or Extruded 2D grid may have a data sets for each column rather than for each cell (for example CH3D uses a 2D water surface elevation for each column). For vector data sets each component may have a different data location. The following functions are used to set the data locations for a data set. The following locations are supported for datasets GRID_LOC_CENTER, GRID_LOC_CORNER, GRID_LOC_FACES, GRID_LOC_FACE_I, GRID_LOC_FACE_J, GRID_LOC_FACE_K, and GRID_LOC_COLUMN.
int xfScalarDataLocation(xid DatasetId, int DataLocation); int xfVector2DDataLocations(xid DatasetId, int DataLocationI, int DataLocationJ); int xfVector3DDataLocations(xid DatasetId, int DataLocationI, int DataLocationJ, int DataLocationK);
SUBROUTINE XF_SCALAR_DATA_LOCATION(DatasetsId, DataLocation, Error) INTEGER(XID), INTENT(IN) :: DatasetsId INTEGER, INTENT(IN) :: DataLocation INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_VECTOR_2D_DATA_LOCATIONS(DatasetsId, DataLocationI, DataLocationJ, Error) INTEGER(XID), INTENT(IN) :: DatasetsId INTEGER, INTENT(IN) :: DataLocationI, DataLocationJ INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_VECTOR_3D_DATA_LOCATIONS(DatasetsId, DataLocationI, DataLocationJ, DataLocationK, Error) INTEGER(XID), INTENT(IN) :: DatasetsId INTEGER, INTENT(IN) :: DataLocationI, DataLocationJ, DataLocationK INTEGER, INTENT(OUT) :: Error
int xfGetScalarDataLocation(xid DatasetId, int *DataLocation); int xfGetVector2DDataLocations(xid DatasetId, int *DataLocationI, int *DataLocationJ); int xfGetVector3DDataLocations(xid DatasetId, int *DataLocationI, int *DataLocationJ, int *DataLocationK);
SUBROUTINE XF_GET_SCALAR_DATA_LOCATION(DatasetsId, DataLocation, Error) INTEGER(XID), INTENT(IN) :: DatasetsId INTEGER, INTENT(OUT) :: DataLocation INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_VECTOR_2D_DATA_LOCATIONS(DatasetsId, DataLocationI, DataLocationJ, Error) INTEGER(XID), INTENT(IN) :: DatasetsId INTEGER, INTENT(OUT) :: DataLocationI, DataLocationJ INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_VECTOR_3D_DATA_LOCATIONS(DatasetsId, DataLocationI, DataLocationJ, DataLocationK, Error) INTEGER(XID), INTENT(IN) :: DatasetsId INTEGER, INTENT(OUT) :: DataLocationI, DataLocationJ, DataLocationK INTEGER, INTENT(OUT) :: Error
int xfVectorsInLocalCoords(xid DatasetId);
SUBROUTINE XF_VECTORS_IN_LOCAL_COORDS(DatasetsId, Error) INTEGER(XID), INTENT(IN) :: DatasetsId INTEGER, INTENT(OUT) :: Error
int xfAreVectorsInLocalCoords(xid DatasetId, int *LocalCoords);
SUBROUTINE XF_ARE_VECTORS_IN_LOCAL_COORDS(DatasetsId, LocalCoords, Error) INTEGER(XID), INTENT(IN) :: DatasetsId LOGICAL, INTENT(OUT) :: LocalCoords INTEGER, INTENT(OUT) :: Error