* test program for treating complex values and the dimension definition
	complex a(4)
	real    b(4)
	integer i
	do 100 i=1,4
	  a(i)=cmplx(real(i-1),real(i))
	  b(i)=a(i)*a(i)
100	continue
	print *,'before subroutine call'
	print *,'a=',a(1),a(2),a(3),a(4)
	print *,'b=a^2=',b(1),b(2),b(3),b(4)
	print *,''
	call cal_square(a,b)
	print *,'after subroutine call'
	print *,'a=',a(1),a(2),a(3),a(4)
	print *,'b=a^2=',b(1),b(2),b(3),b(4)
	print *,''
	end
	subroutine cal_square(a, b)
	dimension a(*),b(*)
	integer i
	do 100 i=1,4,1
	  b(i)=cmplx(a(2*i-1),a(2*i))*cmplx(a(2*i-1),a(2*i))
100	continue
	print *,'during subroutine calling'
	print *,'a=',a(1),a(2),a(3),a(4),a(5),a(6),a(7),a(8)
	print *,'b=a^2',b(1),b(2),b(3),b(4)
	print *,''
	end

------ result ----

 before subroutine call
 a= (0.,1.) (1.,2.) (2.,3.) (3.,4.)
 b=a^2= -1. -3. -5. -7.
 
 during subroutine calling
 a=  0.  1.  1.  2.  2.  3.  3.  4.
 b=a^2 -1. -3. -5. -7.
 
 after subroutine call
 a= (0.,1.) (1.,2.) (2.,3.) (3.,4.)
 b=a^2= -1. -3. -5. -7.
 
------