# MPE_Describe_comm_state

Describe attributes of a state with byte informational data in a specified MPI_Comm and on the thread that the function is invoked.

## Synopsis

    int MPE_Describe_comm_state( MPI_Comm comm,
                                 int state_startID, int state_finalID,
                                 const char *name, const char *color,
                                 const char *format )

## Input Parameters

comm
  MPI_Comm where this process is part of.
state_startID
  event number for the starting of the state.
state_finalID
  event number for the ending of the state.
name
  name of the state, the maximum length of the NULL-terminated string is, sizeof(CLOG_DESC), 32.
color
  color of the state, the maximum length of the NULL-terminated string is, sizeof(CLOG_COLOR), 24.
format
  printf style %-token format control string for the state, the maximum length of the NULL-terminated string is, sizeof(CLOG_FORMAT), 40. If format is NULL, it is equivalent to calling MPE_Describe_state(). The fortran interface of this routine considers the zero-length string, "", and single-blank string, " ", as NULL.

## Notes

Adds a state definition to the logfile. States are added to a logfile by calling 'MPE_Log_comm_event()' for the start and end event numbers.

This function is threadsafe.

## Notes on storage format control support

The format control string is printf like, e.g. "Comment = %s". All the MPE %-token storage support is provided by SLOG-2. That is whatever supported by SLOG-2 will be supported by MPE. Currently, the following is supported.

%s : variable length string, byte buffer size is length of string + 2.

%h : 2-byte integer, printed as decimal integer, byte buffer size is 2.

%d : 4-byte integer, printed as decimal integer, byte buffer size is 4.

%l : 8-byte integer, printed as decimal integer, byte buffer size is 8.

%x : 4-byte integer, printed as hexadecimal integer, byte buffer size is 4.

%X : 8-byte integer, printed as hexadecimal integer, byte buffer size is 8.

%e : 4-byte float, printed as decimal float, byte buffer size is 4.

%E : 8-byte float, printed as decimal float, byte buffer size is 8.

## See Also

MPE_Log_get_state_eventIDs()

Location:../src/logging/src/mpe_log.c