5 # define rindex(X,Y) strrchr(X,Y)
6 # define index(X,Y) strchr(X,Y)
16 dimension_with_colons( char * pre
, char * tmp
, node_t
* p
, char * post
)
19 if ( p
== NULL
) return("") ;
20 if ( p
->ndims
<= 0 && ! p
->boundary_array
) return("") ;
22 if ( pre
!= NULL
) strcat(tmp
,pre
) ;
23 if ( p
->boundary_array
)
25 if ( ! sw_new_bdys
) { strcat( tmp
,":,") ; }
26 if ( !strcmp( p
->use
, "_4d_bdy_array_" ) ) {
27 strcat( tmp
, ":,:,:,:" ) ; /* boundary array for 4d tracer array */
29 strcat( tmp
, ":,:,:" ) ; /* most always have four dimensions */
34 for ( i
= 0 ; i
< p
->ndims
; i
++ ) strcat(tmp
,":,") ;
35 if ( p
->node_kind
& FOURD
) strcat(tmp
,":,") ; /* add an extra for 4d arrays */
36 tmp
[strlen(tmp
)-1] = '\0' ;
38 if ( post
!= NULL
) strcat(tmp
,post
) ;
43 dimension_with_ones( char * pre
, char * tmp
, node_t
* p
, char * post
)
46 char r
[NAMELEN
],s
[NAMELEN
],four_d
[NAMELEN
] ;
48 if ( p
== NULL
) return("") ;
49 if ( p
->ndims
<= 0 && ! p
->boundary_array
) return("") ;
51 if ( pre
!= NULL
) strcat(tmp
,pre
) ;
53 if ( p
->boundary_array
)
55 if ( ! sw_new_bdys
) { strcpy( tmp
,"(1,") ; }
56 if ( !strcmp( p
->use
, "_4d_bdy_array_" ) ) { /* if a boundary array for a 4d tracer */
57 strcpy(s
, p
->name
) ; /* copy the name and then remove everything after last underscore */
58 if ((pp
=rindex( s
, '_' )) != NULL
) *pp
= '\0' ;
59 sprintf( four_d
, "num_%s,", s
) ;
61 strcpy( four_d
, "" ) ;
64 if ( !strcmp( p
->use
, "_4d_bdy_array_" ) ) {
65 sprintf( r
, "1,1,1,%s", four_d
) ; /* boundary array for 4d tracer array */
68 strcat( tmp
, "1,1,1," ) ;
70 tmp
[strlen(tmp
)-1] = '\0' ;
74 for ( i
= 0 ; i
< p
->ndims
; i
++ ) strcat(tmp
,"1,") ;
75 if ( p
->node_kind
& FOURD
) strcat(tmp
,"1,") ; /* add an extra for 4d arrays */
76 tmp
[strlen(tmp
)-1] = '\0' ;
78 if ( post
!= NULL
) strcat(tmp
,post
) ;
83 dimension_with_ranges( char * refarg
, char * pre
,
84 int bdy
, /* as defined in data.h */
85 char * tmp
, node_t
* p
, char * post
,
86 char * nlstructname
) /* added 20020130;
87 provides name (with %) of structure in
88 which a namelist supplied dimension
89 should be dereference from, or "" */
93 char r
[NAMELEN
],s
[NAMELEN
],four_d
[NAMELEN
] ;
94 int bdex
, xdex
, ydex
, zdex
;
95 node_t
*xdim
, *ydim
, *zdim
;
97 if ( p
== NULL
) return("") ;
98 if ( p
->ndims
<= 0 && !p
->boundary_array
) return("") ;
100 if ( pre
!= NULL
) strcat(tmp
,pre
) ;
102 if ( refarg
!= NULL
) strcat(r
,refarg
) ;
104 if ( p
->boundary_array
)
108 xdim
= get_dimnode_for_coord( p
, COORD_X
) ;
109 ydim
= get_dimnode_for_coord( p
, COORD_Y
) ;
110 zdim
= get_dimnode_for_coord( p
, COORD_Z
) ;
112 { fprintf(stderr
,"dimension_with_ranges: y dimension not specified for %s\n",p
->name
) ; return("") ; }
114 { fprintf(stderr
,"dimension_with_ranges: x dimension not specified for %s\n",p
->name
) ; return("") ; }
116 xdex
= xdim
->dim_order
;
117 ydex
= ydim
->dim_order
;
119 if ( !strcmp( p
->use
, "_4d_bdy_array_" ) ) { /* if a boundary array for a 4d tracer */
120 strcpy(s
, p
->name
) ; /* copy the name and then remove everything after last underscore */
121 if ((pp
=rindex( s
, '_' )) != NULL
) *pp
= '\0' ;
122 sprintf( four_d
, "num_%s,", s
) ;
124 strcpy( four_d
, "" ) ;
127 if ( bdy
== P_XSB
|| bdy
== P_XEB
) { bdex
= ydex
; }
128 else if ( bdy
== P_YSB
|| bdy
== P_YEB
) { bdex
= xdex
; }
129 else { fprintf(stderr
,"REGISTRY WARNING: internal error %s %d, bdy=%d,%s,%d \n",__FILE__
,__LINE__
,bdy
,p
->name
,p
->boundary
) ; }
130 if ( zdim
!= NULL
) {
131 zdex
= zdim
->dim_order
;
132 sprintf(tx
,"%ssm3%d:%sem3%d,%ssm3%d:%sem3%d,%sspec_bdy_width,%s", r
,bdex
,r
,bdex
,r
,zdex
,r
,zdex
,r
,four_d
) ;
134 sprintf(tx
,"%ssm3%d:%sem3%d,1,%sspec_bdy_width,%s", r
,bdex
,r
,bdex
,r
,four_d
) ;
137 if ( zdim
!= NULL
) {
138 zdex
= zdim
->dim_order
;
139 sprintf(tx
,"max(%sed3%d,%sed3%d),%ssd3%d:%sed3%d,%sspec_bdy_width,4,%s", r
,xdex
,r
,ydex
,r
,zdex
,r
,zdex
,r
,four_d
) ;
141 sprintf(tx
,"max(%sed3%d,%sed3%d),1,%sspec_bdy_width,4,%s", r
,xdex
,r
,ydex
,r
,four_d
) ;
147 sprintf(tx
,"%sspec_bdy_width,",r
) ;
153 for ( i
= 0 ; i
< p
->ndims
; i
++ )
155 range_of_dimension( r
, tx
, i
, p
, nlstructname
) ;
160 tmp
[strlen(tmp
)-1] = '\0' ;
161 if ( post
!= NULL
) strcat(tmp
,post
) ;
167 range_of_dimension ( char * r
, char * tx
, int i
, node_t
* p
, char * nlstructname
)
169 char s
[NAMELEN
], e
[NAMELEN
] ;
171 get_elem( r
, nlstructname
, s
, i
, p
, 0 ) ;
172 get_elem( r
, nlstructname
, e
, i
, p
, 1 ) ;
173 sprintf(tx
,"%s:%s", s
, e
) ;
174 return 0; /* SamT: bug fix: return a value */
178 index_with_firstelem( char * pre
, char * dref
, int bdy
, /* as defined in data.h */
179 char * tmp
, node_t
* p
, char * post
)
184 /* SamT: bug fix: zdex is used but never set */
185 int bdex
, xdex
, ydex
, zdex
=-999 ;
186 node_t
*xdim
, *ydim
, *zdim
;
189 if ( p
== NULL
) return("") ;
190 if ( p
->ndims
<= 0 ) return("") ;
192 if ( pre
!= NULL
) strcat(tmp
,pre
) ;
195 if ( dref
!= NULL
) strcat(r
,dref
) ;
197 if ( p
->boundary_array
)
201 xdim
= get_dimnode_for_coord( p
, COORD_X
) ;
202 ydim
= get_dimnode_for_coord( p
, COORD_Y
) ;
203 zdim
= get_dimnode_for_coord( p
, COORD_Z
) ;
205 { fprintf(stderr
,"dimension_with_ranges: y dimension not specified for %s\n",p
->name
) ; return("") ; }
207 { fprintf(stderr
,"dimension_with_ranges: x dimension not specified for %s\n",p
->name
) ; return("") ; }
209 xdex
= xdim
->dim_order
;
210 ydex
= ydim
->dim_order
;
212 if ( bdy
== P_XSB
|| bdy
== P_XEB
) { bdex
= ydex
; }
213 else if ( bdy
== P_YSB
|| bdy
== P_YEB
) { bdex
= xdex
; }
214 else { fprintf(stderr
,"REGISTRY WARNING: internal error %s %d \n",__FILE__
,__LINE__
) ; }
217 if ( !strcmp( p
->use
, "_4d_bdy_array_" ) ) {
218 sprintf(tmp
,"%ssm3%d,%ssm3%d,1,1", r
,bdex
,r
,zdex
) ;
220 sprintf(tmp
,"%ssm3%d,%ssm3%d,1", r
,bdex
,r
,zdex
) ;
232 if ( !strcmp( p
->use
, "_4d_bdy_array_" ) ) {
233 strcat(tmp
,"1,1,1,1,1,") ;
235 strcat(tmp
,"1,1,1,1,") ;
247 for ( i
= 0 ; i
< p
->ndims
; i
++ )
249 get_elem( dref
, "", tx
, i
, p
, 0 ) ;
254 tmp
[strlen(tmp
)-1] = '\0' ; /* remove trailing comma */
255 if ( post
!= NULL
) strcat(tmp
,post
) ;
260 get_elem ( char * structname
, char * nlstructname
, char * tx
, int i
, node_t
* p
, int first_last
)
262 char dref
[NAMELEN
], nlstruct
[NAMELEN
] ;
265 if ( structname
== NULL
) { strcpy( dref
, "" ) ;}
266 else { strcpy( dref
, structname
) ; }
267 if ( nlstructname
== NULL
) { strcpy( nlstruct
, "" ) ;}
268 else { strcpy( nlstruct
, nlstructname
) ; }
269 if ( p
->dims
[i
] != NULL
)
271 switch ( p
->dims
[i
]->len_defined_how
)
273 case (DOMAIN_STANDARD
) :
276 if ( p
->proc_orient
== ALL_X_ON_PROC
) ornt
= "x" ;
277 else if ( p
->proc_orient
== ALL_Y_ON_PROC
) ornt
= "y" ;
280 switch( p
->dims
[i
]->coord_axis
)
282 case(COORD_X
) : d
= 'i' ; d1
= 'x' ; break ;
283 case(COORD_Y
) : d
= 'j' ; d1
= 'y' ; break ;
284 case(COORD_Z
) : d
= 'k' ; d1
= 'z' ; break ;
288 if ( p
->dims
[i
]->subgrid
)
290 if ( first_last
== 0 ) { /*first*/
291 sprintf(tx
,"(%ssm3%d%s-1)*%ssr_%c+1",dref
,p
->dims
[i
]->dim_order
,ornt
,dref
,d1
) ;
293 sprintf(tx
,"%sem3%d%s*%ssr_%c" ,dref
,p
->dims
[i
]->dim_order
,ornt
,dref
,d1
) ;
298 sprintf(tx
,"%s%cm3%d%s",dref
,first_last
==0?'s':'e',p
->dims
[i
]->dim_order
,ornt
) ;
303 if ( first_last
== 0 ) { if ( !strcmp( p
->dims
[i
]->assoc_nl_var_s
, "1" ) ) {
304 sprintf(tx
,"%s",p
->dims
[i
]->assoc_nl_var_s
) ;
306 sprintf(tx
,"%s%s%s",nlstructname
,structname
,p
->dims
[i
]->assoc_nl_var_s
) ;
309 else { sprintf(tx
,"%s%s%s",nlstructname
,structname
,p
->dims
[i
]->assoc_nl_var_e
) ; }
312 if ( first_last
== 0 ) { sprintf(tx
,"%d",p
->dims
[i
]->coord_start
) ; }
313 else { sprintf(tx
,"%d",p
->dims
[i
]->coord_end
) ; }
320 fprintf(stderr
,"WARNING: %s %d: something wrong with internal representation for dim %d\n",__FILE__
,__LINE__
,i
) ;
322 return 0; /* SamT: bug fix: return a value */
326 declare_array_as_pointer( char * tmp
, node_t
* p
)
330 #ifdef USE_ALLOCATABLES
331 if ( p
->ndims
> 0 || p
->boundary_array
) strcpy ( tmp
, ",ALLOCATABLE" ) ;
333 if ( p
->ndims
> 0 || p
->boundary_array
) strcpy ( tmp
, ",POINTER" ) ;
340 field_type( char * tmp
, node_t
* p
)
344 } else if ( p
->type
== NULL
) {
346 } else if ( p
->type
->type_type
== SIMPLE
) {
347 strcpy( tmp
, p
->type
->name
) ;
349 sprintf( tmp
, "TYPE(%s)", p
->type
->name
) ;
355 field_name( char * tmp
, node_t
* p
, int tag
)
357 if ( p
== NULL
) return("") ;
360 strcpy(tmp
,p
->name
) ;
361 if ( p
->scalar_array_member
) strcpy(tmp
,p
->use
) ;
365 sprintf(tmp
,"%s_%d",p
->name
,tag
) ;
366 if ( p
->scalar_array_member
) sprintf(tmp
,"%s_%d",p
->use
,tag
) ;
372 field_name_bdy( char * tmp
, node_t
* p
, int tag
, int bdy
)
374 if ( p
== NULL
) return("") ;
377 strcpy(tmp
,p
->name
) ;
378 if ( p
->scalar_array_member
) strcpy(tmp
,p
->use
) ;
379 if ( p
->boundary_array
) strcat(tmp
,bdy_indicator(bdy
)) ;
383 sprintf(tmp
,"%s_%d",p
->name
,tag
) ;
384 if ( p
->scalar_array_member
) sprintf(tmp
,"%s_%d",p
->use
,tag
) ;
385 if ( p
->boundary_array
) strcat(tmp
,bdy_indicator(bdy
)) ;
390 static char *emp_str
= "" ;
391 static char *xs_str
= "xs" ;
392 static char *xe_str
= "xe" ;
393 static char *ys_str
= "ys" ;
394 static char *ye_str
= "ye" ;
397 bdy_indicator( int bdy
)
401 if ( bdy
== P_XSB
) { res
= xs_str
; }
402 else if ( bdy
== P_XEB
) { res
= xe_str
; }
403 else if ( bdy
== P_YSB
) { res
= ys_str
; }
404 else if ( bdy
== P_YEB
) { res
= ye_str
; }
409 print_warning( FILE * fp
, char * fname
)
411 fprintf(fp
,"!STARTOFREGISTRYGENERATEDINCLUDE '%s'\n", fname
) ;
413 fprintf(fp
,"! WARNING This file is generated automatically by use_registry\n") ;
414 fprintf(fp
,"! using the data base in the file named Registry.\n") ;
415 fprintf(fp
,"! Do not edit. Your changes to this file will be lost.\n") ;
421 close_the_file( FILE * fp
)
423 fprintf(fp
,"!ENDOFREGISTRYGENERATEDINCLUDE\n") ;
425 return 0; /* SamT: bug fix: return a value */
429 make_entries_uniq ( char * fname
)
431 char tempfile
[NAMELEN
] ;
432 /* Had to increase size for SOA from 4096 to 7000 */
433 char commline
[7000] ;
434 sprintf(tempfile
,"regtmp1%d",getpid()) ;
435 sprintf(commline
,"%s < %s > %s ; %s %s %s ",
436 UNIQSORT
,fname
,tempfile
,
437 MVCOMM
,tempfile
,fname
) ;
438 return(system(commline
)) ;
442 add_warning ( char * fname
)
445 char tempfile
[NAMELEN
] ;
446 char tempfile1
[NAMELEN
] ;
447 /* Had to increase size for SOA from 4096 to 7000 */
448 char commline
[7000] ;
449 sprintf(tempfile
,"regtmp1%d",getpid()) ;
450 sprintf(tempfile1
,"regtmp2%d",getpid()) ;
451 if (( fp
= fopen( tempfile
, "w" )) == NULL
) return(1) ;
452 print_warning(fp
,tempfile
) ;
454 sprintf(commline
,"%s %s %s > %s ; %s %s %s ; %s %s ",
455 CATCOMM
,tempfile
,fname
,tempfile1
,
456 MVCOMM
,tempfile1
,fname
,
458 return(system(commline
)) ;
463 make_upper_case ( char * str
)
466 if ( str
== NULL
) return (NULL
) ;
467 for ( p
= str
; *p
; p
++ ) *p
= toupper(*p
) ;
473 make_lower_case ( char * str
)
476 if ( str
== NULL
) return (NULL
) ;
477 for ( p
= str
; *p
; p
++ ) *p
= tolower(*p
) ;
481 /* Routines for keeping typedef history -ajb */
483 static int NumTypeDefs
;
484 static char typedefs
[MAX_TYPEDEFS
][NAMELEN
] ;
487 init_typedef_history()
496 return( NumTypeDefs
) ;
500 get_typename_i(int i
)
502 if ( i
>= 0 && i
< NumTypeDefs
) return( typedefs
[i
] ) ;
507 add_typedef_name ( char * name
)
509 if ( name
== NULL
) return(1) ;
510 if ( get_typedef_name ( name
) == NULL
)
512 if ( NumTypeDefs
>= MAX_TYPEDEFS
) return(1) ;
513 strcpy( typedefs
[NumTypeDefs
++] , name
) ;
519 get_typedef_name ( char * name
)
522 if ( name
== NULL
) return(NULL
) ;
523 for ( i
= 0 ; i
< NumTypeDefs
; i
++ )
525 if ( !strcmp(name
,typedefs
[i
]) ) return( typedefs
[i
] ) ;
531 associated_with_4d_array( node_t
* p
)
535 char * last_underscore
;
536 char name_copy
[128] ;
539 /* check this variable and see if it is a boundary variable that is associated with a 4d array */
540 strcpy( name_copy
, p
->name
) ;
541 if (( last_underscore
= rindex( name_copy
, '_' )) != NULL
) {
542 if ( !strcmp( last_underscore
, "_b" ) || !strcmp( last_underscore
, "_bt" ) ) {
543 *last_underscore
= '\0' ;
544 if (( possble
= get_entry( name_copy
, Domain
.fields
)) != NULL
) {
545 res
= possble
->node_kind
& FOURD
;
554 array_size_expression ( char * refarg
, char * pre
,
555 int bdy
, /* as defined in data.h */
556 char * tmp
, node_t
* p
, char * post
,
557 char * nlstructname
) /* provides name (with %) of structure in
558 which a namelist supplied dimension
559 should be dereference from, or "" */
563 char r
[NAMELEN
],s
[NAMELEN
],four_d
[NAMELEN
] ;
564 int bdex
, xdex
, ydex
, zdex
;
565 node_t
*xdim
, *ydim
, *zdim
;
567 if ( p
== NULL
) return("") ;
568 if ( p
->ndims
<= 0 && !p
->boundary_array
) return("") ;
570 if ( pre
!= NULL
) strcat(tmp
,pre
) ;
572 if ( refarg
!= NULL
) strcat(r
,refarg
) ;
574 if ( p
->boundary_array
)
578 xdim
= get_dimnode_for_coord( p
, COORD_X
) ;
579 ydim
= get_dimnode_for_coord( p
, COORD_Y
) ;
580 zdim
= get_dimnode_for_coord( p
, COORD_Z
) ;
582 { fprintf(stderr
,"dimension_with_ranges: y dimension not specified for %s\n",p
->name
) ; return("") ; }
584 { fprintf(stderr
,"dimension_with_ranges: x dimension not specified for %s\n",p
->name
) ; return("") ; }
586 xdex
= xdim
->dim_order
;
587 ydex
= ydim
->dim_order
;
589 if ( !strcmp( p
->use
, "_4d_bdy_array_" ) ) { /* if a boundary array for a 4d tracer */
590 strcpy(s
, p
->name
) ; /* copy the name and then remove everything after last underscore */
591 if ((pp
=rindex( s
, '_' )) != NULL
) *pp
= '\0' ;
592 sprintf( four_d
, "*num_%s,", s
) ;
594 strcpy( four_d
, "" ) ;
597 if ( bdy
== P_XSB
|| bdy
== P_XEB
) { bdex
= ydex
; }
598 else if ( bdy
== P_YSB
|| bdy
== P_YEB
) { bdex
= xdex
; }
599 else { fprintf(stderr
,"REGISTRY WARNING: internal error %s %d, bdy=%d,%s,%d \n",__FILE__
,__LINE__
,bdy
,p
->name
,p
->boundary
) ; }
600 if ( zdim
!= NULL
) {
601 zdex
= zdim
->dim_order
;
602 sprintf(tx
,"(%sem3%d-%ssm3%d+1)*(%sem3%d-%ssm3%d+1)*(%sspec_bdy_width)%s", r
,bdex
,r
,bdex
,r
,zdex
,r
,zdex
,r
,four_d
) ;
604 sprintf(tx
,"(%sem3%d-%ssm3%d+1)*(%sspec_bdy_width)%s", r
,bdex
,r
,bdex
,r
,four_d
) ;
607 if ( zdim
!= NULL
) {
608 zdex
= zdim
->dim_order
;
609 sprintf(tx
,"max(%sed3%d,%sed3%d)*(%sed3%d-%ssd3%d+1)*%sspec_bdy_width*4*%s", r
,xdex
,r
,ydex
,r
,zdex
,r
,zdex
,r
,four_d
) ;
611 sprintf(tx
,"max(%sed3%d,%sed3%d)*%sspec_bdy_width*4*%s", r
,xdex
,r
,ydex
,r
,four_d
) ;
613 if ( tx
[strlen(tx
)-1] == '*' ) tx
[strlen(tx
)-1] = '\0' ; /* chop trailing * if four_d is "" */
618 sprintf(tx
,"%sspec_bdy_width,",r
) ;
624 for ( i
= 0 ; i
< p
->ndims
; i
++ )
626 dimension_size_expression( r
, tx
, i
, p
, nlstructname
) ;
631 if ( tmp
[strlen(tmp
)-1] == '(' ) {
632 tmp
[strlen(tmp
)-3] = '\0' ; /* get rid of trailing )*( */
633 } else if ( tmp
[strlen(tmp
)-1] == ',' ) {
634 tmp
[strlen(tmp
)-1] = '\0' ;
636 if ( post
!= NULL
) strcat(tmp
,post
) ;
642 dimension_size_expression ( char * r
, char * tx
, int i
, node_t
* p
, char * nlstructname
)
644 char s
[NAMELEN
], e
[NAMELEN
] ;
646 get_elem( r
, nlstructname
, s
, i
, p
, 0 ) ;
647 get_elem( r
, nlstructname
, e
, i
, p
, 1 ) ;
648 sprintf(tx
,"((%s)-(%s)+1)", e
, s
) ;
649 return 0; /* SamT: bug fix: return a value */
653 reset_mask ( unsigned int * mask
, int e
)
658 w
= e
/ (8*sizeof(int)-1) ;
660 m
= ~( n
<< e
% (8*sizeof(int)-1) ) ;
661 if ( w
>= 0 && w
< IO_MASK_SIZE
) {
667 set_mask ( unsigned int * mask
, int e
)
672 w
= e
/ (8*sizeof(int)-1) ;
674 m
= ( n
<< e
% (8*sizeof(int)-1) ) ;
675 if ( w
>= 0 && w
< IO_MASK_SIZE
) {
681 get_mask ( unsigned int * mask
, int e
)
686 w
= e
/ (8*sizeof(int)-1) ; /* 8 is number of bits per byte */
687 if ( w
>= 0 && w
< IO_MASK_SIZE
) {
689 n
= ( 1 << e
% (8*sizeof(int)-1) ) ;;
690 return ( (m
& n
) != 0 ) ;
696 int dims_ikj_inner(node_t
* field_struct
) {
697 return field_struct
->ndims
>=3
698 && !strcmp(field_struct
->dims
[0]->dim_name
,"i")
699 && !strcmp(field_struct
->dims
[1]->dim_name
,"k")
700 && !strcmp(field_struct
->dims
[2]->dim_name
,"j");
703 int dims_ij_inner(node_t
* field_struct
) {
704 return field_struct
->ndims
>=2
705 && !strcmp(field_struct
->dims
[0]->dim_name
,"i")
706 && !strcmp(field_struct
->dims
[1]->dim_name
,"j");
715 for ( i
= 0 ; i
< 5*32 ; i
++ ) {
716 for ( ii
= 0 ; ii
< 5 ; ii
++ ) { m
[ii
] = 0xffffffff ; }
718 for ( ii
= 4 ; ii
>= 0 ; ii
-- ) { printf(" %08x ", m
[ii
]) ; }
722 for ( i
= 0 ; i
< 5*32 ; i
++ ) {
723 for ( ii
= 0 ; ii
< 5 ; ii
++ ) { m
[ii
] = 0x0 ; }
725 for ( ii
= 4 ; ii
>= 0 ; ii
-- ) { printf(" %08x ", m
[ii
]) ; }
729 for ( ii
= 0 ; ii
< 5 ; ii
++ ) { m
[ii
] = 0x0 ; }
731 for ( i
= 0 ; i
< 5*32 ; i
++ ) {
732 printf("%d %0d\n",i
,get_mask(m
,i
) ) ;