	switch(gpm){
		case 3:	//PATB
			grupo.param=255;
			buffer.pc=get_codigo(buffer.pc,"0",1);
			if(buffer.pc==NULL || *buffer.pc=='\0'){
				strbuild(pterror,S_Faltamarca,"0",S_queindica,S_delos_grupos,NULL);
				free_return(2);
			}
			grupo.bg=1;	grupo.bi=0;
			grupo.tipoGPS=254;	grupo.tipoINS=255;
			GPS.bg=1;	GPS.bi=0;
			GPS.tipoGPS=254;		GPS.tipoINS=255;
			finishline_string_inl(buffer,s);
			for(;;){
				if(s=="-99") break;
				GPS.grupo=ngrupos;
				ngrupos++;

				grupo.n=0;
				while(s!="-9" && *buffer.pc!='\0'){
					GPS.nombre=s;
					if_inline_all(GPS.P.X,N_coorX);	if_inline_all(GPS.P.Y,N_coorY);	if_inline_all(GPS.P.Z,N_coorZ);
					if_inline_all(GPS.t,N_tiempo)
					else{strbuild(pterror,S_Enpunto,GPS.nombre.c_str(),S_Faltancampos,"X Y Z t",NULL);
						 free_return(3);}
					gpss.push_back(GPS);
					ngps++;
					grupo.n++;
					finishline_string_inl(buffer,s);
				}
				if(grupo.n){
					grupos.push_back(grupo);
					gruposextras.push_back(gdefault);
				}
				else ngrupos--;
				if(*buffer.pc=='\0') break;
				finishline_string_inl(buffer,s);
			}
			break;