//  int i;
  int row = 0, col = 0;
  int orientation = 0;
  int length = 0;
  char *dict = NULL;
//


  /*-------------------------------------------------------------*/

  /*mnem_init(argv[0]);*/

  if (argc != 3) {
    if (argc <= 2) {
      dict = "SOWPODS";
    } else {
      fprintf(stderr, "syntax: %s board.dat dict?\n", argv[0]);
      exit(1);
    }
  } else dict = argv[2]; /* Default word list is TWL98 */

  /* default param when debugging makes running gbd easier */
  if (argv[1] == NULL) boardfile = "test.txt"; else boardfile = argv[1];

  if (!dawg_init(dict, &dawg, &nedges)) {
    fprintf(stderr, "%s: cannot open wordlist '%s'\n", argv[0], dict);
    exit(2);
  }


  /* Clear the arrays */
  assert(WIDTH == HEIGHT);
  for (row = 0; row < (HEIGHT+2); row++) {
    for (col = 0; col < (WIDTH+2); col++) {
      board[row][col] = 0; apparent_letter[row][col] = 0;
      crosschecks[row][col] = NULL;
      vertical_word[row][col] = NULL;
      vindex[row][col] = 0;
    }
  }

  for (i = 0; i < 256; i++) {
    tot[i] = 2; /* Blank ;-) */
    score[i] = 0;
    totprob[i] = 0.0;
    watkins_rackvalue[i] = 25.0;
  }
#ifdef SWEDISH
  for (i = 0; i < 256; i++) {
    tot[i] = 0; /* NEED TO ADD Blank! */
    score[i] = 0;
    totprob[i] = 0.0;
    watkins_rackvalue[i] = 25.0;
  }
score[latin1_tolower('A')] = 1; tot[latin1_tolower('A')] = 8;
score[latin1_tolower('Ä')] = 3; tot[latin1_tolower('Ä')] = 2;
score[latin1_tolower('B')] = 4; tot[latin1_tolower('B')] = 2;
score[latin1_tolower('C')] = 10;tot[latin1_tolower('C')] = 1;
score[latin1_tolower('D')] = 1; tot[latin1_tolower('D')] = 5;
score[latin1_tolower('E')] = 1; tot[latin1_tolower('E')] = 7;
score[latin1_tolower('F')] = 3; tot[latin1_tolower('F')] = 2;
score[latin1_tolower('G')] = 2; tot[latin1_tolower('G')] = 3;
score[latin1_tolower('H')] = 2; tot[latin1_tolower('H')] = 2;
score[latin1_tolower('I')] = 1; tot[latin1_tolower('I')] = 5;
score[latin1_tolower('J')] = 7; tot[latin1_tolower('J')] = 1;
score[latin1_tolower('K')] = 2; tot[latin1_tolower('K')] = 3;
score[latin1_tolower('L')] = 1; tot[latin1_tolower('L')] = 5;
score[latin1_tolower('M')] = 2; tot[latin1_tolower('M')] = 3;
score[latin1_tolower('N')] = 1; tot[latin1_tolower('N')] = 6;
score[latin1_tolower('O')] = 2; tot[latin1_tolower('O')] = 5;
score[latin1_tolower('Ö')] = 4; tot[latin1_tolower('Ö')] = 2;
score[latin1_tolower('P')] = 4; tot[latin1_tolower('P')] = 2;
score[latin1_tolower('R')] = 1; tot[latin1_tolower('R')] = 8;
score[latin1_tolower('S')] = 1; tot[latin1_tolower('S')] = 8;
score[latin1_tolower('T')] = 1; tot[latin1_tolower('T')] = 8;
score[latin1_tolower('U')] = 4; tot[latin1_tolower('U')] = 3;
score[latin1_tolower('V')] = 3; tot[latin1_tolower('V')] = 2;
score[latin1_tolower('X')] = 8; tot[latin1_tolower('X')] = 1;
score[latin1_tolower('Y')] = 7; tot[latin1_tolower('Y')] = 1;
score[latin1_tolower('Z')] = 8; tot[latin1_tolower('Z')] = 1;
score[latin1_tolower('Å')] = 4; tot[latin1_tolower('Å')] = 2;
score['?'] = 0; tot['?'] = 2;
  {
    int j;
    char *nextp = FULLRACK;
    for (i = 0; i < 256; i++) {
      for (j = 0; j < tot[i]; j++) {
        *nextp++ = i;
      }
    }
    *nextp = '\0';
  }
#else
// change here for other languages
  for (i = 0; i < 26; i++) {
    tot['a'+i] = itot[i];
    score['a'+i] = iscore[i];
    watkins_rackvalue['a'+i] = iwatkins_rackvalue[i];
  }
#endif

  /* hand-coded random board.  This could be replaced by a more complex
     format which includes tile distributions, values, language etc */
  {int score; for (score = 0; score < MAX_PLAYSCORE; score++) playscore[score] = 0.0;}

  strcpy(fullrack, FULLRACK); /* If no tiles given in file, do megamove analysis */

  read_board_for_opps_move(boardfile);

  if (tiles[0] == '\0') {
    megaanalysis = TRUE;
    tiles_held = strlen(fullrack);
    strcpy(tiles, fullrack);
  }
  fprintf(logfile, "\nUnseen tiles are: %s\n\n", fullrack);

//fprintf(stderr, "test X\n"); fflush(stderr);