	subroutine dix_symbol_change_integer_size(control,old,new)
	implicit none
c
c Change the integer size 4/8
c
	include 'dix_symbol.inc'
	record /control/ control
	integer*4 old
	integer*4 new
c
	record /main_symbol/ main_symbol
	pointer (p_main_symbol,main_symbol) 
c
	record /symbol/ symbol
	pointer (p_symbol,symbol)
c
	record /symbol_value/ symbol_value
	pointer (p_symbol_value,symbol_value)
c
	integer*8 value
c
	external dix_msg_symbinov
c
	p_main_symbol = control.p_symbols
c
	value = old
c
	p_symbol = main_symbol.ptr_symbols
	do while(p_symbol .ne. 0)
	  p_symbol_value = symbol.ptr_values
	  do while(p_symbol_value .ne. 0) 
	    if(symbol_value.value.type .eq. symb_typ_int) then
c
c Convert the integers
c
	      if(new .eq. 8) then
	        value = symbol_value.value.ival
	        call lib$movc3(8,value,symbol_value.value.i8val)
	      else
	        if(symbol_value.value.i8val(2) .ne. 0 .and.
     1             symbol_value.value.i8val(2) .ne. -1) then
	          call dix_message(control,dix_msg_symbinov,
     1                symbol.name(1:symbol.nk_name))
	        endif
	      endif
	    endif
	    p_symbol_value = symbol_value.ptr_next
	  enddo
	  p_symbol = symbol.ptr_next
	end do
	return
	end

