source: trunk/SRC/ReadWrite/writebat.pro @ 134

Last change on this file since 134 was 130, checked in by pinsard, 18 years ago

improvements of ReadWrite/?*.pro header

  • Property svn:keywords set to Id
File size: 2.4 KB
Line 
1;------------------------------------------------------------
2;------------------------------------------------------------
3;------------------------------------------------------------
4;+
5;
6; @file_comments
7; write the bathymetry ASCII file of OPA
8;
9; @categories for OPA
10;
11; @param zbat {in}{required} the bathymetry, a 2d array
12; @param filename {in}{required} a string containing the filename,
13;
14; @history Sebastien Masson (smasson\@lodyc.jussieu.fr)
15;                      Sept 30, 2003
16;    based on batsav2.pro, written by Maurice Imbard, March 17, 1998
17;
18; @version $Id$
19;-
20PRO writebat, zbat, filename
21;
22  compile_opt idl2, strictarrsubs
23;
24; basic checks
25  IF n_params() NE 2 THEN BEGIN
26    print, 'bad number of aguments in the call of writebat'
27    return
28  ENDIF
29  IF size(filename, /type) NE 7 THEN BEGIN
30    print, 'the filename should be a string'
31    return
32  ENDIF
33  sbat = size(zbat)
34  IF sbat[0] NE 2 THEN BEGIN
35    print, 'bathymetry array should be 2d array'
36    return
37  ENDIF
38;
39  jpi2 = sbat[1]
40  jpj2 = sbat[2]
41; parameters def
42  ifreq  = 40
43  ifin   = jpi2/ifreq+1
44  irest  = jpi2-(ifin-1)*ifreq
45  zbati  = intarr(ifreq)
46  zbati2 = intarr(irest)
47  i0     = intarr(ifreq/5)
48  i1     = intarr(max([1, irest/5]))
49;
50  openw, iunit, filename, /get_lun
51;;
52;; fill the file
53;;
54  printf, iunit, FORMAT = '(1x," bathy IDL     ",2i8)', jpi2, jpj2
55  printf, iunit, FORMAT = '(/)'
56  il1 = 0
57  FOR jn = 1, ifin-1 DO BEGIN
58    printf, iunit, FORMAT = '(/)'
59    il2 = min([ jpi2-1, il1+ifreq-1] )
60    i0[0] = il1+1
61    FOR jj = 1, ifreq/5-1 DO BEGIN
62      i0[jj] = i0[jj-1]+5
63    END
64    printf, iunit, FORMAT = '(3x,13(i3,12x))', i0
65    printf, iunit, FORMAT = '(/)'
66    il3 = il2-(jn-1)*ifreq
67    iformat = string('(', il3+2, 'i3)')
68    FOR jj =  jpj2-1, 0, -1  DO BEGIN
69      zbati[0:il3] = zbat[il1:il2, jj]
70      printf, iunit, FORMAT = iformat, jj+1, zbati
71    END
72    il1 = il1 + ifreq
73  END
74  printf, iunit, FORMAT = '(/)'
75  il2 = min([ jpi2-1, il1+ifreq-1] )
76  i1[0] = il1+1
77  FOR jj = 1, irest/5-1 DO BEGIN
78    i1[jj] = i1[jj-1]+5
79  END
80  printf, iunit, FORMAT = '(3x,13(i3,12x))', i1
81  printf, iunit, FORMAT = '(/)'
82  il3 = il2-(ifin-1)*ifreq
83  iformat = string('(', il3+2, 'i3)')
84  FOR jj =  jpj2-1, 0, -1  DO BEGIN
85    zbati2[0:irest-1] = 0
86    zbati2[0:il3] = zbat[il1:il2, jj]
87    printf, iunit, FORMAT = iformat, jj+1, zbati2
88  END
89;;
90;; end
91;;
92  close, iunit
93  free_lun, iunit
94;
95  return
96end
Note: See TracBrowser for help on using the repository browser.