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

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

upgrade of LECTURE/ReadWrite according to cerbere.lodyc.jussieu.fr: /usr/home/smasson/SAXO_RD/ : files

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