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

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

start to modify headers of ReadWrite? *.pro files for better idldoc output

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