Changeset 22813
- Timestamp:
- 05/29/18 23:51:25 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/examples/SlrFarrell/runme.m
r22805 r22813 1 1 2 2 clear all; 3 steps=[ 2]; %3 steps=[5]; % 4 4 5 5 if any(steps==1) % Global mesh creation {{{ … … 70 70 % initial sea-level: 1 m RSL everywhere. 71 71 md.slr.sealevel=md.mask.ocean_levelset; 72 73 md.slr.deltathickness=zeros(md.mesh.numberofelements,1); 74 md.slr.steric_rate=zeros(md.mesh.numberofvertices,1); 72 75 73 76 save ./Models/SlrFarrell.Loads md; … … 85 88 % Love numbers and reference frame: CF or CM (choose one!) 86 89 nlove=10001; % up to 10,000 degree 87 md.slr.love_h = love_numbers('h','CM'); md.slr.love_h(nlov +1:end)=[];88 md.slr.love_k = love_numbers('k','CM'); md.slr.love_k(nlov +1:end)=[];89 md.slr.love_l = love_numbers('l','CM'); md.slr.love_l(nlov +1:end)=[];90 md.slr.love_h = love_numbers('h','CM'); md.slr.love_h(nlove+1:end)=[]; 91 md.slr.love_k = love_numbers('k','CM'); md.slr.love_k(nlove+1:end)=[]; 92 md.slr.love_l = love_numbers('l','CM'); md.slr.love_l(nlove+1:end)=[]; 90 93 91 94 % Mask: for computational efficiency only those elements that have loads are convolved! 92 md.mask.groundedice_levelset = ones(md.mesh.numberofvertices,1); % 1 = ice is grounnded93 md.mask.ice_levelset = ones(md.mesh.numberofvertices,1);94 pos=find(md.slr.deltathickness~=0);95 md.mask.ice_levelset(md.mesh.elements(pos,:))=-1; % -1 = ice loads96 95 md.mask.land_levelset = 1-md.mask.ocean_levelset; 96 % fake ice load in one element! 97 md.mask.ice_levelset = ones(md.mesh.numberofvertices,1); % no ice 98 md.mask.groundedice_levelset = -ones(md.mesh.numberofvertices,1); % floated... 99 pos=find(md.mesh.lat <-80); 100 md.mask.ice_levelset(pos(1))=-1; % ice yes! 101 md.mask.groundedice_levelset(pos(1))=1; % ice grounded! 97 102 98 103 %% IGNORE BUT DO NOT DELETE %% {{{ … … 119 124 md = loadmodel('./Models/SlrFarrell.Parameterization'); 120 125 121 % Request outputs122 md.slr.requested_outputs = {'SlrUmotion','SlrNmotion','SlrEmotion'};123 124 126 % Cluster info 125 127 md.cluster=generic('name',oshostname(),'np',3); … … 137 139 md = loadmodel('./Models/SlrFarrell.Solution'); 138 140 139 % loads and solutions. 140 sol1 = md.slr.deltathickness*100; % WEH cm 141 sol2 = md.results.SlrSolution.SlrUmotion*1000; % [mm] 142 sol3 = md.results.SlrSolution.SlrNmotion*1000; % [mm] 143 sol4 = md.results.SlrSolution.SlrEmotion*1000; % [mm] 144 sol_name={'Change in water equivalent height [cm]', 'Vertical displacement [mm]',... 145 'Horizontal (NS) displacement [mm]', 'Horizontal (EW) displacement [mm]'}; 146 141 % solutions. 142 sol = md.results.SealevelriseSolution.Sealevel*100; % per cent normalized by GMSL (which 1 m) 143 147 144 res = 1.0; % degree 148 145 … … 151 148 sol_grid = zeros(size(lat_grid)); 152 149 153 for kk=1:4 154 sol=eval(sprintf('sol%d',kk)); 150 % Make a interpolation object 151 F = scatteredInterpolant(md.mesh.lat,md.mesh.long,sol); 152 F.Method = 'linear'; 153 F.ExtrapolationMethod = 'linear'; 155 154 156 % if data are on elements, map those on to the vertices {{{ 157 if length(sol)==md.mesh.numberofelements 158 % map on to the vertices 159 for jj=1:md.mesh.numberofelements 160 ii=(jj-1)*3; 161 pp(ii+1:ii+3)=md.mesh.elements(jj,:); 162 end 163 for jj=1:md.mesh.numberofvertices 164 pos=ceil(find(pp==jj)/3); 165 temp(jj)=mean(sol(pos)); 166 end 167 sol=temp'; 168 end % }}} 155 % Do the interpolation to get gridded solutions... 156 sol_grid = F(lat_grid, lon_grid); 157 sol_grid(isnan(sol_grid))=0; 158 sol_grid(lat_grid>85 & sol_grid==0) =NaN; % set polar unphysical 0s to Nan 169 159 170 % Make a interpolation object 171 F = scatteredInterpolant(md.mesh.lat,md.mesh.long,sol); 172 F.Method = 'linear'; 173 F.ExtrapolationMethod = 'linear'; 160 set(0,'DefaultAxesFontSize',18,'DefaultAxesLineWidth',1,'DefaultTextFontSize',18,'DefaultLineMarkerSize',8) 161 figure1=figure('Position', [100, 100, 1000, 500]); 162 gcf; load coast; cla; 163 %pcolor(lon_grid,lat_grid,sol_grid); shading flat; hold on; 164 contourf(lon_grid,lat_grid,sol_grid,[96 98 100 102 104 105]); shading flat; hold on; 165 geoshow(lat,long,'DisplayType','polygon','FaceColor','white'); 166 plot(long,lat,'k'); hold off; 167 % define colormap, caxis, xlim etc {{{ 168 c1=colorbar; 169 %colormap('haxby'); 170 %caxis([96 104]); 171 xlim([-180 180]); 172 ylim([-90 90]); 173 % }}} 174 grid on; 175 title('Relative sea-level [mm]'); 176 set(gcf,'color','w'); 174 177 175 % Do the interpolation to get gridded solutions... 176 sol_grid = F(lat_grid, lon_grid); 177 sol_grid(isnan(sol_grid))=0; 178 sol_grid(lat_grid>85 & sol_grid==0) =NaN; % set polar unphysical 0s to Nan 179 180 set(0,'DefaultAxesFontSize',18,'DefaultAxesLineWidth',1,'DefaultTextFontSize',18,'DefaultLineMarkerSize',8) 181 figure1=figure('Position', [100, 100, 1000, 500]); 182 gcf; 183 load coast; 184 cla; 185 pcolor(lon_grid,lat_grid,sol_grid); shading flat; hold on; 186 plot(long,lat,'k'); hold off; 187 c1=colorbar; 188 colormap(jet); 189 xlim([-180 180]); 190 ylim([-90 90]); 191 grid on; 192 title(sol_name(kk)); 193 set(gcf,'color','w'); 194 195 %export_fig('Fig5.pdf'); 196 end 178 %export_fig('Fig5.pdf'); 197 179 198 180 end % }}} 199 181 200
Note:
See TracChangeset
for help on using the changeset viewer.