0001 function write_dtank(fname,Mobj,geographic)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 cartesian = true;
0023 if(exist('geographic'))
0024 cartesian = false;
0025 end;
0026
0027 if(~cartesian)
0028
0029 fid = fopen(fname,'w');
0030 fprintf(fid,'DataTank Binary File\n');
0031 fprintf(fid,'Bathymetry_Geog\n');
0032 fprintf(fid,'TriangularMesh2D\n');
0033
0034
0035 fprintf(fid,'Points\n');
0036 fprintf(fid,'%d %d \n',2,Mobj.nVerts);
0037 for i=1:Mobj.nVerts
0038 fprintf(fid,'%f %f \n',Mobj.lon(i),Mobj.lat(i));
0039 end;
0040
0041
0042 fprintf(fid,'Triangles\n');
0043 fprintf(fid,'%d %d\n',3,Mobj.nElems);
0044 for i=1:Mobj.nElems
0045 fprintf(fid,'%d %d %d \n',Mobj.tri(i,1)-1,Mobj.tri(i,2)-1,Mobj.tri(i,3)-1);
0046 end;
0047 else
0048
0049 fid = fopen(fname,'w');
0050 fprintf(fid,'DataTank Binary File\n');
0051 fprintf(fid,'Bathymetry_Cart\n');
0052 fprintf(fid,'TriangularMesh2D\n');
0053
0054
0055 fprintf(fid,'Points\n');
0056 fprintf(fid,'%d %d \n',2,Mobj.nVerts);
0057 for i=1:Mobj.nVerts
0058 fprintf(fid,'%f %f \n',Mobj.x(i),Mobj.y(i));
0059 end;
0060
0061
0062 fprintf(fid,'Triangles\n');
0063 fprintf(fid,'%d %d\n',3,Mobj.nElems);
0064 for i=1:Mobj.nElems
0065 fprintf(fid,'%d %d %d \n',Mobj.tri(i,1)-1,Mobj.tri(i,2)-1,Mobj.tri(i,3)-1);
0066 end;
0067 end;
0068
0069
0070
0071
0072 fprintf(fid,'Values\n');
0073 fprintf(fid,'%d\n',Mobj.nVerts);
0074 for i=1:Mobj.nVerts
0075 fprintf(fid,'%d \n',Mobj.h(i));
0076 end;
0077
0078
0079
0080 fprintf(fid,'Time Step\n');
0081 fprintf(fid,'TriangularMesh2D\n');
0082 fprintf(fid,'Use Last Grid\n');
0083 fprintf(fid,'Values\n');
0084 fprintf(fid,'%d\n',Mobj.nVerts);
0085 for i=1:Mobj.nVerts
0086 fprintf(fid,'%d \n',Mobj.ts(i));
0087 end;
0088
0089
0090 if(Mobj.nObs > 0)
0091 fprintf(fid,'ObcNodes\n');
0092 fprintf(fid,'NumberList\n');
0093 fprintf(fid,'%d\n',sum(Mobj.nObcNodes));
0094 for i=1:Mobj.nObcNodes(1)
0095 fprintf(fid,'%d\n',Mobj.obc_nodes(1,i));
0096 end;
0097 end;
0098
0099
0100 if(Mobj.nRivers > 0)
0101 fprintf(fid,'RivNodes\n');
0102 fprintf(fid,'NumberList\n');
0103 fprintf(fid,'%d\n',Mobj.nRivNodes(1));
0104 for i=1:Mobj.nRivNodes(1);
0105 fprintf(fid,'%d\n',Mobj.riv_nodes(1,i));
0106 end;
0107 end;
0108
0109 fclose(fid);
0110