Global Index (short | long) | Local contents | Local Index (short | long)
[slpnmc, nxanmc, nyanmc, slph, nxah, nyah, slpc, nxac, nyac]=read_nmc;
[slpnmc, nxanmc, nyanmc, slph, nxah, nyah, slpc, nxac, nyac]=read_nmc; slpnmc, slph, slpc -- slp for nmc, hack, and control data files. nxanmc, nxah, nxac -- nxa for nmc, hack, and control data files. nyanmc, nyah, nyac -- nya for nmc, hack, and control data files. This function reads the history files in the directory: /home/disk/hayes2/dvimont/ccm/T42 It outputs one file: slp.mat -- this contains all the variables listed above. One can retrieve information about the objects stored in a netcdf file by using the command: var(nc, num) -- where num is the number of the variable you want information for
This function calls | |
---|---|
function [slpnmc, nxanmc, nyanmc, slph, nxah, nyah, slpc, nxac, nyac]=read_nmc; cd /home/disk/hayes2/dvimont/ccm/T42 % Define frames lim=[0 360 -90 90]; % Set file inputs file_id1='/home/disk/hayes2/dvimont/ccm/T42/'; file_id2='.nc'; % Read defaults file_in=[file_id1, 'slp.monthly.cl7995', file_id2] [x,nxa,nya,nti,nday,xa,ya,time,xdim,xid]=readnc(file_in,lim); limind = [1 length(nya) 1 length(nxa)]; nc = netcdf(file_in, 'nowrite'); slpnmc = nc{'slp'}(:,limind(1):limind(2),limind(3):limind(4)); nc = close(nc); nxanmc = nxa; nyanmc = nya; % Do the same for hack.nc file_in=[file_id1, 'hack', file_id2] [x,nxa,nya,nti,nday,xa,ya,time,xdim,xid]=readnc(file_in,lim); limind = [1 length(nya) 1 length(nxa)]; nc = netcdf(file_in, 'nowrite'); slph = nc{'PSL'}(:,limind(1):limind(2),limind(3):limind(4)); nc = close(nc); nxah = nxa; nyah = nya; % Do the same for control.nc file_in=[file_id1, 'control', file_id2] [x,nxa,nya,nti,nday,xa,ya,time,xdim,xid]=readnc(file_in,lim); limind = [1 length(nya) 1 length(nxa)]; nc = netcdf(file_in, 'nowrite'); slpc = nc{'PSL'}(:,limind(1):limind(2),limind(3):limind(4)); nc = close(nc); nxac = nxa; nyac = nya; % Interpolate slpnmc to the same grid as slpc and slph [ntm, ny, nx] = size(slpnmc); ntmvec = 1:ntm; nxanmc2 = [(nxanmc((nx-1):nx)-360); nxanmc; (nxanmc(1:2)+360)]; slp2 = shiftdim(slpnmc, 2); slp2 = [slp2(((nx-1):nx),:,:); slp2; slp2(1:2,:,:)]; slp2 = shiftdim(slp2, 1); slp2 = interpn(ntmvec, nyanmc, nxanmc2, slp2, ntmvec, nyah, nxah); slpnmc = slp2.*100; % Try to write to a NetCDF file: file_in = [file_id1, 'slp_hack', file_id2] infid = ncmex('OPEN',file_in,'WRITE') %[value, status] = ncmex('VARGET', infid, 'PSL', [0 0 0], [-1 -1 -1], 0); %valuedim = size(value); %[value, valuedim] = shift_dim(value, valuedim, [2 3]); %value = reshape(value, valuedim); start = [0 0 0]; count = [-1 -1 -1]; %[name,datatype,ndims,dim,natts,pslnum] = ncmex('VARINQ',infid,'PSL') %status = mexcdf('varrename',infid,pslnum,'slp_hack') %slpcnum = ncmex('VARDEF',infid,'slp_control',datatype,ndims,dim) %status = ncmex('varput',infid,slpcnum,[0 0 0],[-1 -1 -1],slpc,0) slpcdim = size(slpc); [slpc, slpcdim] = shift_dim(slpc, slpcdim, [2 3]); slpc = reshape(slpc, slpcdim); status = ncmex('varput',infid,pslnum+1,start,count,slpc,0) infid = ncmex('CLOSE', infid); % Try to write a NetCDF file: file_in = [file_id1, 'slp_hack', file_id2] %file_out = [file_id1, 'slp', file_id2] infid = ncmex('OPEN',file_in,'NC_WRITE') %outid = ncmex('CREATE',file_out,'NC_CLOBBER'); [name, length, status] = ncmex('DIMINQ', infid, 'lon') status = ncmex('DIMDEF',outid,'lon',128) [name, length, status] = ncmex('DIMINQ', infid, 'lat') status = ncmex('DIMDEF',outid,'lat',length) [name, length, status] = ncmex('DIMINQ', infid, 'time') status = ncmex('DIMDEF',outid,'time',length) [name, datatype,ndims,dim,natts,status] = ncmex('VARINQ',outid,'lon') start = [0 0 0 0]; count = [-1 -1 -1 -1]; status = ncmex('VARDEF',outid,'lon'],5,1,0,0) status = ncmex('RECPUT',outid,recnum, [data], autoscale, recdim) status = ncmex('VARPUT',outid,0,0,-1,nxah) status = ncmex('ATTPUT',outid,'lon','lon',5,[1 128],nxah') [ndims, nvars, natts, recdim, status] = ncmex('INQUIRE', infid) [value, len, status] = ncmex('ATTGET',infid,'lon','lon') status = ncmex('ATTCOPY',infid,24,'lon',outid,'lon') [varid,rcode]=ncmex('VARID',infid,'lon') [name, datatype,ndims,dim,natts,status] = ncmex('VARINQ',infid,'lon') status = ncmex('VARDEF',outid,name,datatype,ndims,dim) [name, datatype,ndims,dim,natts,status] = ncmex('VARINQ',infid,'lat') status = ncmex('VARDEF',outid,name,datatype,ndims,dim) [name, datatype,ndims,dim,natts,status] = ncmex('VARINQ',infid,'time') status = ncmex('VARDEF',outid,name,datatype,ndims,dim) [name, datatype,ndims,dim,natts,status] = ncmex('VARINQ',infid,'slp') status = ncmex('VARDEF',outid,name,datatype,ndims,dim) infid = ncmex('CLOSE',infid) %outid = ncmex('CLOSE',outid) [ndims, nvars, natts, recdim, status] = ncmex('INQUIRE', infid) save slp.mat slpnmc slph slpc nxanmc nxah nxac nyanmc nyah nyac