1 | % This matlab scripts plots some of the inputs to the radiation scheme |
---|
2 | % in Fig. 1 and the outputs in Fig. 2 |
---|
3 | |
---|
4 | % Location of loadnc.m |
---|
5 | path(path, '../common') |
---|
6 | |
---|
7 | code = 'ecrad_meridian'; |
---|
8 | in = loadnc([code '.nc']); |
---|
9 | cases = {[code '_noaer_out.nc'], |
---|
10 | [code '_ecckd_tc_noaer_out.nc'], |
---|
11 | [code '_default_out.nc'], |
---|
12 | [code '_ecckd_tc_out.nc'], |
---|
13 | [code '_expexp_out.nc'], |
---|
14 | [code '_tc_out.nc'], |
---|
15 | [code '_spartacus_out.nc'], |
---|
16 | [code '_ecckd_spartacus_out.nc'], |
---|
17 | [code '_default_out_REFERENCE.nc']}; |
---|
18 | clear out |
---|
19 | for icase = 1:length(cases) |
---|
20 | out{icase} = loadnc(cases{icase}); |
---|
21 | end |
---|
22 | case_list = [1 2 3 4 5 6 7 8 9]; |
---|
23 | leg = {'McICA no aerosols',... |
---|
24 | 'ecCKD Tripleclouds no aerosols',... |
---|
25 | 'McICA',... |
---|
26 | 'ecCKD McICA',... |
---|
27 | 'McICA Exp-Exp',... |
---|
28 | 'Tripleclouds',... |
---|
29 | 'SPARTACUS',... |
---|
30 | 'ecCKD SPARTACUS',... |
---|
31 | 'McICA REFERENCE'}; |
---|
32 | |
---|
33 | styles = {'b','b--','r','r--','g','m','c','k','k--'}; |
---|
34 | |
---|
35 | p = 0.01.*0.5.*median(in.pressure_hl(1:end-1,:)+in.pressure_hl(2:end,:),2); |
---|
36 | |
---|
37 | figure(1) |
---|
38 | clf |
---|
39 | set(gcf,'defaultlinelinewidth',1); |
---|
40 | set(gcf,'units','inches','paperposition',[0.5 0.5 15 30]); |
---|
41 | nplot = 4; |
---|
42 | |
---|
43 | subplot(nplot,1,1) |
---|
44 | plot(in.lat,in.cos_solar_zenith_angle,'k') |
---|
45 | xlim([-90 90]); |
---|
46 | ylabel('Cosine of solar zenith angle'); |
---|
47 | |
---|
48 | subplot(nplot,1,2) |
---|
49 | plot(in.lat,in.skin_temperature-273.15,'r'); |
---|
50 | hold on |
---|
51 | plot(in.lat,in.temperature_hl(end-1,:)-273.15,'b'); |
---|
52 | legend('Skin temperature','Air between first two model levels'); |
---|
53 | xlim([-90 90]); |
---|
54 | ylabel('Temperature (\circC)'); |
---|
55 | ylim([-50 60]); |
---|
56 | |
---|
57 | subplot(nplot,1,3) |
---|
58 | %contour(in.lat,p,in.q_ice,10.^[-5 -5],'b'); |
---|
59 | %hold on |
---|
60 | %contour(in.lat,p,in.q_liquid,10.^[-5 -5],'r'); |
---|
61 | contourf(in.lat,p,in.cloud_fraction,[0.05:0.1:0.95],'k'); |
---|
62 | %shading flat |
---|
63 | colormap(jet) |
---|
64 | set(gca,'ydir','reverse'); |
---|
65 | ylim([0 1013]); |
---|
66 | xlim([-90 90]); |
---|
67 | ylabel('Pressure (hPa)'); |
---|
68 | text(-90, 0, [' ' 10 ' Cloud fraction'],'verticalalignment','top') |
---|
69 | |
---|
70 | subplot(nplot,1,4) |
---|
71 | sea_salt = 1e9.*sum(squeeze(in.aerosol_mmr(end,1:3,:)),1); |
---|
72 | dust = 1e9.*sum(squeeze(in.aerosol_mmr(end,4:6,:)),1); |
---|
73 | organics = 1e9.*sum(squeeze(in.aerosol_mmr(end,7:8,:)),1); |
---|
74 | black_carbon = 1e9.*sum(squeeze(in.aerosol_mmr(end,9:10,:)),1); |
---|
75 | sulphate = 1e9.*sum(squeeze(in.aerosol_mmr(end,11:12,:)),1); |
---|
76 | |
---|
77 | plot(in.lat,sea_salt,'b'); |
---|
78 | hold on |
---|
79 | plot(in.lat,dust,'r'); |
---|
80 | plot(in.lat,organics,'g'); |
---|
81 | plot(in.lat,black_carbon,'k'); |
---|
82 | plot(in.lat,sulphate,'m'); |
---|
83 | legend('Sea salt','Dust','Organics','Black carbon','Sulphate'); |
---|
84 | ylabel('Aerosol mass mixing ratio (\mug kg^{-1})'); |
---|
85 | xlabel('Latitude (\circN)'); |
---|
86 | xlim([-90 90]); |
---|
87 | set(gca,'yscale','log'); |
---|
88 | |
---|
89 | figure(2) |
---|
90 | clf |
---|
91 | set(gcf,'defaultlinelinewidth',1); |
---|
92 | set(gcf,'units','inches','paperposition',[0.5 0.5 15 30]); |
---|
93 | nplot = 4; |
---|
94 | subplot(nplot,1,1) |
---|
95 | for icase = case_list |
---|
96 | plot(in.lat, out{icase}.flux_dn_sw(end,:),styles{icase}) |
---|
97 | hold on |
---|
98 | % plot(in.lat, out{icase}.flux_dn_sw_clear(end,:),[styles{icase} '--']) |
---|
99 | % plot(in.lat, out{icase}.flux_dn_direct_sw(end,:),[styles{icase} '--']) |
---|
100 | end |
---|
101 | xlim([-90 90]); |
---|
102 | ylabel('Surface SW down (W m^{-2})'); |
---|
103 | legend(leg{case_list}) |
---|
104 | |
---|
105 | subplot(nplot,1,2) |
---|
106 | for icase = case_list |
---|
107 | cre = out{icase}.flux_dn_sw(1,:)-out{icase}.flux_dn_sw_clear(1,:) ... |
---|
108 | -out{icase}.flux_up_sw(1,:)+out{icase}.flux_up_sw_clear(1,:); |
---|
109 | plot(in.lat, cre,styles{icase}) |
---|
110 | hold on |
---|
111 | end |
---|
112 | xlim([-90 90]); |
---|
113 | ylabel('SW cloud radiative effect (W m^{-2})'); |
---|
114 | |
---|
115 | subplot(nplot,1,3) |
---|
116 | for icase = case_list |
---|
117 | cre = out{icase}.flux_dn_lw(1,:)-out{icase}.flux_dn_lw_clear(1,:) ... |
---|
118 | -out{icase}.flux_up_lw(1,:)+out{icase}.flux_up_lw_clear(1,:); |
---|
119 | plot(in.lat, cre,styles{icase}) |
---|
120 | hold on |
---|
121 | end |
---|
122 | xlim([-90 90]); |
---|
123 | ylabel('LW cloud radiative effect (W m^{-2})'); |
---|
124 | |
---|
125 | subplot(nplot,1,4) |
---|
126 | for icase = case_list |
---|
127 | plot(in.lat, out{icase}.cloud_cover_sw,styles{icase}); |
---|
128 | hold on |
---|
129 | end |
---|
130 | xlim([-90 90]); |
---|
131 | ylabel('Cloud cover'); |
---|
132 | xlabel('Latitude (\circN)'); |
---|