0001 function write_FVCOM_meanflow_ascii(Mobj, casename)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038 subname = 'write_FVCOM_meanflow_ascii';
0039
0040 global ftbverbose
0041 if ftbverbose
0042 fprintf(['\nbegin : ' subname '\n'])
0043 end
0044
0045
0046
0047
0048 velocity = squeeze(mean(sqrt(Mobj.meanflow_u.^2 + Mobj.meanflow_v.^2), 2));
0049
0050 f = fopen([casename, '_meanflow.dat'], 'w');
0051 if f < 0
0052 error('Problem writing to _meanflow.dat file. Check permissions and try again.')
0053 end
0054
0055 fprintf(f, '%8d\n', Mobj.nObcNodes);
0056
0057 for i = 1:Mobj.nObcNodes
0058 fprintf(f, '%8d\n', Mobj.read_obc_nodes{1}(i));
0059 end
0060
0061 s = '%8d';
0062 for ss = 1:length(Mobj.siglay)
0063 if ss < length(Mobj.siglay)
0064 s = [s, '%8.4f'];
0065 else
0066 s = [s, '%8.4f\n'];
0067 end
0068 end
0069 for i = 1:numel(Mobj.read_obc_nodes{1})
0070 fprintf(f, s, [i, abs(diff(Mobj.siglev))]);
0071 end
0072
0073
0074 [nb, nt] = size(velocity);
0075
0076
0077 fprintf(f, '%i\n', nt);
0078
0079 s = '%8.4f\n';
0080 for ss = 1:nb
0081 if ss < nb
0082 s = [s, '%8.4f'];
0083 else
0084 s = [s, '%8.4f\n'];
0085 end
0086 end
0087 for i = 1:size(velocity, 2)
0088 fprintf(f, s, [i - 1, velocity(:, i)']);
0089 end
0090
0091 fclose(f);
0092
0093
0094 f = fopen([casename, '_tide_node.dat'], 'w');
0095 if f < 0
0096 error('Problem writing to _tide_node.dat file. Check permissions and try again.')
0097 end
0098
0099
0100
0101
0102 tmpObcNodes = Mobj.obc_nodes';
0103
0104
0105 ObcNodes = tmpObcNodes(tmpObcNodes ~= 0)';
0106
0107 fprintf(f, '%8d\n', numel(ObcNodes));
0108 for i = 1:numel(ObcNodes(i))
0109 fprintf(f, '%8i\n', ObcNodes(i));
0110 end
0111
0112 fclose(f);
0113
0114
0115 f = fopen([casename, '_tide_cell.dat'], 'w');
0116 if f < 0
0117 error('Problem writing to _tide_cell.dat file. Check permissions and try again.')
0118 end
0119 if ~isfield(Mobj, 'read_obc_elements')
0120 error('Missing list of boundary element IDs. Run find_boundary_elements and try again.')
0121 end
0122
0123 ne = Mobj.nObcElements;
0124 fprintf(f, '%8d\n', ne);
0125 for j = 1:Mobj.nObs;
0126 for i = 1:numel(Mobj.read_obc_elements{j})
0127 fprintf(f, '%8i\n', Mobj.read_obc_elements{j}(i));
0128 end
0129 end
0130
0131 fclose(f);
0132
0133
0134 f = fopen([casename, '_tide_el.dat'], 'w');
0135 if f < 0
0136 error('Problem writing to _tide_el.dat file. Check permissions and try again.')
0137 end
0138
0139 if ~isfield(Mobj, 'surfaceElevation')
0140 error('Missing predicted surface elevation necessary for mean flow.')
0141 end
0142 if ~isfield(Mobj, 'el_time')
0143 error('Missing predicted surface elevation time series necessary for mean flow.')
0144 end
0145
0146 [nb, nt] = size(Mobj.surfaceElevation);
0147
0148 s = '%8d';
0149 for ss = 1:nb
0150 if ss < nb
0151 s = [s, '%8.4f'];
0152 else
0153 s = [s, '%8.4f\n'];
0154 end
0155 end
0156
0157 for i = 1:nt
0158 fprintf(f, s', [round(Mobj.el_time(i)), Mobj.surfaceElevation(:, i)']);
0159 end
0160
0161 fclose(f);
0162
0163
0164
0165
0166
0167
0168
0169
0170 f = fopen([casename, '_tide_uv.dat'], 'w');
0171 if f < 0
0172 error('Problem writing to _tide_uv.dat file. Check permissions and try again.')
0173 end
0174
0175
0176 ne = Mobj.nObcElements;
0177
0178
0179 nt = length(Mobj.mf_times);
0180
0181
0182 nz = length(Mobj.siglay);
0183
0184
0185
0186 s = '%8d';
0187 for ss = 1:ne
0188
0189 if ss < ne
0190 s = [s, '%8.4f'];
0191 else
0192 s = [s, '%8.4f\n'];
0193 end
0194 end
0195
0196
0197
0198 for t = 1:nt
0199
0200
0201 iint = (Mobj.mf_times(t) - Mobj.mf_times(1)) * 24 * 3600;
0202
0203
0204 fprintf(f, s, [iint; mean(Mobj.meanflow_u(:, :, t), 2)]);
0205 fprintf(f, s, [iint; mean(Mobj.meanflow_v(:, :, t), 2)]);
0206
0207
0208
0209 for zz = 1:nz
0210 fprintf(f, s, [iint; Mobj.meanflow_u(:, zz, t)]);
0211 fprintf(f, s, [iint; Mobj.meanflow_v(:, zz, t)]);
0212 end
0213 end
0214
0215 fclose(f);
0216
0217
0218
0219
0220
0221
0222 f = fopen([casename, '_elj_obc.dat'], 'w');
0223 if f < 0
0224 error('Problem writing to _elj_obc.dat file. Check permissions and try again.')
0225 end
0226
0227 nt = size(Mobj.surfaceElevation, 2);
0228
0229 for t = 1:nt
0230 fprintf(f, '%8.4f', Mobj.surfaceElevation(:, t));
0231 fprintf(f, '\n');
0232 end
0233
0234 if ftbverbose
0235 fprintf('end : %s\n', subname)
0236 end
0237
0238