longdegrees = (int)(f/100); //isolate degrees
Serial.println(longdegrees);
longminutes = (f - (longdegrees*100)) + atof(longit2)/10000.00;
Serial.println(longit2);
Serial.println(longminutes,6);
longdecCoords = long((longminutes / 60.0)*1000000UL);
if(EW[0] == 'W') longdegrees *= -1.0;
AFTER you extract data from longdegrees, see if long degrees has the right sign. Fix it, if not. Well, OK. Fine by me.