[4773] | 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)'); |
---|