


Write FVCOM format sponge layer file
function write_FVCOM_sponge(Mobj,filename)
DESCRIPTION:
Generate an ascii FVCOM 3.x format sponge file from Mesh object
INPUT
Mobj = Mesh object
filename = FVCOM sponge file name
OUTPUT:
FVCOM sponge file: filename
EXAMPLE USAGE
write_FVCOM_sponge(Mobj,'tst_spg.dat')
Author(s):
Geoff Cowles (University of Massachusetts Dartmouth)
Karen Thurston (National Oceanography Centre, Liverpool)
Revision history
2013-01-18 Added support for variable sponge radius
==============================================================================

0001 function write_FVCOM_sponge(Mobj,filename) 0002 0003 % Write FVCOM format sponge layer file 0004 % 0005 % function write_FVCOM_sponge(Mobj,filename) 0006 % 0007 % DESCRIPTION: 0008 % Generate an ascii FVCOM 3.x format sponge file from Mesh object 0009 % 0010 % INPUT 0011 % Mobj = Mesh object 0012 % filename = FVCOM sponge file name 0013 % 0014 % OUTPUT: 0015 % FVCOM sponge file: filename 0016 % 0017 % EXAMPLE USAGE 0018 % write_FVCOM_sponge(Mobj,'tst_spg.dat') 0019 % 0020 % Author(s): 0021 % Geoff Cowles (University of Massachusetts Dartmouth) 0022 % Karen Thurston (National Oceanography Centre, Liverpool) 0023 % 0024 % Revision history 0025 % 2013-01-18 Added support for variable sponge radius 0026 % 0027 %============================================================================== 0028 subname = 'write_FVCOM_sponge'; 0029 global ftbverbose 0030 if(ftbverbose) 0031 fprintf('\n'); fprintf(['begin : ' subname '\n']); 0032 end; 0033 0034 %------------------------------------------------------------------------------ 0035 % Parse input arguments 0036 %------------------------------------------------------------------------------ 0037 if(exist('Mobj')*exist('filename')==0) 0038 error('arguments to write_FVCOM_sponge are incorrect') 0039 end; 0040 0041 %------------------------------------------------------------------------------ 0042 % Dump the file 0043 %------------------------------------------------------------------------------ 0044 if(ftbverbose); fprintf('writing FVCOM spongefile %s\n',filename); end; 0045 fid = fopen(filename,'w'); 0046 0047 if(Mobj.nSponge==0) 0048 fprintf(fid,'Sponge Node Number = %d\n',0); 0049 else 0050 Total_Sponge = sum(Mobj.nSpongeNodes(1:Mobj.nSponge)); 0051 fprintf(fid,'Sponge Node Number = %d\n',Total_Sponge); 0052 for i=1:Mobj.nSponge 0053 if max(size(Mobj.sponge_rad))==1 % if you have a constant sponge radius 0054 for j=1:Mobj.nSpongeNodes(i) 0055 fprintf(fid,'%d %f %f \n',Mobj.sponge_nodes(i,j),Mobj.sponge_rad(i),Mobj.sponge_fac(i)); 0056 end; 0057 else % if you have a variable sponge radius 0058 for j=1:Mobj.nSpongeNodes(i) 0059 fprintf(fid,'%d %f %f \n',Mobj.sponge_nodes(i,j),Mobj.sponge_rad(i,j),Mobj.sponge_fac(i)); 0060 end; 0061 end 0062 end; 0063 end; 0064 fclose(fid); 0065 0066 if(ftbverbose) 0067 fprintf(['end : ' subname '\n']) 0068 end; 0069