For Curvilinear grids, each coordinate of the grid must be specified for each corner of every cell in the grid. For a 2D curvilinear grid NumVals is equal to (NumI + 1) * (NumJ + 1) for both xfSetGridCoordsI and xfSetGridCoordsJ. For a 3D curvilinear grid NumVals is equal to (NumI + 1) * (NumJ + 1) * (NumK + 1) for all of the functions below. The arrays are numbered in I, J, K order.
int xfSetGridCoordsI(xid GroupId, int NumVals, double *iValues); int xfSetGridCoordsJ(xid GroupId, int NumVals, double *jValues); int xfSetGridCoordsK(xid GroupId, int NumVals, double *kValues);
SUBROUTINE XF_SET_GRID_COORDS_I(GroupId, NumVals, iValues, Error) INTEGER(XID), INTENT(IN) :: GroupId INTEGER, INTENT(IN) :: NumVals REAL(DOUBLE), INTENT(IN) :: iValues INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_SET_GRID_COORDS_J(GroupId, NumVals, jValues, Error) INTEGER(XID), INTENT(IN) :: GroupId INTEGER, INTENT(IN) :: NumVals REAL(DOUBLE), INTENT(IN) :: jValues INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_SET_GRID_COORDS_K(GroupId, NumVals, kValues, Error) INTEGER(XID), INTENT(IN) :: GroupId INTEGER, INTENT(IN) :: NumVals REAL(DOUBLE), INTENT(IN) :: kValues INTEGER, INTENT(OUT) :: Error
int xfGetGridCoordsI(xid GroupId, int NumVals, double *iValues); int xfGetGridCoordsJ(xid GroupId, int NumVals, double *jValues); int xfGetGridCoordsK(xid GroupId, int NumVals, double *kValues);
SUBROUTINE XF_GET_GRID_COORDS_I(GroupId, NumVals, iValues, Error) INTEGER(XID), INTENT(IN) :: GroupId INTEGER, INTENT(IN) :: NumVals REAL(DOUBLE), INTENT(OUT) :: iValues INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_GRID_COORDS_J(GroupId, NumVals, jValues, Error) INTEGER(XID), INTENT(IN) :: GroupId INTEGER, INTENT(IN) :: NumVals REAL(DOUBLE), INTENT(OUT) :: jValues INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_GRID_COORDS_K(GroupId, NumVals, kValues, Error) INTEGER(XID), INTENT(IN) :: GroupId INTEGER, INTENT(IN) :: NumVals REAL(DOUBLE), INTENT(OUT) :: kValues INTEGER, INTENT(OUT) :: Error