! $Id$ !======================================================================================= ! ! ! ! !======================================================================================== subroutine b4_to_i4_avhrr ( b4 , isign, i4 ) integer, parameter :: INT1 = selected_int_kind(R=2) integer, parameter :: INT2 = selected_int_kind(R=4) integer, parameter :: INT4 = selected_int_kind(R=9) integer (kind = int1 ) , intent(in) :: b4 (4) logical, intent(in) :: isign integer i integer (kind = int4) , intent(out) :: i4 integer (kind = int2 ):: b4_loc(4) b4_loc = b4 if ( b4_loc(1) < 0 .and. isign .eqv. .false. ) then b4_loc(1) = b4_loc(1) + 256 end if do i = 2, 4 if ( b4_loc(i) < 0 ) b4_loc(i) = b4_loc(i) + 256 end do i4 = 0 do i = 4, 1 , -1 i4 = i4 + b4_loc(i) * ( 256 ** ( 4 - i )) end do end subroutine b4_to_i4_avhrr !======================================================================================= ! ! ! ! !======================================================================================== subroutine b2_to_i2_avhrr ( b2 , isign, i2 ) integer, parameter :: INT1 = selected_int_kind(R=2) integer, parameter :: INT2 = selected_int_kind(R=4) integer, parameter :: INT4 = selected_int_kind(R=9) integer (kind = int1 ) , intent(in) :: b2 (2) logical, intent(in) :: isign integer (kind = int2) , intent(out) :: i2 integer (kind = int2 ):: b2_loc(2) b2_loc = b2 if ( b2_loc(1) < 0 .and. isign .eqv. .false. ) then b2_loc(1) = b2_loc(1) + 256 end if if ( b2_loc(2) < 0 ) b2_loc(2) = b2_loc(2) + 256 i2 = b2_loc(1) * 256 + b2_loc(2) end subroutine b2_to_i2_avhrr