/[MITgcm]/MITgcm_contrib/gael/matlab_class/gcmfaces_IO/read_bin.m
ViewVC logotype

Annotation of /MITgcm_contrib/gael/matlab_class/gcmfaces_IO/read_bin.m

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (hide annotations) (download)
Fri Feb 12 22:24:08 2016 UTC (9 years, 5 months ago) by gforget
Branch: MAIN
CVS Tags: checkpoint65x, checkpoint65v, checkpoint65w, checkpoint65u, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, HEAD
Changes since 1.2: +4 -4 lines
- fix bug introduced in previous revision

1 gforget 1.1 function [fld]=read_bin(fileName,varargin);
2     %usage: fld=read_bin(fileName); reads 3D field (N levels in 3rd dim)
3     %usage: fld=read_bin(fileName,trec); reads 3D field, at trec (50 levels)
4     %usage: fld=read_bin(fileName,trec,k); reads 2D field, at level k, at trec (50 levels)
5     %usage: fld=read_bin(fileName,trec,0); reads 2D field, at trec (1 level)
6 gforget 1.2 %usage: fld=read_bin(fileName,trec,0,prec); prec can be set to 32 (default) or 64 (double precision)
7 gforget 1.1
8 gforget 1.3 gcmfaces_global;
9 gforget 1.1
10     if nargin>1; tt=varargin{1}; else; tt=1; end;
11     if nargin>2; kk=varargin{2}; else; kk=[]; end;
12 gforget 1.2 if nargin>3; prec=varargin{3}; else; prec=32; end;
13    
14     myprec=['float' num2str(prec)];
15 gforget 1.3 n1=mygrid.ioSize(1); n2=mygrid.ioSize(2); n3=length(mygrid.RC); nF=mygrid.nFaces;
16 gforget 1.2 recl2D=n1*n2*(prec/8); recl3D=n1*n2*n3*(prec/8);
17 gforget 1.1
18 gforget 1.3 if nargin==1; n3=dir(fileName); n3=n3.bytes/recl2D; recl3D=recl2D*n3; end;
19    
20 gforget 1.1 fid=fopen(fileName,'r','b');
21     if ~isempty(kk);
22     if kk==0;%meaning the field is only two dimensional
23     status=fseek(fid,(tt-1)*recl2D,'bof');
24     fld=reshape(fread(fid,n1*n2,myprec),[n1 n2]);
25     else;
26     status=fseek(fid,(tt-1)*recl3D+(kk-1)*recl2D,'bof');
27     fld=reshape(fread(fid,n1*n2,myprec),[n1 n2]);
28     end;
29     else;
30     status=fseek(fid,(tt-1)*recl3D,'bof');
31     fld=reshape(fread(fid,n1*n2*n3,myprec),[n1 n2 n3]);
32     end;
33     fclose(fid);
34    
35     fld=convert2gcmfaces(fld);
36    

  ViewVC Help
Powered by ViewVC 1.1.22