Home > fvcom_prepro > write_dtank.m

write_dtank

PURPOSE ^

Dump mesh to datatank file

SYNOPSIS ^

function write_dtank(fname,Mobj,geographic)

DESCRIPTION ^

 Dump mesh to datatank file 

 function dump_dtascii(fname,Mobj) 

 DESCRIPTION:
    Dump mesh, open boundary nodes, river nodes, and probe nodes to DTascii file 

 INPUT 
   fname = datatank file name
   Mobj  = mesh object

 OUTPUT:
    fname:  ascii datatank file 

 Author(s):  
    Geoff Cowles (University of Massachusetts Dartmouth)

 Revision history

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function write_dtank(fname,Mobj,geographic)
0002 % Dump mesh to datatank file
0003 %
0004 % function dump_dtascii(fname,Mobj)
0005 %
0006 % DESCRIPTION:
0007 %    Dump mesh, open boundary nodes, river nodes, and probe nodes to DTascii file
0008 %
0009 % INPUT
0010 %   fname = datatank file name
0011 %   Mobj  = mesh object
0012 %
0013 % OUTPUT:
0014 %    fname:  ascii datatank file
0015 %
0016 % Author(s):
0017 %    Geoff Cowles (University of Massachusetts Dartmouth)
0018 %
0019 % Revision history
0020 
0021 % parse input args
0022 cartesian = true;
0023 if(exist('geographic'))
0024   cartesian = false;
0025 end;
0026 
0027 if(~cartesian)
0028   % open datatank file
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   %Grid
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   % elements
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   % open datatank file
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   %Grid
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   % elements
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 % bathymetry
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 % time step
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 % open boundary nodes
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 % river nodes
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

Generated on Wed 20-Feb-2019 16:06:01 by m2html © 2005