The ISHFTC function performs a circular shift of the rightmost bits of an integer argument.
SyntaxISHFTC (i, shift [, size])
i is an INTENT(IN) scalar or array of type INTEGER, containing values to be shifted.
shift is an INTENT(IN) scalar or array of type INTEGER. The absolute value of shift must be less than or equal to size.
size is an INTENT(IN) scalar or array of type INTEGER. Only the rightmost size bits will be shifted.
The value of size must be positive and must not be greater than BIT_SIZE(i).
If absent, it is as if size were present with the value BIT_SIZE(i).
The result is of type INTEGER and of the same kind as i.
Its value is equal to the value of i with its rightmost size bits circularly shifted by shift positions.
If shift is positive, bits are shifted to the left.
If shift is negative, bits are shifted to the right.
Exampleinteger :: i=16,ia(2)=(/4,8/) write(*,*) i,ia ! writes 16 4 8 write(*,*) ishftc(i,-2) ! writes 4 write(*,*) ishftc(i,ia,8) ! writes 1 16 write(*,*) ishftc(ia,2) ! writes 16 32 write(*,*) ishftc(ia,i,16) ! writes 4 8