-
Notifications
You must be signed in to change notification settings - Fork 44
/
Copy pathqdims.gsf
79 lines (69 loc) · 2 KB
/
qdims.gsf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
* id = fnum
* varying/fixed : number of varying/fixed dimensions
*
* xtype
* lonmin, lonmax
* xmin, xmax
* ytype
* ...
* z
* t
* e
function qdims( id )
ret = ''
'q dims'
if( id = 'fnum' )
line = sublin( result, 1 )
ret = subwrd( line, 5 )
return ret
endif
if( id = 'varying' | id = 'fixed' )
ret = 0
i = 2
while( i <= 6 )
line = sublin( result, i )
stat = subwrd( line, 3 )
if( stat = id ) ; ret = ret + 1 ; endif
i = i + 1
endwhile
return ret
endif
if( id = 'xtype' | id = 'lonmin' | id = 'lonmax' | id = 'xmin' | id = 'xmax' )
line = sublin( result, 2 )
endif
if( id = 'ytype' | id = 'latmin' | id = 'latmax' | id = 'ymin' | id = 'ymax' )
line = sublin( result, 3 )
endif
if( id = 'ztype' | id = 'levmin' | id = 'levmax' | id = 'zmin' | id = 'zmax' )
line = sublin( result, 4 )
endif
if( id = 'ttype' | id = 'timemin' | id = 'timemax' | id = 'tmin' | id = 'tmax' )
line = sublin( result, 5 )
endif
if( id = 'etype' | id = 'ensmin' | id = 'ensmax' | id = 'emin' | id = 'emax' )
line = sublin( result, 6 )
endif
type = subwrd( line, 3 )
if( id = 'xtype' | id = 'ytype' | id = 'ztype' | id = 'ttype' | id = 'etype' )
ret = type
endif
if( id = 'lonmin' | id = 'latmin' | id = 'levmin' | id = 'timemin' | id = 'ensmin' )
ret = subwrd( line, 6 )
return ret
endif
if( id = 'lonmax' | id = 'latmax' | id = 'levmax' | id = 'timemax' | id = 'ensmax' )
if( type = 'fixed' ) ; ret = subwrd( line, 6 )
else ; ret = subwrd( line, 8 ) ; endif
return ret
endif
if( id = 'xmin' | id = 'ymin' | id = 'zmin' | id = 'tmin' | id = 'emin' )
if( type = 'fixed' ) ; ret = subwrd( line, 9 )
else ; ret = subwrd( line, 11 ) ; endif
return ret
endif
if( id = 'xmax' | id = 'ymax' | id = 'zmax' | id = 'tmax' | id = 'emax' )
if( type = 'fixed' ) ; ret = subwrd( line, 9 )
else ; ret = subwrd( line, 13 ) ; endif
return ret
endif
return ret