Index: /issm/trunk/test/Validation/ISMIP/TestF/DomainOutline.exp
===================================================================
--- /issm/trunk/test/Validation/ISMIP/TestF/DomainOutline.exp	(revision 1187)
+++ /issm/trunk/test/Validation/ISMIP/TestF/DomainOutline.exp	(revision 1187)
@@ -0,0 +1,10 @@
+## Name:domainoutline
+## Icon:0
+# Points Count  Value
+5 1.
+# X pos Y pos
+-100000 -100000
+100000 -100000
+100000 100000
+-100000 100000
+-100000 -100000
Index: /issm/trunk/test/Validation/ISMIP/TestF/README
===================================================================
--- /issm/trunk/test/Validation/ISMIP/TestF/README	(revision 1187)
+++ /issm/trunk/test/Validation/ISMIP/TestF/README	(revision 1187)
@@ -0,0 +1,8 @@
+TestF is a test on a square ice sheet.
+The bed contains a large bump on the middle. 
+The slip ratio of the bed varies from 0 to 1.
+Spc the grid on the bed for 0 slip.
+Periodic boundary conditions are applied on the boundary.
+It is an prognostic test to see the influence of the bump on the velocity and the surface.
+The viscosity must be the same during all the test, so we need to comment the update of the viscosity.
+Comment UpdateFromInputs in Penta.cpp and/or Tria.cpp to do so.
Index: /issm/trunk/test/Validation/ISMIP/TestF/Square.par
===================================================================
--- /issm/trunk/test/Validation/ISMIP/TestF/Square.par	(revision 1187)
+++ /issm/trunk/test/Validation/ISMIP/TestF/Square.par	(revision 1187)
@@ -0,0 +1,48 @@
+%Ok, start defining model parameters here
+md.debug=1;
+
+disp('      creating thickness');
+md.surface=-md.x*tan(3*pi/180);
+%md.bed=md.surface-1000;
+md.bed=md.surface-1000+100*exp(-(md.x.^2+md.y.^2)/(10000^2));
+md.thickness=md.surface-md.bed;
+md.firn_layer=0*ones(md.numberofgrids,1);
+
+disp('      creating drag');
+md.drag_type=2; %0 none 1 plastic 2 viscous
+md.drag=sqrt(md.yts.*(2.140373*10^-7*1000)^(-1));
+md.p=ones(md.numberofelements,1);
+md.q=zeros(md.numberofelements,1);
+
+disp('      creating flow law paramter');
+md.B=1.4734*10^14*ones(md.numberofgrids,1);
+md.n=1*ones(md.numberofelements,1);
+
+disp('      boundary conditions for diagnostic model');
+%Create grid on boundary fist (because we cannot use mesh)
+md=SetIceSheetBC(md);
+md.dirichletvalues_diag=ones(md.numberofgrids,1)*[200 0];
+%md.dirichletvalues_diag=ones(md.numberofgrids,1)*[100 0];
+%md.dirichletvalues_diag=zeros(md.numberofgrids,2);
+md.vx=zeros(md.numberofgrids,1);
+md.vy=zeros(md.numberofgrids,1);
+md.vz=zeros(md.numberofgrids,1);
+md.pressure=zeros(md.numberofgrids,1);
+md.temperature=255*ones(md.numberofgrids,1);
+md.gridondirichlet_prog=zeros(md.numberofgrids,1);
+pos=find(md.x==min(md.x) | md.x==max(md.x));
+md.gridondirichlet_prog(pos)=1;
+md.dirichletvalues_prog=md.thickness;
+md.gridondirichlet_thermal=zeros(md.numberofgrids,1);
+
+%Parallel options
+md.connectivity=100;
+md.np=8;
+md.cluster='wilkes';
+md.time=50;
+md.waitonlock=1;
+
+%Transient options
+md.dt=2.*md.yts;
+md.ndt=10*md.dt;
+md.artificial_diffusivity=1;
Index: /issm/trunk/test/Validation/ISMIP/TestF/runme.m
===================================================================
--- /issm/trunk/test/Validation/ISMIP/TestF/runme.m	(revision 1187)
+++ /issm/trunk/test/Validation/ISMIP/TestF/runme.m	(revision 1187)
@@ -0,0 +1,35 @@
+%This test is a test from the ISMP-HOM Intercomparison project
+%Pattyn and Payne 2006
+
+%TestF 
+L=100000; %in m
+nx=30; %numberof nodes in x direction
+ny=30;
+md=model;
+%md=squaremesh(md,L,L,nx,ny);
+md=mesh(md,'DomainOutline.exp',2500);
+md=geography(md,'',''); %ice sheet test
+md=parameterize(md,'Square.par');
+md=extrude(md,10,1);
+
+md=setelementstype(md,'pattyn','all');
+%md=setelementstype(md,'pattyn','all','stokes','all'); 
+
+%Create dirichlet on the bed if no slip
+pos=find(md.gridonbed);
+md.gridondirichlet_diag(pos)=1;
+md.dirichletvalues_diag(pos,:)=0;
+
+%%Create MPCs to have periodic boundary conditions
+%posx=find(md.x==0);
+%posx2=find(md.x==max(md.x));
+%
+%posy=find(md.y==0 & md.x~=0 & md.x~=max(md.x)); %Don't take the same grids two times
+%posy2=find(md.y==max(md.y) & md.x~=0 & md.x~=max(md.x));
+%
+%md.penalties=[posx,posx2;posy,posy2];
+
+%Compute the diagnostic
+md=solve(md,'analysis_type','transient');
+
+%plotmodel(md,'data',md.results.diagnostic.vx,'data',md.results.diagnostic.vy,'data',md.results.diagnostic.vz,'layer#all',md.numlayers,'contourlevels',{9.2,18.4,27.6,46,73.6,82.8},'contourlevels',{0,-1.2,-0.9,-0.6,-0.3,1.2},'contourlevels',{-5.2,-3.9,-1.3,0,1.3,3.9,5.2})
