separated constant part in module_w_assembly.f90
[wrf-fire-matlab.git] / femwind / center_mesh.m
blob54e055e8e1a2fe9caf2c5200893589aab9757b92
1 function [CX,CH]=center_mesh(X)
2 % CX=center_mesh(X)
3 % compute centers of mesh cells by averaging the coordinates of the cell corners
4 % in: 
5 %   X    {x,y,z}  3D arrays of coordinates of mesh corners
6 % out:
7 %   CX   {x,y,z}  3D arrays of coordinates of mesh cell centers
8 %   CW   {x,y,z}  3D arrays of coordinates of mesh horizontal face centers
10 CX = cell(1,3);
11 for k = 1:3
12     % centers
13     CX{k} = (X{k}(1:end-1,1:end-1,1:end-1)+X{k}(2:end,1:end-1,1:end-1)+...
14             X{k}(1:end-1,2:end,1:end-1)+X{k}(1:end-1,1:end-1,2:end)+...
15             X{k}(2:end,2:end,1:end-1)+X{k}(2:end,1:end-1,2:end)+...
16             X{k}(1:end-1,2:end,2:end)+X{k}(2:end,2:end,2:end))/8;
17 end
18 % bottom
19 CB = X{3}(1:end-1,1:end-1,1)+X{3}(2:end,1:end-1,1)+...
20      X{3}(1:end-1,2:end,1)+X{3}(1:end-1,1:end-1,1);
21 % center height above terrain
22 CH = zeros(size(CX{3}));
23 for k=1:size(CX{3},3)
24      CH(:,:,k)=CX{3}(:,:,k)-CB;
25 end
26 end