} else if (src == MPI_PROC_NULL) {
*request = MPI_REQUEST_NULL;
retval = MPI_SUCCESS;
+ } else if (src!=MPI_ANY_SOURCE && (src >= smpi_group_size(smpi_comm_group(comm)) || src <0)){
+ retval = MPI_ERR_COMM;
} else if (count < 0) {
retval = MPI_ERR_COUNT;
+ } else if (buf==NULL && count > 0) {
+ retval = MPI_ERR_COUNT;
} else if (datatype == MPI_DATATYPE_NULL){
retval = MPI_ERR_TYPE;
+ } else if(tag<0 && tag != MPI_ANY_TAG){
+ retval = MPI_ERR_TAG;
} else {
#ifdef HAVE_TRACING
} else if (dst == MPI_PROC_NULL) {
*request = MPI_REQUEST_NULL;
retval = MPI_SUCCESS;
+ } else if (dst >= smpi_group_size(smpi_comm_group(comm)) || dst <0){
+ retval = MPI_ERR_COMM;
} else if (count < 0) {
retval = MPI_ERR_COUNT;
+ } else if (buf==NULL && count > 0) {
+ retval = MPI_ERR_COUNT;
} else if (datatype == MPI_DATATYPE_NULL){
retval = MPI_ERR_TYPE;
+ } else if(tag<0 && tag != MPI_ANY_TAG){
+ retval = MPI_ERR_TAG;
} else {
#ifdef HAVE_TRACING
smpi_empty_status(status);
status->MPI_SOURCE = MPI_PROC_NULL;
retval = MPI_SUCCESS;
+ } else if (src!=MPI_ANY_SOURCE && (src >= smpi_group_size(smpi_comm_group(comm)) || src <0)){
+ retval = MPI_ERR_COMM;
} else if (count < 0) {
retval = MPI_ERR_COUNT;
+ } else if (buf==NULL && count > 0) {
+ retval = MPI_ERR_COUNT;
} else if (datatype == MPI_DATATYPE_NULL){
retval = MPI_ERR_TYPE;
+ } else if(tag<0 && tag != MPI_ANY_TAG){
+ retval = MPI_ERR_TAG;
} else {
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
retval = MPI_ERR_COMM;
} else if (dst == MPI_PROC_NULL) {
retval = MPI_SUCCESS;
+ } else if (dst >= smpi_group_size(smpi_comm_group(comm)) || dst <0){
+ retval = MPI_ERR_COMM;
} else if (count < 0) {
retval = MPI_ERR_COUNT;
+ } else if (buf==NULL && count > 0) {
+ retval = MPI_ERR_COUNT;
} else if (datatype == MPI_DATATYPE_NULL){
retval = MPI_ERR_TYPE;
+ } else if(tag<0 && tag != MPI_ANY_TAG){
+ retval = MPI_ERR_TAG;
} else {
#ifdef HAVE_TRACING
smpi_empty_status(status);
status->MPI_SOURCE = MPI_PROC_NULL;
retval = MPI_SUCCESS;
+ }else if (dst >= smpi_group_size(smpi_comm_group(comm)) || dst <0 ||
+ (src!=MPI_ANY_SOURCE && (src >= smpi_group_size(smpi_comm_group(comm)) || src <0))){
+ retval = MPI_ERR_COMM;
} else if (sendcount < 0 || recvcount<0) {
retval = MPI_ERR_COUNT;
+ } else if ((sendbuf==NULL && sendcount > 0)||(recvbuf==NULL && recvcount>0)) {
+ retval = MPI_ERR_COUNT;
+ } else if((sendtag<0 && sendtag != MPI_ANY_TAG)||(recvtag<0 && recvtag != MPI_ANY_TAG)){
+ retval = MPI_ERR_TAG;
} else {
#ifdef HAVE_TRACING