source: trunk/SRC/ReadWrite/read_oasis.pro @ 327

Last change on this file since 327 was 327, checked in by pinsard, 17 years ago

modification of headers : mainly blanks around = sign for keywords in declaration of function and pro

  • Property svn:keywords set to Id
File size: 1.7 KB
Line 
1;+
2;
3; @file_comments
4; read the f77 unformatted files used in Oasis (version < 2.5)
5;
6; @categories
7; Reading
8;
9; @param FILENAME {in}{required}
10; the filename
11;
12; @param VARNAME {in}{required}
13; the name of the variable to be read
14;
15; @param JPI {in}{required}
16;
17; @param jpj {in}{required}
18; the size of the 2d array to be read
19;
20; @keyword I2
21; @keyword I4
22; @keyword I8
23; @keyword R4
24; to change the default format (R8) of the data to be read.
25;
26; @returns
27; a 2d array
28;
29; @examples
30; IDL> a=read_oasis('grids_orca_t106','a106.lon',320,160)
31; IDL> m=read_oasis('masks_orca_t106','or1t.msk',182,149,/i4)
32;
33; see also IDL> scanoasis,'grids_orca_t106'
34;
35; @history
36; Sebastien Masson (smasson\@lodyc.jussieu.fr)
37;                      July 01, 2002
38; @version
39; $Id$
40;
41;-
42FUNCTION read_oasis, filename, varname, jpi, jpj, I2=I2, I4=i4, I8=i8, R4=r4
43;
44  compile_opt idl2, strictarrsubs
45;
46
47   openr, unit, filename, /f77_unformatted, /get_lun, /swap_if_little_endian $
48    , error=err
49   if err ne 0 then begin
50      ras = report(!err_string)
51      return, -1
52   endif
53
54   char8 = '12345678'
55   readu, unit, char8
56;   print, char8
57   found = char8 EQ varname
58
59   WHILE NOT EOF(unit) AND found NE 1 DO BEGIN
60      readu, unit
61      if EOF(unit) then begin
62         ras = report(varname+' not found in '+filename)
63         return, -1
64      endif
65      readu, unit, char8
66;      print, char8
67      found = char8 EQ varname
68   ENDWHILE
69   case 1 of
70      keyword_set(i2):res = intarr(jpi, jpj)
71      keyword_set(i4):res = lonarr(jpi, jpj)
72      keyword_set(i8):res = lon64arr(jpi, jpj)
73      keyword_set(r4):res = fltarr(jpi, jpj)
74      ELSE:res = dblarr(jpi, jpj)
75   endcase
76
77   readu, unit, res
78
79   free_lun,unit
80
81   return, res
82end
Note: See TracBrowser for help on using the repository browser.