Skip to content
Snippets Groups Projects
Commit ed63643b authored by Thomas Jahns's avatar Thomas Jahns :cartwheel: Committed by Sergey Kosukhin
Browse files

Extract function.

parent b88ebde4
No related branches found
No related tags found
No related merge requests found
......@@ -1565,19 +1565,11 @@ cdiPioRecvStreamClose(void *buffer, int size, int *pos, MPI_Comm pioInterComm, b
streamClose(serverStreamID);
}
#ifdef HAVE_LIBNETCDF
static void
cdiPioRecvStreamDefVlist(void *buffer, int size, int *pos, MPI_Comm pioInterComm, int tag, const struct cdiPioConf *conf)
cdiPioCdfGridAccess(int streamID, int vlistID)
{
int serverStreamID, serverVlistID;
{
int msgData[defVlistNInts];
xmpi(MPI_Unpack(buffer, size, pos, &msgData, defVlistNInts, MPI_INT, pioInterComm));
serverStreamID = namespaceAdaptKey2(msgData[0]);
serverVlistID = namespaceAdaptKey2(msgData[1]);
}
stream_t *streamptr = stream_to_pointer(serverStreamID);
#ifdef HAVE_LIBNETCDF
int filetype = streamInqFiletype(serverStreamID);
int filetype = streamInqFiletype(streamID);
#ifdef HAVE_PARALLEL_NC4
int rankOpen;
#endif
......@@ -1588,18 +1580,34 @@ cdiPioRecvStreamDefVlist(void *buffer, int size, int *pos, MPI_Comm pioInterComm
case CDI_FILETYPE_NC4:
case CDI_FILETYPE_NC4C:
#ifdef HAVE_PARALLEL_NC4
if ((rankOpen = cdiPioStream2Owner(serverStreamID)) != CDI_PIO_COLLECTIVE_OPEN)
if ((rankOpen = cdiPioStream2Owner(streamID)) != CDI_PIO_COLLECTIVE_OPEN)
#endif
{
int nGrids = vlistNgrids(serverVlistID);
int nGrids = vlistNgrids(vlistID);
for (int gridIdx = 0; gridIdx < nGrids; ++gridIdx)
{
int gridID = vlistGrid(serverVlistID, gridIdx);
int gridID = vlistGrid(vlistID, gridIdx);
if (!cdiPioDistGridIndividualQueriesEnabled(gridID)) cdiPioDistGridEnableIndividualQueries(gridID);
}
}
}
}
#else
#define cdiPioCdfGridAccess(streamID, vlistID)
#endif
static void
cdiPioRecvStreamDefVlist(void *buffer, int size, int *pos, MPI_Comm pioInterComm, int tag, const struct cdiPioConf *conf)
{
int serverStreamID, serverVlistID;
{
int msgData[defVlistNInts];
xmpi(MPI_Unpack(buffer, size, pos, &msgData, defVlistNInts, MPI_INT, pioInterComm));
serverStreamID = namespaceAdaptKey2(msgData[0]);
serverVlistID = namespaceAdaptKey2(msgData[1]);
}
stream_t *streamptr = stream_to_pointer(serverStreamID);
cdiPioCdfGridAccess(serverStreamID, serverVlistID);
cdiStreamSetupVlist(streamptr, serverVlistID);
size_t streamIdx = indexOfID(&openStreams, serverStreamID);
cdiPioServerStreamWinCreate(streamIdx, cdiPioInqCollClientIntraComm());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment