File: blacs_set_.c

package info (click to toggle)
scalapack 2.2.2-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 37,012 kB
  • sloc: fortran: 339,113; ansic: 74,517; makefile: 1,494; sh: 34
file content (67 lines) | stat: -rw-r--r-- 2,255 bytes parent folder | download | duplicates (2)
1
2
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));
   }
}