The reason for using unique names for each TriMesh geom is so that you can access each TriMesh individually later on in your simulation. At the moment you can't do this, as once you've created the second TriMesh, you've lost the handle of the first one because you're using the same identifier for all of them (i.e. trimesh=blahblah).
All you need to do is add this to your code...
Dim TriMeshObject(10)
Then change these lines...
trimesh = CreateTriMesh(LandSpace1,landMesh(HC))
dGeomSetRotation(trimesh,0,0,0)
dGeomSetPosition(trimesh,0,0,Loc)
To this...
TriMeshObject(HC) = CreateTriMesh(LandSpace1,landMesh(HC))
dGeomSetRotation(TriMeshObject(HC),0,0,0)
dGeomSetPosition(TriMeshObject(HC),0,0,Loc)
Now if you need to move the fourth TriMesh for example, you can use its unique identifier. Which in this case would be TriMeshObject(4)...
dGeomSetPosition(TriMeshObject(4),NewXPosition,NewYPosition,NewZPosition)
PositionEntity LandMesh(4),NewXPosition,NewYPosition,NewZPosition
All you need to do is add this to your code...
Dim TriMeshObject(10)
Then change these lines...
trimesh = CreateTriMesh(LandSpace1,landMesh(HC))
dGeomSetRotation(trimesh,0,0,0)
dGeomSetPosition(trimesh,0,0,Loc)
To this...
TriMeshObject(HC) = CreateTriMesh(LandSpace1,landMesh(HC))
dGeomSetRotation(TriMeshObject(HC),0,0,0)
dGeomSetPosition(TriMeshObject(HC),0,0,Loc)
Now if you need to move the fourth TriMesh for example, you can use its unique identifier. Which in this case would be TriMeshObject(4)...
dGeomSetPosition(TriMeshObject(4),NewXPosition,NewYPosition,NewZPosition)
PositionEntity LandMesh(4),NewXPosition,NewYPosition,NewZPosition