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);