Documentation of read_write


Global Index (short | long) | Local contents | Local Index (short | long)


Function Synopsis

[slpnmc, nxanmc, nyanmc, slph, nxah, nyah, slpc, nxac, nyac]=read_nmc;

Help text


  [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


Cross-Reference Information

This function calls

Listing of function read_write

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