clear all; close all; clc; dx = 100; % Resolution of the model output being used. wave_train_end = [240000,241000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,... 480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,... 480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,... 480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,... 480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,... 480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,480000,... 480000,480000,480000,480000]; % Where the wavetrain becomes poorly defined; used as a means of specifying where to stop identifying waves to follow. path(path,'/home/disk/brume/matthills/matlab/Wave_action_version_2/Calculations_and_averaging/100m_2d/Raw_data') % Load in all of the ouput files to be used, and then make a matrix out of % them all. We can then select the appropriate input based on the time % level. A1 = importdata('output_w_b_100m-res_whole_46800_100m.txt'); A2 = importdata('output_w_b_100m-res_whole_47400_100m.txt'); A3 = importdata('output_w_b_100m-res_whole_48000_100m.txt'); % A4 = importdata('output_w_b_100m-res_whole_48600_100m.txt'); A5 = importdata('output_w_b_100m-res_whole_49200_100m.txt'); A6 = importdata('output_w_b_100m-res_whole_49800_100m.txt'); % A7 = importdata('output_w_b_100m-res_whole_50400_100m.txt'); A8 = importdata('output_w_b_100m-res_whole_51000_100m.txt'); A9 = importdata('output_w_b_100m-res_whole_51600_100m.txt'); % A10 = importdata('output_w_b_100m-res_whole_52200_100m.txt'); A11 = importdata('output_w_b_100m-res_whole_52800_100m.txt'); A12 = importdata('output_w_b_100m-res_whole_53400_100m.txt'); % A13 = importdata('output_w_b_100m-res_whole_54000_100m.txt'); A14 = importdata('output_w_b_100m-res_whole_54600_100m.txt'); A15 = importdata('output_w_b_100m-res_whole_55200_100m.txt'); % A16 = importdata('output_w_b_100m-res_whole_55800_100m.txt'); A17 = importdata('output_w_b_100m-res_whole_56400_100m.txt'); A18 = importdata('output_w_b_100m-res_whole_57000_100m.txt'); % A19 = importdata('output_w_b_100m-res_whole_57600_100m.txt'); A20 = importdata('output_w_b_100m-res_whole_58200_100m.txt'); A21 = importdata('output_w_b_100m-res_whole_58800_100m.txt'); % A22 = importdata('output_w_b_100m-res_whole_59400_100m.txt'); A23 = importdata('output_w_b_100m-res_whole_60000_100m.txt'); A24 = importdata('output_w_b_100m-res_whole_60600_100m.txt'); % A25 = importdata('output_w_b_100m-res_whole_61200_100m.txt'); A26 = importdata('output_w_b_100m-res_whole_61800_100m.txt'); A27 = importdata('output_w_b_100m-res_whole_62400_100m.txt'); % A28 = importdata('output_w_b_100m-res_whole_63000_100m.txt'); A29 = importdata('output_w_b_100m-res_whole_63600_100m.txt'); A30 = importdata('output_w_b_100m-res_whole_64200_100m.txt'); % A31 = importdata('output_w_b_100m-res_whole_64800_100m.txt'); A32 = importdata('output_w_b_100m-res_whole_65400_100m.txt'); A33 = importdata('output_w_b_100m-res_whole_66000_100m.txt'); % A34 = importdata('output_w_b_100m-res_whole_66600_100m.txt'); A35 = importdata('output_w_b_100m-res_whole_67200_100m.txt'); A36 = importdata('output_w_b_100m-res_whole_67800_100m.txt'); % A37 = importdata('output_w_b_100m-res_whole_68400_100m.txt'); A38 = importdata('output_w_b_100m-res_whole_69000_100m.txt'); A39 = importdata('output_w_b_100m-res_whole_69600_100m.txt'); % A40 = importdata('output_w_b_100m-res_whole_70200_100m.txt'); A41 = importdata('output_w_b_100m-res_whole_70800_100m.txt'); A42 = importdata('output_w_b_100m-res_whole_71400_100m.txt'); % A43 = importdata('output_w_b_100m-res_whole_72000_100m.txt'); A44 = importdata('output_w_b_100m-res_whole_72600_100m.txt'); A45 = importdata('output_w_b_100m-res_whole_73200_100m.txt'); % A46 = importdata('output_w_b_100m-res_whole_73800_100m.txt'); A47 = importdata('output_w_b_100m-res_whole_74400_100m.txt'); A48 = importdata('output_w_b_100m-res_whole_75000_100m.txt'); % A49 = importdata('output_w_b_100m-res_whole_75600_100m.txt'); A50 = importdata('output_w_b_100m-res_whole_76200_100m.txt'); A51 = importdata('output_w_b_100m-res_whole_76800_100m.txt'); % A52 = importdata('output_w_b_100m-res_whole_77400_100m.txt'); A53 = importdata('output_w_b_100m-res_whole_78000_100m.txt'); A54 = importdata('output_w_b_100m-res_whole_78600_100m.txt'); % A55 = importdata('output_w_b_100m-res_whole_79200_100m.txt'); A56 = importdata('output_w_b_100m-res_whole_79800_100m.txt'); A57 = importdata('output_w_b_100m-res_whole_80400_100m.txt'); % A58 = importdata('output_w_b_100m-res_whole_81000_100m.txt'); A59 = importdata('output_w_b_100m-res_whole_81600_100m.txt'); A60 = importdata('output_w_b_100m-res_whole_82200_100m.txt'); % A61 = importdata('output_w_b_100m-res_whole_82800_100m.txt'); A62 = importdata('output_w_b_100m-res_whole_83400_100m.txt'); A63 = importdata('output_w_b_100m-res_whole_84000_100m.txt'); % A64 = importdata('output_w_b_100m-res_whole_84600_100m.txt'); A65 = importdata('output_w_b_100m-res_whole_85200_100m.txt'); A66 = importdata('output_w_b_100m-res_whole_85800_100m.txt'); % A67 = importdata('output_w_b_100m-res_whole_86400_100m.txt'); A68 = importdata('output_w_b_100m-res_whole_87000_100m.txt'); A69 = importdata('output_w_b_100m-res_whole_87600_100m.txt'); % A70 = importdata('output_w_b_100m-res_whole_88200_100m.txt'); A71 = importdata('output_w_b_100m-res_whole_88800_100m.txt'); A72 = importdata('output_w_b_100m-res_whole_89400_100m.txt'); % A73 = importdata('output_w_b_100m-res_whole_90000_100m.txt'); A74 = importdata('output_w_b_100m-res_whole_90600_100m.txt'); A75 = importdata('output_w_b_100m-res_whole_91200_100m.txt'); % A76 = importdata('output_w_b_100m-res_whole_91800_100m.txt'); A77 = importdata('output_w_b_100m-res_whole_92400_100m.txt'); A78 = importdata('output_w_b_100m-res_whole_93000_100m.txt'); % A79 = importdata('output_w_b_100m-res_whole_93600_100m.txt'); A80 = importdata('output_w_b_100m-res_whole_94200_100m.txt'); A81 = importdata('output_w_b_100m-res_whole_94800_100m.txt'); % A82 = importdata('output_w_b_100m-res_whole_95400_100m.txt'); A83 = importdata('output_w_b_100m-res_whole_96000_100m.txt'); A84 = importdata('output_w_b_100m-res_whole_96600_100m.txt'); % A85 = importdata('output_w_b_100m-res_whole_97200_100m.txt'); A86 = importdata('output_w_b_100m-res_whole_97800_100m.txt'); A87 = importdata('output_w_b_100m-res_whole_98400_100m.txt'); % A88 = importdata('output_w_b_100m-res_whole_99000_100m.txt'); A89 = importdata('output_w_b_100m-res_whole_99600_100m.txt'); A90 = importdata('output_w_b_100m-res_whole_100200_100m.txt'); % A91 = importdata('output_w_b_100m-res_whole_100800_100m.txt'); A92 = importdata('output_w_b_100m-res_whole_101400_100m.txt'); A93 = importdata('output_w_b_100m-res_whole_102000_100m.txt'); % A94 = importdata('output_w_b_100m-res_whole_102600_100m.txt'); A95 = importdata('output_w_b_100m-res_whole_103200_100m.txt'); A96 = importdata('output_w_b_100m-res_whole_103800_100m.txt'); % A97 = importdata('output_w_b_100m-res_whole_104400_100m.txt'); A98 = importdata('output_w_b_100m-res_whole_105000_100m.txt'); A99 = importdata('output_w_b_100m-res_whole_105600_100m.txt'); % A100 = importdata('output_w_b_100m-res_whole_106200_100m.txt'); A101 = importdata('output_w_b_100m-res_whole_106800_100m.txt'); A102 = importdata('output_w_b_100m-res_whole_107400_100m.txt'); % A103 = importdata('output_w_b_100m-res_whole_108000_100m.txt'); A104 = importdata('output_w_b_100m-res_whole_108600_100m.txt'); A105 = importdata('output_w_b_100m-res_whole_109200_100m.txt'); % A106 = importdata('output_w_b_100m-res_whole_109800_100m.txt'); A107 = importdata('output_w_b_100m-res_whole_110400_100m.txt'); A108 = importdata('output_w_b_100m-res_whole_111000_100m.txt'); % A109 = importdata('output_w_b_100m-res_whole_111600_100m.txt'); A110 = importdata('output_w_b_100m-res_whole_112200_100m.txt'); A111 = importdata('output_w_b_100m-res_whole_112800_100m.txt'); % A112 = importdata('output_w_b_100m-res_whole_113400_100m.txt'); A113 = importdata('output_w_b_100m-res_whole_114000_100m.txt'); A114 = importdata('output_w_b_100m-res_whole_114600_100m.txt'); % A115 = importdata('output_w_b_100m-res_whole_115200_100m.txt'); A116 = importdata('output_w_b_100m-res_whole_115800_100m.txt'); A117 = importdata('output_w_b_100m-res_whole_116400_100m.txt'); % A118 = importdata('output_w_b_100m-res_whole_117000_100m.txt'); A119 = importdata('output_w_b_100m-res_whole_117600_100m.txt'); A120 = importdata('output_w_b_100m-res_whole_118200_100m.txt'); % A121 = importdata('output_w_b_100m-res_whole_118800_100m.txt'); A122 = importdata('output_w_b_100m-res_whole_119400_100m.txt'); A123 = importdata('output_w_b_100m-res_whole_120000_100m.txt'); % A124 = importdata('output_w_b_100m-res_whole_120600_100m.txt'); % inputs = [A1];%,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34,A35,A36,A37,A38,A39,A40,A41,A42,A43,A44,A45,A46,A47,A48,A49,A50,... % A51,A52,A53,A54,A55,A56,A57,A58,A59,A60,A61,A62,A63,A64,A65,A66,A67,A68,A69,A70,A71,A72,A73,A74,A75,A76,A77,A78,A79,A80,A81,A82,A83,A84,A85,A86,A87,A88,A89,A90,A91,A92,A93,A94,A95,A96,A97,A98,A99,A100,... % A101,A102,A103,A104,A105,A106,A107,A108,A109,A110,A111,A112,A113,A114,A115,A116,A117,A118,A119,A120,A121,A122,A123,A124]; for t = 1:1 A = inputs(t); for k = 1:5 % C_temp(:,k) = (A.data(:,k)); % Extract the relevant data from the input file end % n = size(C_temp); % Work out the current number of rows in the matrix to help in picking out any spurious duplicated rows. if C_temp(n(1),1) == C_temp(n(1)-1,1) % If the last two rows of the matrix are identical, chop off the last C_step = C_temp(1:n(1)-1,:); % row and make a new matrix without it. If they are different, leave else % the original unchanged. C_step = C_temp; % end % p = size(C_step); % Size of this new matrix, again to help in cutting out spuious duplicated rows. if C_step(1,1) == C_step(2,1) % If the first two rows of the matrix are identical, chop off the first C = C_step(2:p(1),:); % row and make a new matrix without it. If they are different, leave else % the original unchanged. C = C_step; % end % % Here we go through and identify where the input field changes sign. As % this file is for w, the start of the wave is defined as an updraft. We % get from this both the index of where there is a sign change, and the % physical location that relates to. An additional value both upstream and % downstream is included - this is to help more exactly find the node using % linear interpolation, to help in the averaging (this will be done in % another file). for i = 2:n-2 if C(i,5)>0.0 && C(i+1,5)<0.0 nodal_indices_temp(i) = i+1; nodal_locations_temp(i) = 174500+dx*i; elseif C(i,5)<0.0 && C(i+1,5)>0.0 nodal_indices_temp(i) = i; nodal_locations_temp(i) = 174500+dx*i; else nodal_indices_temp(i) = 0; nodal_locations_temp(i) = 0; end end % This is where, from looking at ive output, the wave train begins to be % poorly defined. This is done so that we only get values for waves that % are part of the train that we actually want to follow. final_wave_train_location = wave_train_end(t); final_wave_train_index = (final_wave_train_location - 174500)/dx; % Improve the nodal indices and locations matrices by removing all of the % points where nothing happens. This gives us 2 new matrices whose values % are everywhere there is a sign change. nodal_indices_step = nodal_indices_temp(nodal_indices_temp~=0); nodal_locations_step = nodal_locations_temp(nodal_locations_temp~=0); % Make something like an empty matrix, but fill the relevant number of rows % with the values from the step matrices above. % Lastly, build the final indices and locations matrices by removing any % points who lie further downstream than the predefined end of the % wavetrain. for i = 1:37 if nodal_indices_step(i) < final_wave_train_index nodal_indices(i) = nodal_indices_step(i); else nodal_indices(i) = 0; end if nodal_locations_step(i) < final_wave_train_location nodal_locations(i) = nodal_locations_step(i); else nodal_locations(i) = 0; end end % Here we build matrices whose values represent the upstream, centre, and % downstream edges of each of the waves we will be following. wave_1_indices(:,t) = nodal_indices(1:3); wave_2_indices(:,t) = nodal_indices(3:5); wave_3_indices(:,t) = nodal_indices(5:7); wave_4_indices(:,t) = nodal_indices(7:9); wave_5_indices(:,t) = nodal_indices(9:11); wave_6_indices(:,t) = nodal_indices(11:13); wave_7_indices(:,t) = nodal_indices(13:15); wave_8_indices(:,t) = nodal_indices(15:17); wave_9_indices(:,t) = nodal_indices(17:19); wave_10_indices(:,t) = nodal_indices(19:21); wave_11_indices(:,t) = nodal_indices(21:23); wave_12_indices(:,t) = nodal_indices(23:25); wave_13_indices(:,t) = nodal_indices(25:27); wave_14_indices(:,t) = nodal_indices(27:29); wave_15_indices(:,t) = nodal_indices(29:31); wave_16_indices(:,t) = nodal_indices(31:33); wave_17_indices(:,t) = nodal_indices(33:35); wave_18_indices(:,t) = nodal_indices(35:37); wave_1_locations(:,t) = nodal_locations(1:3); wave_2_locations(:,t) = nodal_locations(3:5); wave_3_locations(:,t) = nodal_locations(5:7); wave_4_locations(:,t) = nodal_locations(7:9); wave_5_locations(:,t) = nodal_locations(9:11); wave_6_locations(:,t) = nodal_locations(11:13); wave_7_locations(:,t) = nodal_locations(13:15); wave_8_locations(:,t) = nodal_locations(15:17); wave_9_locations(:,t) = nodal_locations(17:19); wave_10_locations(:,t) = nodal_locations(19:21); wave_11_locations(:,t) = nodal_locations(21:23); wave_12_locations(:,t) = nodal_locations(23:25); wave_13_locations(:,t) = nodal_locations(25:27); wave_14_locations(:,t) = nodal_locations(27:29); wave_15_locations(:,t) = nodal_locations(29:31); wave_16_locations(:,t) = nodal_locations(31:33); wave_17_locations(:,t) = nodal_locations(33:35); wave_18_locations(:,t) = nodal_locations(35:37); % This now collects the actual model data and assigns it to a wave. % for i = wave_1_indices(1,t):wave_1_indices(3,t)+1 % if wave_1_indices(1,t) == 0 || wave_1_indices(3,t) == 0 % combined_wave_1(i-wave_1_indices(1,t)+1,t) = 0; % else % combined_wave_1(i-wave_1_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_2_indices(1,t):wave_2_indices(3,t)+1 % if wave_2_indices(1,t) == 0 || wave_2_indices(3,t) == 0 % combined_wave_2(i-wave_2_indices(1,t)+1,t) = 0; % else % combined_wave_2(i-wave_2_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_3_indices(1,t):wave_3_indices(3,t)+1 % if wave_3_indices(1,t) == 0 || wave_3_indices(3,t) == 0 % combined_wave_3(i-wave_3_indices(1,t)+1,t) = 0; % else % combined_wave_3(i-wave_3_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_4_indices(1,t):wave_4_indices(3,t)+1 % if wave_4_indices(1,t) == 0 || wave_4_indices(3,t) == 0 % combined_wave_4(i-wave_4_indices(1,t)+1,t) = 0; % else % combined_wave_4(i-wave_4_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_5_indices(1,t):wave_5_indices(3,t)+1 % if wave_5_indices(1,t) == 0 || wave_5_indices(3,t) == 0 % combined_wave_5(i-wave_5_indices(1,t)+1,t) = 0; % else % combined_wave_5(i-wave_5_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_6_indices(1,t):wave_6_indices(3,t)+1 % if wave_6_indices(1,t) == 0 || wave_6_indices(3,t) == 0 % combined_wave_6(i-wave_6_indices(1,t)+1,t) = 0; % else % combined_wave_6(i-wave_6_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_7_indices(1,t):wave_7_indices(3,t)+1 % if wave_7_indices(1,t) == 0 || wave_7_indices(3,t) == 0 % combined_wave_7(i-wave_7_indices(1,t)+1,t) = 0; % else % combined_wave_7(i-wave_7_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_8_indices(1,t):wave_8_indices(3,t)+1 % if wave_8_indices(1,t) == 0 || wave_8_indices(3,t) == 0 % combined_wave_8(i-wave_8_indices(1,t)+1,t) = 0; % else % combined_wave_8(i-wave_8_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_9_indices(1,t):wave_9_indices(3,t)+1 % if wave_9_indices(1,t) == 0 || wave_9_indices(3,t) == 0 % combined_wave_9(i-wave_9_indices(1,t)+1,t) = 0; % else % combined_wave_9(i-wave_9_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_10_indices(1,t):wave_10_indices(3,t)+1 % if wave_10_indices(1,t) == 0 || wave_10_indices(3,t) == 0 % combined_wave_10(i-wave_10_indices(1,t)+1,t) = 0; % else % combined_wave_10(i-wave_10_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_11_indices(1,t):wave_11_indices(3,t)+1 % if wave_11_indices(1,t) == 0 || wave_11_indices(3,t) == 0 % combined_wave_11(i-wave_11_indices(1,t)+1,t) = 0; % else % combined_wave_11(i-wave_11_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_12_indices(1,t):wave_12_indices(3,t)+1 % if wave_12_indices(1,t) == 0 || wave_12_indices(3,t) == 0 % combined_wave_12(i-wave_12_indices(1,t)+1,t) = 0; % else % combined_wave_12(i-wave_12_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_13_indices(1,t):wave_13_indices(3,t)+1 % if wave_13_indices(1,t) == 0 || wave_13_indices(3,t) == 0 % combined_wave_13(i-wave_13_indices(1,t)+1,t) = 0; % else % combined_wave_13(i-wave_13_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_14_indices(1,t):wave_14_indices(3,t)+1 % if wave_14_indices(1,t) == 0 || wave_14_indices(3,t) == 0 % combined_wave_14(i-wave_14_indices(1,t)+1,t) = 0; % else % combined_wave_14(i-wave_14_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_15_indices(1,t):wave_15_indices(3,t)+1 % if wave_15_indices(1,t) == 0 || wave_15_indices(3,t) == 0 % combined_wave_15(i-wave_15_indices(1,t)+1,t) = 0; % else % combined_wave_15(i-wave_15_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_16_indices(1,t):wave_16_indices(3,t)+1 % if wave_16_indices(1,t) == 0 || wave_16_indices(3,t) == 0 % combined_wave_16(i-wave_16_indices(1,t)+1,t) = 0; % else % combined_wave_16(i-wave_16_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_17_indices(1,t):wave_17_indices(3,t) % if wave_17_indices(1,t) == 0 || wave_17_indices(3,t) == 0 % combined_wave_17(i-wave_17_indices(1,t)+1,t) = 0; % else % combined_wave_17(i-wave_17_indices(1,t)+1,t) = C(i,5); % end % end % for i = wave_18_indices(1,t):wave_18_indices(3,t)+1 % if wave_18_indices(1,t) == 0 || wave_18_indices(3,t) == 0 % combined_wave_18(i-wave_18_indices(1,t)+1,t) = 0; % else % combined_wave_18(i-wave_18_indices(1,t)+1,t) = C(i,5); % end % end % Finally, clear all the things from memory that won't be needed at the % next time level. clear C; clear C_step; clear C_temp; clear A; clear nodal_indices; clear nodal_locations; clear nodal_indices_temp; clear nodal_locations_temp; clear nodal_indices_step; clear nodal_locations_step; clear final_wave_train_location; clear final_wave_train_index; end