Geometry shader is not working with my source code

I am trying a GLSL http://www.sunandblackcat.com/tipFullView.php?l=eng&topicid=29

I have used all the shaders as it is.
And I have made sure that there are no shader compiling issues.
And also there are no glGetError issues.

And I have loaded a completely different model(a car model of triangles only) using glDrawElements because I do not have the model that author used.

It is not working.

I have started learning the shaders now only.
Can some one help me on this why my code will not work.

I can provide any data or even my code also if you have any doubts or if you want any info.

I even requested the author to help me out through mail.
He could not due to his own issues.
and also posted in mail but some how its not working but no one replied.
So asking here.

Sample code is here

void bp3DNastranRep::setShaders()
    {
    	if (!m_pCRS)
    		return;
    	ProgramShaderInfo objInfo;
    	map<int, ProgramShaderInfo>::iterator itr = m_pCRS->m_mapShaderPrograms.find(SHADER_PROGRAM_EXTRA1);
    
    	if (itr != m_pCRS->m_mapShaderPrograms.end())
    	{
    		glDetachShader(itr->second.m_uiProgram,itr->second.m_uiVertexShader);
    		glDetachShader(itr->second.m_uiProgram,itr->second.m_uiTessControlShader);
    		glDetachShader(itr->second.m_uiProgram,itr->second.m_uiTessControlShader);
    		glDetachShader(itr->second.m_uiProgram,itr->second.m_uiGeometricShader);
    		glDetachShader(itr->second.m_uiProgram,itr->second.m_uiVertexShader);
    		glDetachShader(itr->second.m_uiProgram,itr->second.m_uiVertexShader);
    		glDetachShader(itr->second.m_uiProgram,itr->second.m_uiVertexShader);
    		glDetachShader(itr->second.m_uiProgram,itr->second.m_uiVertexShader);
    		glDeleteProgram(itr->second.m_uiProgram);
    		m_pCRS->m_mapShaderPrograms.erase(itr);
    	}
    
    	bool bAttachVS = false;
    	bool bAttachGS = false;
    	bool bAttachFS = false;
    
    	char *attacher = NULL, *vs = NULL, *fs = NULL, *gs = NULL;
    	if (glewIsSupported("GL_VERSION_2_0"))
    	printf("Ready for OpenGL 2.0\n");
    	else {
    	printf("OpenGL 2.0 not supported\n");
    	}
    
    	GLuint v = glCreateShader(GL_VERTEX_SHADER);
    	GLuint f = glCreateShader(GL_FRAGMENT_SHADER);
    	GLuint g = glCreateShader(GL_GEOMETRY_SHADER);
    
    	/*vs = "varying vec3 normal, lightDir;\n"
    	"\n"
    	"void main()\n"
    	"{	\n"
    	"	lightDir = normalize(vec3(gl_LightSource[0].position));\n"
    	"	normal = -normalize(gl_NormalMatrix * gl_Normal);\n"
    	"\n"
    	"	gl_Position = ftransform();\n"
    	"}\n";*/
    
    	shaderReader("D:\\shaders\\shadeattacher.txt", attacher);
    	vector<string> strList = tokenize(attacher, " ");
    
    	if (strList.size()>=3)
    	{
    		if (strList.at(0) == "1")
    			bAttachVS = true;
    		if (strList.at(1) == "1")
    			bAttachGS = true;
    		if (strList.at(2) == "1")
    			bAttachFS = true;
    	}
    
    	if (bAttachVS)
    		shaderReader("D:\\haders\\shadewire.vs", vs);
    	if (bAttachFS)
    		shaderReader("D:\\shaders\\shadewire.fs", fs);
    	if (bAttachGS)
    		shaderReader("D:\\shaders\\shadewire.gs", gs);
    
    	/*fs = "vec4 toonify(in float intensity) {\n"
    	"\n"
    	"	vec4 color;\n"
    	"\n"
    	"		if (intensity > 0.98)\n"
    	"			color = vec4(0.8,0.8,0.8,1.0);\n"
    	"		else if (intensity > 0.5)\n"
    	"			color = vec4(0.4,0.4,0.8,1.0);	\n"
    	"		else if (intensity > 0.25)\n"
    	"			color = vec4(0.2,0.2,0.4,1.0);\n"
    	"		else\n"
    	"			color = vec4(0.1,0.1,0.1,1.0);		\n"
    	"\n"
    	"		return(color);\n"
    	"	}\n";*/
    
    	/*fs2 = "// simple toon fragment shader\n"
    	"// www.lighthouse3d.com\n"
    	"\n"
    	"varying vec3 normal, lightDir;\n"
    	"\n"
    	"void main()\n"
    	"{\n"
    	"	float intensity;\n"
    	"	vec3 n;\n"
    	"	vec4 color;\n"
    	"\n"
    	"	n = normalize(normal);\n"
    	"	intensity = max(dot(lightDir,n),0.0); \n"
    	"\n"
    	"	if (intensity > 0.98)\n"
    	"		color = vec4(0.8,0.8,0.8,1.0);\n"
    	"	else if (intensity > 0.5)\n"
    	"		color = vec4(0.4,0.4,0.8,1.0);	\n"
    	"	else if (intensity > 0.25)\n"
    	"		color = vec4(0.2,0.2,0.4,1.0);\n"
    	"	else\n"
    	"		color = vec4(0.1,0.1,0.1,1.0);	\n"
    	"		\n"
    	"	gl_FragColor = color;\n"
    	"}\n";*/
    
    	const char * ff = fs;
    	const char * gg = gs;
    	const char * vv = vs;
    
    	if (bAttachVS)
    		glShaderSource(v, 1, &vv, NULL);
    	if (bAttachGS)
    		glShaderSource(g, 1, &gg, NULL);
    	if (bAttachFS)
    		glShaderSource(f, 1, &ff, NULL);
    
    	if (bAttachVS)
    	{
    		glCompileShader(v); LogShaderInfo(v);
    	}
    	if (bAttachGS)
    	{
    		glCompileShader(g); LogShaderInfo(g);
    	}
    	if (bAttachFS)
    	{
    		glCompileShader(f); LogShaderInfo(f);
    	}
    
    	GLuint p = glCreateProgram();
    	if (bAttachVS)
    		glAttachShader(p, v);
    	if (bAttachGS)
    		glAttachShader(p, g);
    	if (bAttachFS)
    		glAttachShader(p, f);
    
    	glLinkProgram(p);
    	LogProgramInfo(p);
    
    	glUseProgram(p);

	m_pCRS->m_mapShaderPrograms.find(SHADER_PROGRAM_EXTRA1);
    
    	//glValidateProgram(p);
    
    }
    
    Draw()
    {
    setShaders();
    glFEBindBufferARB(GL_ARRAY_BUFFER_ARB, uiVBOVerts);
    glVertexPointer(3, GL_FLOAT, 0, NULL);
    glFEBindBufferARB(GL_ARRAY_BUFFER_ARB, uiVBONorms);
    glNormalPointer(GL_FLOAT, 0, NULL);
    
    if( m_pstrctShellDrawGrpCrdInfoNM[i].uiNbTris > 0)
    {
    	glColor4fv(rgba);
    	glFEBindBufferARB(GL_ELEMENT_INDEX_ARRAY, uiIBOElemArrayVBO);
    	glDrawElements(GL_TRIANGLES, uiNbTris * 3, GL_UNSIGNED_INT, 0);
    } 
    glVertexPointer( 3, GL_FLOAT, 0, NULL); 
    glNormalPointer(GL_FLOAT, 0, NULL);
    }