Global Index (short | long) | Local contents | Local Index (short | long)
Now check out the surface heat flux budgets.
| This script calls | |
|---|---|
clear
cd /home/disk/hayes/dvimont/ccm3.6/data/SOM
nc = netcdf('tvbds_wgr.cdf', 'nowrite');
q1 = nc{'QO'}(:);
nc = close(nc);
nc = netcdf('tvbds_control_5093.cdf', 'nowrite');
q2 = nc{'QO'}(:);
nc = close(nc);
q1 = squeeze(q1);
q2 = squeeze(q2);
[lat, lon] = getll('tvbds_wgr.cdf');
get_global
default_global
top = squeeze(mean(q1 - q2));
sp(1)
clma;
mcont(squeeze(mean(q1)), [-500:50:500], 'giso', [0 180]);
sp(2)
clma;
mcont(squeeze(mean(q2)), [-500:50:500], 'giso', [0 180]);
FRAME = [0 360 -40 40];
figure(2)
sp(1)
clma;
mcont(top, [-50:5:50], 'giso', [0 180]);
cd /home/disk/hayes2/dvimont/ccm/ccm3.6/run/sun/gr_5093/wgr/data
[fsns1, flns1, shflx1, lhflx1] = ...
getnc('wgr_5093.nc', 'FSNS', 'FLNS', 'SHFLX', 'LHFLX');
shfl1 = fsns1 - flns1 - shflx1 - lhflx1;
cd /home/disk/hayes2/dvimont/ccm/ccm3.6/run/sun/clim_5093/data
[fsns2, flns2, shflx2, lhflx2] = ...
getnc('clim_5093.nc', 'FSNS', 'FLNS', 'SHFLX', 'LHFLX');
shfl2 = fsns2 - flns2 - shflx2 - lhflx2;
bot = squeeze(mean(shfl1-shfl2));
figure(2)
sp(2)
clma;
mcont(bot+top, [-50:1:50], 'giso', [0 180]);
top = squeeze(-1*mean((fsns1 - fsns2)));
bot = squeeze(1*mean((flns1 - flns2)));
top = squeeze(1*mean((lhflx1 - lhflx2)));
bot = squeeze(1*mean((shflx1 - shflx2)));
figure(1)
sp(1)
clma;
mcont(top, [-52:8:52], 'giso', [0 180]);
sp(2)
clma;
mcont(bot, [-50:4:50], 'giso', [0 180]);
%%%%%%%%%%%%%% calculate lamda using Lau and Nath %%%%%%%%%%%%%%%
clear
cd /home/disk/hayes2/dvimont/ccm/ccm3.6/run/sun/gr_5093/wgr/data
[fsns1, flns1, shflx1, lhflx1, psl1] = ...
getnc('wgr_5093.nc', 'FSNS', 'FLNS', 'SHFLX', 'LHFLX', 'PSL');
[airt1, u1, v1] = getnc('wgr_5093.nc', 18, 'AIRT', 'U', 'V');
airt1 = squeeze(airt1); u1 = squeeze(u1); v1 = squeeze(v1);
wspd1 = sqrt(u1.^2 + v1.^2);
shfl1 = fsns1 - flns1 - shflx1 - lhflx1;
cd /home/disk/hayes2/dvimont/ccm/ccm3.6/run/sun/gr_5093/cgr/data
[fsns2, flns2, shflx2, lhflx2, psl2] = ...
getnc('cgr_5093.nc', 'FSNS', 'FLNS', 'SHFLX', 'LHFLX', 'PSL');
[airt2, u2, v2] = getnc('cgr_5093.nc', 18, 'AIRT', 'U', 'V');
airt2 = squeeze(airt2); u2 = squeeze(u1); v2 = squeeze(v1);
wspd2 = sqrt(u2.^2 + v2.^2);
shfl2 = fsns2 - flns2 - shflx2 - lhflx2;
[lat, lon] = getll('cgr_5093.nc');
cd /home/disk/hayes/dvimont/ccm3.6/data/SOM
nc = netcdf('tvbds_kev.cdf', 'nowrite');
mld = nc{'MLD'}(:);
nc = close(nc)
mld = squeeze(mld);
get_global
default_global
% Linearized latent heat:
cdrag = 10e-3;
lhvap = 2.5e6;
cpa = 1005;
sbcon = 5.67e-8;
rho1 = psl1 ./ (287.15 * airt1);
rho2 = psl2 ./ (287.15 * airt1);
% Find dqsat / dairt
dt = .001;
% Calculate saturated mixing ratio using Teten's formula:
a = 17.27;
bb = 35.86;
es1 = 100 * (3.8 / 0.62197) .* exp(a .* ((airt1 - 273.15 + dt) ./ (airt1 + dt - bb)));
es2 = 100 * (3.8 / 0.62197) .* exp(a .* ((airt1 - 273.15 - dt) ./ (airt1 - dt - bb)));
qsat1 = (0.622) .* es1 ./ (psl1);
qsat2 = (0.622) .* es2 ./ (psl1);
dqsdt1 = (qsat1 - qsat2) / (2 * dt);
% Do the same for cgr:
a = 17.27;
bb = 35.86;
es1 = 100 * (3.8 / 0.62197) .* exp(a .* ((airt2 - 273.15 + dt) ./ (airt2 + dt - bb)));
es2 = 100 * (3.8 / 0.62197) .* exp(a .* ((airt2 - 273.15 - dt) ./ (airt2 - dt - bb)));
qsat1 = (0.622) .* es1 ./ (psl1);
qsat2 = (0.622) .* es2 ./ (psl1);
dqsdt2 = (qsat1 - qsat2) / (2 * dt);
lh1 = -1 .* rho1 .* lhvap .* cdrag .* wspd1 .* dqsdt1;
lh2 = -1 .* rho2 .* lhvap .* cdrag .* wspd2 .* dqsdt2;
sh1 = -1 .* rho1 .* cpa .* cdrag .* wspd1;
sh2 = -1 .* rho2 .* cpa .* cdrag .* wspd2;
lw1 = -4 .* sbcon .* airt1.^3;
lw2 = -4 .* sbcon .* airt2.^3;
mld(find(mld == 0)) = NaN * ones(size(find(mld == 0)));
lam1 = -1 * (lh1 + sh1 + lw1) ./ (1000 * 4.218e3 * mld);
lam2 = -1 * (lh2 + sh2 + lw2) ./ (1000 * 4.218e3 * mld);
tm1 = (1./lam1) / (3600 * 24 * 30);
tm2 = (1./lam2) / (3600 * 24 * 30);
figure(1);
sp(1)
clma
mcont(squeeze((tm1(1,:,:))), [0:2:30], 'giso');
sp(2);