| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 
 | #include "Bdef.h"
#if (INTFACE == C_CALL)
void Cblacs_set(int ConTxt, int what, int *val)
#else
F_VOID_FUNC blacs_set_(int *ConTxt, int *what, int *val)
#endif
{
   BLACSCONTEXT *ctxt;
   switch( Mpval(what) )
   {
   case SGET_SYSCONTXT:
      BI_BlacsWarn(Mpval(ConTxt), __LINE__, __FILE__,
                   "Cannot set BLACS system context, can only BLACS_GET");
      break;
   case SGET_MSGIDS:
      BI_BlacsWarn(Mpval(ConTxt), __LINE__, __FILE__,
                   "No need to set message ID range due to MPI communicator.");
      break;
   case SGET_DEBUGLVL:
      BI_BlacsWarn(Mpval(ConTxt), __LINE__, __FILE__,
                   "Cannot set BLACS debug level; must recompile to change");
      break;
   case SGET_BLACSCONTXT:
      BI_BlacsWarn(Mpval(ConTxt), __LINE__, __FILE__,
                   "Cannot set BLACS context, can only BLACS_GET");
      break;
   case SGET_NR_BS:
      MGetConTxt(Mpval(ConTxt), ctxt);
      if (*val) ctxt->Nr_bs = *val;
      else BI_BlacsWarn(Mpval(ConTxt), __LINE__, __FILE__,
                        "BSBR nrings cannot be set to zero");
      break;
   case SGET_NB_BS:
      MGetConTxt(Mpval(ConTxt), ctxt);
      if (*val > 0) ctxt->Nb_bs = *val + 1;
      else BI_BlacsWarn(Mpval(ConTxt), __LINE__, __FILE__,
                       "Illegal BSBR nbranches (%d); must be strictly positive",
                        *val);
      break;
   case SGET_NR_CO:
      MGetConTxt(Mpval(ConTxt), ctxt);
      if (*val) ctxt->Nr_co = *val;
      else BI_BlacsWarn(Mpval(ConTxt), __LINE__, __FILE__,
                        "COMB nrings cannot be set to zero");
      break;
   case SGET_NB_CO:
      MGetConTxt(Mpval(ConTxt), ctxt);
      if (*val > 0) ctxt->Nb_co = *val + 1;
      else BI_BlacsWarn(Mpval(ConTxt), __LINE__, __FILE__,
                       "Illegal COMB nbranches (%d); must be strictly positive",
                        *val);
      break;
   case SGET_TOPSREPEAT:
      MGetConTxt(Mpval(ConTxt), ctxt);
      ctxt->TopsRepeat = *val;
      break;
   case SGET_TOPSCOHRNT:
      MGetConTxt(Mpval(ConTxt), ctxt);
      ctxt->TopsCohrnt = *val;
      break;
   default:
      BI_BlacsWarn(Mpval(ConTxt), __LINE__, __FILE__, "Unknown WHAT (%d)",
                   Mpval(what));
   }
}
 |