function getNorthingFromChar(n, set) {

    if (n > 'V') {
      throw ("MGRSPoint given invalid Northing " + n);
    }

    // rowOrigin is the letter at the origin of the set for the
    // column
    var curRow = SET_ORIGIN_ROW_LETTERS.charCodeAt(set - 1);
    var northingValue = 0.0;
    var rewindMarker = false;

    while (curRow !== n.charCodeAt(0)) {
      curRow++;
      if (curRow === I) {
        curRow++;
      }
      if (curRow === O) {
        curRow++;
      }
      // fixing a bug making whole application hang in this loop
      // when 'n' is a wrong character
      if (curRow > V) {
        if (rewindMarker) { // making sure that this loop ends
          throw ("Bad character: " + n);
        }
        curRow = A;
        rewindMarker = true;
      }
      northingValue += 100000.0;
    }

    return northingValue;
  }
Given the second letter from a two-letter MGRS 100k zone, and given the
MGRS table set for the zone number, figure out the northing value that
should be added to the other, secondary northing value. You have to
remember that Northings are determined from the equator, and the vertical
cycle of letters mean a 2000000 additional northing meters. This happens
approx. every 18 degrees of latitude. This method does *NOT* count any
additional northings. You have to figure out how many 2000000 meters need
to be added for the zone letter of the MGRS coordinate.

@private
@param {char} n Second letter of the MGRS 100k zone
@param {number} set The MGRS table set number, which is dependent on the
    UTM zone number.
@return {number} The northing value for the given letter and set.